- 相關推薦
總結是在某一特定時間段對學習和工作生活或其完成情況,包括取得的成績、存在的問題及得到的經驗和教訓加以回顧和分析的書面材料,它可以給我們下一階段的學習和工作生活做指導,讓我們好好寫一份總結吧。那么你真的懂得怎么寫總結嗎?以下是小編整理的軟件工程學習總結,僅供參考,大家一起來看看吧。
軟件工程學習總結1
這學期學習了軟件工程實踐這門課,我覺得這是對上學期的軟件工程課程學習的檢驗,上學期學習軟件工程只是我們淺顯的認識,相比之下,這學期就更加全面的說明了開發一個項目所需要的步驟以及開發項目過程中所需要注意的諸多細節。如果說上學期的課程注重理論基礎的話,那么這學期的軟工實踐,顧名思義,就是側重我們動手操作的能力。
原來我認為開發一個項目最重要的就是寫代碼,似乎整個軟件都是編代碼,因為自己動手能力不強所以就很排斥做項目。可是經過我們學習軟工課程到團隊做項目再到學習軟件工程實踐課程之后,我才真正意識到實施一個軟件工程項目并不是說簡單的會編碼就能夠解決問題的,因為一個軟件的生命周期分為三個時期:軟件定義時期、開發時期、維護時期,而這三個時期整體又分為七個階段,他們分別是:問題定義、可行性研究、需求分析、總體設計、詳細設計、編碼和單元測試、綜合測試,由此可看出,當我們開發一個項目時,更多的精力不是放在編碼上,編碼只是一個很小的模塊,而是項目的整體結構上。
在寫軟工實踐體會之前,我想在這里總結一下上學期三人團隊做項目的相關事宜。上學期我們三人團隊根據軟件開發的步驟開發一個名為“西大老鄉‘薈’”的社交系統,主要是為西大學子提供一個找老鄉的平臺。雖然只進行到詳細設計階段,沒有進一步實現,但是我還是從中學到很多東西的。首先要先確定項目主題,也就是這個項目用來做什么,可以解決什么問題。接著就是這個項目是否有研究的必要以及是否有解決的辦法,針對我們的項目,我們對西大的一些學生做了問卷調查,并從調查中繼續完善系統本身的做用戶。第三步根據我們確定的項目主題進行需求分析,這一步驟當時做的不是很好,比如所畫E—R圖、數據流圖等都有考慮不周的問題,導致接下來的概要設計、詳細設計進行的很困難,有些步驟甚至還需要返工。
從我們在需求分析中出現的問題,使我們明白了軟件定義階段對于一個項目的開發是至關重要的,當軟件定義階段完成時必須要用正式的文檔準確的地記錄目標系統的需求。只有前期的準備工作做得好,后面的工作才能順利進行。雖然項目最后沒有完全實現,但是起碼我們已經初步體會到軟件項目開發的步驟,以及每一步所需要完成的文檔等內容。
這學期的軟件工程實踐雖然不是親自動手開發一個系統,但是張元平老師以“物聯網物流倉儲管理系統”為主給我們講解了一個真實系統的開發過程,從計劃到項目系統的發布實施,以及每一步必須生成的文檔。我主要從以下五個方面談一下我的心得體會。
第一、行業背景說明方面
對于一個軟件系統的開發,第一步就是問題定義,了解所開發系統的行業背景,制定計劃。當我們計劃確定以后就要對項目系統本身進行可行性研究,主要從技術可行性、經濟可行性和操作可行性三個方面著手。就比如《物聯網物流倉庫管理系統》的行業背景說明文檔中非常詳細地分析了當下物聯網物流行業的整體業務說明、應用背景、未來發展趨勢以及相關應用案例等四個方面,項目團隊中系統分析員就可以根據這份文檔以及相關的調查資料對將要開發系統的進行定義等工作。
原來我們寫這類文檔的時候就是草草了事,不會做得這么詳細,而這次看到大型項目的行業背景說明也是這么詳細,也讓自己認識到不管是軟件開發的那個階段都要認真對待,這些瑣碎的文檔都是后期開發項目的支撐,只要它們做的透徹,后面的開發工作才能更順利的進行。
第二、項目需求說明方面
這部分項目需求說明就是軟件定義時期中需求分析階段,而該階段的主要目的就是了解用戶的需要,根據用戶的需要確定系統必須完成那些工作,并對目標系統提出完整、準確、清晰、具體的要求。在需求分析結束之前系統分析人員要寫出一份需求規格說明,即為《物聯網物流倉儲管理系統》項目需求說明文檔。我們可以看出該文檔也是非常詳細,相比之下我們之前做項目時寫的需求規格說明書就非常不合格,不僅格式不正確內容也是少之又少。
在這方面,這篇文檔給我啟發很大。首先就是文檔的格式,要美觀整齊,讓人看著舒服方便。其次就是文檔的內容,原來它不是很重要,寫文檔的時候也不知道怎么寫就借鑒下網上的內容,結果根本就沒有把自己項目的需求寫明白,以至于自己最后都有些糊涂,所以根據以前的經驗教訓我會對這部分更加重視。
第三、系統概要設計方面
這部分內容分說的是軟件設計時期的概要設計階段,該階段的主要目的就是實現系統的功能、設計軟件的結構、模塊組成以及模塊之間的關系。在概要設計階段,我們可以站在全局的高度上,花較少的成本,從抽象的層次上分析對比多種可能的系統實現方案和軟件結構,從中選出最佳方案和最合理的結構。在這個階段還會具體畫出E—R圖、數據流圖等方面的設計。
比如《物聯網物流倉庫管理系統》的系統概要設計從項目概述、設計約束、功能單元與功能模塊設計、數據E—R圖設計、總體設計、界面設計等六個方面介紹,通過讀這個文檔,我覺得最重要的還是總體設計,分別從邏輯架構設計、物理架構設計、技術架構設計設計系統。在這個階段中模塊要做到高內聚低耦合,這樣開發出來的系統才會具有更高的獨立性。
在原來做項目時沒有編寫過這類文檔,在該階段只是畫了結構圖、層次圖以及相關的模塊劃分,對該類文檔尚未重視。通過張老師的講解和自己的學習,我相信在以后做項目的時候一定會注意到這類文檔的.編寫。
第四、詳細設計與分析方面
詳細設計階段就是把概要設計階段的每個模塊進一步設計,確定每個模塊所需要的算法和數據結構。在這個階段還是需要我們設計出程序的詳細規格說明,而不是編寫程序。在詳細設計階段,系統設計人員可以通過使用程序流程圖、盒圖、PAD圖等過程設計的工具和Jackson圖等面向數據結構的設計工具進一步設計系統相關接口,主要包括界面設計接口、業務單設計接口、單元模塊設計接口等,這些對于以后的編碼工作都是極其重要的。
第五、編碼和測試方案方面
關于編碼,我認為編碼要想做的完美必備條件就是前面的軟件定義和軟件設計時期要按部就班的做,文檔一定要按要求書寫,不能偷懶也不能草草書寫。對于編碼也要有相應的文檔書寫規范,要使源程序代碼的邏輯簡明清晰、易讀易懂。這樣盡管我們不是設計系統的人員,當看到源程序代碼的時候也能容易讀懂代碼的意思。
其次就是測試的內容,從測試的文檔中我們可以得出,其實測試在軟件開發中同樣占據了重要的地位,它主要就是盡可能多的找到問題并排除其中的潛藏的錯誤,最終把一個高質量的軟件系統交給用戶使用。它要求測試人員也要有很高的技術水平。
軟件工程學習總結2
一、 軟件生命周期各階段任務目的和主要方法
在分階段總結之前,首先要明確以下三個問題:
1、什么是軟件生存周期?
軟件生存周期是指從軟件定義、開發、使用、維護到淘汰的全過程。 主要包括:
(1)問題定義;
(2)可行性研究;
(3)需求分析;
(4)概要設計;
(5)詳細設計;
(6)編碼;
(7)測試;
(8)軟件維護 。
2、軟件生存周期為什么劃分成階段?
(1) 任何一個階段的具體任務不僅獨立,而且簡單,便于不同人員分工協作,從而降低整個軟件開發工作的困難程度。
(2) 可以降低每個階段任務的復雜程度,簡化不同階段的聯系,有利于工程的組織管理,也便于采用良好的技術方法。
(3) 使軟件開發的全過程以一種有條不紊的方式進行,保證軟件的質量,特別是提高了軟件的可維護性。
3、應該怎樣來劃分階段?
(1)每一個階段的任務盡可能獨立;
(2)同一階段內的任務性質盡可能相同;
(3)每一個階段任務的開始和結束有嚴格的標準。
下面分別對各階段進行討論:
1、問題定義
目的是將用戶提出的要求具體化、定量化,任務是確定研制系統的范圍,明確研制的邊界。
方法步驟:
(1)通過調查研究,了解系統要求;
(2)需求方與開發方討論確定系統的功能、性能、可靠性、安全保密性等方面的要求,以及費用、進度等方面的要求。
2、可行性研究
可行性研究說明該軟件開發項目的實現在技術上、經濟上和社會條件上的可行性,評述為合理地達到開發目的可能選擇的各種方案,目標是用最小的代價在盡可能短的時間內確定問題是否能夠解決。
可行性研究的方法是首先需要進一步分析和澄清問題定義;然后分析員導出系統的邏輯模型;最后對未來的行動方針提出建議。
在導出邏輯模型的過程中,具體要根據以下四個方面分析可行性:
(1)經濟可行性:進行成本效益分析,評估項目的開發成本,估算開發成本是否會超過項目預期的全部利潤.分析系統開發對其它產品或利潤的影響。
(2)技術可行性:根據客戶提出的系統功能,性能及實現系統的各項約束條件,從技術的角度研究實現系統的可行性。
(3)法律可行性:研究在系統開發過程中可能涉及的各種合同,侵權,責任以及各種于法律相抵觸的問題。
(4)開發方案的選擇性:提出并評價實現系統的各種看法方案.從中選出一種用于軟件項目開發。
3、需求分析
需求分析是為了有效解決用戶的需要而進行的一項工程活動,要考慮的問題是功能需求、數據需求、性能需求和接口需求,開發者承擔分析任務,核心是用戶。
軟件項目的失敗大半源于需求分析沒有做好,軟件開發人員首先應該明確用戶的意圖和要求,正確獲取用戶的需求,然后形成一個軟件需求規格說明,它是軟件開發的重要基礎。
需求分析的方法:
(1)需求獲取:獲取客戶需求,客戶泛指某個人或機構部門等,一般方法是調查,包括訪談座談、問卷、跟班和收集資料,需求規約可表達用戶的軟件價值。
(2)需求分析與規格說明:建立需求模型,它是用戶需求的圖解,一些常用的模型有:業務樹圖、用例圖、活動圖。分別用于結構化需求建模、系統業務舉例和反映系統工作流程。
(3)需求驗證:要驗證的主要內容有:有效性驗證、一致性驗證、完整性驗證、現實性驗證和可檢驗性驗證。
需求建模的方法:
(1)關聯模型
(2)面向對象模型
(3)原型方法
4、系統設計
此階段主要根據需求分析的結果,對整個軟件系統進行設計,如系統框架設計,數據庫設計等,一般分為概要設計和詳細設計,好的軟件設計將為軟件程序編寫打下良好的基礎。
概要設計是對需求規格說明書中提供的軟件系統邏輯模型進行進一步的分解,從而建立軟件系統的總體結構和各個子系統間及各個模塊間的關系,定義各子系統接口界面和各模塊的功能描述,并根據設計結果產生概
要設計文檔。 概要設計在早期有模塊化方法、功能分解方法;在
60年代后期提出了面向數據流和面向數據結構的設計方法;近年來又提出面向對象的設計方法等。
詳細設計過程根據概要設計形成的結果對各個模塊的內部實現進行規劃設計,并根據設計結果產生詳細設計文檔。 詳細設計主要方法是通過采用結構化和面向對象的方法從視圖、控制、模型三層模型上細化概要設計的各個模塊,并完成偽代碼為編碼階段做準備。
5、編碼和測試
編碼是將軟件設計的結果轉換成計算機可執行的'程序代碼。 主要方法是依據詳細設計文檔實現設計中的算法、功能、接口、數據結構,采用結構化和面向對象化的方法編寫代碼。
編碼過程中要制定統一,符合標準的編寫規范,以保證程序的可讀性,易維護性,提高程序的運行效率。
軟件設計完成后要經過嚴密的測試,以發現軟件在整個設計過程中存在的問題并加以糾正。整個測試過程分單元測試、組裝測試以及系統測試三個階段進行。
測試的方法主要有白盒測試和黑盒測試兩種。在測試過程中需要建立詳細的測試計劃并嚴格按照測試計劃進行測試,以減少測試的隨
意性。
6、軟件維護
軟件維護是軟件生命周期中持續時間最長的階段。在軟件開發完成并投入使用后,由于多方面的原因,軟件不能繼續適應用戶的要求。要延續軟件的使用壽命,就必須對軟件進行維護。
軟件的維護包括糾錯性維護和改進性維護兩個方面。
二、 課程主要收獲
《軟件工程》課程強調概念和知識的理解和掌握,側重軟件項目的分析、設計、實現和維護的基本技能。比較注意“點”和“面”的結合,是一門理論性和實踐性都較強的學科。作為一名已經在IT領域工作十年之后又重返校園的大齡學生,雖然已經不是第一次學習這門課程了,去年也剛在單位取得了信息系統項目管理高級工程師資格,從另一個側面對軟件開發過程有了更深層次的理解。不過溫故而知新,這次仍然選修這門課,我還是得到了一些新的啟示。最大的收獲就是在我看來,軟件工程與其說是一門課程,不如說是一門思想,是一個如何去分析和處理問題的過程,應該說其范疇已經遠遠不止局限于該門課程,它已經成為了一個綜合的能夠解決問題的思想集合。
此外,通過對軟件開發過程的重學習,并結合之前在軟件開發管理工作中的經驗,我對自己在軟件開發主要階段管理工作中的不足有了更進一步的認識,總結了相應的管理要點,具體闡述如下:
1、 概要設計
主要任務:系統應該怎樣做,或概括地說,系統應該如何實現 。 本階段特點:將用戶的具體要求轉為抽象的計算機軟件設計 。 管理要點:
通過分析對比,從多種可能的實現方案和軟件結構中選出最佳方案及最合理的,即:
1 設想供選擇的方案→推薦最佳方案→選取合理的方案
2 功能分解→ 軟件設計結構 → 數據庫設計
3 確定測試要求并確定測試計劃
作為項目管理者必須從概要設計開始就應該從全局角度開始把握整個系統的進展,并必須從此階段開始,時刻從全局觀的問題來發現問題,解決問題。
2、詳細設計
主要任務:系統應該怎樣具體地做,或概括地說,系統應該如何具體地去實現所有的要求 。
本階段特點:將抽象的計算機軟件設計轉為形象的,具體的,面向用戶的計算機界面設計 。
管理要點:
本階段尚未涉及具體編寫程序,而是要設計出程序的“藍圖”,所以詳細設計的結果基本上決定了最終的程序代碼的質量。
1 邏輯是否正確
2 性能是否滿足要求
3 是否容易閱讀和理解
軟件工程學習總結3
這次軟件工程實訓是從20xx。12。26號開始的,截至20xx。12。31號。實訓內容是用java相關知識(主要是jsp)做一個物流配送系統。下面談談對這次實訓的看法。
因為自己平時對java知識儲備不足,特別是jsp這一塊基本不了解怎么回事,所以一拿到這個項目,我心里都是沒有底的,再加上我被分到的那個組,我知道就意味著是我一個人在戰斗了。呵呵,26號,實訓開始了,我們的老師是來自中軟國際公司的程序員,一個是周褀,一個是朱映,都是一身樸素的著裝,讓我感覺做軟件的也沒什么兩樣。老師介紹了自己之后,就直接切入正題了,分析了下我們各個組的系統,即將用到的知識,然后就總體把覺得需要補充的知識(jsp和數據庫連接等這幾塊)給我們實際操作了下,因為當時看到用jsp,還講的那么認真,當時我就后悔了,平時要是多聽點,現在老師這么認真的給我們講,這是一個多么難得的機會啊。后悔也沒用啊,開始還勉強能理解一點,后來就直接暈了。然后再給大家介紹了一些即將用到的工具,比如rationalRose,SVN,MyEclipse等等。接下來的幾天就不再細講了。下面談談通過這次實訓的心得體會吧。
通過這次實訓,讓我了解到工程開發的過程,可行性分析——>需求分析——>概要設計——>詳細設計——>代碼編寫——>測試——>驗收。從技術方面上,我開始jsp基礎基本上就是零的,在老師和syz2(另外一個物流小組,我一個人基本上是跟她們做的,或者說是看著她們做的)的幫助下,對jsp有了一個大概的認識。其實實訓開始前,我還以為做個系統沒什么大不了,可是當真正拿到一個項目,我卻真的無從下手了,而且就是在知道需求分析和詳細設計,在代碼編寫時,一樣寸步難行。通過這個實訓,也讓我了解到,團隊協作是多么的重要。一個人的精力是多么的有限。進一步理解到,企業為什么如此重視團隊協作。同時借用老師的話就是團隊協作固然重要,但是是建立在個人素質的基礎上,假設你個人素質不行,將會影響到整個團隊,就別提對團隊作更多貢獻了。**老師說這幾句話的時候,朝向了我,估計是有特殊意義的吧,所以,我將謹記老師的教導。
還有一個收獲是從一個同學(小胖)那里得到的,他的那組成員跟我的'這組大體一樣,我倒是覺得沒什么了,不過他倒是很重視這個問題吧。然后他說出來,我也覺得這個問題確實其實是個大的問題。就是不管你會不會這門技術,會不會做這個東西,態度要正確才好,就算你不會做,你也應該認真的對待,將來出身到社會,就不是說像你現在,不會做就不做,跑去玩游戲了。小胖說出了這段話,也在我身上有了一個印證,雖然我jsp技術知識為0,但我也還是在認真的跟著他們一起做,不會做,就多問,畢竟現在我們是學生,可以毫不顧忌的詢問各種問題,老師也會盡力為你回答。將來出身社會就不一樣了。雖然,我就算個打醬油的水平,但是這個醬油也要打得有涵量啊。不管怎么樣,我能對自己有個交待,雖然我不會,但是這次實訓我確實是認真對待了,六天的實訓,除了晚上加班外,還花了2個通宵來完成不同階段的任務,完成與否也不重要了,我至少我做了,這點,是這次我應該對自己的一個肯定。
這次實訓的心得基本上就是這些了,最后特別感謝中軟國際帶我們的那兩個老師(周褀,朱映),這兩個老師對待我們很平易近人,對我們提出的問題,總是不光解決了,還進行了擴展,晚上也跟我們一起加班加到很晚,印象尤其深刻就是朱映老師為了給小胖解決一個問題,臉都變紅了,還在繼續努力,這點我并不會覺得老師知識儲備不夠,我想應該是這個問題的突發吧,一時沒想到怎么處理。相反讓我感覺更多的就是老師很認真,很負責。還要感謝就是syz2小組的傾力支持,輔導。
【軟件工程學習總結】相關文章:
軟件工程工作總結03-12
軟件工程工作總結05-24
軟件工程師工作總結06-14
軟件工程師工作總結11-24
軟件工程師工作總結范文08-22
有關軟件工程師工作總結05-05
軟件工程的實習報告04-03
軟件工程實習報告05-09
軟件工程實踐報告07-19