一.需求分析入手:
(一)明確項(xiàng)目背景:
本項(xiàng)目解決了客戶的什么樣的問(wèn)題。
本項(xiàng)目涉及到的哪些人,哪些單位。
本項(xiàng)目的目標(biāo)是什么。
本項(xiàng)目的范圍是怎樣的。
本項(xiàng)目的成功標(biāo)準(zhǔn)是怎樣的。

二、分析業(yè)務(wù)模型-類圖
什么是類圖

類之間的關(guān)系,有直線,包含,繼承,依賴。
直線關(guān)系有:一對(duì)一,一對(duì)多






說(shuō)明:A繼承B,A依賴B
三、流程分析利器-活動(dòng)圖
基礎(chǔ)語(yǔ)法:初始狀態(tài),結(jié)束狀態(tài),活動(dòng),判斷,合并
怎樣開始畫每一個(gè)流程:
1.明確該流程要達(dá)到怎樣的業(yè)務(wù)目的。
2.該流程有什么角色參與?哪些是主要角色?
3.排除異常情況,畫出正常情況下的流程,這就是流程的主干,通常是線性的流程。線性的流程是指一條線從頭走到尾的流程,中間沒(méi)有分支。
4.明確流程主干中的活動(dòng)涉及到的角色。
5.逐步增加分支流程,關(guān)鍵的分支流程都應(yīng)該表達(dá)出來(lái),但要注意并不需要畫出所有異常情況,必要時(shí)通過(guò)注釋或者文字說(shuō)明。
6.適當(dāng)控制活動(dòng)的粒度。
7.先畫出反映當(dāng)前情況的流程,再畫出優(yōu)化后的流程。
8.對(duì)照前后的差異,整理出業(yè)務(wù)需要調(diào)整的地方,與客戶確認(rèn)。


以下補(bǔ)充知識(shí)(來(lái)源于網(wǎng)絡(luò)),出處為http://yunzhu.iteye.com/blog/1914288:
活動(dòng)圖最適合用來(lái)描述企業(yè)的本質(zhì)工作流?;顒?dòng)圖所要捕捉的是整體業(yè)務(wù)流程的“大方向”。有關(guān)細(xì)節(jié)的相關(guān)描述應(yīng)該是在討論“用例”時(shí)才需要捕捉。
活動(dòng)圖的使用場(chǎng)景:
項(xiàng)目起始階段,需求分析人員可以使用活動(dòng)圖,針對(duì)與項(xiàng)目相關(guān)的企業(yè)活動(dòng),與領(lǐng)域?qū)<乙黄鹪O(shè)計(jì)流程
項(xiàng)目上線階段,可以用利用起始階段的活動(dòng)圖作為集成測(cè)試的重要參考依據(jù)
項(xiàng)目維護(hù)階段,企業(yè)管理人員可以通過(guò)活動(dòng)圖了解企業(yè)現(xiàn)行的流程以及未來(lái)可以改善的方向。

四、描述系統(tǒng)行為-用例圖
用例圖是用來(lái)描述什么角色通過(guò)某系統(tǒng)能做什么事情。關(guān)注的是系統(tǒng)的外在表現(xiàn)、系統(tǒng)與人的交互,系統(tǒng)與其他系統(tǒng)的交互。
基本語(yǔ)法:
小人:執(zhí)行者,可以是人,也可以是系統(tǒng)。
圓圈:用例(動(dòng)賓結(jié)構(gòu))
大框框:系統(tǒng)邊界
線條:關(guān)聯(lián),有三種,無(wú)箭頭,指向執(zhí)行者的,指向用例的。箭頭的指向表明是數(shù)據(jù)的流向。
做一個(gè)系統(tǒng)的時(shí)候,首先應(yīng)該考慮什么角色會(huì)用這個(gè)系統(tǒng),不同的角色對(duì)系統(tǒng)有什么要求。
例如:考勤系統(tǒng)

角色繼承

<<include>>說(shuō)明包含的子用例
<<extend>>擴(kuò)展,在。。?;A(chǔ)上做。。。事情

