UML需求分析之類圖

UML分類

UML(unified Modeling Language)統(tǒng)一建模語言UML除了用于軟件設(shè)計(jì)买鸽,還能用于需求分析很泊,在實(shí)際工作中UML恰恰是溝通的良好橋梁。UML能直觀栽烂、形象胚吁、描述出業(yè)務(wù)概念,業(yè)務(wù)流程书聚,客戶的期望和需求唧领。UML官方資料是很枯燥,語法多雌续,實(shí)際工作中用到的語法并不多斩个,我本科軟件工程,學(xué)校開了UML的課驯杜,當(dāng)時(shí)并沒有很好吸收受啥,工作后重新回顧,我寫的的這一系列主要用于需求分析方面。

我們要知道任何工具只是輔助工具滚局,學(xué)習(xí)UML關(guān)鍵在于改變思維習(xí)慣居暖,多鍛煉面向?qū)ο蠓治瞿芰Α?/p>

  • UML在實(shí)際中分為下面兩種類別:
分類

我們可以利用結(jié)構(gòu)型的UML圖對(duì)客戶業(yè)務(wù)進(jìn)行結(jié)構(gòu)建模(靜態(tài)),利用行為型的UML圖進(jìn)行行為建模(動(dòng)態(tài))藤肢,這些建奶耄活動(dòng)將幫助我們更好地認(rèn)識(shí)客戶的業(yè)務(wù)和做好業(yè)務(wù)流程再造的工作。

需求分析流程

類圖

面向?qū)ο?/h3>
類圖
  • ”+“ 表示public - 表示private嘁圈,軟件分析不用理會(huì)全畫成+ 就可以省骂;
  • 類圖包含類名,屬性最住,操作钞澳;

關(guān)聯(lián)關(guān)系

關(guān)聯(lián)關(guān)系

如果覺得兩個(gè)業(yè)務(wù)概念之間有關(guān)系但又不確定具體是什么就可以先畫一條線連接起來,為了排版我們也可以用折線涨缚;

  • x..y 意思x到y(tǒng)個(gè),x < y
    • 表示0到多個(gè)
  • 如果A類有一個(gè)成員變量保存的是類B的引用轧粟,也就是說類A可以找到類B,需求分析角度來說就是業(yè)務(wù)概念A(yù)可以找到B

包含關(guān)系(聚合/組合關(guān)系)

包含關(guān)系

空心菱形表示聚合關(guān)系脓魏,實(shí)心菱形表示組合關(guān)系逃延,我們用的時(shí)候可以用“弱”“強(qiáng)”包含關(guān)系來記或者理解;

  • “弱”包含指部門沒了轧拄,員工也還在揽祥,或者員工可以有多個(gè)部門,”強(qiáng)“包含指部門沒了檩电,員工也不在拄丰,而且員工只能有一個(gè)部門;
  • 同樣*的用法和上面一樣俐末,如果沒有表示1料按;

泛化關(guān)系(繼承)

泛化關(guān)系

學(xué)生,老師都”繼承“了員工的屬性卓箫,同時(shí)也有自己的屬性载矿,可以理解為老師,學(xué)生是員工的一種烹卒。在實(shí)際的軟件需求分析工作中闷盔,我們往往有兩種認(rèn)識(shí)事物的角度,我們以員工旅急、學(xué)生逢勾、講師的關(guān)系為例子來說明。

  • 角度一:在培訓(xùn)現(xiàn)場(chǎng)藐吮,我們看到的是學(xué)生和講師溺拱,后來你發(fā)現(xiàn)逃贝,原來講師是內(nèi)部員工來的!于是你可以從學(xué)生和講師這兩個(gè)類出發(fā),發(fā)現(xiàn)學(xué)生和講師其實(shí)都是員工!
  • 角度二:作為這個(gè)公司的領(lǐng)導(dǎo)迫摔,希望公司形成一一種學(xué)習(xí)和進(jìn)步的風(fēng)氣沐扳,促進(jìn)公司的進(jìn)步,于是領(lǐng)導(dǎo)希望員工之間能互相分享知識(shí)和經(jīng)驗(yàn)句占。從這個(gè)角度看來沪摄,領(lǐng)導(dǎo)先想到的是員工,然后再進(jìn)一步發(fā)現(xiàn)員工可以當(dāng)學(xué)生也可以當(dāng)講師辖众。

依賴關(guān)系

依賴

虛線箭頭就是依賴(Dependency)關(guān)系卓起,說明A依賴B和敬,就像煙鬼依賴香煙凹炸。但依賴程度是相對(duì)而言,不一定是A沒有B就不能“生存了”昼弟,具體業(yè)務(wù)邏輯中啤它,對(duì)于某件事情得A需要B的協(xié)助才能完成也是一種依賴關(guān)系;

”遞歸“關(guān)系

描述文件夾與文件的關(guān)系可以如下圖


image

如果是文件夾下的文件夾下還有文件夾呢舱痘?


image

無論是弱包含還是強(qiáng)包含变骡,都可以“自包含”。除了“自包含”可以形成“遞歸”芭逝,其實(shí)直線關(guān)系同樣是可以指向自己的塌碌,這個(gè)叫“自關(guān)聯(lián)”,這樣也形成了“遞歸”關(guān)系
image

