官术网_书友最值得收藏!

2.2.2 系統設計的形式化方法

1.UML簡介

在嵌入式通信系統的開發過程中,在不同的設計階段將按照不同層次的抽象完成許多不同的設計任務。但在實際工作中,隨著設計過程的延伸,很可能會出現這樣的情況,即每到一個新的抽象層次可能會對系統重新設計考慮。這種情況的發生主要是人們沒有在設計過程的開始就為系統建立一個合適的模型而引起的。人們希望的設計過程是一種逐步求精的過程,即隨著設計過程的延伸逐漸在設計過程中加入新的細節而不是推翻原來的設計。因此,系統設計中就需要用到一種統一的建模語言,以幫助人們不會偏離設計的主線。

統一建模語言(Unified Modeling Language,UML)是面向對象軟件的標準化建模語言。UML因其簡單、統一的特點,而且能表達軟件設計中的動態和靜態信息,目前已成為可視化建模語言的工業標準。在嵌入式通信系統的開發過程中,統一建模語言可以在整個設計周期中使用,幫助設計者縮短設計時間,減少改進的成本,使軟硬件分割最優。

面向對象的規格說明可以看成互補的兩個方面:

①面向對象的規格說明允許用精確地模擬真實世界的對象和它們之間的交互方式來描述系統。

②面向對象的規格說明提供一個基本的原語集,可以用特殊屬性來描述系統,而不管系統構件和真實世界對象的關系如何。

UML是一種大型語言,本小節只介紹一小部分的基本概念。

(1)UML基本元素

UML最基本的元素是對象和類,對象是類的實例。另外,對象和類之間可能存在著各種不同的關系。類具有屬性和行為,活躍類是能實現獨立控制線程的類。對象可能有被賦予特定的值的屬性;匿名對象屬于某一個類但沒有標識名。程序包是系統的組織單元,可能包括類定義、對象等。狀態在狀態圖中描述行為;物理處理器是硬件部件;構件是實現一組接口的系統的物理組成部分。我們常常發現,在一個對象或類中會多次用到一些元素的特定組合,可以對這些組合命名,這樣的一個定義在UML中稱為模板。

(2)主要內容

UML是在Booch、OMT、OOSE等面向對象的方法及其他許多方法與資料的基礎上發展起來的。UML表示法集中了不同的圖形表示方法,剔除了其中容易引起的混淆、冗余或者很少使用的符號,同時添加了一些新的符號。其中的概念來自于面向對象技術領域中眾多專家的思想。

UML從考慮系統的不同角度出發,定義了用例圖、類圖、對象圖、狀態圖、活動圖、序列圖、協作圖、構件圖、部署圖等9種圖。這些圖從不同的側面對系統進行描述。系統模型將這些不同的側面綜合成一致的整體,便于系統的分析和構造。盡管UML和其他開發工具還會設計出許多派生的視圖,但上述這些圖和其他輔助性的文檔是軟件開發人員所見的最基本的構造。其中:

①UML用例圖與OOSE中的用例圖類似。

②UML的類圖綜合了OMT、Booch等面向對象方法中的類圖。

③UML狀態圖是對David Harel所提出狀態圖的改進。

④UML活動圖的基本語義和狀態圖大致相同,它類似于許多方法(包括面向對象技術之前的一些方法)中的工作流圖。

⑤UML的協作圖是通過對Booch方法的對象圖、Fusion方法的對象交互圖以及其他一些方法中的相關圖表改造而成的。

⑥UML的構建圖和部署圖是在Booch方法中的模塊和進程圖(處理關系圖、處理器圖)的基礎上發展起來的。

UML簡化了建模方法,它揚棄了Booch、OMT或OOSE等方法中的糟粕,而代之以其他方法中的精華。UML一般不引入新的概念和符號,只有在沒有現有的解決方法可以借鑒時,UML的開發者才考慮加入新的概念。UML的開發者們是在設計一種語言(盡管只是一種圖形化語言),因此必須在簡明(所有元素一律用方框和文字表示)和煩瑣(為每個元素設計單獨的符號)之間權衡。盡管如此,UML中還是增添了衍型和擴展機制等一些新的元素,因為這些元素在其他建模語言的實踐中已經被證明是非常有用的。

用例圖主要用來描述用戶、需求、系統功能單元之間的關系。它展示了一個外部用戶能夠觀察到的系統功能模型圖。

