開發(fā)邏輯是獲取正確軟件的關(guān)鍵
- 軟件開發(fā)要做那些映射-活動(dòng)?
- 應(yīng)如何正確組織開發(fā)活動(dòng),形成求解軟件的邏輯?
一、 軟件生存周期過程
基本過程
支持過程
組織過程
(1) 描述“要干的活”
過程:活動(dòng)的一個(gè)集合
活動(dòng):任務(wù)的一個(gè)集合
任務(wù):把輸入轉(zhuǎn)化為輸出的操作
(2) 采用框架-軟件生存周期過程框架,“要干的活”分為七個(gè)過程組。每個(gè)過程組中又包括若干個(gè)過程。如下圖所示:
協(xié)議過程組
組織上項(xiàng)目使能過程組
項(xiàng)目過程組
技術(shù)過程組
軟件實(shí)現(xiàn)過程組
軟件支持過程組
軟件復(fù)用過程組
二、軟件生存周期過程框架概述
(1)協(xié)商過程(Agreement Processes)("驅(qū)動(dòng)角色")
? 獲取過程? ? 供應(yīng)過程
(2)組織上的項(xiàng)目使能過程(Organizational Project-enabling Processes)(“保障過程”)
生存周期模型管理過程
? 基礎(chǔ)設(shè)施管理過程
? 項(xiàng)目Portfolio管理過程
? 人力資源管理過程
? 質(zhì)量管理過程
(3)項(xiàng)目過程(Project Processes)(“管理角色”)
? ? ? 項(xiàng)目規(guī)劃過程
? ? ? 項(xiàng)目評價(jià)過程
? ? ? 決策管理過程
????????風(fēng)險(xiǎn)管理過程
????配置管理過程
????信息管理過程
????測量過程
(4)技術(shù)過程(Technical Processes)(? “技術(shù)角色”)
表達(dá)的是項(xiàng)目管理方面的工作,而軟件工程項(xiàng)目管理是整個(gè)系統(tǒng)工程管理的一部分。
利益悠關(guān)方需求定義
系統(tǒng)需求分析過程
系統(tǒng)體系結(jié)構(gòu)設(shè)計(jì)過程
實(shí)現(xiàn)過程
系統(tǒng)集成過程
系統(tǒng)測試過程
軟件安裝過程
軟件接受支持過程
軟件運(yùn)行過程
軟件維護(hù)過程
軟件銷毀過程
(5) 軟件實(shí)現(xiàn)過程(Software Implementation Processes)(“技術(shù)角色”):定義了軟件實(shí)現(xiàn)策略,以便實(shí)現(xiàn)指導(dǎo)下屬的留個(gè)底層過程
軟件實(shí)現(xiàn)過程
軟件需求分析過程
軟件體系結(jié)構(gòu)設(shè)計(jì)過程
軟件詳細(xì)設(shè)計(jì)過程
軟件構(gòu)造過程
軟件集成過程
軟件測試過程
(6)軟件支持過程(Software Support Processes)(“支持角色”)
支持軟件技術(shù)過程的有效執(zhí)行
軟件文檔管理過程
軟件配置管理過程
軟件質(zhì)量保障過程
軟件驗(yàn)證過程
軟件確認(rèn)過程
軟件評審過程
軟件審核過程
軟件問題解決過程
(7) 軟件復(fù)用過程(Software Reuse Processes)(基本能力構(gòu)建角色):為軟件技術(shù)過程和支持過程的執(zhí)行提供必要的能力。
領(lǐng)域工程過程
復(fù)用大綱管理過程
復(fù)用資產(chǎn)管理過程
三、軟件生存周期模型
一個(gè)包括軟件產(chǎn)品開發(fā)、運(yùn)行和維護(hù)中有關(guān)過程、活動(dòng)和任務(wù)的框架,覆蓋了從該系統(tǒng)的需求定義到系統(tǒng)的使用終止。
1、瀑布模型
概念:
(1)項(xiàng)目的開發(fā)依次經(jīng)過:需求、設(shè)計(jì)、編碼和單元測試、集成以及維護(hù)-這一基本路徑
(2)通過每一階段,提交以下產(chǎn)品:軟件需求規(guī)約、設(shè)計(jì)文檔、實(shí)際代碼、測試用例、最終產(chǎn)品等。
優(yōu)點(diǎn):
? ? ? (1)在決定系統(tǒng)怎么做之前,存在一個(gè)需求階段,鼓勵(lì)對系統(tǒng)“做什么”進(jìn)行規(guī)約
(2)在建造構(gòu)建之前,存在一個(gè)設(shè)計(jì)階段,鼓勵(lì)規(guī)劃系統(tǒng)結(jié)構(gòu)
(3)在每一階段結(jié)束時(shí)進(jìn)行復(fù)審,允許獲取方和用戶的參與。
(4)前一步工作產(chǎn)品可作為下一步被認(rèn)可的、文檔化的基線。
缺點(diǎn):
? ? (1)客戶必須能夠完整、正確和清晰地表達(dá)他們的需求;開發(fā)人員一開始就必須理解其應(yīng)用
(2) 在開始的兩個(gè)或三個(gè)階段中,很難評估真正的進(jìn)度狀態(tài);設(shè)計(jì)、編碼和測試階段都可能發(fā)生延期。
(3)在一個(gè)項(xiàng)目的早期階段,過分地強(qiáng)調(diào)了基線和里程碑處的文檔,可能要花費(fèi)更多的時(shí)間,用于建立一些用處不大的文檔。
(4)當(dāng)接近項(xiàng)目結(jié)束時(shí),出現(xiàn)了大量的集成和測試工作。
(5)直到項(xiàng)目結(jié)束時(shí),都不能演示系統(tǒng)的能力。
適用場景:
(1)在開發(fā)中,向下、漸進(jìn)的路徑占支配地位。也就是說,需求已經(jīng)很好的被理解
(2)過程設(shè)計(jì)人員清楚需求
2、 增量模型
該模型有一個(gè)假設(shè),即需求可以分段,成為一系列增量產(chǎn)品,每一增量可以分別地開發(fā)。
優(yōu)點(diǎn):
具有瀑布模型的所有優(yōu)點(diǎn),此外
(1) 第一個(gè)可交付版本所需要的成本和時(shí)間是很少的;
(2)開發(fā)由增量表示的小系統(tǒng)所承擔(dān)的風(fēng)險(xiǎn)是不大的;
(3)由于很快發(fā)布了第一個(gè)版本,因此可以減少用戶需求的變更;
(4)允許增量投資,在項(xiàng)目開始時(shí),可以僅對一個(gè)或兩個(gè)增量投資
缺點(diǎn):
(1)如果沒有對用戶的變更要求進(jìn)行規(guī)劃,那么產(chǎn)生的初始增量可能會(huì)造成后來增量的不穩(wěn)定;
(2)如果需求不像早期思考的那樣穩(wěn)定和完整,那么一些增量就可能需要重新開發(fā),重新發(fā)布;
(3)管理發(fā)生的成本、進(jìn)度和配置的復(fù)雜性,可能會(huì)超出一些組織的能力
適用場景:
(1)在開始開發(fā)時(shí),需求很明確,且產(chǎn)品還可被適當(dāng)?shù)胤纸鉃橐恍┆?dú)立的、可交付的軟件
(2)在開發(fā)中,期望盡快提交其中的一些增量產(chǎn)品
3、 演化模型
一種有彈性的過程模式,由一些小的開發(fā)步組成,每步歷經(jīng)需求分析、設(shè)計(jì)、實(shí)現(xiàn)和驗(yàn)證,產(chǎn)生軟件產(chǎn)品的一個(gè)增量。
優(yōu)點(diǎn):
(1) 在需求不能予以規(guī)約時(shí),可以使用這一演化模型。
(2)用戶可以通過運(yùn)行系統(tǒng)的實(shí)踐,對需求進(jìn)行改進(jìn)
(3) 與瀑布模型相比,需要更多用戶、獲取方的參與
缺點(diǎn):
(1)? 演化模型的使用需要有力的管理
? ? (2)演化模型的使用很容易成為不編寫需求或設(shè)計(jì)文檔的借口
(3)用戶、獲取方不易理解演化模型的自然屬性,因此當(dāng)結(jié)果不夠理想時(shí),可能產(chǎn)生抱怨。
4、 噴泉模型
特征:迭代 無縫
5、螺旋模型
將軟件生存周期的活動(dòng)分為是個(gè)可重復(fù)的階段:規(guī)劃、風(fēng)險(xiǎn)分析、開發(fā)和評估
四、軟軟件項(xiàng)目生存周期過程的規(guī)劃與控制
1、 概念:軟件項(xiàng)目生存周期過程
項(xiàng)目的生存周期:
Recognition? of need -> Acq.Decision&Strategy ->? Specification -> Design -> Implementation -> Acceptance - > Release to field -> Maintenance -> Requirements
軟件生存周期:在一個(gè)項(xiàng)目的生存周期中,每一個(gè)任務(wù)都通過一個(gè)或多個(gè)過程的方式來完成的,所有這些相關(guān)過程的組合,稱為項(xiàng)目的軟件生存周期過程。
軟件開發(fā)風(fēng)范:
瀑布(waterfall)風(fēng)范:以瀑布模型為基礎(chǔ)而形成的軟件項(xiàng)目生存周期過程。
迭代(iterative)風(fēng)范:也稱為演化風(fēng)范,以演化模型、增量模型和噴泉模型為基礎(chǔ)而形成的軟件項(xiàng)目生存周期
過程。
螺旋(spiral)風(fēng)范:以螺旋模型為基礎(chǔ)而形成的軟件項(xiàng)目生存周期過程。
轉(zhuǎn)換(transformational)風(fēng)范:以待開發(fā)系統(tǒng)的形式化需求規(guī)約為基礎(chǔ),通過一系列轉(zhuǎn)換,將需求規(guī)約轉(zhuǎn)化為
它的實(shí)現(xiàn)而形成的軟件項(xiàng)目生存周期過程;其中,如果需求規(guī)約發(fā)生變化的話,可以重新應(yīng)用這些轉(zhuǎn)換,對其實(shí)現(xiàn)進(jìn)行更
新。
第四代(fourth generation)風(fēng)范:圍繞特定語言和工具,描述待開發(fā)系統(tǒng)的高層,并自動(dòng)生存代碼的軟件項(xiàng)目生存周期過程。
2、 軟件項(xiàng)目生存周期過程的規(guī)劃
軟件項(xiàng)目生存周期過程的規(guī)劃可分為3個(gè)主要階段:
1.軟件生存周期模型的選擇
目標(biāo)是選取一個(gè)適合該項(xiàng)目特點(diǎn)的軟件生存周期模型;
2.精化所選擇的軟件生存周期模型
目標(biāo)是確定項(xiàng)目需要的過程、活動(dòng)和任務(wù),并將他們映射到所選取的軟件生存周期模型中,形成軟件項(xiàng)目生存周
期過程(即開發(fā)邏輯)及相應(yīng)的文檔;
3.軟件項(xiàng)目生存周期過程的實(shí)現(xiàn)
目標(biāo)是針對已形成軟件項(xiàng)目生存周期過程,配以適當(dāng)?shù)慕M織過程資產(chǎn),使軟件項(xiàng)目生存周期
3、 軟件項(xiàng)目生存周期過程的監(jiān)控
1.監(jiān)查軟件生存周期過程的執(zhí)行情況
(1) 進(jìn)展與進(jìn)度
(2) 質(zhì)量數(shù)據(jù)
(3) 設(shè)計(jì)、編碼和測試計(jì)劃復(fù)審的記錄和動(dòng)作
(4) 變更要求和測試異常報(bào)告
(5) 關(guān)鍵資源的有效使用
(6) 與項(xiàng)目組成員的交談
2.與規(guī)劃進(jìn)行比較,必要時(shí)進(jìn)行調(diào)整
措施:
(1)當(dāng)變更的負(fù)面影響可能超過帶來的好處時(shí),其措施為:按規(guī)劃的過程繼續(xù)執(zhí)行
(2)如果只因初始培訓(xùn)不充分或組織制度不夠嚴(yán)格,導(dǎo)致過程沒有按預(yù)期實(shí)施,其措施為:強(qiáng)化過程
(3)如果過程只需要進(jìn)行少量調(diào)整,就可以修改之,其措施為:調(diào)整過程
(4)如果過程中只需要進(jìn)行少量調(diào)整,就可以修改之,其措施為:過程替換