這種“遞歸”結(jié)構(gòu)旬盯,一旦展開就會(huì)形成一棵樹型的結(jié)構(gòu)台妆。需求分析時(shí)如果發(fā)現(xiàn)樹型的業(yè)務(wù)結(jié)構(gòu),你可以考慮使用“自包含”或者“自關(guān)聯(lián)”來分析胖翰。其實(shí)“自包含”接剩、“自關(guān)聯(lián)”的說法是不嚴(yán)謹(jǐn)?shù)模皇欠奖阌洃浐屠斫馊龋瑢?shí)際上具體的一個(gè)文件夾是不會(huì)包含自己的懊缺。這里我們需要進(jìn)一一步理解類圖中的每-一個(gè)類所代表的意義,一個(gè)類并不是指具體的一個(gè)業(yè)務(wù)對(duì)象培他,一個(gè)類泛指屬于這個(gè)類的任意一個(gè)業(yè)務(wù)對(duì)象鹃两。

”三角“關(guān)系

當(dāng)列出公司,雇員至少3個(gè)屬性舀凛,我們就會(huì)思考薪金是雇員的關(guān)鍵屬性嗎怔毛?崗位?合同期腾降?公司與雇員在法律上是怎么確立的拣度?那么會(huì)想到公司會(huì)和雇員簽署勞務(wù)合同,那這三者是什么關(guān)系?


三者關(guān)系

要識(shí)別出能表征兩個(gè)類關(guān)系的關(guān)聯(lián)類抗果,難度是有點(diǎn)高筋帖,有這樣的-些步驟:

  • 如果覺得兩個(gè)類有關(guān)系,則先拉上一條直線再說冤馏。
  • 如果覺得兩個(gè)類有關(guān)系日麸,但怎樣畫都覺得這個(gè)關(guān)系不太合適,那么可以思考是不是漏了一個(gè)關(guān)聯(lián)類逮光。
  • 分別列出這兩個(gè)類的關(guān)鍵屬性代箭,思考這些屬性的屬性值是不是由該類本身就可以確定了。例如:如果我們最開始將薪金作為員工的屬性涕刚,那么你可以思考薪金的具體數(shù)字嗡综,是不是員工自已本身可以確定的?你會(huì)發(fā)現(xiàn)薪金其實(shí)是由公司和員工商定后確定的,并不是員工自已本身可以決定杜漠。
  • 通過對(duì)屬性的思考极景,可能會(huì)發(fā)現(xiàn)這個(gè)屬性應(yīng)該是屬于另外-一個(gè)類的,思考這個(gè)類是不是能表征原來兩個(gè)類關(guān)系的關(guān)聯(lián)類驾茴。


    image

這個(gè)圖可能最體現(xiàn)它們的“三角”關(guān)系了盼樟,關(guān)聯(lián)類也可以表達(dá)成這樣的方式。但我在實(shí)際工作還是以關(guān)聯(lián)類的方式來表達(dá)锈至,我覺得關(guān)聯(lián)類的表達(dá)方式更加貼切和專業(yè)一點(diǎn)晨缴。在具體的需求分析工作中,如果發(fā)現(xiàn)三個(gè)類形成了類似該圖的“三角”關(guān)系峡捡,你可以思考其中一個(gè)類是不是可能是關(guān)聯(lián)類击碗,但要注意并不是凡是出現(xiàn)了“三角”關(guān)系就一定會(huì)有關(guān)聯(lián)類。

類圖的最大魅力在于幫助你發(fā)掘和提煉業(yè)務(wù)模型棋返,其他的非UML圖可能是做不到的延都。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市睛竣,隨后出現(xiàn)的幾起案子晰房,更是在濱河造成了極大的恐慌,老刑警劉巖射沟,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件殊者,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡验夯,警方通過查閱死者的電腦和手機(jī)猖吴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挥转,“玉大人海蔽,你說我怎么就攤上這事共屈。” “怎么了党窜?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵拗引,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我幌衣,道長(zhǎng)矾削,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任豁护,我火速辦了婚禮哼凯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘楚里。我一直安慰自己断部,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布腻豌。 她就那樣靜靜地躺著家坎,像睡著了一般嘱能。 火紅的嫁衣襯著肌膚如雪吝梅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天惹骂,我揣著相機(jī)與錄音苏携,去河邊找鬼。 笑死对粪,一個(gè)胖子當(dāng)著我的面吹牛右冻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播著拭,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼纱扭,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了儡遮?” 一聲冷哼從身側(cè)響起乳蛾,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鄙币,沒想到半個(gè)月后肃叶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡十嘿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年因惭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绩衷。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蹦魔,死狀恐怖激率,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情勿决,我是刑警寧澤柱搜,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站剥险,受9級(jí)特大地震影響聪蘸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜表制,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一健爬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧么介,春花似錦娜遵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至久脯,卻和暖如春纳胧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背帘撰。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工跑慕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人摧找。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓核行,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親蹬耘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子芝雪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容