最近幾日一直在畫case,進入最後的整理階段,連做幾日以前我最女人的女人孫野最擅長的工作,i want nobody nobody but you。
終於抑制不住地想起、想起以前曾答應過n回給吳楠、小青、vv和孫野上一課uml,通常這個時候芝芝都會說「我也要」,(*^__^*) ……
今天晚上翻出我2023年9月給同事們培訓用的幻燈片,我想還是從最簡單的基礎知識開始講起吧,後邊會專門講用例圖、狀態圖這些常用diagram,並將側重於和需求分析相關的部分。水瓶月的rose系列培訓響應節能號召,不用電燈、不用會議室、不用投影儀。
我先說一下我和rational rose的相識,我們是經人介紹才認識的,⊙﹏⊙b。一般在我給人初次講rose的時候都會講這個故事:記得在2023年左右(偏右些),有乙個很牛的同事跟我說:在北京找工作,只要面試時候說出rose這個單詞,哪怕你不用去講什麼uml的具體內容,你的薪水都可以要到8k以上。他也成功地一次跳槽拿到了原有薪水的四倍。當時聽聞他如此說,我腦海裡頓時呈現四個**燦燦的英文本母,rose給我的第一印象就是個高高在上的金山銀庫。但在隨後工作裡實際應用中卻發現它應該走下神壇。很幸運地遇到乙個給予時間和機會、鼓勵學習並應用最新技術的老闆,在此多說一句,其實並不是所有的領導都「願意」或者「能夠」給予員工學習、培訓的時間和機會,所以如果你能遇到這樣的機會,請千萬把握住,這個年頭,找乙份工作是很容易的事情,找乙份薪水滿意的工作也不難,但找乙個能正確指引你成長的領導確實是個難事兒。跑題了,趕緊回來,剛才說到神壇,在第一次聽同事培訓講uml和rose的時候,會議室裡面所有的人都是頭暈狀態,沒有人能夠真真正正地理解它,但由於我們實際專案的整個生命週期中放棄繼續使用其他建模工具,全部都使用rose,從需求的收集和分析、類和介面的設計、資料庫的設計等等,所有的系統分析和設計類工作只基於rose,因此當時也就用了一周的時間,「走下神壇的rose!」這一口號就開始傳遍公司每個人。
vv也許這個時候會說了:我的rose啥時候能走下神壇?
我覺得學rose和學打字差不多,分三個階段。以前我通常都拿打字舉例,不過今天我突然間想起《英雄》裡秦王說的那段話:劍道的第一層境界,是「人劍合一」;劍就是人、人就是劍,手中寸草也是利器。第二層境界,是 「無劍之劍」;講求手中無劍、劍在心中,雖然赤手空拳,卻能以劍氣殺敵於百步之外。第三層境界,是劍術的最高境界,即手中無劍、心中也無劍,是以大胸懷包容一切,那便是「不殺」,是「和平」。蕙心蘭質的芝芝,能悟出點什麼?
來說說這三個階段吧!
第一階段,人劍合一:打字首先需要記住每個字母在哪個位置,rose也一樣,你需要理解什麼是用例圖、什麼是活**、什麼是依賴、什麼是聚合……
第二階段,無劍之劍:打字需要知道如何拼讀,只有懂得如何組合這些字母才能打出別人能夠理解的文字,rose也一樣,你需要知道在什麼情況下用什麼圖能夠表達清楚你的思路和分析結論,也需要知道線的學問,比如在老子和兒子中間需要畫繼承而不是包含。
第三階段,手中無劍、心中也無劍:此時你無須關注工具和語法,全部的注意力都只需要放在你需要分析的物件身上即可。
因為我參加過全體頭暈迷糊的uml培訓,深受其害。所以我希望我能盡可能淺顯地講述rose的故事,舉一些有意思的例子讓開會愛做垂頭栽地運動的吳楠清醒一些。
看一下目錄吧,用活**做的,這種型別的圖大家應該很快可以理解,在之前roo和網際網路的專案中,這一類的圖我們通常用visio來做,以泳道的形式區隔操作主體物件,和這張圖的分析思路相同,僅僅是呈現層的不同而已。
uml的定義、特性如下所示,不再重複。需要強調的一點關於書的問題,我把市面上被評價為超級經典的幾本uml書全部買下並仔細研讀過,發現問題還是蠻多的。切記盡信書不如無書,自從自己開始碼字寫書,已經深刻地明白這鉛字的不能承受之輕。當你看到書上有和我不同的地方,那麼極有可能是你沒理解它的方言(也許它沒錯,但肯定我沒錯,其實就是你錯了)。
還記得為趙敏畫眉的無忌gg嗎?這裡講的是源和目標的依賴關係(包含),我們經常用到它。在使用依賴關係(包含)時,需要想清楚這兩個問題:1、源目標是否依賴於目標元素?2、目標元素的改變是否會影響源元素?通常,我們在畫某個產品包含什麼子模組時,會使用這種關係。
繼承,也叫泛化。非常容易理解的一種關係,通常我們在畫產品1.0版本和產品2.0版本時會用到繼承關係。這裡只需要記住箭頭是兒子指向父親方向就可以了。
有緣來相聚,聚合關係表示目標元素是源元素的部分。這是一種鬆散的物件間關係,目標元素可有可無,並且可以與其他源元素共享。這個用例圖存在錯誤,你知道錯在**嗎?
下面這是正確的聚合關係的一張圖。九陽神功張無忌可以練習,吳楠也可以練習成為更出色的女人中的男人。返回頭看上面那張圖,你應該可以明白上面錯在**。
組合關係,表示目標元素是源元素的組成部分。有兩點需要注意:1、部分在某一時刻僅僅只能屬於乙個整體,其他整體不可以共享部分的任何關係;2、如果整體銷毀,它必須將它所有的部分銷毀,或者把負責處理它們的權利交給其他的物件。
非常拗口的一段話。這張圖也存在錯誤,是不?
下圖所示是正確的組合關係。樹葉的生命取決於書的生命,如果樹死了,樹葉通常會跟著殉情;而一片樹葉也只能僅僅屬於一顆樹。
逆向工程會帶來成就感,可惜現在你們幾乎用不到。
uml概念模型的小目錄:
uml包括13類事務,4類關係,13類圖。事務中,做需求分析時經常用到用例、協作、互動、活動、包、注釋。四種關係,都需要掌握。圖中經常用到用例圖、狀態圖、活**,對於非研發的需求分析師,類圖、順序圖僅做了解即可。
uml有4中貫穿整個語言且一致應用的公共機制,因此使得uml變的較為簡單。
在這張體系結構的圖中,你會發現uml的術語和rose的用語不同,因此如果初學者不幸拿著一本純粹的uml書對著rose這個工具去找東東時會感覺有些不知所措。
小結一下:uml是什麼,不是什麼?
講完啦,雖然這個幻燈是以前就做完的,但寫完這篇博文還是花了我好幾個小時的時間。
輕鬆一下,i want nobody nobody but you,看看這個搞笑的mv吧!
走下神壇的獵頭
以前聽到獵頭這個詞,感覺很高雅,對從事的工作頂禮膜拜,因為認識的都是牛人,感覺有一天跟獵頭能盼上關係,自己也不得了,至少得到了社會的認可,感覺獵頭找的工作都是非常高階 體面的工作。而如今滿大街都是獵頭,魚目混雜,人人都成了獵頭了,就好像好過年前搞it的一樣,說出來感覺就像搞高科技一樣充滿了自豪感,代...
揭開Socket程式設計的面紗
對tcp ip udp socket程式設計這些詞你不會很陌生吧?隨著網路技術的發展,這些詞充斥著我們的耳朵。那麼我想問 1.什麼是tcp ip udp?2.socket在 呢?3.socket是什麼呢?4.你會使用它們嗎?什麼是tcp ip udp?tcp ip transmission cont...
揭開Socket程式設計的面紗
對tcp ip udp socket程式設計這些詞你不會很陌生吧?隨著網路技術的發展,這些詞充斥著我們的耳朵。那麼我想問 1.什麼是tcp ip udp?2.socket在 呢?3.socket是什麼呢?4.你會使用它們嗎?什麼是tcp ip udp?tcp ip transmission cont...