每一個(gè)用例都會(huì)涉及到一個(gè)或多個(gè)業(yè)務(wù)信息。
使用類圖來(lái)描述所有業(yè)務(wù)及業(yè)務(wù)所涉及到的概念,以及概念所涉及到的關(guān)系,在每個(gè)用例表中只需要說(shuō)明特別關(guān)注的內(nèi)容。
在用例圖的基礎(chǔ)上,再重點(diǎn)說(shuō)清楚每個(gè)用例:
1.用例所涉及到的業(yè)務(wù)概念,業(yè)務(wù)規(guī)則。
2.用例的目標(biāo),通過(guò)該用例用戶能做什么事情,達(dá)到怎樣的效果。
3.該用例的前置條件。
4.必須考慮的特殊情況。
設(shè)計(jì)系統(tǒng)時(shí),首先要保證各個(gè)角色的基本功能。
當(dāng)設(shè)計(jì)中出現(xiàn)n多個(gè)用例圖時(shí),比較好的組織是:
1.?畫一個(gè)表示宏觀需求的用例圖,該用例圖我會(huì)使用系統(tǒng)邊界,每個(gè)用例圈用比較高度概括的語(yǔ)言。
2.將宏觀用例圖分解為多個(gè)具體的用例圖。
3.用例比較多,層次比較復(fù)雜時(shí),分層次展開用例圖。
4.用戶角色比較多的時(shí)候,先單獨(dú)畫出角色以及他們的關(guān)系,并用表格說(shuō)明每個(gè)角色在本系統(tǒng)期望解決的問(wèn)題,關(guān)注點(diǎn)等。


五、描述系統(tǒng)框架-部署圖,構(gòu)件圖
功能性需求:描述系統(tǒng)的功能,即能做什么事情。
非功能性需求:對(duì)系統(tǒng)安全性,性能方面的要求。
需求階段需要確定技術(shù)框架層次上的一些要求:
1.系統(tǒng)的技術(shù)選型:開發(fā)語(yǔ)言,數(shù)據(jù)庫(kù)平臺(tái)。
2.系統(tǒng)部署在怎樣的服務(wù)器上,是原有的服務(wù)器上還是新采購(gòu)的服務(wù)器,服務(wù)器需要怎樣的軟件,硬件配置。
3.系統(tǒng)需要與原有的哪些系統(tǒng)進(jìn)行對(duì)接,將來(lái)要與哪些系統(tǒng)進(jìn)行對(duì)接。
4.系統(tǒng)需要導(dǎo)入哪些數(shù)據(jù),需要和哪些系統(tǒng)同步數(shù)據(jù)。
5.客戶原有的IT平臺(tái)需要怎樣的改造,怎樣才能讓新系統(tǒng)運(yùn)行的更好,同時(shí)保障客戶原有系統(tǒng)的正常運(yùn)行。
6.系統(tǒng)在安全性,性能方面需要達(dá)到怎樣的要求。

部署圖

部署圖可以做的工作:
1.用部署圖描述客戶當(dāng)前的IT環(huán)境架構(gòu)
2.用部署圖設(shè)計(jì)客戶改造后的IT環(huán)境架構(gòu)
需要說(shuō)明的是,設(shè)計(jì)系統(tǒng)時(shí),還應(yīng)該考慮用例的狀態(tài)。記住三點(diǎn):
1.流程不合理,可以考慮增加、刪減,修改狀態(tài)來(lái)改善。
2.增加一個(gè)合適的新狀態(tài),可能會(huì)解決很多問(wèn)題。
3.但新增狀態(tài)的副作用就是增加流程的復(fù)雜度,可能會(huì)因此帶來(lái)其他問(wèn)題。
六、考勤系統(tǒng)的設(shè)計(jì)
(一)整理系統(tǒng)的詳細(xì)需求,可以按照以下步驟完成:
1.制定本項(xiàng)目的戰(zhàn)略方針
2.分析系統(tǒng)的需要:目標(biāo)、涉眾,待解決的問(wèn)題、范圍、項(xiàng)目成功標(biāo)準(zhǔn)等。
3.系統(tǒng)的業(yè)務(wù)概念,可以用類圖描述。
4.畫出關(guān)鍵流程的流程圖。
5.分析有什么角色會(huì)使用系統(tǒng),用用例圖描繪系統(tǒng)功能,并挑幾個(gè)進(jìn)行用例表設(shè)計(jì)
6.部署圖和構(gòu)架圖描述系統(tǒng)在架構(gòu)上的要求
7.其他非功能性要求
8.以上,組織成需求文檔
(二)需求分析全過(guò)程:
戰(zhàn)略分析,需要分析,業(yè)務(wù)分析,需求細(xì)化

