? ? ? ? ?之前在做需求分析的時(shí)候幔虏,看到不少的朋友在對(duì)UML的各種圖高談闊論和說(shuō)得頭頭是道,很是羨慕,但當(dāng)問(wèn)及究竟什么是UML的時(shí)候礼旅,給的答案總是讓人感覺(jué)到高深莫測(cè)的樣子。后來(lái)也到度娘上去各種搜索洽洁,也是云里霧里的痘系,不知所云。不知道是技術(shù)原因還是需求分析底子不夠的原因饿自,總之是各種的困惑汰翠。后來(lái)在一個(gè)產(chǎn)品群的推薦下,讀了這本書(shū)昭雌,終于豁然開(kāi)朗复唤,就算沒(méi)有技術(shù)背景也沒(méi)有關(guān)系噢,這本書(shū)更多是從業(yè)務(wù)烛卧、從需求分析的角度來(lái)解讀何為UML佛纫,書(shū)中系統(tǒng)全面的UML知識(shí)的介紹、各種大大小小的案例总放,除了增強(qiáng)自己對(duì)UML的理解之外呈宇,更是增強(qiáng)了對(duì)業(yè)務(wù)概念、需求分析的理解局雄,同時(shí)還會(huì)額外的獲得一些技術(shù)上的知識(shí)噢甥啄,這是個(gè)驚喜哈。我認(rèn)為對(duì)需求分析人員而言炬搭,這是值得讀的一本書(shū)蜈漓,淺入深出,逐步的深入構(gòu)建自己的UML知識(shí)體系宫盔。
? ? ? ? 本書(shū)一共分為12章融虽,按照總-分-總的結(jié)構(gòu)來(lái)介紹UML的概念和知識(shí),先總體介紹何為UML以和所包含哪些分類及這些分類的基本概念灼芭、圖例有额;然后再逐一介紹每一個(gè)分類的具體概念和含義以及應(yīng)用在實(shí)際案例中會(huì)是什么樣的;最后的時(shí)候補(bǔ)充一些不常用的UML圖,并且把所有的UML圖統(tǒng)一在一起做了個(gè)UML的全家福的圖谆吴。第1章“大話UML”倒源,主要是進(jìn)行UML知識(shí)掃盲,只要閱讀完本章句狼,就能從宏觀上掌握UML的知識(shí)笋熬,在腦袋中形成一張UML的藍(lán)圖,能全面了解UML的基本知識(shí)腻菇、UML各種圖的用途和概況胳螟,能和實(shí)際工作中遇到的問(wèn)題聯(lián)系起來(lái),幫助讀者進(jìn)行下一步的學(xué)習(xí)筹吐。
? ? ? ? UML這三個(gè)字母的全稱是UnifiedModeling Language糖耸,直接翻譯就是統(tǒng)一建模語(yǔ)言,簡(jiǎn)單的說(shuō)就是一種有特殊用途的語(yǔ)言丘薛。UML除了應(yīng)用于軟件設(shè)計(jì)嘉竟,應(yīng)用于軟件需求分析時(shí)其學(xué)習(xí)門檻會(huì)大大的降低,同時(shí)會(huì)讓需求分析工作更上一層樓洋侨。
? ? ? ? UML有很多種圖舍扰,大體可以分為兩類:結(jié)構(gòu)型的圖和行為型的圖。顧名思義希坚,結(jié)構(gòu)型的圖描述得是某種結(jié)構(gòu)边苹,這種結(jié)構(gòu)在某時(shí)間段內(nèi)應(yīng)該是穩(wěn)定的、“靜態(tài)”的裁僧;而行為型的圖描述得某種行為个束,是“動(dòng)態(tài)”的。分析系統(tǒng)需求是聊疲,我們會(huì)面臨很多的業(yè)務(wù)概念茬底,它們之間會(huì)有某些關(guān)系,這些內(nèi)容可以看成是“靜態(tài)”的售睹,我們可以利用UML的結(jié)構(gòu)型的圖來(lái)分析桩警;同時(shí),業(yè)務(wù)會(huì)設(shè)計(jì)大量的流程昌妹、過(guò)程等,這些內(nèi)容是“動(dòng)態(tài)”的握截,我們可以用行為型的UML圖來(lái)分析飞崖。結(jié)構(gòu)型的圖包含:類圖、對(duì)象圖谨胞、構(gòu)件圖固歪、部署圖、包圖,其中類圖是重點(diǎn)牢裳;行為型的圖包含:活動(dòng)圖逢防、狀態(tài)機(jī)圖、順序圖蒲讯、通信圖忘朝、用例圖、時(shí)序圖判帮,其中活動(dòng)圖局嘁、狀態(tài)機(jī)圖、順序圖晦墙、用例圖是重點(diǎn)悦昵,活動(dòng)圖、狀態(tài)機(jī)圖晌畅、順序圖從三個(gè)不同的角度來(lái)描述流程但指,是分析業(yè)務(wù)流程的三種不同利器;還有兩個(gè)沒(méi)有歸類的交互概覽圖抗楔、組合結(jié)構(gòu)圖枚赡,這兩個(gè)在工作中用得很少或者幾乎不用。著重要掌握的是類圖谓谦、活動(dòng)圖贫橙、狀態(tài)機(jī)圖、順序圖反粥、用例圖這5中卢肃,在業(yè)務(wù)分析、需求分析工作中它們會(huì)反復(fù)的被用到才顿,而且也非常的實(shí)用莫湘。
? ? ? ? ?第2章,簡(jiǎn)要的介紹了需求分析工作的重要性郑气,要通過(guò)需求分析讓公司和客戶實(shí)現(xiàn)“雙贏”幅垮,而UML可以助力于需求分析的工作,提升項(xiàng)目組的需求認(rèn)知水平尾组。
? ? ? ? ?從第3章開(kāi)始進(jìn)入到具體的UML圖的各種圖介紹忙芒,直到12章結(jié)束,都是分章節(jié)的介紹讳侨,重點(diǎn)呵萨、主次分明的進(jìn)行一一介紹并結(jié)合案例說(shuō)明。
? ? ? ? ?第3章“分析業(yè)務(wù)模型——類圖(ClassDiagram)”跨跨,本章主要是介紹類圖的潮峦,并且最后順帶的介紹了一下對(duì)象圖,類圖是鍛煉面向?qū)ο蠓治觯∣OA,Object-Oriented Analysis)和面向?qū)ο笤O(shè)計(jì)(OOD忱嘹,Object-OrientedDesign)思想的重要工具嘱腥,是業(yè)務(wù)結(jié)構(gòu)建模的重要工具,本章里有大量的實(shí)戰(zhàn)練習(xí)拘悦,對(duì)讀者的OOA思想將會(huì)產(chǎn)生極大的考驗(yàn)和提升齿兔。
? ? ? ? ?本章的意外收獲是理解了何為面向過(guò)程和面向?qū)ο蠹夹g(shù)問(wèn)題,自己組織的理解是:面向過(guò)程主要是編碼的基本功和結(jié)構(gòu)化的編程窄做,是程序的根基愧驱,而面向?qū)ο笫菍?duì)結(jié)構(gòu)化的代碼進(jìn)行封裝,其他人員調(diào)用就可以椭盏。(歡迎大家來(lái)指正我這觀點(diǎn)是否正確噢W檠狻)
? ? ? ? ?類的概念是:將某類東西歸納在一起,可以成為一個(gè)類掏颊,用一個(gè)框框把類的名字和屬性框起來(lái)糟红,就是類圖。用類圖獲取需求的大概步奏如下:1)乌叶、識(shí)別出類盆偿;2)、識(shí)別出類的主要屬性准浴;3)事扭、描繪出類之間的關(guān)系;4)乐横、對(duì)各類進(jìn)行分析求橄、抽象、整理葡公。類之間的關(guān)系有:1)罐农、“直線”關(guān)系,表示關(guān)聯(lián)的意思催什,直線關(guān)系又包含了一對(duì)一關(guān)系涵亏、一對(duì)多關(guān)系、角色關(guān)系蒲凶;2)气筋、“包含”關(guān)系,包含關(guān)系包括了“強(qiáng)包含”(標(biāo)準(zhǔn)術(shù)語(yǔ)為組合)和“弱包含”(標(biāo)準(zhǔn)術(shù)語(yǔ)為聚合)豹爹;3)裆悄、“繼承”關(guān)系;4)臂聋、“依賴”關(guān)系;5)、“遞歸”關(guān)系孩等;6)艾君、“三角”關(guān)系。在介紹了類圖的全部知識(shí)之后肄方,作者舉了考試管理系統(tǒng)來(lái)做個(gè)類圖的綜合訓(xùn)練冰垄,并且在末尾還對(duì)類圖進(jìn)行了知識(shí)的小結(jié),進(jìn)一步加深了讀者的印象和理解力权她。
? ? ? ? ?第4虹茶、5、6章隅要,主要是分別講建模三劍客:活動(dòng)圖(Activity Diagram)蝴罪、狀態(tài)機(jī)圖(State Machine Diagram)、順序圖(Sequence Diagram)步清,并且簡(jiǎn)要的介紹了。
? ? ? ? ? ?流程圖是流程分析的鼻祖,活動(dòng)圖與流程圖很相似殉疼,活動(dòng)圖的語(yǔ)法并不復(fù)雜乾胶,一個(gè)活動(dòng)圖只表示一件事情的“經(jīng)過(guò)”,一個(gè)活動(dòng)圖只表達(dá)一個(gè)事情谴轮,不要指望一個(gè)活動(dòng)圖表達(dá)很多流程炒瘟,若想表達(dá)多個(gè)流程,應(yīng)該使用多個(gè)活動(dòng)圖第步。作者繪制活動(dòng)圖一些實(shí)踐建議:1)疮装、明確該流程要達(dá)到怎樣的業(yè)務(wù)目的;2)雌续、該流程有什么角色參與斩个?哪些是主要角色?3)驯杜、排除異常情況受啥,畫(huà)出正常情況下的流程,也就是流程的主干鸽心,通常是線性的流程滚局;4)、明確流程主干中的活動(dòng)涉及到的角色顽频;5)藤肢、逐步增加分支流程,關(guān)鍵的分支流程都應(yīng)該表達(dá)出來(lái)糯景;6)嘁圈、適當(dāng)控制活動(dòng)的粒度省骂。活動(dòng)圖是表達(dá)復(fù)雜業(yè)務(wù)流程的好工具最住,能幫助我們理清思路钞澳、發(fā)現(xiàn)問(wèn)題,能幫助我們進(jìn)行業(yè)務(wù)流程重組涨缚,為客戶提供有價(jià)值的需求解決方案轧粟。
? ? ? ? ?活動(dòng)圖可以說(shuō)流程分析的萬(wàn)能圖,什么流程都可以用活動(dòng)圖來(lái)表達(dá)脓魏,但如果流程是圍繞某一事物的狀態(tài)展開(kāi)時(shí)兰吟,應(yīng)該首先狀態(tài)機(jī)圖。狀態(tài)機(jī)圖從某個(gè)事物的狀體是如何變化的角度來(lái)展示流程茂翔,類似于互動(dòng)圖混蔼,每個(gè)狀態(tài)機(jī)圖都有一個(gè)開(kāi)始狀態(tài)和一個(gè)結(jié)束狀態(tài),狀態(tài)與狀態(tài)之間的箭頭叫轉(zhuǎn)換檩电,箭頭上的文字說(shuō)明發(fā)生了說(shuō)明事情導(dǎo)致?tīng)顟B(tài)發(fā)生變化拄丰。活動(dòng)圖的泳道很好用俐末,但是完全不適用狀態(tài)機(jī)圖的料按。
? ? ? ? ?當(dāng)涉及到多種角色,并且通過(guò)多對(duì)角色交互展開(kāi)時(shí)卓箫,順序圖是不二選擇载矿。順序圖的讀法是由上而下、由左到右來(lái)閱讀烹卒,這個(gè)順序表示按照按照實(shí)際順序所發(fā)生的事情闷盔。
? ? ? ? ?活動(dòng)圖、狀態(tài)機(jī)圖旅急、順序圖是分析流程圖的三大利器逢勾,作者把它們稱之為“流程分析三劍客”,三種圖有不同的特點(diǎn)和不同的應(yīng)用場(chǎng)景藐吮。順序圖的特點(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)舱痘、事情圍繞某東西展開(kāi)变骡;2)、該東西有不同的狀態(tài)芭逝,狀態(tài)會(huì)因?yàn)榘l(fā)生了一些事情而變化塌碌。
? ? ? ? ? 第7章“描述系統(tǒng)的行為——用例圖(Use Case Diagram)”。用例圖中有很多小公仔旬盯,于是有人將用例圖叫做“公仔圖”台妆。用例圖是用來(lái)描述什么角色通過(guò)某某系統(tǒng)能做什么事情的圖,用例圖關(guān)注的是系統(tǒng)的外在表現(xiàn)胖翰、系統(tǒng)與人的交互接剩、系統(tǒng)與其他系統(tǒng)的交互。用例圖的基本語(yǔ)法:執(zhí)行者(小公仔)萨咳、用例懊缺、系統(tǒng)邊界、關(guān)聯(lián)培他;用例圖的進(jìn)階語(yǔ)法:角色的繼承鹃两、用例的Include(包含)、用例的Extend(擴(kuò)展)舀凛、用例的繼承俊扳。
? ? ? ? 第8、9章猛遍,作者簡(jiǎn)單的描述和介紹了部署圖馋记、構(gòu)件圖和包圖,作者在工作中并且根據(jù)經(jīng)驗(yàn)用得比較少螃壤,簡(jiǎn)單的草草帶過(guò)而已抗果,這里也不做詳細(xì)描述。
? ? ? ? 第10章奸晴,是以上學(xué)習(xí)的各類UML圖的綜合實(shí)戰(zhàn)冤馏,也是本書(shū)中篇幅最長(zhǎng),實(shí)戰(zhàn)內(nèi)容最多寄啼、最具體逮光、最落地的部分代箭。本章實(shí)戰(zhàn)的主要目的是:1)、學(xué)習(xí)如何從零開(kāi)始組織需求分析的工作涕刚,嗡综;2)、學(xué)習(xí)如何在需求分析工作中理清思路杜漠;3)极景、體會(huì)什么情況下用什么UML圖;4)驾茴、學(xué)會(huì)編寫(xiě)需求文檔盼樟。本章值得讀者反復(fù)的練習(xí)和揣摩,對(duì)提高整體UML圖的理解和UML素養(yǎng)很有幫助锈至。
? ? ? ? ?第11章晨缴,作者強(qiáng)調(diào)了需求分析如何進(jìn)行團(tuán)隊(duì)作戰(zhàn),以及團(tuán)隊(duì)作戰(zhàn)對(duì)后續(xù)整個(gè)項(xiàng)目進(jìn)行的好處峡捡。第12章击碗,是帶出基本上不用的UML圖:時(shí)序圖、交互概覽圖们拙、組合結(jié)構(gòu)圖稍途,簡(jiǎn)單的介紹之后,作者把所有的UML圖整合在一起睛竣,形成一張整體的UML全家福圖晰房。在最后面的部分,作者附加了幾個(gè)附錄射沟,讓讀者進(jìn)一步加深對(duì)前面所介紹的UML所有知識(shí)的了解殊者。
? ? ? ? 總體而言,本書(shū)是非常不錯(cuò)的验夯,值得讀一讀猖吴,但是讀完之后如果不實(shí)踐可能會(huì)很快忘記,書(shū)中涉及了大量的圖挥转,在需求分析實(shí)戰(zhàn)中不斷的去應(yīng)用才能更好的理解和掌握海蔽。書(shū)中重點(diǎn)內(nèi)容突出,有的放矢绑谣,有張有弛的党窜,唯一的缺憾就是感覺(jué)收尾的時(shí)候倉(cāng)促了一些。還有一個(gè)缺憾就是借宵,本次書(shū)評(píng)沒(méi)能把這些UML圖逐一的通過(guò)畫(huà)圖來(lái)表達(dá)出來(lái)幌衣,只有圖才能更立體、更客觀和更容易理解。
? ? ? ? 最后豁护,還是給每一個(gè)想用UML的需求分析人員的建議:那就是多實(shí)踐哼凯、多練、多思考楚里,能綜合應(yīng)用断部、信手拈來(lái),能清晰表達(dá)出業(yè)務(wù)概念班缎、需求分析才是王道噢蝴光!