終於拿Rumbaugh 的新書了
終於拿Rumbaugh 的新書<UML物件導向建模與設計(第2版)>了。物件導向的設計方法有多種,比較著名的就有Booch方法、Coad & Yourdon方法、Jocobson ( OOSE )方法、Rumbaugh ( OMT )方法、Wrifs-Brock ( 責任驅動法 )方法等等。唯有對Rumbaugh的方法情有獨鍾,幾年前就買了《物件導向建模與設計(影印版)》,重要的部分也看過幾遍。裡面的圖形不是用UML表示的,有些美中不足,一直期待Rumbaugh的新書出版。
大約是七八年前看過張海藩老師所編寫的《軟體工程導論》,裡面採用的是Rumbaugh的方法。那可能是我見到的第一本關於軟體工程的書,甚至可能是第一次知道軟體工程這個概念。對於學的是機械專業,僅寫過幾個小程式的我來說,第一次讀這樣的書,當時的感覺何止是震撼,所以印象極深。
Rumbaugh的方法強調的三個模型的建立:
物件模型。建立物件模型就是職責分配的過程,把系統的各種職責分配到具體的類上去。系統由哪些子系統組成,子系統又由哪些類組成,子系統與子系統的關係,類與類之間的關係。相對於動態模型而言,可以稱為靜態模型。類之間的關係僅限於繼承、組合、關聯等,這些關係都是靜態的,無論程式是否執行,這些關係都存在了。物件模型常用UML的類圖和包類來表現。
動態模型。動態模型描述是物件之間的協作關係,這些物件動起來,按照預定(類裡的描述)的方式執行,才能完成一件任務。其中還包括物件自身的狀態轉換,在一定的事件驅動下,物件的內部狀態轉換,在不同的狀態下,物件具有不同的表現行為。動態模型常用UML的序列圖、活動圖和狀態圖來表現。
功能模型。從系統外部,把系統當作一個黑盒,來考查系統的功能,能起到補充作用。系統的輸入和輸出,能很好的描述系統功能。功能模型通常用資料流圖來表現,描繪資料輸入、處理、輸出和儲存等。
雖然這種方法已經提出十幾年了,但並沒有過時。在目前流行的RUP中提到的4+1檢視(邏輯檢視(Logical View)過程檢視(Process View)物理檢視(Physical View)開發檢視(Development View)用例 (use cases))和《軟體架構編檔》裡提到的3種檢視(模組檢視、元件聯結器檢視和分配檢視)裡,關於分析和設計的內容大部分仍然可以歸於這三個模型。
相關文章
- Twitter新財報,終於扭虧為盈了
- 盼望著,盼望著 let's encrypt 泛域名野卡證書,終於終於上線了
- 阿韋的2018年總結:我終於要出書了 | 掘金年度徵文
- Swift 5新特性詳解:ABI 穩定終於來了!Swift
- Clickhouse 的 mysql CDC,終於好使了MySql
- 太難了,我終於把JDBC的程式碼終於優化了!JDBC優化
- 拿來就能用!行,這本 Python書玩大了!Python
- CF終於打上1900了
- AI 終於受涼了??AI
- VSCode 的 Live Share 功能終於來了VSCode
- 微軟終於放棄了Electron了微軟
- 終於不是吃雞,網易這款射擊新遊嘗試了一個新的方向
- VS Code Day,終於來了!
- 幽默:終於黑掉ChatGPT了ChatGPT
- GPT-4,終於來了!GPT
- 攜程,終於反彈了?
- 裝修終於結束了
- 終於,月薪過5萬了!
- GitHub 官方終於出 App 了!GithubAPP
- 行,Python終於玩大了!Python
- 它來了它終於來了- Beego 1.12.2Go
- 終於弄明白了 RocketMQ 的儲存模型MQ模型
- 超前看!匯聚全球頂尖白帽黑客的TCFT 2020終終終終於來了!黑客
- 2月書訊 | 193張圖表+388段程式碼,原版長銷13年的日系書終於來了
- 就在剛剛!吳恩達的這門新課程終於開放註冊了吳恩達
- 原生 CSS Custom Highlight 終於來了~CSS
- 終於等到了這篇文章了
- 終於下定決心離職了
- 終於找回這個部落格了
- 爆火免費書《深入理解深度學習》終於出中文版了深度學習
- 終於實現了一門屬於自己的程式語言
- 《王者榮耀》新玩法"邊境突圍”,終於開始“吃雞”模式了模式
- 終於明白阿里百度這樣的大公司,為什麼面試經常拿ThreadLocal考驗求職者了阿里面試thread求職
- 肝了一週的 UDP 基礎知識終於出來了。UDP
- Win10螢幕亮度切換終於正常了 這個煩人Bug終於修復了Win10
- 幹了 2 年多 Java 外包,終於脫離了!Java
- 終於,我也來學習VUE了Vue
- Node.js終於有了Fetch APINode.jsAPI