讀書筆記 21| 《火球UML 大戰(zhàn)需求分析》

《火球UML 大戰(zhàn)需求分析》

說起UML還是我們軟件工程大四的一門專業(yè)課,當(dāng)時(shí)只覺得7類圖表的功能和應(yīng)用場(chǎng)景老師講的干硬和生澀,至今差不多連本帶利的都還給老師了,找到了《火球UML 大戰(zhàn)需求分析》的PDF電子書,一來為應(yīng)對(duì)CBAP的考試涉及的UML相關(guān)圖的內(nèi)容,二來想對(duì)存的需求分析書再細(xì)讀一遍理解需求工程的奧義。

UML 三個(gè)字母的全稱 Unified Modeling Language 統(tǒng)一建模語言,通常用來做軟件需求分析,直接用到的有如類圖、順序圖、活動(dòng)圖、用例圖等。是需求工程師和業(yè)務(wù)分析師BA用的最多的工具和方法。

UML大致可以分為兩類:結(jié)構(gòu)型的圖行為型的圖,其中結(jié)構(gòu)型的圖(類圖、對(duì)象圖、構(gòu)建圖、部署圖、包圖)、行為型的圖(活動(dòng)圖、狀態(tài)機(jī)圖、順序圖、通信圖、時(shí)序圖),結(jié)構(gòu)型的圖通常為“靜態(tài)”的,而行為型的圖通常為“動(dòng)態(tài)”的。

UML圖

Think in UML??

需求分析的面面觀:從客服方或是軟件公司方,每種角色都會(huì)從自身角色出發(fā)來理解需求,以至各種角色對(duì)需求的理解會(huì)不太一樣。

把握客戶需要的同時(shí),往往需要做業(yè)務(wù)流程再造(BPR ,Business Process Reengineering),對(duì)業(yè)務(wù)概念等 靜態(tài)結(jié)構(gòu)進(jìn)行系統(tǒng)化的梳理和提煉,叫結(jié)構(gòu)建模,對(duì)業(yè)務(wù)流程等動(dòng)態(tài)內(nèi)容進(jìn)行系統(tǒng)化的梳理和提煉,稱為行為建模。

類圖: 類名+屬性 + 操作? ,類可以是一對(duì)一的關(guān)系,也可以是1對(duì)多的關(guān)系, 箭頭表示方向

“包含”關(guān)系:空心菱形或是實(shí)心菱形,實(shí)心表示包含的程度更強(qiáng)烈一些。(如部門包含 員工)

“繼承”關(guān)系:空心三角形,箭頭指向被繼承對(duì)象。(如兒子繼承父親)

“依賴”關(guān)系:虛線接頭,指向被依賴對(duì)象。(如煙鬼依賴香煙)

活動(dòng)圖: 通常包含開始狀態(tài)、結(jié)束狀態(tài)、活動(dòng)、判斷、合并等,或通過泳道隔離各不同角色的流程操作狀態(tài)?;顒?dòng)圖將流程分解為一個(gè)一個(gè)活動(dòng),通過活動(dòng)的先后順序來展示流程;

狀態(tài)機(jī)圖:從某個(gè)事物的狀態(tài)是如何變化的角度來展示流程。

順序圖:角色+生命線+激活框 + 消息+ 返回值。

順序圖的特點(diǎn):1.強(qiáng)調(diào)角色之間的交互,信息傳遞很明確;2.強(qiáng)調(diào)按時(shí)間順序分別發(fā)生了什么事情 3. 不太適合表達(dá)復(fù)雜的特殊流程(循環(huán)分支、條件分支、可選分支);

活動(dòng)圖的特點(diǎn):1.強(qiáng)調(diào)每個(gè)角色做了什么事情,這些事情的先后關(guān)系;2.適合表達(dá)各種特殊流程,如分支、并發(fā)等。

狀態(tài)機(jī)圖的特點(diǎn):1.事情圍繞東西展開;2, 該東西有不同的狀態(tài),狀態(tài)會(huì)因?yàn)榘l(fā)生了一些事情而變化。

用例圖:執(zhí)行者+ 用例+系統(tǒng)邊界 + 關(guān)聯(lián)? ?(角色的繼承,用例的include,用例的extend,用例的繼承)

部署圖:主要的目的是再物理的層次上做整體的系統(tǒng)規(guī)劃,與網(wǎng)絡(luò)拓?fù)鋱D相似,但部署圖可以在網(wǎng)絡(luò)拓?fù)涞幕A(chǔ)上繼續(xù)喜歡設(shè)計(jì)。

包圖: 包是一個(gè)容器,可以放任意UML圖。

需求分析全過程的活動(dòng)圖

“需求驅(qū)動(dòng)”項(xiàng)目團(tuán)隊(duì)具備以下三個(gè)條件:

1. 項(xiàng)目組中的需求工作負(fù)責(zé)人,能全面把握需求,并能指導(dǎo)其他成員的工作。

2.項(xiàng)目組全體成員對(duì)項(xiàng)目的“需要”達(dá)成一致的理解;

3. 項(xiàng)目組各成員對(duì)自己負(fù)責(zé)的“細(xì)化需求(功能性需求和非功能性需求)”理解正確,并且知道什么“需要”驅(qū)動(dòng)這些“細(xì)化需求”,什么業(yè)務(wù)概念和流程對(duì)應(yīng)這些“細(xì)化需求”。

高效完成需求分析工作的措施:

1.根據(jù)項(xiàng)目的合同、方案書的內(nèi)容,整理出項(xiàng)目的目標(biāo)、涉眾及其關(guān)注點(diǎn);

2.根據(jù)第1點(diǎn)的內(nèi)容,定制具體的需求調(diào)研計(jì)劃,并每天持續(xù)細(xì)化和更新;

3.分頭調(diào)研;

4.聚頭分析;

5. 項(xiàng)目組共同編寫和維護(hù)一份需求文檔,每天添加新內(nèi)容,修改不合適的舊內(nèi)容。

本書的不同之處在于把每個(gè)圖的功能都通過具體的實(shí)例和圖形形象的表達(dá)出來了,且通過大型軟件系統(tǒng)的項(xiàng)目實(shí)踐聯(lián)系各個(gè)圖的場(chǎng)景使用,最后的第十章(考勤系統(tǒng)的需求分析)和第十一章(需求分析的團(tuán)隊(duì)作戰(zhàn))都非常的接地氣,相信一般從軟件需求入手和分析都是大家會(huì)經(jīng)歷的過程,作者給的關(guān)于需求驅(qū)動(dòng)和團(tuán)隊(duì)高效的實(shí)踐建議非常值得學(xué)習(xí)和借鑒,贊一個(gè),最后回顧總結(jié)一下,好書不厭百回讀,下次再讀又是新領(lǐng)悟。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容