6.1 需求分析建模的要點(diǎn)與誤區(qū)
6.1.1 需求分析到底做什么
需求分析的任務(wù)不是分析系統(tǒng)如何實(shí)現(xiàn)用戶(hù)的需要镰官,而是對(duì)業(yè)務(wù)分析,形成一個(gè)體系完整,內(nèi)容清晰的業(yè)務(wù)框架眷细,以指導(dǎo)后續(xù)的設(shè)計(jì)開(kāi)發(fā)工作。
需求分析就是先分解鹃祖,再提煉溪椎,在這個(gè)過(guò)程中消除矛盾。
6.1.1.1 分解
現(xiàn)代需求工程理論更建議采用業(yè)務(wù)導(dǎo)向分解恬口,而非傳統(tǒng)的系統(tǒng)導(dǎo)向分解校读。
》業(yè)務(wù)流程為線索的分解結(jié)構(gòu)
這種結(jié)構(gòu)是以業(yè)務(wù)流程為主線索,對(duì)于聯(lián)機(jī)事務(wù)處理系統(tǒng)祖能,管理信息系統(tǒng)而言都是非常適用的方法歉秫。
》程序結(jié)構(gòu)為線索的分解結(jié)構(gòu)
這種分解結(jié)構(gòu)過(guò)早的進(jìn)入了程序結(jié)構(gòu),割裂了與問(wèn)題域之間的聯(lián)系芯杀,從醫(yī)導(dǎo)致對(duì)問(wèn)題研究不足的情況端考,從而降低需求質(zhì)量,增加變更風(fēng)險(xiǎn)揭厚。這種結(jié)構(gòu)適用于問(wèn)題不復(fù)雜却特,系統(tǒng)與問(wèn)題關(guān)聯(lián)性不強(qiáng)的情況,例如工具軟件筛圆,面向設(shè)備的系統(tǒng)等裂明。
》基于場(chǎng)景的分解結(jié)構(gòu)
對(duì)于決策支持系統(tǒng),面向用戶(hù)的嵌入式系統(tǒng)太援,就比較適合使用場(chǎng)景作為線索闽晦。這些場(chǎng)景向上可以總結(jié)成一系列關(guān)注點(diǎn)或功能域,向下可以分解成具體的決策步驟提岔。
》基于數(shù)據(jù)的分解結(jié)構(gòu)
》小結(jié)
選擇了合適的分解結(jié)構(gòu)之后仙蛉,就可以按其線索把需求規(guī)格說(shuō)明書(shū)大綱確定下來(lái)了,就知道應(yīng)該捕獲什么信息了碱蒙,信息捕獲回來(lái)之后就將其填充到大綱里荠瘪,并不斷驗(yàn)證。
6.1.1.2 提煉
分解是一種自頂向下的方法赛惩,按任何一種線索分解哀墓,都會(huì)破壞其他線索的完整性。所以還需要自底向上的方法進(jìn)行提煉喷兼,抽取出共性的部分篮绰,建立針對(duì)全局的領(lǐng)域模型。
6.1.1.3 消除矛盾
6.1.2 建模的目標(biāo)和要點(diǎn)
建模的過(guò)程比結(jié)果重要季惯。
建模是需求分析的主要手段吠各。但如果為了建模而建模臀突,它就會(huì)變成一個(gè)問(wèn)題,導(dǎo)致華而不實(shí)贾漏,造成溝通障礙惧辈。
6.1.2.1 建模的目的
建模的好處在于更好地理解正在開(kāi)發(fā)的系統(tǒng)。建模的目的在于幫助我們按照需要的樣式對(duì)系統(tǒng)進(jìn)行可視化磕瓷,提供一種詳細(xì)說(shuō)明系統(tǒng)的結(jié)構(gòu)或行為的方法盒齿,給出一個(gè)指導(dǎo)系統(tǒng)構(gòu)造的模板,對(duì)我們所做出的決策進(jìn)行文檔化困食。
6.1.2.3 建模的要點(diǎn)與原則
要點(diǎn):設(shè)計(jì)要文檔化边翁;用可視化的模型表達(dá)架構(gòu);不要為了建模而建模硕盹,如果模型不能對(duì)系統(tǒng)的構(gòu)建起到幫助作用符匾,那么就是一種人力資源的浪費(fèi)。
模型是用來(lái)溝通的瘩例,因此僅當(dāng)需要的時(shí)候才構(gòu)建模型啊胶。
6.1.3 選擇建模工具的要點(diǎn)
6.1.3.1 正確認(rèn)識(shí)建模方法論
建模的要點(diǎn)是根據(jù)要完成的任務(wù),選擇合適的建模工具垛贤。
6.1.3.2 正確認(rèn)識(shí)UML
》UML的發(fā)展歷史
》UML的準(zhǔn)確理解
》為什么要用UML建模
》如何選擇UML圖
6.2 周期一:理清框架與脈絡(luò)
任務(wù):理清需求的結(jié)構(gòu)框架(領(lǐng)域類(lèi)圖)焰坪,行為脈絡(luò)(流程圖和用例圖)。
輸入:需求定義階段產(chǎn)生的業(yè)務(wù)時(shí)間列表和報(bào)表列表聘惦。
輸出:領(lǐng)域模型和用例模型某饰。
該任務(wù)對(duì)應(yīng)于RUP中細(xì)化階段的第一次迭代,該階段的結(jié)束標(biāo)志是標(biāo)識(shí)除了絕大部分用例善绎,生成了領(lǐng)域模型黔漂。
6.2.1 業(yè)務(wù)流程分析
每個(gè)業(yè)務(wù)事件都是流程的觸發(fā),因此針對(duì)每個(gè)事件都應(yīng)該繼續(xù)做流程分析禀酱。不過(guò)根據(jù)流程的復(fù)雜度作出裁剪炬守,簡(jiǎn)單的流程可以只用文本描述,復(fù)雜的流程可以通過(guò)流程圖表示剂跟。
6.2.1.1 業(yè)務(wù)流程分析任務(wù)概述
業(yè)務(wù)流程分析减途,具體來(lái)說(shuō)就是識(shí)別,分析現(xiàn)有業(yè)務(wù)活動(dòng)浩聋,確定活動(dòng)之間的關(guān)系观蜗,了解活動(dòng)需要接受哪些信息臊恋,產(chǎn)生哪些數(shù)據(jù)衣洁,確定數(shù)據(jù)傳輸路線,標(biāo)識(shí)出活動(dòng)是由哪些部門(mén)抖仅,崗位負(fù)責(zé)坊夫。
分析過(guò)程中砖第,要注意抓住核心業(yè)務(wù)和主要活動(dòng)點(diǎn),部門(mén)之間的銜接环凿,工作中繁瑣梧兼,反復(fù),成本高智听,效率低羽杰,時(shí)間長(zhǎng),轉(zhuǎn)手多的活動(dòng)到推。
6.2.1.2 業(yè)務(wù)流程分析與流程管理理論的關(guān)系
業(yè)務(wù)流程是對(duì)信息系統(tǒng)進(jìn)行庖丁解牛的核心線索考赛。
》流程的六大特性:目標(biāo)性,內(nèi)在性莉测,整體性颜骤,動(dòng)態(tài)性,層次性捣卤,結(jié)構(gòu)性忍抽。
》工作流實(shí)現(xiàn)的本質(zhì)
》流程設(shè)計(jì)(BPD)的原則
1 流程應(yīng)該以產(chǎn)出為中心,而非任務(wù)為中心董朝。
2 讓需要得到流程產(chǎn)出的人自己執(zhí)行流程鸠项。一方面現(xiàn)在流程設(shè)計(jì)經(jīng)常引入自助的概念;第二個(gè)方面是任務(wù)應(yīng)該由誰(shuí)來(lái)執(zhí)行可以參照這一原則子姜。
3 將決策權(quán)放到更低的管理職位上锈锤,這樣會(huì)得到更高的效率。在需求分析時(shí)闲询,如果發(fā)現(xiàn)流程的決策點(diǎn)在較高的管理崗位上久免,就應(yīng)該注意它經(jīng)常會(huì)帶來(lái)執(zhí)行上的瓶頸,也就會(huì)影響系統(tǒng)的正常運(yùn)作扭弧。
4 流程多樣化阎姥。因?yàn)閳?chǎng)景不同,同一個(gè)業(yè)務(wù)事件可能會(huì)執(zhí)行不同的流程鸽捻,在系統(tǒng)開(kāi)發(fā)時(shí)呼巴,應(yīng)該充分考慮到。
5 單點(diǎn)接觸客戶(hù)御蒲。這一點(diǎn)充分體現(xiàn)了流程對(duì)外部客戶(hù)滿(mǎn)意度的關(guān)注衣赶,也是未來(lái)流程變化的一個(gè)常見(jiàn)趨勢(shì)。
》流程改進(jìn)(BPR)的ESIA策略
ESIA就是清除低效環(huán)節(jié)(E)厚满,簡(jiǎn)化瓶頸點(diǎn)(S)府瞄,整合資源(I),繁瑣任務(wù)自動(dòng)化(A)碘箍。
這些因素就是導(dǎo)致流程發(fā)生變化的主要原因遵馆。
6.2.1.3 業(yè)務(wù)流程分析的要點(diǎn)與產(chǎn)物
在進(jìn)行業(yè)務(wù)流程分析時(shí)鲸郊,有幾個(gè)關(guān)鍵點(diǎn):
》流程是有層次的
部門(mén)級(jí)是需求分析的主線索,崗位級(jí)是需求細(xì)節(jié)填充時(shí)的工作內(nèi)容货邓,組織級(jí)是對(duì)部門(mén)級(jí)流程的抽象概括秆撮。
》流程是有類(lèi)型的
主要類(lèi)型包括:
生產(chǎn)性流程:是流程中最重要的部分,通常也最容易標(biāo)識(shí)换况。
管理型流程:是對(duì)生產(chǎn)性流程的管控职辨,對(duì)質(zhì)量效率進(jìn)度等進(jìn)行控制的流程,容易忽略戈二。
支撐性流程:是對(duì)生產(chǎn)性流程的補(bǔ)充拨匆,通常是協(xié)作部門(mén),本部門(mén)員工執(zhí)行挽拂,也是容易丟失的部分惭每。
》流程分析的產(chǎn)物
應(yīng)該盡可能地使用模型來(lái)描述流程。最常使用的有三種:跨職責(zé)流程圖亏栈,活動(dòng)圖和數(shù)據(jù)流圖台腥。
跨職責(zé)流程圖:強(qiáng)調(diào)業(yè)務(wù)背景。Visio是最佳工具绒北。
活動(dòng)圖:強(qiáng)調(diào)對(duì)軟件開(kāi)發(fā)的指導(dǎo)黎侈。Rose,Together都是最佳工具之一闷游。
數(shù)據(jù)流圖:強(qiáng)調(diào)數(shù)據(jù)的流通加工和處理峻汉。Visio是最佳工具。
6.2.1.4 跨職責(zé)流程圖應(yīng)用基礎(chǔ)與要點(diǎn)
》元素
流程名稱(chēng)脐往,職責(zé)帶區(qū)休吠,流程階段,流程元素业簿。
》繪制要點(diǎn)
要保障繪制出來(lái)的流程圖是真實(shí)有效的瘤礁,就必須要強(qiáng)化用戶(hù)參與。
要善于梅尤,敢于拋棄細(xì)節(jié)柜思,不要過(guò)早鉆研到業(yè)務(wù)活動(dòng)的具體步驟中。
要拋棄一次成型的思路巷燥,使用迭代的方式赡盘,畫(huà)草搞,談問(wèn)題缰揪,改草搞陨享,再討論,再修正,直到達(dá)成共識(shí)霉咨。
所有職責(zé)帶區(qū)上的活動(dòng)都細(xì)化到具體的崗位。
每個(gè)活動(dòng)之間的關(guān)系都已經(jīng)沒(méi)有疑問(wèn)拍屑,都達(dá)成共識(shí)途戒。
6.2.1.5 活動(dòng)圖應(yīng)用基礎(chǔ)與要點(diǎn)
活動(dòng)圖就是可以支持并行行為的流程圖。
在完成活動(dòng)圖或跨職責(zé)流程圖之后僵驰,還需要注意:
》進(jìn)行瓶頸分析喷斋。
》進(jìn)行利益分析。
當(dāng)流程圖繪制完成之后蒜茴,花些時(shí)間進(jìn)行瓶頸和利益分析星爪,會(huì)有意想不到的收獲。
6.2.1.6 數(shù)據(jù)流圖應(yīng)用基礎(chǔ)
對(duì)于數(shù)據(jù)流為主線索的處理過(guò)程非常合適粉私。
》主要元素
》分層的數(shù)據(jù)流圖
6.2.2 業(yè)務(wù)實(shí)體分析
具體來(lái)說(shuō)顽腾,就是要了解這個(gè)問(wèn)題域中有哪些業(yè)務(wù)實(shí)體,它們之間存在什么樣的邏輯關(guān)系诺核,數(shù)量關(guān)系抄肖,以及有什么相應(yīng)的結(jié)構(gòu)規(guī)則。
6.2.2.1 業(yè)務(wù)實(shí)體分析任務(wù)概述
在領(lǐng)域建模過(guò)程中窖杀,更多地采用自底向上的方法漓摩,針對(duì)每一個(gè)業(yè)務(wù)事件或報(bào)表,分析類(lèi)圖片段入客,然后再將這些片段抽象管毙,提煉,合并桌硫,形成全局的領(lǐng)域模型夭咬。
實(shí)體分析的產(chǎn)物有兩種可選模型:類(lèi)圖,ER圖铆隘。推薦使用類(lèi)圖皱埠。
6.2.2.2 類(lèi)圖應(yīng)用基礎(chǔ)與要點(diǎn)
》面向?qū)ο笏枷?/p>
》類(lèi)的表示方法
》類(lèi)之間的關(guān)系:關(guān)聯(lián),泛化咖驮,組合边器。
》確定類(lèi)的主要職責(zé):屬性和方法。
領(lǐng)域模型(類(lèi)圖)托修,是自底向上合并出來(lái)的忘巧。
領(lǐng)域模型應(yīng)該遵循:拒絕實(shí)現(xiàn)細(xì)節(jié),大類(lèi)不拆分睦刃,子類(lèi)不合并砚嘴,同類(lèi)不抽象。
領(lǐng)域模型:以面向?qū)ο蟮囊暯强创F(xiàn)實(shí)世界,通過(guò)類(lèi)圖來(lái)描述事物之間的關(guān)系际长。因此主要工作是找出相關(guān)的類(lèi)耸采,以及他們之間的關(guān)系。
分析模型:分析模型是針對(duì)軟件系統(tǒng)分析工育,領(lǐng)域模型則偏重對(duì)業(yè)務(wù)分析虾宇。分析模型主要用到實(shí)體類(lèi),控制類(lèi)如绸,邊界類(lèi)嘱朽。
設(shè)計(jì)模型:設(shè)計(jì)模型將直接對(duì)編碼予以指導(dǎo)。
6.2.2.3 ER圖應(yīng)用基礎(chǔ)
ER圖的優(yōu)勢(shì)在于更好地跟數(shù)據(jù)庫(kù)設(shè)計(jì)結(jié)合怔接,缺點(diǎn)在于語(yǔ)義較類(lèi)圖更弱一些搪泳。
》數(shù)據(jù)建模過(guò)程
6.2.3 角色與使用場(chǎng)景分析
用例分析技術(shù),能更好地以用戶(hù)的角度扼脐,將系統(tǒng)當(dāng)作一個(gè)黑盒子岸军,了解并梳理需求,解釋如何使用系統(tǒng)(場(chǎng)景)瓦侮。
6.2.3.1 用例分析技術(shù)概述
用例分析技術(shù)凛膏,包含兩個(gè)部分:用例圖,用例描述脏榆。用例圖是目錄猖毫,用例描述是封裝所有需求的形式。
6.2.3.2 參與者與用例
參與者是一種角色须喂,可以是人吁断,可以是其他系統(tǒng),可以是硬件設(shè)備坞生,也可以是時(shí)鐘仔役,但一定要是在系統(tǒng)之外。
參與者是直接使用系統(tǒng)的最終用戶(hù)是己,任何間接與系統(tǒng)相關(guān)的人員是StakeHolder又兵,不是參與者。
6.2.3.3 用例圖
千萬(wàn)不要為了使用擴(kuò)展卒废,包含關(guān)系而使用他們沛厨。擴(kuò)展用例建模通常都是優(yōu)先級(jí)較低的事件。面向客戶(hù)的用例圖通常都不應(yīng)該出現(xiàn)包含關(guān)系摔认,這些事情應(yīng)該是在面向開(kāi)發(fā)團(tuán)隊(duì)時(shí)才進(jìn)行填充和歸納的細(xì)節(jié)逆皮。
6.2.3.4 用例的來(lái)源
如何從需求中歸納出用例呢?通常可以采用兩種方法:自頂向下導(dǎo)出法参袱,自底向上合并法电谣。
》自頂向下導(dǎo)出法
就是從流程圖中派生出用例圖秽梅。而流程圖是通過(guò)劃分主題域,再?gòu)闹黝}域標(biāo)識(shí)業(yè)務(wù)事件剿牺,然后通過(guò)業(yè)務(wù)事件繪制出來(lái)流程圖企垦。
拿到流程圖后,我們首先可以跟客戶(hù)進(jìn)行邊界確定和角色確定晒来,以得出表示系統(tǒng)邊界的用例圖钞诡。
1 邊界確定。首先排除掉不直接使用系統(tǒng)的崗位潜索。
2 確定角色臭增。對(duì)剩下的職責(zé)帶區(qū)進(jìn)行角色化懂酱。
3 確定用例竹习。用例是從職責(zé)帶區(qū)中的業(yè)務(wù)活動(dòng)中派生出來(lái)的。
4 繪制用例圖列牺。有了以上分析整陌,我們得到了角色,參與者瞎领,用例泌辫,就可以繪制出用例圖了。
》自底向上合并法
對(duì)于一些中小項(xiàng)目而言九默,流程并非涇渭分明震放,從流程開(kāi)始梳理會(huì)比較困難,就適合采用自底向上合并法驼修,從需求捕獲階段得到的需求列表著手殿遂,合并出需要的用例。
1 收集原始需求乙各。
2 確定參與者墨礁。
3 合并用例。
4 繪制用例圖耳峦。
用例的注意事項(xiàng):
1 用例圖的顆粒度取決于業(yè)務(wù)價(jià)值恩静。
2 用業(yè)務(wù)動(dòng)詞命名用例十分重要,不要在用新增xx蹲坷,修改xx驶乾,刪除xx,查詢(xún)xx了循签。
3 采用先事后人的方式分析轻掩,而非先人后事。
6.3 周期二:確定需求細(xì)節(jié)
這一階段的任務(wù)懦底,是對(duì)上一階段產(chǎn)出的用例模型和領(lǐng)域模型進(jìn)行細(xì)節(jié)填充唇牧。對(duì)于行為需求的用例罕扎,我們要填充事件流,包括:相關(guān)需求或功能點(diǎn)丐重,界面原型腔召,用例規(guī)則與約束。對(duì)于數(shù)據(jù)需求的領(lǐng)域類(lèi)扮惦,我們要填充字段與格式臀蛛,包括字段信息,字段格式與規(guī)則崖蜜,計(jì)算規(guī)則浊仆,結(jié)構(gòu)規(guī)則。
6.3.1 確定行為需求的細(xì)節(jié)
行為需求對(duì)應(yīng)的是“人豫领,事抡柿,物,接口”四大需求主線中的“事”等恐,這也是軟件功能需求的主體內(nèi)容洲劣。
6.3.1.1 用例的靈活運(yùn)用
行為需求可以分為四個(gè)類(lèi)型:業(yè)務(wù)功能,報(bào)表功能课蔬,接口囱稽,技術(shù)支持。
6.3.1.2 用例描述模板
對(duì)于行為用例來(lái)說(shuō)二跋,需要整理的內(nèi)容有事件流战惊,相關(guān)需求或功能點(diǎn),界面原型扎即,規(guī)則或約束四個(gè)方面吞获。
事件流分析:場(chǎng)景和用例的關(guān)系锋爪,類(lèi)似對(duì)象與類(lèi)之間的關(guān)系瘩欺,一個(gè)用例是對(duì)一組類(lèi)似場(chǎng)景的抽象儒鹿。而一個(gè)用例通常是一組事件流所構(gòu)成逻翁。
6.3.1.3 業(yè)務(wù)用例與系統(tǒng)用例
業(yè)務(wù)用例描述的是所有業(yè)務(wù)操作梧却,系統(tǒng)用例則只描述與系統(tǒng)相關(guān)的業(yè)務(wù)步驟了牛。要警惕將系統(tǒng)用例寫(xiě)成界面操作窒朋。
下面是機(jī)場(chǎng)checkin的業(yè)務(wù)用例與系統(tǒng)用例示范:
很明顯寓辱,2粮坞,3蚊荣,6,9都是跟系統(tǒng)無(wú)關(guān)的步驟莫杈,將他們?nèi)コ蠡ダ蛷臉I(yè)務(wù)用例得到了系統(tǒng)用例。
》創(chuàng)建業(yè)務(wù)用例的好處:避免開(kāi)發(fā)層面斷章取義筝闹,而使系統(tǒng)步驟融入到業(yè)務(wù)場(chǎng)景中媳叨;提供業(yè)務(wù)優(yōu)化的可能性腥光;更好設(shè)置未來(lái)的拓展點(diǎn)。
》事件流描述中糊秆,應(yīng)該保留主語(yǔ)武福。可以使用表格或者文字的方式痘番。
避免在用例事件流描述中出現(xiàn)實(shí)現(xiàn)細(xì)節(jié)捉片,分支結(jié)構(gòu),循環(huán)結(jié)構(gòu)汞舱。特別是不能出現(xiàn)多路分支結(jié)構(gòu)伍纫。
6.3.1.5 界面原型
》要點(diǎn):軟件需求規(guī)格里的用戶(hù)界面原型,是約束昂芜,建議莹规,而非解決方案。需求分析人員也只能給用戶(hù)界面設(shè)計(jì)提供依據(jù)说铃,而非設(shè)計(jì)访惜。
》不要忽略交互嘹履∧迳龋可以采取動(dòng)態(tài)原型的方式,也可以用狀態(tài)圖表示界面的流轉(zhuǎn)砾嫉。
》別讓界面掩蓋本質(zhì)幼苛。
6.3.1.6 規(guī)則與約束
規(guī)則是在實(shí)現(xiàn)時(shí)應(yīng)該考慮的東西,約束是對(duì)技術(shù)選擇時(shí)的限制條件焕刮。
》規(guī)則的類(lèi)型:業(yè)務(wù)規(guī)則舶沿,數(shù)據(jù)規(guī)則,界面規(guī)則配并。
業(yè)務(wù)規(guī)則:與業(yè)務(wù)邏輯相關(guān)的規(guī)則括荡。
數(shù)據(jù)規(guī)則:數(shù)據(jù)結(jié)構(gòu)層面上的規(guī)則。比如長(zhǎng)度溉旋,類(lèi)型等畸冲。
界面規(guī)則:用戶(hù)界面相關(guān)的規(guī)則。比如什么顏色的數(shù)據(jù)顯示不同的等級(jí)观腊。
》規(guī)則的層次
數(shù)據(jù)與界面規(guī)則通常都是微觀規(guī)則邑闲,而業(yè)務(wù)規(guī)則卻通常涉及宏觀微觀等多種不同層次,因此在組織時(shí)需要注意其中的差別梧油。
總之苫耸,對(duì)于規(guī)則與約束,有一個(gè)核心原則儡陨,就是“只寫(xiě)針對(duì)本用例的內(nèi)容”褪子。
6.3.1.7 基于stakeholder利益分析的需求挖掘
6.3.2 確定結(jié)構(gòu)需求細(xì)節(jié)
如果說(shuō)行為需求從用例模型中得出量淌,結(jié)構(gòu)需求就是從領(lǐng)域模型中得出。我們將從基本內(nèi)容和常見(jiàn)盲區(qū)兩個(gè)角度來(lái)說(shuō)明結(jié)構(gòu)需求的細(xì)節(jié)填充嫌褪。
6.3.2.1 基本內(nèi)容
》領(lǐng)域模型的組織
從領(lǐng)域模型的組織角度來(lái)說(shuō)类少,通常會(huì)首先按照主題域進(jìn)行第一次分解,一個(gè)主題域?qū)?yīng)一個(gè)領(lǐng)域模型渔扎,然后根據(jù)需要將各個(gè)主題域共性的領(lǐng)域類(lèi)抽取出來(lái)硫狞,形成全局公共領(lǐng)域類(lèi)模型。對(duì)于每個(gè)主題域內(nèi)的領(lǐng)域模型而言晃痴,涉及的領(lǐng)域類(lèi)可能還是很多残吩,就可以根據(jù)邏輯關(guān)系劃分為不同的包,每個(gè)包就是一個(gè)邏輯相關(guān)的領(lǐng)域類(lèi)圖的片段倘核。接著對(duì)每個(gè)片段進(jìn)行概述泣侮。就得到以下層次:
在xx類(lèi)中,我們就可以對(duì)每個(gè)領(lǐng)域類(lèi)做進(jìn)一步描述了紧唱。通常都是從“數(shù)據(jù)窗口分析”活尊,“數(shù)據(jù)組成與格式”,“派生數(shù)據(jù)的計(jì)算方法”三個(gè)角度進(jìn)行描述漏益。
》數(shù)據(jù)窗口分析
系統(tǒng)中的公共數(shù)據(jù)經(jīng)常成為工作交叉和沖突的地方蛹锰,對(duì)于這種情況,建議采用數(shù)據(jù)窗口的方式處理绰疤,即將公共屬性變成公共的铜犬,個(gè)性屬性仍然壓在各個(gè)模塊中。
》數(shù)據(jù)組成與格式
數(shù)據(jù)組成與格式包括:數(shù)據(jù)類(lèi)型轻庆,如int癣猾,char,boolean等余爆;長(zhǎng)度精度等信息纷宇。組成格式,如2位字母蛾方,6位數(shù)字等像捶。
》派生數(shù)據(jù)的計(jì)算方法
領(lǐng)域類(lèi)中,還可能涉及一些并非直接輸入的屬性转捕,他們的值是通過(guò)計(jì)算得出的作岖,例如訂單的總金額等。因此我們還需要為這些屬性生成規(guī)則五芝。通常通過(guò)決策表或決策樹(shù)的形式來(lái)描述他們痘儡。
6.3.2.2 常見(jiàn)盲區(qū)
與結(jié)構(gòu)需求相關(guān)的,還有一些相關(guān)的盲區(qū)枢步。
》數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)
對(duì)于一個(gè)領(lǐng)域類(lèi)而言沉删,不同的屬性它們的重要性渐尿,穩(wěn)定性,周期性都會(huì)影響到具體的開(kāi)發(fā)決策矾瑰,例如:主要字段與次要字段砖茸,穩(wěn)定字段和不穩(wěn)定字段,即時(shí)記錄與歷史記錄殴穴。
》數(shù)據(jù)使用特點(diǎn)
》非功能要求
6.3.3 周期二的產(chǎn)物
完整的用例描述凉夯,完整的領(lǐng)域類(lèi)細(xì)節(jié),界面流轉(zhuǎn)圖采幌,頁(yè)面原型劲够。
6.4 其他需求分析
其他需求包括:接口需求,全局性的非功能需求和全局性的設(shè)計(jì)約束休傍。
6.4.1 接口需求
哪里有分解征绎,哪里就有接口。當(dāng)標(biāo)識(shí)出接口之后磨取,千萬(wàn)不要談及接口的設(shè)計(jì)和實(shí)現(xiàn)人柿,從需求的角度來(lái)說(shuō),接口的重點(diǎn)應(yīng)該從使用者忙厌,內(nèi)容與格式凫岖,設(shè)計(jì)約束與要求三個(gè)方面展開(kāi)。
6.4.1.1 使用者
在描述接口使用者時(shí)慰毅,可以從以下角度進(jìn)行說(shuō)明:
》使用者名稱(chēng)隘截,羅列出該接口的外部使用者扎阶。
》業(yè)務(wù)目的汹胃,說(shuō)明使用者通過(guò)該接口實(shí)現(xiàn)什么樣的業(yè)務(wù)。
》使用時(shí)機(jī)东臀,說(shuō)明使用者將在什么場(chǎng)景中使用該接口着饥。
》使用頻率,描述各類(lèi)使用者調(diào)用該接口的頻率惰赋。
6.4.1.2 內(nèi)容與格式
6.4.1.3 設(shè)計(jì)約束
對(duì)接口實(shí)現(xiàn)時(shí)必須考慮的約束條件或設(shè)計(jì)要求宰掉,內(nèi)容比較廣泛,例如協(xié)議格式要求赁濒,性能要求轨奄,環(huán)境限制等。
6.4.2 非功能需求的追蹤
6.4.2.1 質(zhì)量特性分析
在組織非功能需求類(lèi)型時(shí)拒炎,可以參考相關(guān)的質(zhì)量特性標(biāo)準(zhǔn)挪拟,其中最常用的有ISO/IEC 9126軟件質(zhì)量模型 和 McCall軟件質(zhì)量模型。也可以根據(jù)自己項(xiàng)目的特點(diǎn)击你,關(guān)注重心來(lái)確定玉组。接下來(lái)我們將介紹ISO/IEC 9126定義的6類(lèi)21項(xiàng)質(zhì)量屬性進(jìn)行簡(jiǎn)要分析谎柄。
》功能性
》可靠性
》易用性
》效率
》可維護(hù)性
》可移植性
6.5 小結(jié)
SERU方法的核心,就是從“事惯雳,物朝巫,人,接口”四個(gè)主線著手石景,沿著業(yè)務(wù)脈絡(luò)(業(yè)務(wù)主題域-業(yè)務(wù)事件/流程-業(yè)務(wù)活動(dòng)-業(yè)務(wù)步驟)進(jìn)行分解劈猿,構(gòu)建(構(gòu)件-流程圖-用例-事件流),實(shí)現(xiàn)需求分析潮孽。