標準建模語言UML及其支持環境(二)
標準建模語言UML及其支持環境(二) UML模型 關鍵字: (接上期) 4. 標準建模語言UML的應用領域 UML的目標是以 面向對象 圖的方式來描述任何類型的系統,具有很寬的應用領域。其中最常用的是建立軟件系統的模型,但它同樣可以用于描述非軟件領域的系統,如機械系統
標準建模語言UML及其支持環境(二) UML模型
關鍵字: (接上期)
4. 標準建模語言UML的應用領域
UML的目標是以
面向對象圖的方式來描述任何類型的系統,具有很寬的應用領域。其中最常用的是建立軟件系統的模型,但它同樣可以用于描述非軟件領域的系統,如機械系統、企業機構或業務過程,以及處理復雜數據的信息系統、具有實時要求的工業系統或工業過程等??傊?UML是一個通用的標準建模語言,可以對任何具有靜態結構和動態行為的系統進行建模。此外,UML適用于系統
開發過程中從需求規格描述到系統完成后測
試的不同階段。在
需求分析階段,可以用用例來捕獲用戶需求。通過用例建模,描述對系統感興趣的外部角色及其對系統(用例)的功能要求。分析階段主要關心問題域中的主要概念(如抽象、類和對象等)和機制,需要識別這些類以及它們相互間的關系,并用UML類圖來描述。為實現用例,類之間需要協作,這可以用UML動態模型來描述。在分析階段,只對問題域的對象(現實世界的概念)建模,而不考慮定義軟件系統中技術細節的類(如處理用戶接口、
數據庫、通訊和并行性等問題的類)。這些技術細節將在設計階段引入,因此設計階段為構造階段提供更詳細的規格說明。
編程(構造)是一個獨立的階段,其任務是用面向對象編程語言將來自設計階段的類轉換成實際的代碼。在用UML建立分析和設計模型時,應盡量避免考慮把模型轉換成某種特定的編程語言。因為在早期階段,模型僅僅是理解和分析系統結構的工具,過早考慮編碼問題十分不利于建立簡單正確的模型。
UML模型還可作為測試階段的依據。系統通常需要經過
單元測試、
集成測試、
系統測試和
驗收測試。不同的測試小組使用不同的UML圖作為測試依據:單元測試使用類圖和類規格說明;集成測試使用部件圖和合作圖;系統測試使用用例圖來驗證系統的行為;驗收測試由用戶進行,以驗證系統測試的結果是否滿足在分析階段確定的需求。
總之,標準建模語言UML適用于以面向對象技術來描述任何類型的系統,而且適用于系統開發的不同階段,從需求規格描述直至系統完成后的測試和維護。
二、標準建模語言UML的靜態建模機制
任何建模語言都以靜態建模機制為基礎,標準建模語言UML也不例外。UML的靜態建模機制包括用例圖(Use case diagram)、類圖(Class diagram)、對象圖(Object diagram )、包(Package)、構件圖(Component diagram)和配置圖(Deployment diagram)。
1. 用例圖
(1) 用例模型(Use case model)
長期以來,在面向對象開發和傳統的軟件開發中,人們根據典型的使用情景來了解需求。但是,這些使用情景是非正式的,雖然經常使用,卻難以建立正式文擋。用例模型由Ivar Jacobson在開發AXE系統中首先使用,并加入由他所倡導的OOSE和Objectory方法中。用例方法引起了面向對象領域的極大關注。自1994年Ivar Jacobson的著作出版后,面向對象領域已廣泛接納了用例這一概念,并認為它是第二代面向對象技術的標志。
用例模型描述的是外部執行者(Actor)所理解的系統功能。用例模型用于需求分析階段,它的建立是系統開發者和用戶反復討論的結果,表明了開發者和用戶對需求規格達成的共識。首先,它描述了待開發系統的功能需求;其次,它將系統看作
黑盒,從外部執行者的角度來理解系統;第三,它驅動了需求分析之后各階段的開發工作,不僅在開發過程中保證了系統所有功能的實現,而且被用于驗證和檢測所開發的系統,從而影響到開發工作的各個階段和 UML 的各個模型。在UML中,一個用例模型由若干個用例圖描述,用例圖主要元素是用例和執行者。
(2) 用例(
use case)
從本質上講,一個用例是用戶與計算機之間的一次典型交互作用。以字處理軟件為例,"將某些正文置為黑體"和"創建一個索引"便是兩個典型的用例。在UML中,用例被定義成系統執行的一系列動作,動作執行的結果能被指定執行者察覺到。
圖1 用例圖
在UML中,用例表示為一個橢圓。圖1顯示了一個
金融貿易系統的用例圖。其中,"風險分析","交易估價","進行交易","設置邊界","超越邊界的交易","評價貿易","更新帳目"等都是用例的實例。概括地說,用例有以下特點:
·用例捕獲某些用戶可見的需求,實現一個具體的用戶目標。
·用例由執行者激活,并提供確切的值給執行者。
·用例可大可小,但它必須是對一個具體的用戶目標實現的完整描述。
原文轉自:http://www.anti-gravitydesign.com