項(xiàng)目管理之建立模型

UML

Unified Modeling Language (UML)又稱(chēng)統(tǒng)一建模語(yǔ)言或標(biāo)準(zhǔn)建模語(yǔ)言,是始于1997年一個(gè)OMG標(biāo)準(zhǔn),它是一個(gè)支持模型化和軟件系統(tǒng)開(kāi)發(fā)的圖形化語(yǔ)言,為軟件開(kāi)發(fā)的所有階段提供模型化和可視化支持,包括由需求分析到規(guī)格,到構(gòu)造和配置。

十年前,UML很火,那時(shí)候絕對(duì)裝B利器,機(jī)子里面不裝一個(gè)Rapsody或rose啥的你都不敢出去裝架構(gòu)師。在入金這種強(qiáng)調(diào)敏捷開(kāi)發(fā)的時(shí)代,當(dāng)時(shí)再提uml的時(shí)候年輕的臉蛋上出現(xiàn)的都是WTF的表情。

今天在知乎的一個(gè)話(huà)題“ [UML 還有用嗎?]”上看到相關(guān)的討論 ,正方反方各有意見(jiàn)。我更認(rèn)同的看法是:

單純的分“有用”還是“沒(méi)用”,很容易陷入二元論的爭(zhēng)論,UML既不可能包打天下,也不可能是一無(wú)是處,我的看法是“有用,但不是很有用”。

任何工具的存在都應(yīng)該著眼于高效解決人們生活中遇到的問(wèn)題。在現(xiàn)在敏捷開(kāi)發(fā)的時(shí)代,項(xiàng)目已經(jīng)不可能一次性做到最終完美的狀態(tài)。但是敏捷開(kāi)發(fā)并不意味著還沒(méi)有建立起業(yè)務(wù)模型就開(kāi)始coding。

一些書(shū)籍、文章、博客大談“編碼的藝術(shù)”,很多也屬于概念不清,文中探討的根本不是編碼的技能,而是分析技能甚至是業(yè)務(wù)建模技能。編碼確實(shí)有編碼的技能,但到了編碼時(shí)還在思考訂單和商品、發(fā)票的關(guān)系是什么,相當(dāng)于護(hù)士已經(jīng)把注射器拿在手里了,還在思考病人可能是什么病,開(kāi)什么藥。

光喊口號(hào)“先做最重要的需求”是沒(méi)用的,你得知道哪些需求最重要。掌握業(yè)務(wù)建模技能,能幫助你準(zhǔn)確定位最重要的需求。光喊口號(hào)“分離變化”是沒(méi)用的,你知道哪些容易變,哪些不容易變嗎?掌握分析設(shè)計(jì)技能,能讓你看到變和不變的部分。

上面說(shuō)的是通過(guò)UML這個(gè)工具的使用可以幫助人對(duì)整個(gè)項(xiàng)目有在全局上的理解和把控。在團(tuán)隊(duì)開(kāi)發(fā)過(guò)程中,UML還可以起到降低溝通成本的作用。

團(tuán)隊(duì)的溝通效率遠(yuǎn)遠(yuǎn)勝過(guò)一個(gè)完美無(wú)瑕的方案?,F(xiàn)在在我的團(tuán)隊(duì)里面,溝通的時(shí)候,能站著說(shuō)的絕不坐著講,能再白板上畫(huà)圖說(shuō)明白的,絕不用ppt。

在這個(gè)基礎(chǔ)上,上古的UML給我們留下了不錯(cuò)的抓手。

UML定義了5類(lèi),10種模型圖

五種類(lèi)圖定義:

1.用例圖:從用戶(hù)角度描述系統(tǒng)功能,并指各功能的操作者。
2.靜態(tài)圖:包括類(lèi)圖,包圖,對(duì)象圖。
類(lèi)圖:描述系統(tǒng)中類(lèi)的靜態(tài)結(jié)構(gòu)
包圖:是包和類(lèi)組成的,表示包與包之間的關(guān)系,包圖描述系統(tǒng)的分層結(jié)構(gòu)
對(duì)象圖:是類(lèi)圖的實(shí)例
3.行為圖:描述系統(tǒng)動(dòng)態(tài)模型和對(duì)象組成的交換關(guān)系。包括狀態(tài)圖和活動(dòng)圖
活動(dòng)圖:描述了業(yè)務(wù)實(shí)現(xiàn)用例的工作流程
狀態(tài)圖:是描述狀態(tài)到狀態(tài)控制流,常用于動(dòng)態(tài)特性建模
4.交互圖:描述對(duì)象之間的交互關(guān)系
順序圖:對(duì)象之間的動(dòng)態(tài)合作關(guān)系,強(qiáng)調(diào)對(duì)象發(fā)送消息的順序,同時(shí)顯示對(duì)象之間的交互
合作圖:描述對(duì)象之間的協(xié)助關(guān)系
5.實(shí)現(xiàn)圖:
配置圖:定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)

