一.概述???????????????????
軟件開發(fā)過(guò)程(software development process)描述了構(gòu)造、部署以及維護(hù)軟件的方式。統(tǒng)一過(guò)程[JBR99]已經(jīng)成為一種流行的構(gòu)造面向?qū)ο笙到y(tǒng)的迭代軟件開發(fā)過(guò)程。特別是Rational統(tǒng)一過(guò)程是對(duì)統(tǒng)一過(guò)程的詳細(xì)精化,并且已經(jīng)被廣泛采納。
迭代開發(fā)是軟件開發(fā)過(guò)程和大多數(shù)其他現(xiàn)代方法中的關(guān)鍵實(shí)踐。在這種生命周期方法中,開發(fā)被組織成一系列固定的短期(如三個(gè)星期)小項(xiàng)目,稱為迭代;每次迭代都產(chǎn)生經(jīng)過(guò)測(cè)試、集成并可執(zhí)行的局部系統(tǒng)。每次迭化都具有各自的需求分析、設(shè)計(jì)、實(shí)現(xiàn)和測(cè)試活動(dòng)。
過(guò)程制品和時(shí)限樣例(s:開始時(shí)間,r:精化時(shí)間)
科目
|
制品
|
初始
|
細(xì)化
|
構(gòu)造
|
移交
|
需求調(diào)研
|
需求調(diào)研表
|
s
|
|
|
|
系統(tǒng)分析
|
領(lǐng)域模型
|
s
|
r
|
|
|
用例模型
|
s
|
r
|
|
|
業(yè)務(wù)主體流程圖
|
s
|
r
|
|
|
用例文檔
|
|
s
|
|
|
體驗(yàn)界面源代碼
|
|
s
|
|
|
用戶體驗(yàn)調(diào)查表
|
|
S
|
|
|
系統(tǒng)設(shè)計(jì)
|
軟件架構(gòu)文檔
|
|
s
|
|
|
類設(shè)計(jì)
|
|
s
|
r
|
|
時(shí)序圖設(shè)計(jì)
|
|
s
|
r
|
|
數(shù)據(jù)庫(kù)設(shè)計(jì)
|
|
s
|
r
|
|
實(shí)??? 現(xiàn)
|
編寫代碼
|
|
s
|
r
|
r
|
二. 需求調(diào)研
(1).了解需求
人??? 員:
項(xiàng)目經(jīng)理,分析員(2名),客戶。
地??? 點(diǎn):
客戶辦公地點(diǎn)。
工作要點(diǎn):
著重了解客戶的整體業(yè)務(wù)功能和各業(yè)務(wù)相關(guān)的部門與職務(wù)和人員信息。基本了解業(yè)務(wù)流程與主要業(yè)務(wù)要求。
文???檔:
生成《需求調(diào)研表》。
規(guī) ???則:
1、調(diào)研人員數(shù)量不應(yīng)少于2人,在需求調(diào)研過(guò)程中應(yīng)保證人員穩(wěn)定性。
2、調(diào)研人員應(yīng)著重了解業(yè)務(wù)的整體性,應(yīng)控制客戶講述的內(nèi)容。
3、調(diào)研人員應(yīng)以多聽少說(shuō)為主。
4、調(diào)研人員應(yīng)對(duì)各業(yè)務(wù)相關(guān)部門和人員都進(jìn)行交流,以保證對(duì)各方面人員需求有全方面了解。
(2).需求整理
人??? 員:
項(xiàng)目經(jīng)理,分析員(2名)。
地??? 點(diǎn):
公司會(huì)議室 。
工作要點(diǎn):
調(diào)研人員進(jìn)行討論,并詳細(xì)整理編寫《需求調(diào)研表》。劃分各業(yè)務(wù)層次與業(yè)務(wù)關(guān)系,找出各業(yè)務(wù)主要相關(guān)人員與系統(tǒng)要求。整理各業(yè)務(wù)主流程。
文??? 檔:
編寫《需求調(diào)研表》。
規(guī)??? 則:
1、調(diào)研人員整理系統(tǒng)整體業(yè)務(wù)功能,并基本了解業(yè)務(wù)流程和業(yè)務(wù)需求重點(diǎn)。
2、進(jìn)行討論記錄不明確的業(yè)務(wù)。
(3).需求確認(rèn)
人??? 員:
項(xiàng)目經(jīng)理,分析員(2員),各業(yè)務(wù)客戶。
地??? 點(diǎn):
客戶辦公地點(diǎn)。
工作要點(diǎn):
向客戶講述調(diào)研人員所理解的業(yè)務(wù)和流程。由客戶進(jìn)行確認(rèn)和補(bǔ)充,調(diào)研人員進(jìn)行記錄。客戶確認(rèn)后在《需求調(diào)研表》相關(guān)業(yè)務(wù)部分簽字。客戶非確認(rèn)業(yè)務(wù)返回第2步。
文??? 檔:
編寫《需求調(diào)研表》。
規(guī)??? 則:
1、需求確認(rèn)應(yīng)有業(yè)務(wù)主要相關(guān)人員簽字。
2、調(diào)研人員應(yīng)多講,讓客戶多了解調(diào)研人員對(duì)業(yè)務(wù)理解的正確。
3、同一業(yè)務(wù)可能需要進(jìn)行多次需求確認(rèn)。
三.系統(tǒng)分析
分析強(qiáng)調(diào)是的對(duì)問(wèn)題和需求的調(diào)查研究,不是解決方案。例如需要一個(gè)新的在線交易系統(tǒng),那么,應(yīng)該如何使用它,它應(yīng)該具有哪些功能?
“分析”一詞含義廣泛,最好加以限制,如需求分析(對(duì)需求的調(diào)查研究)或需求對(duì)象分析(對(duì)領(lǐng)域?qū)ο蟮恼{(diào)查研究)。
概括為:做正確的事(分析)。
在進(jìn)行系統(tǒng)分析過(guò)程中用例分析、領(lǐng)域模型分析、基本路徑分析、用例文檔各活動(dòng)應(yīng)相互交差進(jìn)行的,相交補(bǔ)充與完善的進(jìn)行。
?(1).用例分析
用例就是需求,主要是說(shuō)明系統(tǒng)如何工作的功能性或行為性需求。
人??? 員:
分析員(3員)
工作要點(diǎn):
使用UML技術(shù)編寫用例圖,分析出系統(tǒng)用例、系統(tǒng)參與者和其相互之間關(guān)系。
文??? 檔:
UML《系統(tǒng)用例圖》。
規(guī)??? 則:
1、正確區(qū)分參與者,主要參與者應(yīng)是直接與系統(tǒng)進(jìn)行交互的人員。
2、系統(tǒng)用例是待開發(fā)系統(tǒng)中所有要實(shí)現(xiàn)的所有功能,應(yīng)包括用戶業(yè)務(wù)功能和系統(tǒng)維護(hù)功能等。
3、執(zhí)行者:在系統(tǒng)之外,透過(guò)系統(tǒng)邊界與系統(tǒng)進(jìn)行有意義交互的任何事物。
執(zhí)行者要點(diǎn)
系統(tǒng)外—必須和它交互。
系統(tǒng)邊界—責(zé)任邊界,非物理邊界。
有意義交互—屬于目標(biāo)系統(tǒng)的責(zé)任。
任何事物—人、外系統(tǒng)、外部因素、時(shí)間。
4、用例要點(diǎn)
價(jià)值結(jié)果—有意義的目標(biāo)。
系統(tǒng)執(zhí)行—價(jià)值結(jié)果由系統(tǒng)生成。
執(zhí)行者可見(jiàn)—業(yè)務(wù)語(yǔ)言,用戶觀點(diǎn)。
一組用例實(shí)例—用例的料度。
?(2).領(lǐng)域模型分析
領(lǐng)域模型是對(duì)領(lǐng)域的概念類或現(xiàn)實(shí)世界的可視代表示。領(lǐng)域模型也稱為概念模型。
人??? 員:
分析員(3員)
工作要點(diǎn):
使用UML技術(shù)編寫領(lǐng)域模型類圖。確定與當(dāng)前迭代相關(guān)的概念類。創(chuàng)建初始的領(lǐng)域模型。為模型建立適當(dāng)?shù)膶傩院完P(guān)聯(lián)。
文??? 檔:
UML《領(lǐng)域模型》類圖。
規(guī)??? 則:
?????? 1、對(duì)現(xiàn)實(shí)世界的可視代表示。
(3).基本路徑分析
基本路徑用于描述用例的處理流程。
人??? 員:
分析員(3員)
工作要點(diǎn):
使用UML時(shí)序圖技術(shù)對(duì)每個(gè)用例進(jìn)行系統(tǒng)流程的建模。
文??? 檔:
UML《基本路徑》
規(guī)??? 則:
1、主要對(duì)系統(tǒng)業(yè)務(wù)進(jìn)行建模。
2、編寫時(shí)應(yīng)包括各個(gè)層次類的建模。
3、一般系統(tǒng)可分為三層:界面層,業(yè)務(wù)層,數(shù)據(jù)層。
(4).編寫用例文檔
用例文檔是指對(duì)與系統(tǒng)用例編寫的文本文檔。用與補(bǔ)充時(shí)序圖無(wú)法描述業(yè)務(wù)流程中各節(jié)點(diǎn)詳細(xì)情況。
人??? 員:
分析員(3員)
工作要點(diǎn):
指對(duì)每個(gè)用例圖中的用例,使用文檔方式詳細(xì)主參與者與系統(tǒng)之間的交互情況。
文??? 檔:
《用例文檔》
規(guī)??? 則:
1、針對(duì)與系統(tǒng)用例圖中每一個(gè)用例,都應(yīng)包括一個(gè)用例文檔。
2、主要用于描述人與系統(tǒng)間的交互過(guò)程和系統(tǒng)的處理結(jié)果。
3、用例文檔中包括的內(nèi)容有:用例編號(hào)、用例名稱、執(zhí)行者、前置條件、后置條件、涉眾利益、基本路徑、擴(kuò)展路徑、字段列表、業(yè)務(wù)規(guī)則、非功能需求、設(shè)計(jì)約束。
(5).編寫體驗(yàn)界面
體驗(yàn)界面是系統(tǒng)分析基本完成后對(duì)系統(tǒng)界面建模。
人??? 員:
分析員(3員)
工作要點(diǎn):
快速使用開發(fā)工具對(duì)所待開發(fā)系統(tǒng)的人機(jī)操作界面進(jìn)行建模。用戶可以通過(guò)體驗(yàn)界面了解到待開發(fā)系統(tǒng)的每個(gè)業(yè)務(wù)操作情況。
文??? 檔:
《體驗(yàn)界面源代碼》
規(guī)??? 則:
1、對(duì)系統(tǒng)分析的每個(gè)用戶進(jìn)行界面建模。
2、體驗(yàn)界面應(yīng)包括真實(shí)系統(tǒng)的所有界面。
(6).用戶體驗(yàn)調(diào)查
用戶體驗(yàn)調(diào)查是將系統(tǒng)分析出各制品與用戶進(jìn)行交流,用戶可在此階段重新整理需求,發(fā)覺(jué)出新的潛在需求。
人??? 員:
項(xiàng)目經(jīng)理、分析員(3員)
工作要點(diǎn):
以用戶體驗(yàn)界面為主,向用戶介紹本系統(tǒng)最終可實(shí)現(xiàn)的功能和業(yè)務(wù)操作流程,引導(dǎo)用戶發(fā)現(xiàn)法潛在需求。并對(duì)用戶的反饋信息進(jìn)行記錄和整理。可重新對(duì)系統(tǒng)分析不足之處進(jìn)行修改。
文??? 檔:
《體驗(yàn)調(diào)查表》
規(guī)??? 則:
?????? 1、對(duì)用戶體驗(yàn)調(diào)查需要多次重復(fù)進(jìn)行。
?????? 2、詳細(xì)記錄用戶反饋信息。
?????? 3、對(duì)分析不足之處,需返回到以上各環(huán)節(jié)重新分析。
四.系統(tǒng)設(shè)計(jì)
設(shè)計(jì)強(qiáng)調(diào)的是滿足需求的概念上的解決方案(在軟件方面和硬件方面),而不是其實(shí)現(xiàn)。最終,設(shè)計(jì)可以實(shí)現(xiàn),而實(shí)現(xiàn)(如代碼)則表達(dá)了真實(shí)和完整的設(shè)計(jì)。
與“分析”相同,對(duì)“設(shè)計(jì)”一詞最好也加以限制,如面向?qū)ο笤O(shè)計(jì)或數(shù)據(jù)庫(kù)設(shè)計(jì)。
概括為:正確地做事(設(shè)計(jì))。
(1).框架設(shè)計(jì)
框架設(shè)計(jì)首先決定了整個(gè)結(jié)構(gòu)。
人??? 員:
分析員,設(shè)計(jì)員。
工作要點(diǎn):
實(shí)現(xiàn)語(yǔ)言,軟件分布方式,系統(tǒng)邏輯結(jié)構(gòu),重點(diǎn)技術(shù)的測(cè)試。
文??? 檔:
《框架設(shè)計(jì)》
規(guī)??? 則:
1、對(duì)系統(tǒng)中技術(shù)可能行測(cè)試。
2、系統(tǒng)層次不益過(guò)多。
3、各層間交互技術(shù)應(yīng)簡(jiǎn)單、穩(wěn)定。
(2).類圖設(shè)計(jì)
人??? 員:
設(shè)計(jì)員
工作要點(diǎn):
以分析階段中的類圖為藍(lán)本,從源代碼實(shí)現(xiàn)語(yǔ)言出發(fā),進(jìn)行類圖設(shè)計(jì)。
文??? 檔:
UML《類圖設(shè)計(jì)》
規(guī)??? 則:
1、對(duì)系統(tǒng)不同層次的類進(jìn)行設(shè)計(jì)。
2、一般系統(tǒng)可分解成:界面層、業(yè)務(wù)層,數(shù)據(jù)層、數(shù)據(jù)控制層。
界面層:負(fù)責(zé)與用戶進(jìn)行交互。
業(yè)務(wù)層:負(fù)責(zé)進(jìn)行用戶業(yè)務(wù)操作。
數(shù)據(jù)層:系統(tǒng)中需要進(jìn)行處理的各種信息。
數(shù)據(jù)控制層:負(fù)責(zé)對(duì)系統(tǒng)信息進(jìn)行持久化操作。
3、近可能實(shí)現(xiàn)偽代碼。
(4).路徑設(shè)計(jì)
人??? 員:
設(shè)計(jì)員,測(cè)試員。
工作要點(diǎn):
以分析階段的《基本路徑》為藍(lán)本,從實(shí)現(xiàn)語(yǔ)言出發(fā),對(duì)業(yè)務(wù)操作中類的操作流程進(jìn)行設(shè)計(jì)。測(cè)試員根據(jù)操作流程編寫測(cè)試用例文檔。
文??? 檔:
UML《設(shè)計(jì)路徑》,《測(cè)試用例》
規(guī)??? 則:
?????? 1、以實(shí)現(xiàn)程序流程出發(fā)進(jìn)行設(shè)計(jì)。
?????? 2、對(duì)業(yè)務(wù)中各種業(yè)務(wù)情況進(jìn)行設(shè)計(jì)。
?????? 3、測(cè)試員需編寫測(cè)試用例
(5).數(shù)據(jù)庫(kù)設(shè)計(jì)
人??? 員:
設(shè)計(jì)員
工作要點(diǎn):
根據(jù)設(shè)計(jì)出的數(shù)據(jù)類圖,進(jìn)行數(shù)據(jù)庫(kù)模型設(shè)計(jì)。
文??? 檔:
《數(shù)據(jù)庫(kù)模型》
規(guī)??? 則:
?????? 1、數(shù)據(jù)庫(kù)設(shè)計(jì)中各表和表關(guān)系應(yīng)與類圖中各類和類關(guān)系進(jìn)行對(duì)映。
五.實(shí)現(xiàn)
?(1).開發(fā)
人??? 員:
程序員,設(shè)計(jì)員
工作要點(diǎn):
由程序員對(duì)系統(tǒng)設(shè)計(jì)對(duì)各程序進(jìn)行代碼開發(fā)。在開發(fā)中對(duì)設(shè)計(jì)出現(xiàn)的最大設(shè)計(jì)問(wèn)題進(jìn)行修改。
第一步實(shí)現(xiàn)各層類接口。
第二步各層代碼可同時(shí)進(jìn)行開發(fā)。
第三步在代碼編寫過(guò)程中編寫單元測(cè)試代碼。
第四步進(jìn)行各層單元測(cè)試。
第五步業(yè)務(wù)測(cè)試。
文??? 檔:
?????? 代源碼
規(guī)??? 則:
?????? 1、程序員與設(shè)計(jì)員協(xié)同開發(fā),對(duì)設(shè)計(jì)問(wèn)題進(jìn)行修改。
需求調(diào)研表
項(xiàng)目名稱
|
|
項(xiàng)目負(fù)責(zé)人
|
|
需求調(diào)研人員
|
總公司:
|
分公司:
|
序號(hào)
|
用戶需求描述
|
功能需求描述
|
來(lái)?? 源
|
備?? 注
|
需求部門
|
需求確認(rèn)者
|
1
|
|
|
|
|
|
1.1
|
|
|
|
|
|
1.2
|
|
|
|
|
|
1.3
|
|
|
|
|
|
1.4
|
|
|
|
|
|
1.4.1
|
|
|
|
|
|
1.4.2
|
|
|
|
|
|
1.5
|
|
|
|
|
|
1.6
|
|
|
|
|
|
1.7
|
|
|
|
|
|
2
|
|
|
|
|
|
2.1
|
|
|
|
|
|
2.1.1
|
|
|
|
|
|
2.1.2
|
|
|
|
|
|
2.1.3
|
|
|
|
|
|
2.2
|
|
|
|
|
|
2.2.1
|
|
|
|
|
|
2.2.2
|
|
|
|
|
|
2.2.3
|
|
|
|
|
|
2.3
|
|
|
|
|
|
2.3.1
|
|
|
|
|
|
2.3.2
|
|
|
|
|
|
2.3.3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
用例文檔
用例編號(hào)
|
UC1.1
|
名?稱
|
|
來(lái)??? 源
|
|
編 寫 人
|
|
調(diào)研人員
|
|
調(diào)研時(shí)間
|
|
執(zhí) 行 者
|
主執(zhí)行:
輔執(zhí)行:
|
前置條件
|
|
后置條件
|
|
涉眾利益
|
|
|
基本路徑
|
|
|
擴(kuò)????? 展
|
1
?? 1.1
?? 1.2
?????? 1.2 .1
?????? 1.2 .2
?? 1.3
2
?? 2.1
|
字段列表
|
1.
|
業(yè)務(wù)規(guī)則
|
1.
|
非功能需求
|
1.
|
設(shè)計(jì)約束
|
1.
|
|
|
|
|
|
|