基于UML的需求分析和系統(tǒng)設(shè)計

基于UML的需求分析和系統(tǒng)設(shè)計

原文地址:基于UML的需求分析和系統(tǒng)設(shè)計

一、項目開始階段

通過與用戶的訪談,確認(rèn)待開發(fā)系統(tǒng)“要做什么”,從企業(yè)角度研究:

  • 是否能做
  • 是否能盈利

抓住重點:

  • 項目的范圍:找出目前已存在的系統(tǒng),~是否提供了相關(guān)的集成接口。
  • 必要的業(yè)務(wù)流程:初期應(yīng)該捕捉“必要的”業(yè)務(wù)流程,避免對細(xì)節(jié)的研究。
  • 項目的技術(shù)限制:包括使用的技術(shù)以及其他系統(tǒng)間的交流接口規(guī)范。
  • 項目成功關(guān)鍵因素:了解利益相關(guān)方對整體項目成功與否最關(guān)切的問題是什么,并且評估問題和項目成敗的風(fēng)險是否相關(guān)。

上述四個重點,一開始就決定了項目是否會成功,如果項目開始就落入細(xì)節(jié)性的討論,反而容易造成項目的失敗。

二、需求分析階段

與客戶(領(lǐng)域?qū)<遥贤?,進(jìn)行需求的收集和分析,標(biāo)準(zhǔn)文書表達(dá),形成需求規(guī)格說明書,交由設(shè)計人員進(jìn)行后續(xù)的系統(tǒng)設(shè)計工作。
UML的用戶例圖是用于需要收集和表達(dá)的有力工具,但非易事,可能是零散的、沒有系統(tǒng)性的。
因此在分析用戶例前,可先對企業(yè)級的業(yè)務(wù)流程進(jìn)行規(guī)劃和設(shè)計,抓住企業(yè)的本質(zhì)工作流,為后續(xù)進(jìn)行詳細(xì)的需求收集和用例分析做好準(zhǔn)備。

1、業(yè)務(wù)流程設(shè)計

可以通過“企業(yè)級的用例”來完善工作流程規(guī)劃與設(shè)計,不過,大部分領(lǐng)域?qū)<覍Α坝美钡慕邮芏容^差,因此可用另一個工具進(jìn)行企業(yè)的建模,即Eriksson和Penker所提出的一個活動圖的構(gòu)造型,稱為“Eriksson-Penker業(yè)務(wù)擴展模型”

1)業(yè)務(wù)流程規(guī)劃--Eriksson-Penker業(yè)務(wù)擴展模型

Eriksson-Penker業(yè)務(wù)擴展模型是一種“目標(biāo)導(dǎo)向”的流程分析方式,主要是將與業(yè)務(wù)流程相關(guān)的重要人、事、物以及這個業(yè)務(wù)流程所要實現(xiàn)的目標(biāo)做一個鏈接,描述了企業(yè)重要的人、事、物與流程的關(guān)系。
在項目開始隊階段,需求分析人員可以通過“Eriksson-Penker業(yè)務(wù)擴展模型”找出要開發(fā)系統(tǒng)的重要性,利用“目標(biāo)導(dǎo)向 ”方式,對業(yè)務(wù)流程進(jìn)行適當(dāng)?shù)那懈睢?/p>

Eriksson-Penker業(yè)務(wù)擴展模型示例

2)業(yè)務(wù)流程分析--活動圖

表達(dá)業(yè)務(wù)流程的活動圖示例

2、需求收集--用例圖

業(yè)務(wù)流程相關(guān)的用例圖示例

三、系統(tǒng)設(shè)計階段

前一階段的主要產(chǎn)物是用例圖,后續(xù)的設(shè)計與開發(fā)都將以用例驅(qū)動,系統(tǒng)設(shè)計階段的主要工作,便是實現(xiàn)用戶例。

1、實現(xiàn)用例

實現(xiàn)用例的目的在于保證系統(tǒng)的設(shè)計可以滿足用戶的功能性需求,在實現(xiàn)用例過程種,應(yīng)該利用Jacobson所分類的三種分析類:

  • 控制對象:
  • 實體對象:
  • 邊界對象:

1)勾勒用例的控制對象