10種模型圖

(1)、用例圖:展示系統(tǒng)外部的各類(lèi)執(zhí)行者與系統(tǒng)提供的各種用例之間的關(guān)系
(2)、類(lèi)圖:展示系統(tǒng)中類(lèi)的靜態(tài)結(jié)構(gòu)(類(lèi)是指具有相同屬性和行為的對(duì)象,類(lèi)圖用來(lái)描述系統(tǒng)中各種類(lèi)之間的靜態(tài)結(jié)構(gòu))
(3)、對(duì)象圖:是類(lèi)圖的一種實(shí)例化圖(對(duì)象圖是對(duì)類(lèi)圖的一種實(shí)例化)
(4)、包圖:是一種分組機(jī)制。在UML1.1版本中,包圖不再看作一種獨(dú)立的模型圖)
(5)、狀態(tài)圖:描述一類(lèi)對(duì)象具有的所有可能的狀態(tài)及其轉(zhuǎn)移關(guān)系(它展示對(duì)象所具有的所有可能的狀態(tài)以及特定事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移情況)
(6)、順序圖:展示對(duì)象之間的一種動(dòng)態(tài)協(xié)作關(guān)系(一組對(duì)象組成,隨時(shí)間推移對(duì)象之間交換消息的過(guò)程,突出時(shí)間關(guān)系)
(7)、合作圖:從另一個(gè)角度展示對(duì)象之間的動(dòng)態(tài)協(xié)作關(guān)系(對(duì)象間動(dòng)態(tài)協(xié)作關(guān)系,突出消息收發(fā)關(guān)系)
(8)、活動(dòng)圖:展示系統(tǒng)中各種活動(dòng)的執(zhí)行流程(各種活動(dòng)的執(zhí)行順序、執(zhí)行流程)
(9)、構(gòu)件圖:展示程序代碼的物理結(jié)構(gòu)(描述程序代碼的組織結(jié)構(gòu),各種構(gòu)件之間的依賴(lài)關(guān)系)
(10)、配置圖:展示軟件在硬件環(huán)境中(特別是在分布式及網(wǎng)絡(luò)環(huán)境中)的配置關(guān)系(系統(tǒng)中硬件和軟件的物理配置情況和系統(tǒng)體系結(jié)構(gòu))

用例圖

類(lèi)圖

對(duì)象圖


https://www.lookmw.cn/doc/epgvni.html

包圖


http://blog.csdn.net/kimylrong/article/details/40043389

狀態(tài)圖

http://www.cnblogs.com/sura/archive/2012/07/01/2572083.html

順序圖


http://blog.csdn.net/lishehe/article/details/8243806

合作圖


http://www.cnblogs.com/wolf-sun/p/UML-collaboration-diagram.html

活動(dòng)圖


http://www.uml.org.cn/oobject/201409092.asp

構(gòu)件圖


http://www.cnblogs.com/finehappy/archive/2009/11/24/1609352.html

配置圖


http://blog.csdn.net/fanxiaobin577328725/article/details/51657122

建模過(guò)程

  • 第一步:描述需求
  • 第二步:根據(jù)需求建立系統(tǒng)的靜態(tài)模型,以構(gòu)造系統(tǒng)的結(jié)構(gòu)
  • 第二步:描述系統(tǒng)的行為

其中第一步與第二步中所建立的模型都是靜態(tài)的,包括用例圖、類(lèi)圖(包括包圖)、對(duì)象圖、構(gòu)件圖和配置圖等六種圖。

第三步中所建立的模型或者可把執(zhí)行或者表示執(zhí)行時(shí)的時(shí)序狀態(tài)或交互關(guān)系,它包括狀態(tài)圖、活動(dòng)圖、順序圖和合作圖等四種圖。

可用以下常用視角來(lái)描述一個(gè)系統(tǒng):

  • (1)、系統(tǒng)的使用實(shí)例:從系統(tǒng)外部的操作者的解度描述系統(tǒng)的功能
  • (2)、系統(tǒng)的邏輯結(jié)構(gòu):描述系統(tǒng)內(nèi)部的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為,即從內(nèi)部描述如何設(shè)計(jì)實(shí)現(xiàn)系統(tǒng)功能
  • (3)、系統(tǒng)的構(gòu)成:描述系統(tǒng)由哪些程序構(gòu)件所組成
  • (4)、系統(tǒng)的并發(fā)性:描述系統(tǒng)的并發(fā)性,強(qiáng)調(diào)并發(fā)系統(tǒng)中存在的各種通信和同步問(wèn)題
  • (5)、系統(tǒng)的配置:描述系統(tǒng)的軟件和各種硬件設(shè)備之間的配置關(guān)系

startUml工具請(qǐng)參考 http://www.umlchina.com/Tools/Newindex1.htm

參考文檔

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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