一.需求分析入手:
(一)明確項目背景:
本項目解決了客戶的什么樣的問題亡容。
本項目涉及到的哪些人,哪些單位肯夏。
本項目的目標(biāo)是什么。
本項目的范圍是怎樣的犀暑。
本項目的成功標(biāo)準(zhǔn)是怎樣的驯击。
二徊都、分析業(yè)務(wù)模型-類圖
什么是類圖
類之間的關(guān)系,有直線广辰,包含暇矫,繼承,依賴择吊。
直線關(guān)系有:一對一李根,一對多
說明:A繼承B,A依賴B
三几睛、流程分析利器-活動圖
基礎(chǔ)語法:初始狀態(tài)房轿,結(jié)束狀態(tài),活動所森,判斷囱持,合并
怎樣開始畫每一個流程:
1.明確該流程要達(dá)到怎樣的業(yè)務(wù)目的。
2.該流程有什么角色參與必峰?哪些是主要角色洪唐?
3.排除異常情況钻蹬,畫出正常情況下的流程吼蚁,這就是流程的主干,通常是線性的流程问欠。線性的流程是指一條線從頭走到尾的流程肝匆,中間沒有分支。
4.明確流程主干中的活動涉及到的角色顺献。
5.逐步增加分支流程旗国,關(guān)鍵的分支流程都應(yīng)該表達(dá)出來,但要注意并不需要畫出所有異常情況注整,必要時通過注釋或者文字說明能曾。
6.適當(dāng)控制活動的粒度度硝。
7.先畫出反映當(dāng)前情況的流程,再畫出優(yōu)化后的流程寿冕。
8.對照前后的差異蕊程,整理出業(yè)務(wù)需要調(diào)整的地方,與客戶確認(rèn)驼唱。
以下補充知識(來源于網(wǎng)絡(luò))藻茂,出處為http://yunzhu.iteye.com/blog/1914288:
活動圖最適合用來描述企業(yè)的本質(zhì)工作流∶悼遥活動圖所要捕捉的是整體業(yè)務(wù)流程的“大方向”辨赐。有關(guān)細(xì)節(jié)的相關(guān)描述應(yīng)該是在討論“用例”時才需要捕捉。
活動圖的使用場景:
項目起始階段京办,需求分析人員可以使用活動圖掀序,針對與項目相關(guān)的企業(yè)活動,與領(lǐng)域?qū)<乙黄鹪O(shè)計流程
項目上線階段惭婿,可以用利用起始階段的活動圖作為集成測試的重要參考依據(jù)
項目維護階段森枪,企業(yè)管理人員可以通過活動圖了解企業(yè)現(xiàn)行的流程以及未來可以改善的方向。
四审孽、描述系統(tǒng)行為-用例圖
用例圖是用來描述什么角色通過某系統(tǒng)能做什么事情县袱。關(guān)注的是系統(tǒng)的外在表現(xiàn)、系統(tǒng)與人的交互佑力,系統(tǒng)與其他系統(tǒng)的交互式散。
基本語法:
小人:執(zhí)行者,可以是人打颤,也可以是系統(tǒng)暴拄。
圓圈:用例(動賓結(jié)構(gòu))
大框框:系統(tǒng)邊界
線條:關(guān)聯(lián),有三種编饺,無箭頭乖篷,指向執(zhí)行者的,指向用例的透且。箭頭的指向表明是數(shù)據(jù)的流向撕蔼。
做一個系統(tǒng)的時候,首先應(yīng)該考慮什么角色會用這個系統(tǒng)秽誊,不同的角色對系統(tǒng)有什么要求鲸沮。
例如:考勤系統(tǒng)
角色繼承
<<include>>說明包含的子用例
<<extend>>擴展,在锅论。讼溺。∽钜祝基礎(chǔ)上做怒坯。炫狱。。事情
每一個用例都會涉及到一個或多個業(yè)務(wù)信息剔猿。
使用類圖來描述所有業(yè)務(wù)及業(yè)務(wù)所涉及到的概念毕荐,以及概念所涉及到的關(guān)系,在每個用例表中只需要說明特別關(guān)注的內(nèi)容艳馒。
在用例圖的基礎(chǔ)上憎亚,再重點說清楚每個用例:
1.用例所涉及到的業(yè)務(wù)概念,業(yè)務(wù)規(guī)則弄慰。
2.用例的目標(biāo)第美,通過該用例用戶能做什么事情,達(dá)到怎樣的效果陆爽。
3.該用例的前置條件什往。
4.必須考慮的特殊情況。
設(shè)計系統(tǒng)時慌闭,首先要保證各個角色的基本功能别威。
當(dāng)設(shè)計中出現(xiàn)n多個用例圖時,比較好的組織是:
1.?畫一個表示宏觀需求的用例圖驴剔,該用例圖我會使用系統(tǒng)邊界省古,每個用例圈用比較高度概括的語言。
2.將宏觀用例圖分解為多個具體的用例圖丧失。
3.用例比較多豺妓,層次比較復(fù)雜時,分層次展開用例圖布讹。
4.用戶角色比較多的時候琳拭,先單獨畫出角色以及他們的關(guān)系,并用表格說明每個角色在本系統(tǒng)期望解決的問題描验,關(guān)注點等白嘁。
五、描述系統(tǒng)框架-部署圖膘流,構(gòu)件圖
功能性需求:描述系統(tǒng)的功能絮缅,即能做什么事情。
非功能性需求:對系統(tǒng)安全性睡扬,性能方面的要求盟蚣。
需求階段需要確定技術(shù)框架層次上的一些要求:
1.系統(tǒng)的技術(shù)選型:開發(fā)語言黍析,數(shù)據(jù)庫平臺卖怜。
2.系統(tǒng)部署在怎樣的服務(wù)器上,是原有的服務(wù)器上還是新采購的服務(wù)器阐枣,服務(wù)器需要怎樣的軟件马靠,硬件配置奄抽。
3.系統(tǒng)需要與原有的哪些系統(tǒng)進(jìn)行對接,將來要與哪些系統(tǒng)進(jìn)行對接甩鳄。
4.系統(tǒng)需要導(dǎo)入哪些數(shù)據(jù)逞度,需要和哪些系統(tǒng)同步數(shù)據(jù)。
5.客戶原有的IT平臺需要怎樣的改造妙啃,怎樣才能讓新系統(tǒng)運行的更好档泽,同時保障客戶原有系統(tǒng)的正常運行。
6.系統(tǒng)在安全性揖赴,性能方面需要達(dá)到怎樣的要求馆匿。
部署圖
部署圖可以做的工作:
1.用部署圖描述客戶當(dāng)前的IT環(huán)境架構(gòu)
2.用部署圖設(shè)計客戶改造后的IT環(huán)境架構(gòu)
需要說明的是,設(shè)計系統(tǒng)時燥滑,還應(yīng)該考慮用例的狀態(tài)渐北。記住三點:
1.流程不合理,可以考慮增加铭拧、刪減赃蛛,修改狀態(tài)來改善。
2.增加一個合適的新狀態(tài)搀菩,可能會解決很多問題呕臂。
3.但新增狀態(tài)的副作用就是增加流程的復(fù)雜度,可能會因此帶來其他問題肪跋。
六诵闭、考勤系統(tǒng)的設(shè)計
(一)整理系統(tǒng)的詳細(xì)需求,可以按照以下步驟完成:
1.制定本項目的戰(zhàn)略方針
2.分析系統(tǒng)的需要:目標(biāo)澎嚣、涉眾疏尿,待解決的問題、范圍易桃、項目成功標(biāo)準(zhǔn)等褥琐。
3.系統(tǒng)的業(yè)務(wù)概念,可以用類圖描述晤郑。
4.畫出關(guān)鍵流程的流程圖敌呈。
5.分析有什么角色會使用系統(tǒng),用用例圖描繪系統(tǒng)功能造寝,并挑幾個進(jìn)行用例表設(shè)計
6.部署圖和構(gòu)架圖描述系統(tǒng)在架構(gòu)上的要求
7.其他非功能性要求
8.以上磕洪,組織成需求文檔
(二)需求分析全過程:
戰(zhàn)略分析,需要分析诫龙,業(yè)務(wù)分析析显,需求細(xì)化
1.戰(zhàn)略分析:通過招投標(biāo)書,了解項目背景签赃。需要搞清楚:為什么會有這樣一個項目谷异?客戶為什么想要做這樣一個項目分尸?公司為什么會接這樣一個項目?公司在這個項目上的戰(zhàn)略是怎樣的歹嘹?是為了賺錢箩绍,還是積累客戶關(guān)系,還是積累業(yè)務(wù)尺上,積累技術(shù)材蛛?
2.需要分析:
目標(biāo):從招投標(biāo)書,合同怎抛,方案書等仰税,整理出項目的目標(biāo)。
涉眾及待解決問題:
涉眾分類:①系統(tǒng)用戶抽诉;②對該系統(tǒng)有商業(yè)決策權(quán)的人陨簇,如領(lǐng)導(dǎo);③系統(tǒng)會影響到的第三方迹淌,可能是為其他系統(tǒng)提供接口河绽,或者是需要采購某硬件
(就是梳理系統(tǒng)涉及的各部門的職能,各崗位的工作職責(zé))
(注意:需求調(diào)研對象往往提出的是解決方案唉窃,或者是需求規(guī)格級別的耙饰。)
--如何找出關(guān)鍵涉眾:
1.盡可能多的列出涉眾
2.列出每種涉眾待解決的問題
3.對于每一類的涉眾,都應(yīng)清除的說明系統(tǒng)是如何影響他的纹份,他是如何影響本系統(tǒng)的
范圍:從三個維度:①功能 ②與其他系統(tǒng)的關(guān)系 ③系統(tǒng)的地域使用范圍
項目成功標(biāo)準(zhǔn)(略)
3.業(yè)務(wù)分析:
可以從兩個角度來進(jìn)行業(yè)務(wù)分析苟跪,結(jié)構(gòu)建模和行為建模。
3.需求細(xì)化(需求規(guī)格):設(shè)計有價值的需求方案蔓涧。軟件要做什么樣的功能件已,要實現(xiàn)怎樣的效果,是根據(jù)客戶的需要元暴,理解和優(yōu)化客戶的業(yè)務(wù)設(shè)計出來的篷扩。
通常一個流程中的多個步驟均可提煉為用例障贸,多個用例組合起來能支撐某個流程祷舀。
(三)按照以上的需求分析方法,進(jìn)行該系統(tǒng)的分析:
⑴戰(zhàn)略分析
怎樣做戰(zhàn)略分析:
①項目背景:
甲方是怎樣一個公司赃份。
沒有該系統(tǒng)之前鸠姨,甲方是這樣工作的铜秆。
當(dāng)前的工作方式,出現(xiàn)了這樣的問題讶迁。
出現(xiàn)了连茧。。的導(dǎo)火索,以致于萌生了做這個系統(tǒng)的的想法梅屉,期望達(dá)到什么效果值纱。
②該項目能幫甲方實現(xiàn)哪些核心價值鳞贷。
生存需要坯汤,該項目關(guān)系到甲方生存問題。
核心發(fā)展需要搀愧,有利于甲方提高生產(chǎn)力和核心競爭力惰聂。
次要發(fā)展需要
錦上添花的需要
面子工程需要,有助企業(yè)或領(lǐng)導(dǎo)的政績
③該項目對甲方的重要性如何咱筛。
④要成功完成項目搓幌,甲方有哪些有利或不利的條件。
⑤要成功完成項目迅箩,乙方有哪些有利或不利的條件溉愁。
⑵.需要分析
目標(biāo):
涉眾:
一般來說,涉眾就是某一類角色饲趋。領(lǐng)導(dǎo)級別的通常會有:審批拐揭,(通過不通過),審核(審批是否合適)
范圍:
項目成功標(biāo)準(zhǔn):(需求奕塑,成本堂污,進(jìn)度,質(zhì)量)
⑶.業(yè)務(wù)概念分析
分兩步走:結(jié)構(gòu)建模和行為建模龄砰,即業(yè)務(wù)概念和業(yè)務(wù)流程盟猖。
利用類圖進(jìn)行業(yè)務(wù)概念分析,先識別出類换棚,再畫出類的屬性式镐,描繪出類之間的關(guān)系,再進(jìn)行抽象固蚤。
將事情抽象成類碟案。通常管理一個事情,除了管理流程颇蜡,還要管理一條或者多條數(shù)據(jù)价说。
考勤系統(tǒng)管理的事情有打卡、請假风秤、外出鳖目。(管理記錄就是管理事情)
分析業(yè)務(wù)時,要抓住與系統(tǒng)目標(biāo)相關(guān)的業(yè)務(wù)概念缤弦。
包括業(yè)務(wù)術(shù)語领迈、名詞解釋
在分析業(yè)務(wù)時,腦袋中會產(chǎn)生不同的方案,請記錄下來狸捅。
注意:客戶日常工作中用到的各種紙質(zhì)文件衷蜓、表格、圖表等尘喝。都是我們提煉業(yè)務(wù)概念的重要素材磁浇。日常工作的紙質(zhì)表格,特別是報表類的表格朽褪,含有統(tǒng)計信息置吓。要識別出哪些內(nèi)容是統(tǒng)計出來的,哪些內(nèi)容是原生的缔赠,要發(fā)現(xiàn)這些內(nèi)容的真正來源衍锚。
但凡做管理系統(tǒng),相關(guān)的制度文件是重要的需求來源嗤堰。研究這些制度文件時戴质,可能會發(fā)現(xiàn)一些不合理的地方,你需要和客戶商量優(yōu)化這些制度踢匣。
對于重要的類別告匠,可以用一個類表示,如請假類別符糊。
當(dāng)我們分析某某申請單之類的東西時凫海,該申請單在提出之后需要經(jīng)歷處理,該申請單往往隱含了“狀態(tài)變化”的信息男娄,需要識別出來行贪。
處理突發(fā)狀況的理有效方法,往往不是修改系統(tǒng)讓系統(tǒng)更強的模闲,而是思考一些管理辦法建瘫,設(shè)計一些緊急狀況應(yīng)對預(yù)案。
⑷.業(yè)務(wù)流程分析
處理突發(fā)狀況尸折,往往不是修改系統(tǒng)讓系統(tǒng)更強大啰脚,而是思考一些管理辦法。
對于多變的業(yè)務(wù)实夹,需要設(shè)計通過配置可以適應(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)限。通陈兜可以是一個角色對應(yīng)多個用戶祖灰。
繪制用例圖的時候,每種角色只需要畫出他獨特的可執(zhí)行的用例畔规。
一般來說局扶,角色是直接的上下級關(guān)系,上級角色可直接繼承下級角色油讯。
管理員功能:
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òu)或職位
2.管理系統(tǒng)權(quán)限:
a.設(shè)置系統(tǒng)的功能點,一般會按照“樹”的方式進(jìn)行組織狞玛。
b.設(shè)置系統(tǒng)角色软驰,并為每個角色分派功能點,表示該角色具備這些功能點的權(quán)限心肪。
c.為每一個用戶設(shè)置一個或者多個角色锭亏,這樣該用戶就具備一個或者多個權(quán)限
d.直接為每個用戶分派功能點。
”單點登錄“即一個系統(tǒng)登錄了硬鞍,其他系統(tǒng)不需要再登錄慧瘤。
②非功能性需求:
包括:軟件技術(shù)架構(gòu)方面的要求;安全性固该,易用性锅减,性能,接口等方面的要求伐坏。
善用客戶當(dāng)前的IT資源怔匣,減少客戶的負(fù)擔(dān),是我們規(guī)劃軟件技術(shù)架構(gòu)時需要考慮的桦沉。
MIS系統(tǒng)每瞒,即信息管理系統(tǒng)。
七纯露、如何編寫需求規(guī)格說明書
說明:需求文檔一般是和客戶確認(rèn)的文檔剿骨,
八、需求分析的團隊作戰(zhàn)
(一)如何在項目時間緊的情況下完成需求調(diào)研工作:
1.根據(jù)項目的合同苔埋,方案書的內(nèi)容懦砂,整理出項目的目標(biāo)、涉眾及關(guān)注點。
2.制定具體的需求調(diào)研計劃荞膘,并每天持續(xù)細(xì)化和更新罚随。每天上午在客戶處獲取原始需求,下午項目組全體一起整理需求羽资,并列出需要第二天確認(rèn)的問題淘菩。
3.分頭調(diào)研⊥郎可以將項目組(一個需求三個研發(fā)潮改,一個測試)分成亮嗓調(diào)研小組,每個小組成員負(fù)責(zé)不同的涉眾腹暖。每個小組通過需求調(diào)研問卷汇在,UML圖等方式獲取需求,并且獲取了大量的客戶提供的原始紙張和電子版資料脏答。
4.聚頭分析糕殉。各個小組通過類圖整理業(yè)務(wù)概念,通過活動圖等整理業(yè)務(wù)流程殖告,然后向其他小組通報阿蝶。各個小組相互印證各種獲取的需求,整合交叉部分內(nèi)容黄绩,找出矛盾點羡洁。
5.項目組共同編寫和維護一份需求文檔,每天添加新內(nèi)容爽丹,修改不合適的舊內(nèi)容筑煮。
最后的需求規(guī)格說明書需要去客戶方確認(rèn)簽字。
注意:軟件架構(gòu)設(shè)計需要把握高層次需求习劫。
(二) 需求分析師的工作重點:1.全面準(zhǔn)確獲取和提煉需求咆瘟。2.將需求傳遞給項目組成員,讓大家準(zhǔn)備無誤的理解需求诽里。(提不出問題是最大的問題)
關(guān)于開會:可以是在項目初期袒餐,項目特別緊張的時期,或者是感到問題特別多的時候谤狡,會議時間一般不超過15分鐘灸眼,會議主要內(nèi)容是讓大家說出工作中存在的問題,需要得到什么支援墓懂。
(三)快速分享需求建議:
1.要求開發(fā)人員根據(jù)需求準(zhǔn)備設(shè)計方案焰宣,開展技術(shù)研究工作等。
2.測試人員根據(jù)需求準(zhǔn)備測試方案捕仔,測試數(shù)據(jù)和環(huán)境等匕积。
3.要求實施人員根據(jù)需求準(zhǔn)備實施方案盈罐,模擬實施環(huán)境等。
(四)讓客戶持續(xù)參與:
1.需求文檔應(yīng)該一邊寫一邊和客戶確認(rèn)闪唆,最后來一個整體確認(rèn)盅粪。
2.讓客戶全方位全程參與,從客戶的高層領(lǐng)導(dǎo)悄蕾,中層干部票顾,基層員工中獲取和整理需求,并將這些需求系統(tǒng)的整理在一起帆调,再分別與之確認(rèn)奠骄,持續(xù)確認(rèn)。
(五)關(guān)于需求的確認(rèn):
(1)按照以下的順序來分批次確認(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í)行者分析以及用力分析民晒,用例可能會有幾十甚至上百個精居,也應(yīng)該分多次確認(rèn)
6.非功能性需求
7.全部需求
(2)最佳實踐建議:
1.與客戶的需求分析確認(rèn)過程是可持續(xù)的锄禽,各種確認(rèn)方式有如下:
a.需求調(diào)研表,客戶簽字
b.會議記錄靴姿,與會者簽字
c.郵件確認(rèn)
d.中間文件的確認(rèn)
2.項目組要主動與客戶確認(rèn)沃但,可用各種非正式確認(rèn)方式。
a.某次口頭溝通后佛吓,對達(dá)成一致的問題宵晚,整理出文檔Email與客戶確認(rèn)
b.確認(rèn)某業(yè)務(wù)概念或者流程后,將圖打印出來與客戶確認(rèn)维雇,讓客戶簽字淤刃。
3.從誰那里獲取需求,就向誰確認(rèn)
4.向客戶說明:項目組也需要簽字吱型,簽字不代表不可以變化逸贾,而是表示到簽字這刻為止,雙方達(dá)成一致理解津滞。
5.最后的確認(rèn)是由客戶某人作為代表铝侵,他的確認(rèn)是在他人確認(rèn)的基礎(chǔ)上進(jìn)行的,最后的確認(rèn)應(yīng)該是正式的確認(rèn)触徐。
總結(jié):需求分析工作可分解為三方面的工作
1.全部準(zhǔn)確的獲取需求
2.將獲取到的需求準(zhǔn)確的分享給項目組其他成員咪鲜,并根據(jù)他們的反饋進(jìn)一步完善需求
3.和客戶確認(rèn)項目組對需求的理解
驗證需求是否真正理解需求,可以自問幾個問題
http://www.woshipm.com/pmd/979525.html
1.業(yè)務(wù)對象清楚了沒有撞鹉?系統(tǒng)的用戶以及各功能模塊的用戶是誰是否清楚疟丙。
2.業(yè)務(wù)流程清楚了沒有颖侄?各環(huán)節(jié)的處理人以及處理動作是否清楚。
3.業(yè)務(wù)場景清楚了沒有享郊?每個需求的業(yè)務(wù)場景是否弄清楚发皿,所有需求的業(yè)務(wù)場景是否能連接在一起,在腦海中完整的形成一個故事拂蝎。
4.業(yè)務(wù)事項數(shù)量清楚了沒有穴墅?一共有多少個需求,一共有多少種角色温自,一共有多少張報表玄货,一共有多少個前置條件……
5.跨部門的業(yè)務(wù)關(guān)系清楚了沒有?這個部門與那個部門的關(guān)系以及產(chǎn)生的哪些業(yè)務(wù)往來是否清楚悼泌。