2)針對控制對象繪制序列圖

3)找出用戶例的實體對象

4)系統(tǒng)設(shè)計階段的開發(fā)流程

2、建立領(lǐng)域模型

上面的實體對象與領(lǐng)域模型的關(guān)系???

1)“領(lǐng)域模型”的概念

2)使用類圖表達(dá)領(lǐng)域模型

3)實際安全演示

(1)住出院系統(tǒng)業(yè)務(wù)流程

在項目立項之后,需求分析師與醫(yī)院的領(lǐng)域?qū)<彝ㄟ^面對面的訪談,整理出了醫(yī)院實際上的住院出院流程,并繪制成活動圖。


住出院系統(tǒng)業(yè)務(wù)流程

(2)住出院系統(tǒng)用例模型

需要分析師基于企業(yè)的業(yè)務(wù)流程圖,與領(lǐng)域?qū)<彝ㄟ^進(jìn)一步溝通,進(jìn)行需求的收集,最終繪制出用例圖。當(dāng)然下圖中沒有包含用例敘述。


住出院系統(tǒng)用例模型

(3)住出院系統(tǒng)領(lǐng)域模型

在得到用例圖之后,便進(jìn)入實現(xiàn)用例的階段,可以通過上一節(jié)所介紹的有三種分類找到問題領(lǐng)域工勤上的重要概念,從而得到領(lǐng)域模型,然后通過類圖來表達(dá)。
比如針對上一節(jié)用例圖中的“登記出院記錄”用例,通過分析可以得到一個控制對象(登記出院記錄BPO)和多個實體對象(病床、病人、醫(yī)生、護(hù)士、病癥等),并繪制成如下的類圖。

住出院系統(tǒng)領(lǐng)域模型

(4)包圖

通常領(lǐng)域模型中會包含很多的類,必須對這些類進(jìn)行分類,放置在不同的命名空間中,利用命名空間之間的關(guān)系圖,來限制住不同分類對象之間的訪問,這就是“包圖”的使用場景。
“包圖”是一個高階的視圖,由于所有的類都必須屬于某一個包,因此當(dāng)包之間的關(guān)系被限定時,該包內(nèi)部所有的類,都會受到包圖中設(shè)置的影響。

比如最基本的分類就是按照上面所說的三種分析類,對上面的領(lǐng)域模型,按照這種方式進(jìn)行分類,便可繪制出如下包圖:


包圖

3、表達(dá)對象交互

1)序列圖


登記出院記錄序列圖

2)通信圖


登記出院記錄通信圖

3)交互概述圖

4、表達(dá)微觀設(shè)計

1)對象圖


住出院系統(tǒng)對象圖

2)狀態(tài)機圖


病床狀態(tài)機圖

3)時間圖
過期取消預(yù)定時間圖

總結(jié)和展望

其它UML圖形:

  1. 總則圖
  2. 組合結(jié)構(gòu)圖
  3. 組建圖
  4. 部署圖

其它資源


建模工具說明

用例圖

用例圖是指由參與者(Actor)、用例(Use Case),邊界以及它們之間的關(guān)系構(gòu)成的用于描述系統(tǒng)功能的視圖。

參與者
參與者不是特指人,是指系統(tǒng)以外的,在使用系統(tǒng)或與系統(tǒng)交互中所扮演的角色。

用例
用例是對包括變量在內(nèi)的一組動作序列的描述,系統(tǒng)執(zhí)行這些動作,并產(chǎn)生傳遞特定參與者的價值的可觀察結(jié)果。用例是參與者想要系統(tǒng)做的事情。

系統(tǒng)邊界
系統(tǒng)邊界是用來表示正在建模系統(tǒng)的邊界,系統(tǒng)邊界在畫圖中用方框來表示。因為系統(tǒng)邊界的作用有時候不是很明顯,所以我個人理解,在畫圖時可省略。

箭頭
箭頭用來表示參與者和系統(tǒng)通過相互發(fā)送信號或消息進(jìn)行交互的關(guān)聯(lián)關(guān)系。箭頭尾部用來表示啟動交互的一方,箭頭頭部用來表示被啟動的一方,其中用例總是要由參與者來啟動。

UML建模工具

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

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

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