類圖顯示了一組類、接口、協作以及他們之間的關系。在UML中問題域最終要被逐步轉化,通過類來建模,通過編程語言構建這些類從而實現系統。類加上他們之間的關系就構成了類圖,類圖中還可以包含接口、包等元素,也可以包括對象、鏈等實例。

對象圖(Object Diagram)顯示了一組對象和他們之間的關系。使用對象圖來說明數據結構,類圖中的類或組件等的實例的靜態快照。對象圖和類圖一樣反映系統的靜態過程,但它是從實際的或原型化的情景來表達的。

對象圖顯示某時刻對象和對象之間的關系。一個對象圖可看成一個類圖的特殊用例,實例和類可在其中顯示。對象也和合作圖相聯系,合作圖顯示處于語境中的對象原型(類元角色)。

對象圖是類圖的實例,幾乎使用與類圖完全相同的標識。他們的不同點在于對象圖顯示類的多個對象實例,而不是實際的類。一個對象圖是類圖的一個實例。由于對象存在生命周期,因此對象圖只能在系統某一時間段存在。

2.UML特點

①UML統一了各種方法對不同類型的系統、不同開發階段以及不同內部概念的不同觀點,從而有效地消除了各種建模語言之間不必要的差異。它實際上是一種通用的建模語言,可以為許多面向對象建模方法的用戶廣泛使用。

②UML建模能力比其他面向對象建模方法更強。它不僅適合于一般系統的開發,而且對并行、分布式系統的建模尤為適宜。

③UML是一種建模語言,而不是一個開發過程。

3.UML的應用領域

UML的目標是以面向對象圖的方式來描述任何類型的系統,具有很寬的應用領域。其中最常用的是建立軟件系統的模型,但它同樣可以用于描述非軟件領域的系統,如機械系統、企業機構或業務過程,以及處理復雜數據的信息系統、具有實時要求的工業系統或工業過程等。總之,UML是一個通用的標準建模語言,可以對任何具有靜態結構和動態行為的系統進行建模。

此外,UML適用于系統開發過程中從需求規格描述到系統完成后測試的不同階段。在需求分析階段,可以用用例來捕獲用戶需求。通過用例建模,描述對系統感興趣的外部角色及其對系統(用例)的功能要求。分析階段主要關心問題域中的主要概念(如抽象、類和對象等)和機制,需要識別這些類以及它們相互間的關系,并用UML類圖來描述。為實現用例,類之間需要協作,這可以用UML動態模型來描述。在分析階段,只對問題域的對象(現實世界的概念)建模,而不考慮定義軟件系統中技術細節的類(如處理用戶接口、數據庫、通信和并行性等問題的類)。這些技術細節將在設計階段引入,因此設計階段為構造階段提供更詳細的規格說明。

編程(構造)是一個獨立的階段,其任務是用面向對象編程語言將來自設計階段的類轉換成實際的代碼。在用UML建立分析和設計模型時,應盡量避免考慮把模型轉換成某種特定的編程語言。因為在早期階段,模型僅僅是理解和分析系統結構的工具,過早考慮編碼問題十分不利于建立簡單正確的模型。

UML模型還可作為測試階段的依據。系統通常需要經過單元測試、集成測試、系統測試和驗收測試。不同的測試小組使用不同的UML圖作為測試依據:單元測試使用類圖和類規格說明;集成測試使用部件圖和合作圖;系統測試使用用例圖來驗證系統的行為;驗收測試由用戶進行,以驗證系統測試的結果是否滿足在分析階段確定的需求。

總之,標準建模語言UML適用于以面向對象技術來描述任何類型的系統,而且適用于系統開發的不同階段,從需求規格描述直至系統完成后的測試和維護。

主站蜘蛛池模板: 保德县| 沈丘县| 绥江县| 道真| 雷波县| 读书| 竹溪县| 博野县| 高唐县| 斗六市| 萍乡市| 红河县| 阜城县| 安阳市| 新田县| 吴川市| 丽江市| 中牟县| 桑日县| 邻水| 全州县| 武鸣县| 当涂县| 公安县| 芮城县| 喀什市| 屯昌县| 呼玛县| 东辽县| 安新县| 英德市| 娄烦县| 竹溪县| 常宁市| 嘉善县| 玛曲县| 聊城市| 仲巴县| 黑龙江省| 华阴市| 定南县|