1.戰(zhàn)略分析:通過(guò)招投標(biāo)書,了解項(xiàng)目背景。需要搞清楚:為什么會(huì)有這樣一個(gè)項(xiàng)目?客戶為什么想要做這樣一個(gè)項(xiàng)目?公司為什么會(huì)接這樣一個(gè)項(xiàng)目?公司在這個(gè)項(xiàng)目上的戰(zhàn)略是怎樣的?是為了賺錢,還是積累客戶關(guān)系,還是積累業(yè)務(wù),積累技術(shù)?
2.需要分析:
目標(biāo):從招投標(biāo)書,合同,方案書等,整理出項(xiàng)目的目標(biāo)。
涉眾及待解決問(wèn)題:
涉眾分類:①系統(tǒng)用戶;②對(duì)該系統(tǒng)有商業(yè)決策權(quán)的人,如領(lǐng)導(dǎo);③系統(tǒng)會(huì)影響到的第三方,可能是為其他系統(tǒng)提供接口,或者是需要采購(gòu)某硬件
(就是梳理系統(tǒng)涉及的各部門的職能,各崗位的工作職責(zé))
(注意:需求調(diào)研對(duì)象往往提出的是解決方案,或者是需求規(guī)格級(jí)別的。)
--如何找出關(guān)鍵涉眾:
1.盡可能多的列出涉眾
2.列出每種涉眾待解決的問(wèn)題
3.對(duì)于每一類的涉眾,都應(yīng)清除的說(shuō)明系統(tǒng)是如何影響他的,他是如何影響本系統(tǒng)的
范圍:從三個(gè)維度:①功能 ②與其他系統(tǒng)的關(guān)系 ③系統(tǒng)的地域使用范圍
項(xiàng)目成功標(biāo)準(zhǔn)(略)
3.業(yè)務(wù)分析:
可以從兩個(gè)角度來(lái)進(jìn)行業(yè)務(wù)分析,結(jié)構(gòu)建模和行為建模。
3.需求細(xì)化(需求規(guī)格):設(shè)計(jì)有價(jià)值的需求方案。軟件要做什么樣的功能,要實(shí)現(xiàn)怎樣的效果,是根據(jù)客戶的需要,理解和優(yōu)化客戶的業(yè)務(wù)設(shè)計(jì)出來(lái)的。
通常一個(gè)流程中的多個(gè)步驟均可提煉為用例,多個(gè)用例組合起來(lái)能支撐某個(gè)流程。
(三)按照以上的需求分析方法,進(jìn)行該系統(tǒng)的分析:
⑴戰(zhàn)略分析
怎樣做戰(zhàn)略分析:
①項(xiàng)目背景:
甲方是怎樣一個(gè)公司。
沒(méi)有該系統(tǒng)之前,甲方是這樣工作的。
當(dāng)前的工作方式,出現(xiàn)了這樣的問(wèn)題。
出現(xiàn)了。。的導(dǎo)火索,以致于萌生了做這個(gè)系統(tǒng)的的想法,期望達(dá)到什么效果。
②該項(xiàng)目能幫甲方實(shí)現(xiàn)哪些核心價(jià)值。
生存需要,該項(xiàng)目關(guān)系到甲方生存問(wèn)題。
核心發(fā)展需要,有利于甲方提高生產(chǎn)力和核心競(jìng)爭(zhēng)力。
次要發(fā)展需要
錦上添花的需要
面子工程需要,有助企業(yè)或領(lǐng)導(dǎo)的政績(jī)
③該項(xiàng)目對(duì)甲方的重要性如何。
④要成功完成項(xiàng)目,甲方有哪些有利或不利的條件。
⑤要成功完成項(xiàng)目,乙方有哪些有利或不利的條件。
⑵.需要分析
目標(biāo):
涉眾:

一般來(lái)說(shuō),涉眾就是某一類角色。領(lǐng)導(dǎo)級(jí)別的通常會(huì)有:審批,(通過(guò)不通過(guò)),審核(審批是否合適)
范圍:
項(xiàng)目成功標(biāo)準(zhǔn):(需求,成本,進(jìn)度,質(zhì)量)
⑶.業(yè)務(wù)概念分析
分兩步走:結(jié)構(gòu)建模和行為建模,即業(yè)務(wù)概念和業(yè)務(wù)流程。
利用類圖進(jìn)行業(yè)務(wù)概念分析,先識(shí)別出類,再畫出類的屬性,描繪出類之間的關(guān)系,再進(jìn)行抽象。
將事情抽象成類。通常管理一個(gè)事情,除了管理流程,還要管理一條或者多條數(shù)據(jù)。
考勤系統(tǒng)管理的事情有打卡、請(qǐng)假、外出。(管理記錄就是管理事情)
分析業(yè)務(wù)時(shí),要抓住與系統(tǒng)目標(biāo)相關(guān)的業(yè)務(wù)概念。
包括業(yè)務(wù)術(shù)語(yǔ)、名詞解釋

在分析業(yè)務(wù)時(shí),腦袋中會(huì)產(chǎn)生不同的方案,請(qǐng)記錄下來(lái)。
注意:客戶日常工作中用到的各種紙質(zhì)文件、表格、圖表等。都是我們提煉業(yè)務(wù)概念的重要素材。日常工作的紙質(zhì)表格,特別是報(bào)表類的表格,含有統(tǒng)計(jì)信息。要識(shí)別出哪些內(nèi)容是統(tǒng)計(jì)出來(lái)的,哪些內(nèi)容是原生的,要發(fā)現(xiàn)這些內(nèi)容的真正來(lái)源。
但凡做管理系統(tǒng),相關(guān)的制度文件是重要的需求來(lái)源。研究這些制度文件時(shí),可能會(huì)發(fā)現(xiàn)一些不合理的地方,你需要和客戶商量?jī)?yōu)化這些制度。
對(duì)于重要的類別,可以用一個(gè)類表示,如請(qǐng)假類別。
當(dāng)我們分析某某申請(qǐng)單之類的東西時(shí),該申請(qǐng)單在提出之后需要經(jīng)歷處理,該申請(qǐng)單往往隱含了“狀態(tài)變化”的信息,需要識(shí)別出來(lái)。
處理突發(fā)狀況的理有效方法,往往不是修改系統(tǒng)讓系統(tǒng)更強(qiáng)的,而是思考一些管理辦法,設(shè)計(jì)一些緊急狀況應(yīng)對(duì)預(yù)案。
⑷.業(yè)務(wù)流程分析

處理突發(fā)狀況,往往不是修改系統(tǒng)讓系統(tǒng)更強(qiáng)大,而是思考一些管理辦法。
對(duì)于多變的業(yè)務(wù),需要設(shè)計(jì)通過(guò)配置可以適應(yīng)大多數(shù)情況的軟件。
⑸.需求細(xì)化
①執(zhí)行者分析

