?? uml7.htm
字號:
<html><head><meta http-equiv="Content-Type"content="text/html; charset=gb_2312-80"><meta name="GENERATOR" content="Microsoft FrontPage Express 2.0"><title>標準建模語言UML及其支持環境(七)</title></head><body bgcolor="#D2D2D2"><p align="center"><font color="#FF0000" size="4">標準建模語言UML及其支持環境(七)<br></font></p><p align="center">北京航空航天大學軟件工程研究所</p><p>前幾期的主要內容包括:<br>一、標準建模語言UML概述<br>二、標準建模語言UML的靜態建模機制<br>三、標準建模語言UML的動態建模機制<br>四、標準建模語言UML支持環境<br>五、標準建模語言UML的應用實例<br>1. UML建模過程高層視圖<br>2. UML實際建模過程<br>(1) 需求<br>(2) 分析</p><p><br>(接上期)<br>(3) 設計<br>設計階段的任務是通過綜合考慮所有的技術限制,以擴展和細化分析階段的模型。設計的目的是指明一種易轉化成代碼的工作方案,是對分析工作的細化,即進一步細化分析階段所提取的類(包括其操作和屬性),并且增加新類以處理諸如數據庫、用戶接口、通信、設備等技術領域的問題。<br>設計階段可以分為兩個部分:結構設計是高層設計,其任務是定義包(子系統),包括包間的依賴性和主要通信機制。我們希望得到盡可能簡單和清晰的結構,各部分之間的依賴盡可能的少,并盡可能的減少雙向的依賴關系。<br>第二部分是詳細設計,細化包的內容,使編程人員得到所有類的一個足夠清晰的描述。同時使用UML中的動態模型,描述特定情況下這些類的實例之間的行為。<br><strong>· 結構設計<br></strong>一個設計良好的系統結構是系統可擴充和可變更的基礎。包實際上是一些類的集合。類圖中包括有助于用戶從技術邏輯中分離出應用邏輯(領域類),從而減少它們之間的依賴性。這就是軟件結構設計強調的模塊間的高聚合、低偶合的原則。在商業MIS中,存在以下包(或子系統):<br>用戶接口包:用戶接口類允許用戶訪問系統數據和加入新數據。在商業對象中,用戶接口包跟商業對象包合作,調用商業對象的操作,實施數據的檢索和插入。<br>商業對象包:包括來自分析階段的特定領域類。在設計階段,詳細設計這些類,以完整定義他們的操作,支持對數據庫的存取。所以,所有商業對象類必須繼承數據庫包中的類。<br>數據庫包:為商業對象包中的類提供服務,便于永久存儲。<br>實用包:包含系統其他包要使用的服務。它們之間的內在關系如圖1所示。</p><p align="center"><img src="../images/uml7-1.jpg" width="315"height="215"></p><p><strong>· 詳細設計<br></strong>詳細設計的目的是通過創建新的類圖、狀態圖和動態圖,描述新的技術類,并擴展和細化分析階段"素描"的商業對象類。這些圖在分析階段也曾用過,不過在詳細設計階段,它們是從技術層次上對系統進行更詳盡的描述。如分析階段的用例描述用來驗證它們是否在設計階段都得到處理,而順序圖用來展示系統中每個用例在技術上如何實現,等等。<br>數據庫包:MIS的實現必須有永久存儲對象即數據庫的支持,因此系統中必須增加數據庫層,提供這種服務。目前,市面上有許多商用數據庫,有的是真正的面向對象數據庫如工程數據庫,有的是傳統的關系數據庫。由于我們只討論設計方法,不涉及具體的環境,因此,可以抽象一個永久存儲類來實現對數據庫的通用操作,如存儲、更新、刪除、查詢等。永久類類似于MFC中的基類。<br>商業對象包:設計階段的商業對象包即是分析階段的領域類,需要從實現角度對這些類進行細化,包括如何實現他們之間的關聯和行為。所有這些對象類必須從數據庫包的永久類中繼承而來。分析階段描述的類的操作,在設計模型中可能被分解成幾個操作或者改變名稱。因為分析是構造每個類的框架,而設計是對系統的詳細說明,因此設計模型中所有類的操作必須定義符號和返回值。圖2是經過細化后的商業類圖(局部)</p><p align="center"><img src="../images/uml7-2.jpg" width="319"height="329"></p><p>在設計階段,也可細化分析階段的狀態圖,更詳細的顯示狀態的變換細節(如圖3)。使用狀態圖可以揭示單個對象在整個系統中的變化細節,對了解和實現關鍵類有較大的幫助。<br>此外,還可以使用其他圖在實現層上從不同側面對分析階段建立的模型進行細化。<br>用戶接口包:用戶接口包在其他包的"頂層"。在系統中,它為用戶提供信息和支持。由于所有與用戶的交互都是通過用戶接口實現的,因此UML的動態模型非常適合對GUI包的描述。圖4用順序圖描述系統增加新商品用例的動態模型。另一種表示順序的圖是合作圖(如圖5)。</p><p align="center"><img src="../images/uml7-3.jpg" width="317"height="298"></p><p align="center"><img src="../images/uml7-4.jpg" width="478"height="283"></p><p align="center"><img src="../images/uml7-5.jpg" width="335"height="245"></p><p>建立用戶接口是設計階段的一項特殊活動。在商業MIS中,用戶接口可以分為功能(系統中的主功能窗口,如采購、庫存、銷售、統計分析等)、信息(顯示系統信息的窗口以及(維護系統的窗口)等三部分。<br>目前,由于可視化技術的迅速發展,用戶界面的設計相對比較簡單。一般情況下,應用系統的用戶界面由帶有菜單條和相應圖形的主窗口組成。<br>(4) 實現<br>構造或實現階段是對類進行編程的過程。可以選擇某種面向對象對象編程語言(如Java)作為實現系統的軟件環境。Java很容易實現從邏輯視圖到代碼部件的映射,因為類到Java代碼文件之間是一一映射關系。圖6是設計模型的部件圖,顯示邏輯視圖到部件視圖的一個簡單映射。邏輯視圖中的包也映射到相應的部件視圖中。</p><p align="center"><img src="../images/uml7-6.jpg" width="441"height="334"></p><p>在實現階段中,可以選取下列圖的說明來輔助編程:<br>· 類的規格說明:每個類的規格說明詳細顯示了必要的屬性和操作。<br>· 類圖:顯示類的靜態結構和類之間的關系。<br>· 狀態圖:顯示類的對象可能的狀態、所需處理的轉移以及觸發這些轉移的操作。<br>· 包含某個類的對象的動態圖(順序圖、合作圖、活動圖):顯示該類的某個方法的實現或別的對象是如何使用該類的對象的。<br>· 用例圖和規格說明:顯示系統需求和結果。<br>編碼期間也可能會發現設計模型的缺陷。這時需要開發者修改設計模型。修改設計模型時一定要保持設計模型與編碼的一致性,以便將來易于維護。<br>(5) 測試和配置<br>完成系統編碼后,需要對系統進行測試,它通常包括:單元測試、集成測試、系統測試和驗收測試。在單元測試中使用類圖和類的規格說明,對單獨的類或一組類進行測試;在集成測試中,使用組件圖和合作圖,對各組件的合作情況進行測試;在系統測試中,使用用例圖,以檢驗所開發的系統是否滿足例圖所描述的需求。<br>系統的配置是實際的交付系統,包括文檔和組成模型等。對商業MIS而言,它是一個典型的客戶/服務器系統。可以用配置圖顯示系統的物理結構,如圖7所示。從表面上看,配置圖能顯示系統設備之間的關系以及顯示節點跟可執行軟件單元的對應關系。然而一旦某個節點內部的對象或可執行部件過多(超過5個),就很難完全用配置圖清楚描述這種關系。</p><p align="center"><img src="../images/uml7-7.jpg" width="472"height="163"></p><p>(6) 小結</p><p><br>本文所舉的商業MIS系統的UML建模過程可以用圖8來描述。其中首先要把握的是如何使用用例技術正確描述系統需求。UML中的類圖描述的是系統中類的靜態關系,對象圖有助于對復雜類的理解。在系統開發過程中,類圖可應用于分析、設計和實現階段。類的包化有助于進行系統結構設計。商業MIS的包分為用戶接口包、商業對象包、數據庫包,他們之間的關系是前者依賴后者。</p><p><br>UML的動態模型包括狀態圖、順序圖、合作圖以及活動圖。在商業MIS中,順序圖對描述商業對象的交互非常有用,是商業MIS分析、設計和實現階段最重要的支持手段之一。</p><p><br>總之,UML提供的九種視圖從不同應用層次和不同角度為系統從系統分析、設計直到實現的提供有力支持。在不同的階段建立不同的模型,建模的目的也各不相同。</p><p><br>UML為用戶建模提供了強大的支持,并提供了很大的自由度。用戶在遵循增量迭代開發的原則下,完全可以根據自己所開發系統的特點,在每次迭代的微過程(分析、設計、實現、測試和配置)中,靈活的選用UML所提供的各種圖。</p><p><br>在UML應用過程中,選擇合適的工具也很重要,對于簡單的應用,Visio、MSWord等工具就可以支持各種所需圖形的生成。但它們都是靜態的圖形,都不能支持系統的建模與優化。北航軟件工程研究所正在研制與開發的UML集成化支持系統,就是為填補我國軟件產業的空白而設計和開發的。</p><p align="center"><br>我們認為,未來的軟件開發范式將具有以下三個特點:首先,軟件開發自動化的程度將越來越高;其次,在所開發的軟件中隱藏的差錯將越來越少;第三,在新型軟件工程環境的支持下,將有能力開發出自適應的軟件系統。標準建模語言UML及其集成化支持環境,將為走向這個新范式鋪平道路(全文完)。<br><img src="../images/uml7-8.jpg" width="554" height="473"></p><p align="center"><a href="../index.htm">Home</a></p></body></html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -