2023年軟件工程心得體會(匯總9篇)

字號:

    心得體會是個人在經(jīng)歷某種事物、活動或事件后,通過思考、總結和反思,從中獲得的經(jīng)驗和感悟。那么心得體會該怎么寫?想必這讓大家都很苦惱吧。下面我?guī)痛蠹艺覍げ⒄砹艘恍﹥?yōu)秀的心得體會范文,我們一起來了解一下吧。
    軟件工程心得體會篇一
    學習了這門課程, 還有老師們的多元化教課,不但讓我從理論上掌握軟件工程,還有從不同的實例,讓理論和實踐得到了很好的結合。整一個學期下來,總的來說還是學到了很多東西的,有很多地方是值得肯定的,其實在我看來,軟件工程與其說是一門課程,不如說是一門思想。是一個如何去分析和處理問題的過程,應該說其范疇已經(jīng)遠遠不止局限于該門課程,成為了一個綜合的一個能夠解決問題的思想集合。
    要學習軟件工程,學會如何系統(tǒng)的思考,以及養(yǎng)成良好的編碼習慣,想學好軟件工程,就必須知道軟件工程的目標、過程和原則: 軟件工程目標:生產具有正確性、可用性以及開銷合宜的產品。正確性指軟件產品達到預期功能的程度。
    可用性指軟件基本結構、實現(xiàn)及文檔為用戶可用的程度。開銷合宜是指軟件開發(fā)、運行的整個開銷滿足用戶要求的程度。這些目標的實現(xiàn)不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。
    軟件工程過程:生產一個最終能滿足需求且達到工程目標的軟件產品所需要的步驟。軟件工程過程主要包括開發(fā)過程、運作過程、維護過程。它們覆蓋了需求、設計、實現(xiàn)、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟件需求規(guī)約。需求分析生成功能規(guī)約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟件系統(tǒng)結構,包括子系統(tǒng)、模塊以及相關層次的說明、每一模塊的接口定義。詳細設計產生程序員可用的模塊說明,包括每一模塊中數(shù)據(jù)結構說明及加工描述。實現(xiàn)活動把設計結果轉換為可執(zhí)行的程序代碼。確認活動貫穿于整個開發(fā)過程,實現(xiàn)完成后的確認,保證最終產品滿足用戶的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。 軟件工程的原則是指圍繞工程設計、工程支持以及工程管理在軟件開發(fā)過程中必須遵循的原則。
    pad圖:它是用結構化程序設計思想表現(xiàn)程序邏輯結構的圖形工具。pad也設置了五種基本控制結構的圖示,并允許遞歸使用。hipo圖:hipo圖是由一組ipo圖加一張hc圖組成。它是美國ibm公司在軟件設計中使用的主要表達工具。hc圖既是層次圖,用于表示軟件的分層結構。hc圖中的每一個模塊,均可用一張ipo圖來描述。ipo 圖由輸入、處理和輸出三個框組成,需要時還可以增加一個數(shù)據(jù)文件框,這種圖形的優(yōu)點,是能夠直觀地顯示輸入處理輸出三者之間的聯(lián)系。還有測試方法:按照測試過程是否在實際應用環(huán)境中來分,有靜態(tài)分析與動態(tài)測試。測試方法有分析方法(包括靜態(tài)分析法與白盒法)與非分析方法(稱黑盒法)。靜態(tài)分析技術:不執(zhí)行被測軟件,可對需求分析說明書、軟件設計說明書、源程序做結構檢查、流程分析、符號執(zhí)行來找出軟件錯誤。動態(tài)測試技術:當把程序作為一個函數(shù),輸入的全體稱為函數(shù)的定義域,輸出的全體稱為函數(shù)的值域,函數(shù)則描述了輸入的定義域與輸出值域的關系。還學習了其他很多工具、語言、方法等,雖然不是都學得很透徹,但我相信在今后的學習中一定會慢慢的完善的。
    軟件工程對于初學者來說,知識基礎較薄弱,對一些應用操作、概念、工具方法等理解起來較為困難,要能從整體概念上較好地理解和把握、學好軟件工程,不是僅僅把幾本專業(yè)書籍細致地看幾遍,然后上機練習幾次就可以成功,學習過程中要注意多看多練要注意結合實際,更要多思考,面對錯誤不要一范就問,要嘗試自己去解決。但是還要注意什么都學,肯定是什么都學不透的,要集中精力打攻堅戰(zhàn),學習軟件工程首先要明白自己的學習目標究竟是什么,根據(jù)自己的實際工作出發(fā),有針對性的在相應的學習方向上進行提高,制定出詳細的學習規(guī)劃。還要注意與其他科目的相輔相成,就像我們在學習面向對象分析的時候要結合大一學習的面向對象及其方法學這一專業(yè)科目進行研究拓展;在學習語言時,要看看與c語言的聯(lián)系,多思多想,把從各個科目學到的知識通匯貫通。
    在軟件工程的學習中,我了解到了軟件并非是一些代碼這么簡單,在開發(fā)軟件的過程中,編寫代碼的工作量其實只占不到所有工程量的30%,而后期的管理和維護更是占了60%到80%之多。一個完整的項目規(guī)劃須包括,軟件的定義,可行性分析報告,項目開發(fā)計劃,軟件需求說明書,概要設計說明書,詳細設計說明書,用戶操作手冊,測試計劃,測試分析報告,開發(fā)進度報告,項目開發(fā)總結報告,軟件維護手冊,軟件問題報告,軟件修改報告,等多個文檔,每個文檔都要上級驗收審查,而文檔數(shù)量眾多,要做好這點真的不是很容易,而恰恰寫好文檔正能保證完成軟件工程其中一個目的的關鍵,既研究如何用最小的開銷做出生存期較長的軟件,再加上各個階段都要進行周密的策劃、詳細的分工部署和人員安排,且各階段要據(jù)具體情況不斷的反復才能達成,所以代碼只是開發(fā)軟件這個浩大的工程的一個小小的過程。
    而編碼的學習中,我更了解到形成自己獨特的規(guī)范的編碼風格是非常重要的事。因為這影響到了軟件后期繁重的維護,大家都要閱讀你的程序,如果你寫的程序毫無規(guī)范可言,那么別人怎么能讀懂你的程序讀不懂程序,維護又從何談起呢所以,我們在今后的學習中,一定要注意這方面的培養(yǎng),在寫程序的過程中,要逐步的在規(guī)范的基礎上形成屬于自己的風格,即方便自己的修改,也方便日后他人的閱讀。
    在學習中,我們還要注意比較三種方法的優(yōu)缺點,例如:傳統(tǒng)方法雖然使軟件擺脫了混亂和無序,但其在適應需求變化的方面不夠靈活,而且傳統(tǒng)方法要么面向行為,要么面向數(shù)據(jù),缺乏兩者的有機結合。而面向對象方法的程序設計和問題求解更符合人們日常自然的思維習慣,適合大型、復雜及交互性比較強的系統(tǒng)。形式化方法則是一中基于形式化數(shù)學變換的軟件開發(fā)方法,它可將系統(tǒng)的規(guī)格說明轉換為可執(zhí)行的程序。在今后的學習中要注意多讀書、多思考、多練習、多討論,不斷熟悉書本的基礎,并以此為基礎將其擴散開來,應用于今后的實踐。不斷鍛煉自己,向一名合格的程序設計師邁進。
    軟件工程心得體會篇二
    軟件工程師作為現(xiàn)代社會中越來越重要的職業(yè)之一,隨著信息技術的不斷發(fā)展,其職責也越來越廣泛和重要。作為一名軟件工程師,我在這個行業(yè)里摸爬滾打多年,深感自己的成長離不開各種經(jīng)驗和心得的積累。在接下來的文字中,我將從個人視角談談自己在軟件開發(fā)過程中的心得體會。
    第二段:選擇質量
    在軟件開發(fā)的過程中,我最關注的是軟件的質量。因為軟件需要長期運行,不僅要滿足用戶需求,還要兼顧安全性和可維護性等方面,這需要我們在開發(fā)過程中嚴格控制每一個環(huán)節(jié),做好每一個細節(jié)。因此,我在項目開發(fā)前會認真分析需求和可能的風險,對技術框架和工具的選擇非常謹慎。我也會定期進行代碼復審和單元測試等工作,確保代碼質量達標。當然,在不斷優(yōu)化的過程中,我也意識到代碼質量的提高不僅僅在于個人級別,而更應該顧及團隊整體水平,因此深感技術學習和交流的重要性。只有不斷積累、分享,才能讓團隊的發(fā)展更加健康和持久。
    第三段:溝通協(xié)作
    作為一名軟件工程師,我們的工作不僅僅是編寫代碼,更包括與產品經(jīng)理、UI設計師、測試工程師等各個角色之間的溝通協(xié)作。這就需要我們具備更多的軟技能。比如,要善于傾聽和引導,以便更好地理解產品需求和用戶痛點;要有清晰的表達能力,能夠清楚地向其他角色描述自己的想法和意圖;在開發(fā)過程中,也要非常注重團隊合作,及時溝通和協(xié)調出現(xiàn)的問題。整個軟件開發(fā)過程需要涵蓋從需求分析、規(guī)劃和設計,再到編碼、測試和上線等各個環(huán)節(jié),期間需要負責人與團隊的全面協(xié)作才能保證項目的順利完成。
    第四段:學習成長
    軟件開發(fā)是一個知識密集型的工作,要時刻緊跟技術的發(fā)展趨勢才能在激烈的競爭中取得優(yōu)勢。因此,我認為軟件工程師需要具備持續(xù)學習的能力和自我提升的意識。我會在業(yè)余時間去了解新的技術,參加相關的技術社群和活動,不斷學習和嘗試新東西,以此來增強自己的核心競爭力和解決實際問題的能力。同樣,我也會時刻關注團隊的成長和發(fā)展,希望能為團隊帶來更多的經(jīng)驗和技術積累。
    第五段:總結回顧
    在軟件開發(fā)的過程中,我覺得最重要的是要保持持之以恒的熱情和精神狀態(tài)。無論是在技術領域還是在團隊管理中,不停地學習和成長,分享并培育團隊的創(chuàng)新精神和專業(yè)精神,才能不斷提高自己和團隊的能力和素質,做出更好的產品。取得成功需要獨立思考和勇于探索,但更需要承認團隊的重要性,在各方面展現(xiàn)出自己領導團隊的能力和擔當。在今后的工作和生活中,我也將持續(xù)關注自己的成長需求,堅定地走好自己的職業(yè)道路。
    軟件工程心得體會篇三
    軟件工程(softwareengineering,簡稱為se)是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟件的學科。它涉及到程序設計語言,數(shù)據(jù)庫,軟件開發(fā)工具,系統(tǒng)平臺,標準,設計模式等方面。在現(xiàn)代社會中,軟件應用于多個方面。典型的軟件比如有電子郵件,嵌入式系統(tǒng),人機界面,辦公套件,操作系統(tǒng),編譯器,數(shù)據(jù)庫,游戲等。同時,各個行業(yè)幾乎都有計算機軟件的應用,比如工業(yè),農業(yè),銀行,航空,政府部門等。這些應用促進了經(jīng)濟和社會的發(fā)展,使得人們的工作更加高效,同時提高了生活質量。
    二、軟件工程的目標
    在給定成本、進度的前提下,開發(fā)出具有可修改性、有效性、可靠性、可理解性、可維護性、可重用性、可適應性、可移植性、可追蹤性和可互操作性并且滿足用戶需求的軟件產品。
    三、軟件工程的原則
    是指圍繞工程設計、工程支持以及工程管理在軟件開發(fā)過程中必須遵循的原則。軟件工程的原則有以下四項基本原則:1)選取適宜開發(fā)范型;2)采用合適的設計方法;3)提供高質量的工程支持;4)重視開發(fā)過程的管理。
    四、軟件工程的由來
    據(jù)說上個世紀60年代的程序員都是天才,寫程式就像寫日記一樣,吃過晚飯沒事干隨手就可以寫幾個出來玩,第二天還可以拿去賣錢。所以那時候程序員在大家眼中,跟那些搞美術,音樂的是一類的,被稱為“藝術家”。
    但事過境遷,就像任何人都不會嫌錢多一樣,永遠都不會有人嫌cpu快的。于是,隨之而來的就是硬件的迅猛發(fā)展和越來越變態(tài)的軟件。記得以前常去同學家拷游戲,通常幾張軟盤就可以搞定,而現(xiàn)在的游戲,兩三張cd-rom都算少的了。像如此龐大復雜的怪物,就算你是如何的天才,一個人肯定是搞不定的,否則,等你把程式寫出來,人家intel連奔騰n都開發(fā)出來了。既要開發(fā)大型的軟件還要追求速度(這樣才能賺錢),于是很自然地,合作的概念被提了出來。
    在開始合作的初期,由于大家都習慣了當很有個性的“藝術家”,結果可想而知,一個是畢加索派的,而另一個是意大利印象派的,再加上一個畫潑墨山水畫的,要是像這樣湊出來的東西都能不出問題的話,那么bill早就轉行了。所以,那時侯的大型軟件,據(jù)說“藍屏”比windows98還多。
    馬克思告訴我們,萬物都是從量變到質變的。隨著問題的不斷涌現(xiàn),一些master們開始嘗試去總結經(jīng)驗,并歸納了一些規(guī)范去指導軟件的分析,設計,實現(xiàn),測試,維護,人員交流協(xié)作,項目預算及時限控制等方方面面,這就是軟件工程的前身。
    軟件工程到現(xiàn)在已發(fā)展了30多年,可以說是相當成熟的了。現(xiàn)在開發(fā)軟件,據(jù)說都是一大幫人排排坐,按著一整套的規(guī)章制度來干活。于是,軟件開發(fā)成了“工程”,程序員也就淪為“工人”了。
    五、軟件工程的核心
    軟件工程,說白了,就是這樣一套用于軟件的團隊開發(fā),以提高軟件質量和程序員工作效率為目的的規(guī)范。其核心就是,對于軟件開發(fā)的5個重要組成部分:需求分析,設計,編碼,調試,維護,如何組織這5個部分的工作,以及如何完成每一個工作。簡單來說,就是對于總體的組織和對于局部的實現(xiàn)。
    六、軟件開發(fā)過程
    開發(fā)軟件,就像是解決一個邏輯問題。想想自己平時是怎樣寫程序的。首先是要有一個想法,即我寫的這個程序是要干什么的;然后就是對要實現(xiàn)的核心功能大概構思一種或多種實現(xiàn)方法,并從中選出一種自認為是較好的;接下來就是將涉及的各種主要或次要功能分成各個模塊;最后就是分模塊來編碼和debug。除了第一步外,其余的步驟應該是一個循環(huán)的過程。既然軟件開發(fā)是一個具有不可預知性和變化性的`動態(tài)的過程,那么,對其每一個步驟的組織,即周期模型,就必須包容它的這種性質。
    具體到每一步的工作要怎樣完成,是非常靈活的,只要把握住大體的方向就行。在進行分析,設計,編碼,調試,維護這幾部分的工作的時候,最核心的就是文檔的編寫。文檔的作用在于以下3個方面:一是可以幫助整理思路。把要完成的目標,系統(tǒng)的結構,每一個模塊的功能等整理一下,然后分門別類地寫下來,這樣在開發(fā)的過程中,就有據(jù)可依,在需要回過頭來修改設計的時候,也有證可考。二是便于交流。想象一下開會時的情形。一大幫子人爭先恐后,激烈辯論,然后會終人散,思想靈感也就隨之散了,結果是開了半天會,什么也沒討論出來。這就是后來會議記錄被發(fā)明出來的原因。在腦子里的東西一多,就會散而且亂,用語言表達的時候,很容易會丟三落四,別人也很難把握住你的思想。但經(jīng)過整理寫在紙上以后,則會清晰得多,無論是別人還是自己,看起來都可以一目了然。三是可以作為以后維護時的參考資料。有一句名言:“筆和紙永遠都比大腦可靠”,意思就是說,放在大腦里的東西說不準哪天就忘了,但寫在紙上的東西,只要不發(fā)生什么意外,一般是丟不了的。當過了一段時間,你需要再回過頭來修改你的程序的時候,你就會發(fā)現(xiàn),你以前寫下的文檔實在太有價值了。別指望你的源代碼,對于復雜一點的程序來說,單純的源代碼幾乎會扼殺掉你所有的時間。
    可行性分析就是關于當前項目能不能干的分析結果。主要考慮的方面包括:是否能把這個項目開發(fā)出來;假如可以的話,預計需要多少時間,能否滿足客人的時間要求;需要多少人力和資金的投入;最重要的是,這個項目能否賺錢,能賺多少。還要對可能存在的風險進行評估。
    七、軟件工程學習感悟
    時間飛逝,不知不覺間《軟件工程》的學習完了。在這將近半學期的學習中,雖然我不能說我將《軟件工程》學習的有多么的好,但是通過學習,我還是受益良多。
    在以前,我一直對軟件存在一些偏見或則是誤解,認為軟件就是程序,軟件的開發(fā)就是編寫程序,只要編完了程序,一切也就ok了,而且我還片面的認為只要我掌握了時下最新的語言和工具,那么我就能寫程序了。一個人,只要會編程,就能寫軟件,就是程序員;一個公司,只要招聘一些程序員,就能開發(fā)好的軟件產品。只要有幾個有經(jīng)驗的程序員,再找些兼職的大學生,就能組成一個軟件公司。
    但是通過了《軟件工程》這門課的學習,使我認識到了我以前的錯誤。軟件其實不僅僅是程序,軟件開發(fā)其實也不僅僅是編寫程序,軟件是思想在硬件上的載體和體現(xiàn),處理的是邏輯和信息。唯有對軟件和軟件的開發(fā)過程,有充分的認識,才能更好的開發(fā)出,過程受控、質量受控的軟件產品。
    而且在以前,我一直以為軟件的開發(fā)其實是一件很輕松快樂的事情,只要一天坐在電腦旁敲敲鍵盤,那么一切就可以了,但是現(xiàn)在我才發(fā)現(xiàn),我以前的很多的思想是多么的膚淺可笑。編程其實是一種樂趣和苦惱共存的一項創(chuàng)造性活動。因為編程不僅能夠滿足我們內心深處進行創(chuàng)造的渴望,而且還能愉悅我們內在的情感。
    而且通過學習《軟件工程》,我還學到了很多其他的東西。比如通過學習《軟件工程》,特別是教員的課程講解和每次用實際的軟件現(xiàn)場的講解,為我提供了一個盡早接觸世界工作和真實項目的機會。讓我知道如何在以最小的成本中,訓練自己的基本工程素質和能力,如何激發(fā)自己的積極性等。而且通過學習《軟件工程》,還讓我認識和培養(yǎng)了我的團隊協(xié)作能力,特別是對于我們這些在校的學生來說,這種學習更是能讓我在以后工作中少走很多的彎路。
    所以,通過《軟件工程》的學習,我是真的學習到了很多有用的東西,讓我明白了很多的道理。在此我對教員的辛勤教育表示感謝,因為是你讓我學習到了這些,是我獲益良多。
    軟件工程心得體會篇四
    軟件工程師是一個充滿挑戰(zhàn)和機遇的職業(yè)。在我從事軟件開發(fā)工作的這段時間里,我不斷學習和成長,越來越喜愛這個行業(yè)。在這篇文章中,我將分享自己關于軟件工程師的心得體會,希望對其他人有所幫助。
    第一段:專業(yè)知識的重要性
    作為軟件工程師,我們必須對技術的掌握非常精通,我們在不斷的探索和學習新的工具和技術。我們必須持續(xù)不斷地關注業(yè)界的最新動態(tài),及時掌握前沿技術,像人工智能、區(qū)塊鏈等這些新技術都值得我們去探究。與此同時,掌握好基礎的計算機科學知識也是需要的。掌握這些知識既能幫助我們更好地理解系統(tǒng)內部實現(xiàn)機理,也能避免犯一些低級的錯誤。在學習和成長的過程中,我體會到了這一點。
    第二段:團隊合作的重要性
    在軟件開發(fā)領域,沒有人能獨善其身。在一個團隊中,每個人都有自己的專業(yè)領域,只有團隊共同合作才能實現(xiàn)項目的成功。因此,團隊合作是成功的關鍵。在團隊工作中,我們必須學會彼此傾聽,交流并協(xié)作。我們必須以實現(xiàn)目標為導向,共同完成任務。同時,探討問題并互相幫助也是必要的。這些方面都可以提高我們的溝通能力,并促進合作的成功。
    第三段:代碼質量的重要性
    軟件工程師所編寫的代碼是企業(yè)技術資產,同時也是開發(fā)者個人的財富。因此,編寫優(yōu)質的代碼是非常重要的。良好的代碼質量可以提高系統(tǒng)的可維護性和可擴展性,減少后續(xù)的工作量,同時也可以為編寫代碼的人提供一份技術遺產。還有就是一個高效、優(yōu)質的代碼可以提高團隊的安全和整體效率。在我的經(jīng)驗中,保證代碼質量可以使系統(tǒng)更加穩(wěn)定可靠,同時也可以讓開發(fā)者和團隊獲得更高的聲譽。
    第四段:思考的重要性
    軟件工程師是一個需要保持開放性思維的職業(yè),我們需要在不斷的探索和思考中成長和進步。嘗試去遇到新事物并探究它們的實現(xiàn)方法,吸收不同的思路和思考方式,這些都是非常好的方法。思考可以幫助我們更加深入地理解一個問題,也有助于我們找到解決問題的方法。因此,保持開放性思維,創(chuàng)新思考就顯得非常重要。 思考能助于我們預先考慮項目中可能出現(xiàn)的問題,從而提前解決。這就可以讓我們在未來的開發(fā)需求中更好地迎接新的挑戰(zhàn)。
    第五段:持續(xù)學習和成長
    軟件工程師的職業(yè)生涯需要不斷的學習和成長。保持對技術的持續(xù)學習和學習新的工具和技術是追求成長的最好途徑。因此保持學習的態(tài)度,介入到新依賴和組件中去創(chuàng)造用戶會很喜愛的產品。同時,不斷地學習也能拓寬了自己的視野,了解各種技術的優(yōu)點和缺點。保持求知欲,不斷學習,用最好的狀態(tài)去完成我自己和團隊的任務。
    總之,軟件工程師的工作是充滿挑戰(zhàn)和機遇的。實現(xiàn)成功的關鍵在于專業(yè)知識、團隊合作、代碼質量、思考能力和持續(xù)學習。我相信,人們只要持續(xù)學習和努力進步,定能成為更好的軟件開發(fā)者。
    軟件工程心得體會篇五
    在本學期的軟件工程課程的學習中,我們學習了十一章的內容。第一章軟件與軟件工程的概念,這一章主要講解的是一些概念性和基礎性的內容,例如軟件的概念、特性,軟件危機的主要表現(xiàn),軟件工程的概念以及軟件生存期、典型生存期模型等等。第二章軟件工程方法與工具,這一章主要對軟件工程方法進行介紹,包括三種方法:傳統(tǒng)方法、面向對象方法、形式化方法。還引出了工具uml。第三章軟件需求獲取與結構化分析方法,本章詳細介紹了需求獲取與需求分析階段的任務以及結構化分析方法,畫分層的數(shù)據(jù)流圖、e—r圖以及狀態(tài)圖式本節(jié)的重點。第四章結構化分析方法,這一章重點講解了使用變換型映射方法和事務型映射方法生成初始的模塊結構以及模塊結構的改進。第五章編碼,這一章重點講解了編碼的風格及規(guī)范,還告訴我們編碼規(guī)范說帶來的好處,并告誡我們將來一點要形成好的編碼風格。第六章軟件測試方法,本章講解了軟件測試相關的概念及重要性,軟件測試與開發(fā)各個階段的關系;還介紹了白盒測試技術以及黑河測試技術。第七章統(tǒng)一建模語言uml概述,本章詳細介紹了uml的基本模式、事物、關系及建模時用到的各種圖進行了介紹。第八章面向對象分析,這一章主要講解了面向對象分析的3種模型,包括功能模型、靜態(tài)模型和動態(tài)模型。第九章軟件體系結構與設計模式,本章對軟件體系結構的基本概念、典型風格等進行了講解。第十章面向對象設計,本章的重點是對面向對象分析時建立的對象模型進行調整和細化。第十一章軟件維護,本章主要介紹軟件維護的任務、軟件維護活動以及軟件維護方法進行了介紹。
    要學習軟件工程,學會如何系統(tǒng)的思考,以及養(yǎng)成良好的編碼習慣,想學好軟件工程,就必須知道軟件工程的目標、過程和原則:軟件工程目標:生產具有正確性、可用性以及開銷合宜的產品。正確性指軟件產品達到預期功能的程度??捎眯灾杠浖窘Y構、實現(xiàn)及文檔為用戶可用的程度。開銷合宜是指軟件開發(fā)、運行的整個開銷滿足用戶要求的程度。這些目標的實現(xiàn)不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。
    軟件工程過程:生產一個最終能滿足需求且達到工程目標的軟件產品所需要的步驟。軟件工程過程主要包括開發(fā)過程、運作過程、維護過程。它們覆蓋了需求、設計、實現(xiàn)、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟件需求規(guī)約。需求分析生成功能規(guī)約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟件系統(tǒng)結構,包括子系統(tǒng)、模塊以及相關層次的說明、每一模塊的接口定義。詳細設計產生程序員可用的模塊說明,包括每一模塊中數(shù)據(jù)結構說明及加工描述。實現(xiàn)活動把設計結果轉換為可執(zhí)行的程序代碼。確認活動貫穿于整個開發(fā)過程,實現(xiàn)完成后的確認,保證最終產品滿足用戶的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。
    軟件工程的原則是指圍繞工程設計、工程支持以及工程管理在軟件開發(fā)過程中必須遵循的原則。
    我們學習了詳細設計的方法,其原則是過程描述是否易于理解、復審和維護,進而過程描述能夠自然地轉換成代碼,并保證詳細設計與代碼完全一致。包括程序流程圖、n—s圖、pad圖、hipo圖。
    程序流程圖:程序流程圖又稱之為程序框圖,它是軟件開發(fā)者最熟悉的一種算法表達工具。它獨立于任何一種程序設計語言,比較直觀和清晰地描述過程的控制流程,易于學習掌握。在流程圖中只能使用下述的五種基本控制結構:順序型;選擇型;while型循環(huán);until型循環(huán);多情況型選擇。
    n—s圖:一種符合結構化程序設計原則的圖形描述工具,稱為盒圖,又稱為n—s圖。在n—s圖中,為了表示五種基本控制結構,規(guī)定了五種圖形構件。順序型;選擇型;while重復型;until重復型;多分支選擇型。
    pad圖:它是用結構化程序設計思想表現(xiàn)程序邏輯結構的圖形工具。pad也設置了五種基本控制結構的圖示,并允許遞歸使用。
    hipo圖:hipo圖是由一組ipo圖加一張hc圖組成。它是美國ibm公司在軟件設計中使用的主要表達工具。
    hc圖既是層次圖,用于表示軟件的分層結構。hc圖中的每一個模塊,均可用一張ipo圖來描述。ipo圖由輸入、處理和輸出三個框組成,需要時還可以增加一個數(shù)據(jù)文件框,這種圖形的優(yōu)點,是能夠直觀地顯示輸入—處理—輸出三者之間的聯(lián)系。
    還有測試方法:按照測試過程是否在實際應用環(huán)境中來分,有靜態(tài)分析與動態(tài)測試。測試方法有分析方法(包括靜態(tài)分析法與白盒法)與非分析方法(稱黑盒法)。
    靜態(tài)分析技術:不執(zhí)行被測軟件,可對需求分析說明書、軟件設計說明書、源程序做結構檢查、流程分析、符號執(zhí)行來找出軟件錯誤。
    動態(tài)測試技術:當把程序作為一個函數(shù),輸入的全體稱為函數(shù)的定義域,輸出的全體稱為函數(shù)的值域,函數(shù)則描述了輸入的定義域與輸出值域的關系。
    還學習了其他很多工具、語言、方法等,雖然不是都學得很透徹,但我相信在今后的學習中一定會慢慢的完善的。
    軟件工程對于初學者來說,知識基礎較薄弱,對一些應用操作、概念、工具方法等理解起來較為困難,要能從整體概念上較好地理解和把握、學好軟件工程,不是僅僅把幾本專業(yè)書籍細致地看幾遍,然后上機練習幾次就可以成功,學習過程中要注意多看多練要注意結合實際,更要多思考,面對錯誤不要一范就問,要嘗試自己去解決。但是還要注意什么都學,肯定是什么都學不透的,要集中精力打攻堅戰(zhàn),學習軟件工程首先要明白自己的學習目標究竟是什么,根據(jù)自己的實際工作出發(fā),有針對性的在相應的學習方向上進行提高,制定出詳細的學習規(guī)劃。還要注意與其他科目的相輔相成,就像我們在學習面向對象分析的時候要結合大一學習的面向對象及其方法學這一專業(yè)科目進行研究拓展;在學習語言時,要看看與c語言的聯(lián)系,多思多想,把從各個科目學到的知識通匯貫通。
    在軟件工程的學習中,我了解到了軟件并非是一些代碼這么簡單,在開發(fā)軟件的過程中,編寫代碼的工作量其實只占不到所有工程量的30%,而后期的管理和維護更是占了60%到80%之多。一個完整的項目規(guī)劃須包括,軟件的定義,可行性分析報告,項目開發(fā)計劃,軟件需求說明書,概要設計說明書,詳細設計說明書,用戶操作手冊,測試計劃,測試分析報告,開發(fā)進度報告,項目開發(fā)總結報告,軟件維護手冊,軟件問題報告,軟件修改報告,等多個文檔,每個文檔都要上級驗收審查,而文檔數(shù)量眾多,要做好這點真的不是很容易,而恰恰寫好文檔正能保證完成軟件工程其中一個目的的關鍵,既研究如何用最小的開銷做出生存期較長的軟件,再加上各個階段都要進行周密的策劃、詳細的分工部署和人員安排,且各階段要據(jù)具體情況不斷的反復才能達成,所以代碼只是開發(fā)軟件這個浩大的工程的一個小小的過程。
    而編碼的學習中,我更了解到形成自己獨特的規(guī)范的編碼風格是非常重要的事。因為這影響到了軟件后期繁重的維護,大家都要閱讀你的程序,如果你寫的程序毫無規(guī)范可言,那么別人怎么能讀懂你的程序?讀不懂程序,維護又從何談起呢?所以,我們在今后的學習中,一定要注意這方面的培養(yǎng),在寫程序的過程中,要逐步的在規(guī)范的基礎上形成屬于自己的風格,即方便自己的修改,也方便日后他人的閱讀。
    在學習中,我們還要注意比較三種方法的優(yōu)缺點,例如:傳統(tǒng)方法雖然使軟件擺脫了混亂和無序,但其在適應需求變化的方面不夠靈活,而且傳統(tǒng)方法要么面向行為,要么面向數(shù)據(jù),缺乏兩者的有機結合。而面向對象方法的程序設計和問題求解更符合人們日常自然的思維習慣,適合大型、復雜及交互性比較強的系統(tǒng)。形式化方法則是一中基于形式化數(shù)學變換的軟件開發(fā)方法,它可將系統(tǒng)的規(guī)格說明轉換為可執(zhí)行的程序。
    在今后的學習中要注意多讀書、多思考、多練習、多討論,不斷熟悉書本的基礎,并以此為基礎將其擴散開來,應用于今后的實踐。不斷鍛煉自己,向一名合格的程序設計師邁進。
    軟件工程心得體會篇六
    隨著科技的不斷發(fā)展,信息化已經(jīng)成為了現(xiàn)代社會中不可或缺的一部分。而軟件工程作為信息化的核心技術之一,對于現(xiàn)代社會的發(fā)展和進步起到了至關重要的作用。在軟件工程的開發(fā)過程中,需求是其基礎和核心,合理、準確的需求分析和需求管理對于軟件項目的成功與否至關重要。以下是我在軟件工程需求方面的一些心得體會。
    首先,需求的準確性是軟件項目成功的關鍵。在軟件工程開發(fā)過程中,需求的準確性對于軟件項目的整體規(guī)劃和功能設計起著決定性的作用。在需求分析階段,我們需要盡可能了解客戶的需求,并將其準確地轉化為功能要求和開發(fā)目標。在此過程中,我們應該盡可能與客戶多進行交流,采用各種溝通方式,以確保需求的準確性。此外,我們還應該運用各種技術手段和工具,例如原型設計、用例分析等,提高需求的準確性和可靠性。
    其次,需求的變更是常態(tài)。在軟件工程的開發(fā)過程中,需求經(jīng)常會因各種原因而發(fā)生變化。這是不可避免的,在軟件項目中,客戶需求經(jīng)常在項目的不同階段發(fā)生調整和變更。所以,我們應該保持靈活性和適應性,以應對這種變化。在需求管理方面,我們可以采用迭代開發(fā)的方式,將需求分成多個階段,每個階段都允許變更。另外,我們還可以采用變更控制和配置管理手段,確保變更的追蹤和管理,以避免變更對項目進度和質量的不利影響。
    再次,團隊的合作是實現(xiàn)需求成功的關鍵。軟件工程的需求管理不是一個人的事情,而是一個團隊的協(xié)作過程。在項目的需求分析和需求管理過程中,我們需要協(xié)作完成各種工作任務,例如需求的收集、需求的分析、需求的驗證等等。在此過程中,每個團隊成員都需要發(fā)揮自己的專業(yè)知識和經(jīng)驗,充分傾聽他人的意見和建議,共同協(xié)商確定需求方案,以達到最佳效果。此外,團隊的溝通和協(xié)調也是十分重要的,團隊成員之間要積極互相配合,及時解決問題和分配任務,以確保需求的順利實施和項目的成功完成。
    最后,在軟件工程的需求管理中,用戶參與是至關重要的。雖然我們在需求分析階段盡可能詳盡地了解用戶的需求,但真正的用戶體驗和滿意感需要用戶參與來驗證和確認。用戶的參與可以通過各種途徑實現(xiàn),例如用戶需求調研、用戶反饋收集、用戶測試、用戶培訓等等。通過用戶的參與,我們可以更加準確地了解用戶的需求和期望,及時修正和調整需求方案,從而將軟件工程的開發(fā)結果更好地貼近用戶的需求和期望,提高軟件的質量和可用性。
    總之,軟件工程的需求管理是保證軟件項目成功的關鍵一環(huán)。在軟件工程的需求管理過程中,我們需要關注需求的準確性、變更管理、團隊的合作以及用戶的參與。只有通過科學的方法和良好的管理,才能最大限度地滿足用戶的需求,推動軟件工程的快速發(fā)展和進步。
    軟件工程心得體會篇七
    軟件工程心得體會未接觸軟件工程之前一直都很想學這門課程,因為覺得這門課很牛,是那些有工程師稱號的高手才擺弄的東西。學了一個學期的軟件工程課,終于知道了個軟件工程的大概。學的時候總覺得很抽象,理解起來好像不難,但總是摸不著頭腦一種很茫然的感覺。曾經(jīng)以為程序就是軟件,軟件就是程序。學習這門課程第一個收獲是,知道了二者的不同之處。以前做過的一些小型的軟件比如加密軟件,我也只是在程序旁邊附上一個軟件的說明,看來已經(jīng)很接近作坊了。不過大的項目沒有接觸過,用軟件工程的方法還是第一次。我想也是程序的不斷復雜化導致了軟件危機的發(fā)生,使得人們不得不探索新的解決方法。
    經(jīng)過倪老師的講解,理解了軟件工程,就是一套用于軟件的團隊開發(fā),以提高軟件質量和程序員工作效率為目的的規(guī)范。其核心就是,對于軟件開發(fā)的5個重要組成部分:需求分析,設計,編碼,調試,維護,如何組織這5個部分的工作,以及如何完成每一個工作。吾生也有涯,而知也無涯,學習永無止境。起初,對軟件工程處于一知半解的狀態(tài),分工比較混亂。
    在劃分模塊后明確了各自分工,漸漸形成良性循環(huán)。在學習過程中,知道了團隊合作十分重要,爭議固然存在,但通過討論、協(xié)商,群策群力,在不斷磨合中能夠達成一致與默契。團隊成員中能力各有高下,互相尊重,各取所長,不宜妄自菲薄。組長多加協(xié)調,組員積極配合,才能合作愉快。學習能力體現(xiàn)在能盡快接受新的知識,順應變化,學為所用。
    上《軟件工程導論》這門課,我的收獲大概如下:我們?yōu)槭裁葱枰浖こ棠??上面已?jīng)給出了一些原因。專業(yè)點講,軟件工程最終是為了實現(xiàn)“軟件制造業(yè)”的社會化,工業(yè)化大生產,提高其勞動生產效率。只有如此,軟件業(yè)才能實現(xiàn)社會化,工業(yè)化大生產,才能“做大做強”。沒有管理的設計是失敗和混亂的設計,沒有設計指導的編程是無序的忙碌的。根據(jù)開發(fā)的軟件的規(guī)模,應該適當程度的運用軟件工程化的思想,需要靈活,畢竟我們開發(fā)的軟件大多數(shù)是中小型的,大型的并不多見(我是這么認為的)。但只要涉及人員間的交流和溝通,或多或少都要需要軟件工程才能更有效率,工作成果更穩(wěn)定。
    其實開發(fā)軟件,就像是解決一個邏輯問題。想想自己平時是怎樣寫程序的。首先是要有一個想法,即我寫的這個程序是要干什么的;然后就是對要實現(xiàn)的核心功能大概構思一種或多種實現(xiàn)方法,并從中選出一種自認為是較好的;接下來就是將涉及的各種主要或次要功能分成各個模塊;最后就是分模塊來編碼和debug。在我看來,除了第一步外,其余的步驟應該是一個循環(huán)的過程。在編碼的'過程中,你總是需要不斷地回過頭來修改原先的模塊設計,甚至最初選定的實現(xiàn)算法。具體到每一步的工作要怎樣完成,是非常靈活的,只要把握住大體的方向就行。在進行分析,設計,編碼,調試,維護這幾部分的工作的時候,最核心的就是文檔的編寫。
    1、可行性分析就是關于當前項目能不能干的分析結果。
    2、項目描述這是在決定立項以后,對當前項目的一份扼要說明。
    3、需求分析就是對客戶要求的功能的定義。
    4、軟件設計這就是對程序的每一個模塊的詳細設計的說明文檔。
    5、開發(fā)日志我一直都認為這是文檔中最有趣的部分。開發(fā)日志相當于編碼階段的文檔,它的形式可以很隨意,主要是記錄一些在寫程序時突然萌發(fā)的靈感,或對代碼的一些微小的修改,或對程序結構的一些微小變動等,還要對上述這些修改變動作些說明。
    6、測試分析用于指出程序存在或潛在的缺陷和錯誤,以及程序性能的數(shù)字描述。
    軟件工程心得體會篇八
    學習軟件工程一個學期以來,我在陳燁老師的教導下確實獲益匪淺。軟件工程這門課,讓我對軟件的認識有了大大的提升,從一開始對軟件工程的一無所知,到現(xiàn)在一學期下來的不斷學習,懂得了許多的知識。
    軟件不僅僅是程序,而是思想在硬件上的載體和體現(xiàn),軟件工程與其說是一門課程,不如說是一門思想。讓我懂得如何去分析和處理問題的過程,綜合解決問題。
    在這段時間的學習中,我明白了一個完整的項目規(guī)劃須包括,軟件的定義,可行性分析報告,項目開發(fā)計劃,軟件需求說明書,概要設計說明書,詳細設計說明書,用戶操作手冊,測試計劃,測試分析報告等多個文檔,而軟件的生存周期可分為八個階段,分別是問題定義,可行性研究,需求分析,概要設計,詳細設計,程序設計,測試,文檔,技術支持,售后服務。而可行性包括經(jīng)濟,技術,法律和社會。了解了許多軟件開發(fā)模型,比如瀑布模型,增量模型和螺旋模型,也了解了uml對象面向對象建模,知道如何畫流圖,碩果累累。其實軟件和程序是兩個不同的概念,軟件除了程序還要有使用和維護該程序所需要的全部文檔。包括需求文檔、設計文檔、測試文檔、維護文檔以及使用手冊。
    軟件工程對于初學者來說,知識基礎較薄弱,對一些應用操作、概念、工具方法等理解起來較為困難,需要很好的基礎知識的理解和掌握,所以說學好軟件工程不是僅僅書多看幾遍就可以成功,而是要多注意結合實際,多思考,面對錯誤不要一范就問,要嘗試自己去解決,然后舉一反三。
    軟件工程這門課在我們畢業(yè)之后,是我們實際要運用的一項非常有用的技能,這門課讓我意識到理論學習很重要,而實踐更重要,實踐是檢驗真理的唯一標準,只有實踐和理論相結合,才能使效益最大化。軟件工程的課雖然快要結束了,但是我對軟件工程的學習才剛剛開始,有了這些基本知識做鋪墊,在以后做項目的時候將會是解決問題的有效措施。
    軟件工程心得體會篇九
    隨著信息技術的快速發(fā)展,軟件工程在各個行業(yè)中起到了不可忽視的作用。作為軟件工程師,理解和滿足用戶需求是我們工作的核心。在長期的軟件工程需求分析實踐中,我深深感受到了需求分析的重要性和挑戰(zhàn)。下面,我將從需求分析的重要性、需求分析的方法和技巧、需求變更的管理、和用戶需求的理解四個方面來談一下我對軟件工程需求的心得體會。
    首先,需求分析的重要性不可忽視。軟件開發(fā)的成功與否往往取決于是否準確理解并滿足用戶的實際需求。需求分析過程中,我們要深入了解用戶的業(yè)務流程、工作環(huán)境和使用習慣,從而充分理解用戶需求。只有在需求分析過程中對用戶需求進行準確描述和分析,才能避免開發(fā)過程中的返工和需求的不匹配,從而提高軟件開發(fā)的效率和質量。
    其次,需求分析的方法和技巧十分重要。在需求分析過程中,我們可以運用需求采集、需求建模、需求驗證等方法和技巧,以確保我們完整、準確地捕獲用戶需求。需求采集通過面對面的用戶訪談、問卷調查、需求工作坊等方式,可以深入了解用戶需求。需求建模通過使用UML(統(tǒng)一建模語言)或其他建模工具,能夠對用戶需求進行形式化的描述和分析。需求驗證通過原型開發(fā)、功能測試等方式,可以驗證需求的正確性和完整性。通過合理運用這些方法和技巧,我們可以更好地進行需求分析,為軟件開發(fā)提供準確的需求基礎。
    此外,需求變更的管理是軟件工程需求分析的一項重要任務。在軟件開發(fā)的過程中,用戶的需求是可能發(fā)生變化的。因此,我們需要及時處理和管理需求變更。在需求變更管理中,我們要與用戶進行充分的溝通,了解變更的原因和影響,并對變更進行評估和管理。合理處理需求變更可以減少不必要的返工和開發(fā)延期,同時也能保持軟件的持續(xù)演化能力。
    最后,理解用戶需求是軟件工程需求分析的核心。在軟件開發(fā)中,我們要關注用戶的真實需求,而不僅僅是用戶的表面需求。有時用戶可能難以準確表達自己的需求,我們需要通過深入的觀察和溝通,去理解用戶背后的真正需求。只有準確理解用戶需求,我們才能開發(fā)出滿足用戶期望的軟件產品。
    總之,軟件工程需求分析是軟件開發(fā)中不可或缺的環(huán)節(jié)。在需求分析過程中,我意識到需求分析的重要性,學習并應用了各種需求分析的方法和技巧,掌握了需求變更的管理方法,并培養(yǎng)了對用戶需求的敏感性。通過不斷地實踐和總結,我相信自己將能夠在軟件工程領域取得更大的成就。