上圖表明了繼承關(guān)系,表明了兒子可以做父親做的事情。孫子可以做兒子,父親做的事情。
系統(tǒng)一般至少有一種管理員的角色,進(jìn)行用戶管理和權(quán)限管理。高層領(lǐng)導(dǎo)往往具備管理員的權(quán)限,中層領(lǐng)導(dǎo)具備管理員的部分權(quán)限。通??梢允且粋€(gè)角色對(duì)應(yīng)多個(gè)用戶。
繪制用例圖的時(shí)候,每種角色只需要畫出他獨(dú)特的可執(zhí)行的用例。
一般來(lái)說(shuō),角色是直接的上下級(jí)關(guān)系,上級(jí)角色可直接繼承下級(jí)角色。
管理員功能:
1.系統(tǒng)用戶管理:
a.查看,新增,刪除,修改用戶
b.設(shè)置公司組織架構(gòu)(如:設(shè)置事業(yè)部及事業(yè)部以下的部門)
c.設(shè)置公司的職位(如總經(jīng)理,副總經(jīng)理,部門經(jīng)理,HR經(jīng)理等)
d.設(shè)置用戶屬于某個(gè)組織架構(gòu)或職位
2.管理系統(tǒng)權(quán)限:
a.設(shè)置系統(tǒng)的功能點(diǎn),一般會(huì)按照“樹”的方式進(jìn)行組織。
b.設(shè)置系統(tǒng)角色,并為每個(gè)角色分派功能點(diǎn),表示該角色具備這些功能點(diǎn)的權(quán)限。
c.為每一個(gè)用戶設(shè)置一個(gè)或者多個(gè)角色,這樣該用戶就具備一個(gè)或者多個(gè)權(quán)限
d.直接為每個(gè)用戶分派功能點(diǎn)。
”單點(diǎn)登錄“即一個(gè)系統(tǒng)登錄了,其他系統(tǒng)不需要再登錄。
②非功能性需求:
包括:軟件技術(shù)架構(gòu)方面的要求;安全性,易用性,性能,接口等方面的要求。
善用客戶當(dāng)前的IT資源,減少客戶的負(fù)擔(dān),是我們規(guī)劃軟件技術(shù)架構(gòu)時(shí)需要考慮的。
MIS系統(tǒng),即信息管理系統(tǒng)。
七、如何編寫需求規(guī)格說(shuō)明書

說(shuō)明:需求文檔一般是和客戶確認(rèn)的文檔,
八、需求分析的團(tuán)隊(duì)作戰(zhàn)
(一)如何在項(xiàng)目時(shí)間緊的情況下完成需求調(diào)研工作:
1.根據(jù)項(xiàng)目的合同,方案書的內(nèi)容,整理出項(xiàng)目的目標(biāo)、涉眾及關(guān)注點(diǎn)。
2.制定具體的需求調(diào)研計(jì)劃,并每天持續(xù)細(xì)化和更新。每天上午在客戶處獲取原始需求,下午項(xiàng)目組全體一起整理需求,并列出需要第二天確認(rèn)的問(wèn)題。
3.分頭調(diào)研。可以將項(xiàng)目組(一個(gè)需求三個(gè)研發(fā),一個(gè)測(cè)試)分成亮嗓調(diào)研小組,每個(gè)小組成員負(fù)責(zé)不同的涉眾。每個(gè)小組通過(guò)需求調(diào)研問(wèn)卷,UML圖等方式獲取需求,并且獲取了大量的客戶提供的原始紙張和電子版資料。
4.聚頭分析。各個(gè)小組通過(guò)類圖整理業(yè)務(wù)概念,通過(guò)活動(dòng)圖等整理業(yè)務(wù)流程,然后向其他小組通報(bào)。各個(gè)小組相互印證各種獲取的需求,整合交叉部分內(nèi)容,找出矛盾點(diǎn)。
5.項(xiàng)目組共同編寫和維護(hù)一份需求文檔,每天添加新內(nèi)容,修改不合適的舊內(nèi)容。
最后的需求規(guī)格說(shuō)明書需要去客戶方確認(rèn)簽字。
注意:軟件架構(gòu)設(shè)計(jì)需要把握高層次需求。
(二) 需求分析師的工作重點(diǎn):1.全面準(zhǔn)確獲取和提煉需求。2.將需求傳遞給項(xiàng)目組成員,讓大家準(zhǔn)備無(wú)誤的理解需求。(提不出問(wèn)題是最大的問(wèn)題)
關(guān)于開會(huì):可以是在項(xiàng)目初期,項(xiàng)目特別緊張的時(shí)期,或者是感到問(wèn)題特別多的時(shí)候,會(huì)議時(shí)間一般不超過(guò)15分鐘,會(huì)議主要內(nèi)容是讓大家說(shuō)出工作中存在的問(wèn)題,需要得到什么支援。
(三)快速分享需求建議:
1.要求開發(fā)人員根據(jù)需求準(zhǔn)備設(shè)計(jì)方案,開展技術(shù)研究工作等。
2.測(cè)試人員根據(jù)需求準(zhǔn)備測(cè)試方案,測(cè)試數(shù)據(jù)和環(huán)境等。
3.要求實(shí)施人員根據(jù)需求準(zhǔn)備實(shí)施方案,模擬實(shí)施環(huán)境等。
(四)讓客戶持續(xù)參與:
1.需求文檔應(yīng)該一邊寫一邊和客戶確認(rèn),最后來(lái)一個(gè)整體確認(rèn)。
2.讓客戶全方位全程參與,從客戶的高層領(lǐng)導(dǎo),中層干部,基層員工中獲取和整理需求,并將這些需求系統(tǒng)的整理在一起,再分別與之確認(rèn),持續(xù)確認(rèn)。

