軟件工程學(xué)習(xí)總結(jié)和體會(huì)
西安交通大學(xué)20xx級研究生課程專題作業(yè)
軟 件 工 程 心 得
專 業(yè):
班 級:
學(xué) 號:
姓 名:
電 話:
二xxx年十月
體 會(huì)
一、 軟件生命周期各階段任務(wù)目的和主要方法
在分階段總結(jié)之前,首先要明確以下三個(gè)問題:
1、什么是軟件生存周期?
軟件生存周期是指從軟件定義、開發(fā)、使用、維護(hù)到淘汰的全過程。 主要包括:
(1)問題定義;
。2)可行性研究;
。3)需求分析;
(4)概要設(shè)計(jì);
(5)詳細(xì)設(shè)計(jì);
(6)編碼;
(7)測試;
。8)軟件維護(hù) 。
2、軟件生存周期為什么劃分成階段?
(1) 任何一個(gè)階段的具體任務(wù)不僅獨(dú)立,而且簡單,便于不同人員分工協(xié)作,從而降低整個(gè)軟件開發(fā)工作的困難程度。
(2) 可以降低每個(gè)階段任務(wù)的復(fù)雜程度,簡化不同階段的聯(lián)系,有利于工程的組織管理,也便于采用良好的技術(shù)方法。
(3) 使軟件開發(fā)的全過程以一種有條不紊的方式進(jìn)行,保證軟件的質(zhì)量,特別是提高了軟件的可維護(hù)性。
3、應(yīng)該怎樣來劃分階段?
(1)每一個(gè)階段的任務(wù)盡可能獨(dú)立;
(2)同一階段內(nèi)的任務(wù)性質(zhì)盡可能相同;
(3)每一個(gè)階段任務(wù)的開始和結(jié)束有嚴(yán)格的標(biāo)準(zhǔn)。
下面分別對各階段進(jìn)行討論:
1、問題定義
目的是將用戶提出的要求具體化、定量化,任務(wù)是確定研制系統(tǒng)的范圍,明確研制的邊界。
方法步驟:
(1)通過調(diào)查研究,了解系統(tǒng)要求;
(2)需求方與開發(fā)方討論確定系統(tǒng)的功能、性能、可靠性、安全保密性等方面的要求,以及費(fèi)用、進(jìn)度等方面的要求。
2、可行性研究
可行性研究說明該軟件開發(fā)項(xiàng)目的實(shí)現(xiàn)在技術(shù)上、經(jīng)濟(jì)上和社會(huì)條件上的可行性,評述為合理地達(dá)到開發(fā)目的可能選擇的各種方案,目標(biāo)是用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決。
可行性研究的方法是首先需要進(jìn)一步分析和澄清問題定義;然后分析員導(dǎo)出系統(tǒng)的邏輯模型;最后對未來的行動(dòng)方針提出建議。
在導(dǎo)出邏輯模型的過程中,具體要根據(jù)以下四個(gè)方面分析可行性:
(1)經(jīng)濟(jì)可行性:進(jìn)行成本效益分析,評估項(xiàng)目的開發(fā)成本,估算開發(fā)成本是否會(huì)超過項(xiàng)目預(yù)期的全部利潤.分析系統(tǒng)開發(fā)對其它產(chǎn)品或利潤的影響。
(2)技術(shù)可行性:根據(jù)客戶提出的系統(tǒng)功能,性能及實(shí)現(xiàn)系統(tǒng)的各項(xiàng)約束條件,從技術(shù)的.角度研究實(shí)現(xiàn)系統(tǒng)的可行性。
(3)法律可行性:研究在系統(tǒng)開發(fā)過程中可能涉及的各種合同,侵權(quán),責(zé)任以及各種于法律相抵觸的問題。
(4)開發(fā)方案的選擇性:提出并評價(jià)實(shí)現(xiàn)系統(tǒng)的各種看法方案.從中選出一種用于軟件項(xiàng)目開發(fā)。
3、需求分析
需求分析是為了有效解決用戶的需要而進(jìn)行的一項(xiàng)工程活動(dòng),要考慮的問題是功能需求、數(shù)據(jù)需求、性能需求和接口需求,開發(fā)者承擔(dān)分析任務(wù),核心是用戶。
軟件項(xiàng)目的失敗大半源于需求分析沒有做好,軟件開發(fā)人員首先應(yīng)該明確用戶的意圖和要求,正確獲取用戶的需求,然后形成一個(gè)軟件需求規(guī)格說明,它是軟件開發(fā)的重要基礎(chǔ)。
需求分析的方法:
(1)需求獲。韩@取客戶需求,客戶泛指某個(gè)人或機(jī)構(gòu)部門等,一般方法是調(diào)查,包括訪談座談、問卷、跟班和收集資料,需求規(guī)約可表達(dá)用戶的軟件價(jià)值。
(2)需求分析與規(guī)格說明:建立需求模型,它是用戶需求的圖解,一些常用的模型有:業(yè)務(wù)樹圖、用例圖、活動(dòng)圖。分別用于結(jié)構(gòu)化需求建模、系統(tǒng)業(yè)務(wù)舉例和反映系統(tǒng)工作流程。
(3)需求驗(yàn)證:要驗(yàn)證的主要內(nèi)容有:有效性驗(yàn)證、一致性驗(yàn)證、完整性驗(yàn)證、現(xiàn)實(shí)性驗(yàn)證和可檢驗(yàn)性驗(yàn)證。
需求建模的方法:
(1)關(guān)聯(lián)模型
(2)面向?qū)ο竽P?/p>
(3)原型方法
4、系統(tǒng)設(shè)計(jì)
此階段主要根據(jù)需求分析的結(jié)果,對整個(gè)軟件系統(tǒng)進(jìn)行設(shè)計(jì),如系統(tǒng)框架設(shè)計(jì),數(shù)據(jù)庫設(shè)計(jì)等,一般分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),好的軟件設(shè)計(jì)將為軟件程序編寫打下良好的基礎(chǔ)。
概要設(shè)計(jì)是對需求規(guī)格說明書中提供的軟件系統(tǒng)邏輯模型進(jìn)行進(jìn)一步的分解,從而建立軟件系統(tǒng)的總體結(jié)構(gòu)和各個(gè)子系統(tǒng)間及各個(gè)模塊間的關(guān)系,定義各子系統(tǒng)接口界面和各模塊的功能描述,并根據(jù)設(shè)計(jì)結(jié)果產(chǎn)生概
要設(shè)計(jì)文檔。 概要設(shè)計(jì)在早期有模塊化方法、功能分解方法;在
60年代后期提出了面向數(shù)據(jù)流和面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法;近年來又提出面向?qū)ο蟮脑O(shè)計(jì)方法等。
詳細(xì)設(shè)計(jì)過程根據(jù)概要設(shè)計(jì)形成的結(jié)果對各個(gè)模塊的內(nèi)部實(shí)現(xiàn)進(jìn)行規(guī)劃設(shè)計(jì),并根據(jù)設(shè)計(jì)結(jié)果產(chǎn)生詳細(xì)設(shè)計(jì)文檔。 詳細(xì)設(shè)計(jì)主要方法是通過采用結(jié)構(gòu)化和面向?qū)ο蟮姆椒◤囊晥D、控制、模型三層模型上細(xì)化概要設(shè)計(jì)的各個(gè)模塊,并完成偽代碼為編碼階段做準(zhǔn)備。
5、編碼和測試
編碼是將軟件設(shè)計(jì)的結(jié)果轉(zhuǎn)換成計(jì)算機(jī)可執(zhí)行的程序代碼。 主要方法是依據(jù)詳細(xì)設(shè)計(jì)文檔實(shí)現(xiàn)設(shè)計(jì)中的算法、功能、接口、數(shù)據(jù)結(jié)構(gòu),采用結(jié)構(gòu)化和面向?qū)ο蠡姆椒ň帉懘a。
編碼過程中要制定統(tǒng)一,符合標(biāo)準(zhǔn)的編寫規(guī)范,以保證程序的可讀性,易維護(hù)性,提高程序的運(yùn)行效率。
軟件設(shè)計(jì)完成后要經(jīng)過嚴(yán)密的測試,以發(fā)現(xiàn)軟件在整個(gè)設(shè)計(jì)過程中存在的問題并加以糾正。整個(gè)測試過程分單元測試、組裝測試以及系統(tǒng)測試三個(gè)階段進(jìn)行。
測試的方法主要有白盒測試和黑盒測試兩種。在測試過程中需要建立詳細(xì)的測試計(jì)劃并嚴(yán)格按照測試計(jì)劃進(jìn)行測試,以減少測試的隨
意性。
6、軟件維護(hù)
軟件維護(hù)是軟件生命周期中持續(xù)時(shí)間最長的階段。在軟件開發(fā)完成并投入使用后,由于多方面的原因,軟件不能繼續(xù)適應(yīng)用戶的要求。要延續(xù)軟件的使用壽命,就必須對軟件進(jìn)行維護(hù)。
軟件的維護(hù)包括糾錯(cuò)性維護(hù)和改進(jìn)性維護(hù)兩個(gè)方面。
二、 課程主要收獲
《軟件工程》課程強(qiáng)調(diào)概念和知識的理解和掌握,側(cè)重軟件項(xiàng)目的分析、設(shè)計(jì)、實(shí)現(xiàn)和維護(hù)的基本技能。比較注意“點(diǎn)”和“面”的結(jié)合,是一門理論性和實(shí)踐性都較強(qiáng)的學(xué)科。作為一名已經(jīng)在IT領(lǐng)域工作十年之后又重返校園的大齡學(xué)生,雖然已經(jīng)不是第一次學(xué)習(xí)這門課程了,去年也剛在單位取得了信息系統(tǒng)項(xiàng)目管理高級工程師資格,從另一個(gè)側(cè)面對軟件開發(fā)過程有了更深層次的理解。不過溫故而知新,這次仍然選修這門課,我還是得到了一些新的啟示。最大的收獲就是在我看來,軟件工程與其說是一門課程,不如說是一門思想,是一個(gè)如何去分析和處理問題的過程,應(yīng)該說其范疇已經(jīng)遠(yuǎn)遠(yuǎn)不止局限于該門課程,它已經(jīng)成為了一個(gè)綜合的能夠解決問題的思想集合。
此外,通過對軟件開發(fā)過程的重學(xué)習(xí),并結(jié)合之前在軟件開發(fā)管理工作中的經(jīng)驗(yàn),我對自己在軟件開發(fā)主要階段管理工作中的不足有了更進(jìn)一步的認(rèn)識,總結(jié)了相應(yīng)的管理要點(diǎn),具體闡述如下:
1、 概要設(shè)計(jì)
主要任務(wù):系統(tǒng)應(yīng)該怎樣做,或概括地說,系統(tǒng)應(yīng)該如何實(shí)現(xiàn) 。 本階段特點(diǎn):將用戶的具體要求轉(zhuǎn)為抽象的計(jì)算機(jī)軟件設(shè)計(jì) 。 管理要點(diǎn):
通過分析對比,從多種可能的實(shí)現(xiàn)方案和軟件結(jié)構(gòu)中選出最佳方案及最合理的,即:
1 設(shè)想供選擇的方案→推薦最佳方案→選取合理的方案
2 功能分解→ 軟件設(shè)計(jì)結(jié)構(gòu) → 數(shù)據(jù)庫設(shè)計(jì)
3 確定測試要求并確定測試計(jì)劃
作為項(xiàng)目管理者必須從概要設(shè)計(jì)開始就應(yīng)該從全局角度開始把握整個(gè)系統(tǒng)的進(jìn)展,并必須從此階段開始,時(shí)刻從全局觀的問題來發(fā)現(xiàn)問題,解決問題。
2、詳細(xì)設(shè)計(jì)
主要任務(wù):系統(tǒng)應(yīng)該怎樣具體地做,或概括地說,系統(tǒng)應(yīng)該如何具體地去實(shí)現(xiàn)所有的要求 。
本階段特點(diǎn):將抽象的計(jì)算機(jī)軟件設(shè)計(jì)轉(zhuǎn)為形象的,具體的,面向用戶的計(jì)算機(jī)界面設(shè)計(jì) 。
管理要點(diǎn):
本階段尚未涉及具體編寫程序,而是要設(shè)計(jì)出程序的“藍(lán)圖”,所以詳細(xì)設(shè)計(jì)的結(jié)果基本上決定了最終的程序代碼的質(zhì)量。
1 邏輯是否正確
2 性能是否滿足要求
3 是否容易閱讀和理解
【軟件工程學(xué)習(xí)總結(jié)和體會(huì)】相關(guān)文章:
培訓(xùn)學(xué)習(xí)總結(jié)體會(huì)01-14
做四有教師學(xué)習(xí)總結(jié)體會(huì)01-04
高二的個(gè)人學(xué)習(xí)總結(jié)和高三的學(xué)習(xí)計(jì)劃01-04
教師外出學(xué)習(xí)總結(jié)-學(xué)習(xí)總結(jié)12-23
幼兒園教師主要學(xué)習(xí)和工作總結(jié)范文01-04
有關(guān)寫大學(xué)學(xué)習(xí)總結(jié)-學(xué)習(xí)總結(jié)12-21
外出參觀學(xué)習(xí)總結(jié)3篇-學(xué)習(xí)總結(jié)12-21