UML物件導向分析與設計學習筆記

2021-09-30 17:26:18 字數 2919 閱讀 2962

uml1.1版本發布時間是1997.12;

uml2.0版本發布時間是2005.05;

uml2.3版本發布時間是2010.05;

uml2.4.1版本發布時間是2011.07;

uml2.5.1版本發布時間是2017.12.05。

uml從1.x到2.x版本內容變化非常大,所以選取了基於uml2.x編寫的參考學習書籍《uml物件導向分析與設計》(object oriented analysis and design using uml)。該書原書由d jeya mala和 s geetha著。

首先,作者對統一軟體過程(rup)、物件導向的理論知識和物件導向分析與設計中類和物件的識別做了講解,然後介紹uml建模以及如何使用uml來實現物件導向分析、設計,並在最後列舉了幾個物件導向開發示例。

rup過程模型由booch、jacobson和rumbaugh三人提出,這一過程有時也稱為統一軟體開發過程(usdp),專門用於物件導向的系統開發。rup是乙個迭代過程,具有演化和敏捷過程模型的優點。rup具有四個主要階段:初始階段、細化階段、構造階段和交付階段。

物件導向的基本實體有7個:類、物件、屬性、方法、訪問說明符、介面、包和元件。物件導向的構造有:抽象、封裝和資訊隱藏、繼承、多型以及訊息傳遞。

對類和物件識別時,物件導向的分析技術有:基於抽象的分析、基於場景的分析、基於問題域的分析、基於操作的分析、基於crc卡的分析、基於名詞-動詞的分析和基於資料流和控制流的分析。作者在書中討論了物件導向設計的設計原則:

開閉原則(open-closed principle,ocp)

liskov替代原則(liskov substitution principle,lsp)

依賴性倒置原則(dependency inversion principle,dip)

介面分離原則(inte***ce segregation principle,isp)

發布重用等效原則(release reuse equivalency principle,rep)

共同封閉原則(common closure principle,ccp)

共同重用原則(common reuse principle,crp)

作者還花了大量篇幅來介紹類和物件的識別和細化過程中的設計模式。設計模式分為三大類:建立型、結構型和行為型。建立型設計模式有:抽象工廠、建造者、工廠方法、原型和單例。結構型設計模式有:介面卡、橋接、組合、裝飾器、外觀、享元、**。行為型設計模式有:責任鏈、命令、直譯器、迭代器、中介者、備忘錄、觀察者、狀態、模板方法和訪問者。作者還對框架和設計模式做了比較。框架是一組合作的類,為特定軟體的類構造可重用的設計,為要開發的應用程式提供架構。它定義了整體結構,通過控制線程將系統劃分為物件和類、職責、協作以及同步或非同步操作。框架捕獲設計決策,提高了設計而非**的可重用性。而設計模式比框架更抽象、更通用,是比框架更小的架構元素。

uml是實現軟體開發過程標準化的重要一步,它整合了用於指定、視覺化、構建和記錄業務建模的工程實踐。uml定義了13種型別的圖:類圖、物件圖、包圖、元件圖、復合結構圖、部署圖、用例圖、活**、狀態機圖、序列圖、通訊圖、互動概覽圖和時序圖。前六類屬於結構圖,後七類屬於行為圖。其中用例圖是最重要的行為圖。

作者用了五章篇幅講解如何使用uml圖來進行物件導向分析,並用一章來舉例說明如何使用uml進行物件導向設計。作者從五個方面進行物件導向分析,依次是:基於場景模型、邏輯模型、互動圖分析、行為設計模型和物理圖模型。

基於場景的模型分析使用了主用例圖和次用例圖來分析,描述外部參與者和當前系統之間發生的一系列面向目標的互動行為。用例圖的目的是:記錄現有流程;分析新流程的概念;識別可能存在的it槓桿;尋找重構的機會;通過構造語義網路圖來識別系統的邊界;更改和擴充套件參與者或使用者的功能;為一些場景解決非功能性需求。