(五)關(guān)于需求的確認(rèn):
(1)按照以下的順序來(lái)分批次確認(rèn)
1.背景
2.需要
3.業(yè)務(wù)概念,如果業(yè)務(wù)概念復(fù)雜,應(yīng)該分多次確認(rèn)
4.業(yè)務(wù)流程,如果業(yè)務(wù)流程很多,應(yīng)該逐一確認(rèn)
5.執(zhí)行者分析以及用力分析,用例可能會(huì)有幾十甚至上百個(gè),也應(yīng)該分多次確認(rèn)
6.非功能性需求
7.全部需求
(2)最佳實(shí)踐建議:
1.與客戶的需求分析確認(rèn)過(guò)程是可持續(xù)的,各種確認(rèn)方式有如下:
a.需求調(diào)研表,客戶簽字
b.會(huì)議記錄,與會(huì)者簽字
c.郵件確認(rèn)
d.中間文件的確認(rèn)
2.項(xiàng)目組要主動(dòng)與客戶確認(rèn),可用各種非正式確認(rèn)方式。
a.某次口頭溝通后,對(duì)達(dá)成一致的問(wèn)題,整理出文檔Email與客戶確認(rèn)
b.確認(rèn)某業(yè)務(wù)概念或者流程后,將圖打印出來(lái)與客戶確認(rèn),讓客戶簽字。
3.從誰(shuí)那里獲取需求,就向誰(shuí)確認(rèn)
4.向客戶說(shuō)明:項(xiàng)目組也需要簽字,簽字不代表不可以變化,而是表示到簽字這刻為止,雙方達(dá)成一致理解。
5.最后的確認(rèn)是由客戶某人作為代表,他的確認(rèn)是在他人確認(rèn)的基礎(chǔ)上進(jìn)行的,最后的確認(rèn)應(yīng)該是正式的確認(rèn)。
總結(jié):需求分析工作可分解為三方面的工作
1.全部準(zhǔn)確的獲取需求
2.將獲取到的需求準(zhǔn)確的分享給項(xiàng)目組其他成員,并根據(jù)他們的反饋進(jìn)一步完善需求
3.和客戶確認(rèn)項(xiàng)目組對(duì)需求的理解
驗(yàn)證需求是否真正理解需求,可以自問(wèn)幾個(gè)問(wèn)題
http://www.woshipm.com/pmd/979525.html
1.業(yè)務(wù)對(duì)象清楚了沒(méi)有?系統(tǒng)的用戶以及各功能模塊的用戶是誰(shuí)是否清楚。
2.業(yè)務(wù)流程清楚了沒(méi)有?各環(huán)節(jié)的處理人以及處理動(dòng)作是否清楚。
3.業(yè)務(wù)場(chǎng)景清楚了沒(méi)有?每個(gè)需求的業(yè)務(wù)場(chǎng)景是否弄清楚,所有需求的業(yè)務(wù)場(chǎng)景是否能連接在一起,在腦海中完整的形成一個(gè)故事。
4.業(yè)務(wù)事項(xiàng)數(shù)量清楚了沒(méi)有?一共有多少個(gè)需求,一共有多少種角色,一共有多少?gòu)垐?bào)表,一共有多少個(gè)前置條件……
5.跨部門的業(yè)務(wù)關(guān)系清楚了沒(méi)有?這個(gè)部門與那個(gè)部門的關(guān)系以及產(chǎn)生的哪些業(yè)務(wù)往來(lái)是否清楚。