邏輯模型使用了類圖來進行結構化表示。類圖具有比較豐富的基本符號,包括:類、抽象類、標準/非標準的類構造型、類模板、介面、物件、資料型別、屬性、分類器屬性、關聯屬性、限定符、多重性、操作、抽象操作、約束、多重性、可見性、uml關聯、關聯終端、可導航性、元數、聚合、組合、鏈結、泛化、繼承。類圖的主要目的是設計分析系統的靜態檢視。通過描述系統執行的功能,說明系統的責任。

互動圖分析使用了序列圖和協作圖來描述物件互動。uml序列圖中描繪的元素有:生命線、執行說明、訊息、組合片段、互動使用、狀態常量、延續和銷毀發生。使用序列圖的基本動機是按照其發生順序顯示物件之間的互動,序列圖與協作圖的區別在於其強調在物件之間傳送和接收訊息的順序。協作圖有三個基本元素:物件、鏈結和訊息。它強調協作物件之間盛行的關係。為了確保實施正確而適當的設計,序列圖/協作圖有具有清晰的作用:初始化事件、詳細程度、描述變化、評估設計。

行為設計模型使用了狀態圖來描述系統中元件和物件的不同狀態,使用了活**來幫助描繪系統的工作流程行為。狀態圖符號有:初始狀態、最終狀態、狀態、轉移、選擇點、結合點、符合狀態和同步。狀態變化是動態的,狀態圖描繪了從一種狀態到另一種狀態的控制流程。活**有兩種型別:簡單活**和泳道活**。簡單活**只將過程流程表示為併發過程,而泳道活**除了使用併發操作表示過程流程,還顯示過程中設計的參與者和類。

物理圖模型使用了包圖、元件圖和部署圖。包圖表示法涉及包、包內容的可見性、包之間的關係。包分為傳統包和域包。包內容可見性使用「+」、「-」分別來表示公共和私有訪問指示符。包之間存在的關係有:依賴、聚合和細化。包圖主要用於提供模組的靜態模型、模組部件和關係。元件圖包括元件包、元件、介面和依賴關係,用來顯示系統元件之間的結構關係。部署圖包括節點和連線,主要用來顯示目標系統中軟體和硬體元件之間的關係。

本書作者從抽象到具體,從描述到舉例,清晰的將uml物件導向分析與設計呈現在了我們讀者面前,讓我能夠對uml工具和物件導向分析與設計的認識由淺向深發展。

2018.10.21

[1] (印)d jeya mala, s geetha 著; 馬恬煜 譯. uml物件導向分析與設計[m]. 北京:清華大學出版社.2018

[2] omg. about the unified modeling language specification version 2.5.1 [eb/ol]. 2017.12.

UML 物件導向分析與設計

物件導向方法以其超越傳統方法的技術先進性越來越得到更多的重視,但技術的先進性不能完全代表一種新生事物的最後成功,還要看它是否能得到有效的推廣。統一建模語言 uml 的產生為這種推廣規定了一致的表示,諸多開發過程模型為技術的應用提供了巨集觀的指導。uml 1.模型驅動的開發,回憶一年多前的一次開發 2...

UML物件導向分析與設計解析

本節向大家向大家介紹一下uml物件導向分析與設計,主要分布個步驟向大家介紹,相信通過本節的介紹你對uml物件導向分析與設計一定會有明確的認識。下面是詳細介紹。uml物件導向分析與設計 前言就uml本身來說,它只是一種交流工具,它作為一種標準化交流符號,在ooa d過程中開發人員間甚至開發人員與客戶之...

基於UML的物件導向分析與設計

摘要 本文以例項的方式,展示了如果使用uml進行物件導向的分析與設計。本文將假設讀者對uml 物件導向等領域的基本內容已了然於胸,所以將不會過多闡述,而將重點放在應用過程上。本文的目的是通過乙個完整的例項,展現基於uml的ooa d過程的乙個簡化模式,幫助朋友們更好的認識uml在ooa d中起的作用...