UML建模過程中如何進行設(shè)計 實現(xiàn) 測試和配置
本節(jié)接著向大家介紹UML建模過程,主要包括設(shè)計,實現(xiàn),測試和配置等內(nèi)容,相信通過本文的詳細介紹你對UML建模過程一定會有清晰的認識。下面讓我們繼續(xù)關(guān)注UML建模過程吧。
1.設(shè)計
UML建模過程中的設(shè)計階段的任務(wù)是通過綜合考慮所有的技術(shù)限制,以擴展和細化分析階段的模型。設(shè)計的目的是指明一種易轉(zhuǎn)化成代碼的工作方案,是對分析工作的細化,即進一步細化分析階段所提取的類(包括其操作和屬性),并且增加新類以處理諸如數(shù)據(jù)庫、用戶接口、通信、設(shè)備等技術(shù)領(lǐng)域的問題。
設(shè)計階段可以分為兩個部分:結(jié)構(gòu)設(shè)計是高層設(shè)計,其任務(wù)是定義包(子系統(tǒng)),包括包間的依賴性和主要通信機制。我們希望得到盡可能簡單和清晰的結(jié)構(gòu),各部分之間的依賴盡可能的少,并盡可能的減少雙向的依賴關(guān)系。
第二部分是詳細設(shè)計,細化包的內(nèi)容,使編程人員得到所有類的一個足夠清晰的描述。同時使用UML中的動態(tài)模型,描述特定情況下這些類的實例之間的行為。
·結(jié)構(gòu)設(shè)計
一個設(shè)計良好的系統(tǒng)結(jié)構(gòu)是系統(tǒng)可擴充和可變更的基礎(chǔ)。包實際上是一些類的集合。類圖中包括有助于用戶從技術(shù)邏輯中分離出應用邏輯(領(lǐng)域類),從而減少它們之間的依賴性。這就是軟件結(jié)構(gòu)設(shè)計強調(diào)的模塊間的高聚合、低偶合的原則。在商業(yè)MIS中,存在以下包(或子系統(tǒng)):
用戶接口包:用戶接口類允許用戶訪問系統(tǒng)數(shù)據(jù)和加入新數(shù)據(jù)。在商業(yè)對象中,用戶接口包跟商業(yè)對象包合作,調(diào)用商業(yè)對象的操作,實施數(shù)據(jù)的檢索和插入。
商業(yè)對象包:包括來自分析階段的特定領(lǐng)域類。在設(shè)計階段,詳細設(shè)計這些類,以完整定義他們的操作,支持對數(shù)據(jù)庫的存取。所以,所有商業(yè)對象類必須繼承數(shù)據(jù)庫包中的類。
數(shù)據(jù)庫包:為商業(yè)對象包中的類提供服務(wù),便于永久存儲。
實用包:包含系統(tǒng)其他包要使用的服務(wù)。
·詳細設(shè)計
UML建模過程中詳細設(shè)計的目的是通過創(chuàng)建新的類圖、狀態(tài)圖和動態(tài)圖,描述新的技術(shù)類,并擴展和細化分析階段"素描"的商業(yè)對象類。這些圖在分析階段也曾用過,不過在詳細設(shè)計階段,它們是從技術(shù)層次上對系統(tǒng)進行更詳盡的描述。如分析階段的用例描述用來驗證它們是否在設(shè)計階段都得到處理,而順序圖用來展示系統(tǒng)中每個用例在技術(shù)上如何實現(xiàn),等等。
數(shù)據(jù)庫包:MIS的實現(xiàn)必須有永久存儲對象即數(shù)據(jù)庫的支持,因此系統(tǒng)中必須增加數(shù)據(jù)庫層,提供這種服務(wù)。目前,市面上有許多商用數(shù)據(jù)庫,有的是真正的面向?qū)ο髷?shù)據(jù)庫如工程數(shù)據(jù)庫,有的是傳統(tǒng)的關(guān)系數(shù)據(jù)庫。由于我們只討論設(shè)計方法,不涉及具體的環(huán)境,因此,可以抽象一個永久存儲類來實現(xiàn)對數(shù)據(jù)庫的通用操作,如存儲、更新、刪除、查詢等。永久類類似于MFC中的基類。
商業(yè)對象包:設(shè)計階段的商業(yè)對象包即是分析階段的領(lǐng)域類,需要從實現(xiàn)角度對這些類進行細化,包括如何實現(xiàn)他們之間的關(guān)聯(lián)和行為。所有這些對象類必須從數(shù)據(jù)庫包的永久類中繼承而來。分析階段描述的類的操作,在設(shè)計模型中可能被分解成幾個操作或者改變名稱。因為分析是構(gòu)造每個類的框架,而設(shè)計是對系統(tǒng)的詳細說明,因此設(shè)計模型中所有類的操作必須定義符號和返回值。圖2是經(jīng)過細化后的商業(yè)類圖(局部)
在設(shè)計階段,也可細化分析階段的狀態(tài)圖,更詳細的顯示狀態(tài)的變換細節(jié)(如圖3)。使用狀態(tài)圖可以揭示單個對象在整個系統(tǒng)中的變化細節(jié),對了解和實現(xiàn)關(guān)鍵類有較大的幫助。
此外,還可以使用其他圖在實現(xiàn)層上從不同側(cè)面對分析階段建立的模型進行細化。
用戶接口包:用戶接口包在其他包的"頂層"。在系統(tǒng)中,它為用戶提供信息和支持。由于所有與用戶的交互都是通過用戶接口實現(xiàn)的,因此UML的動態(tài)模型非常適合對GUI包的描述。圖4用順序圖描述系統(tǒng)增加新商品用例的動態(tài)模型。另一種表示順序的圖是合作圖(如圖5)。
建立用戶接口是設(shè)計階段的一項特殊活動。在商業(yè)MIS中,用戶接口可以分為功能(系統(tǒng)中的主功能窗口,如采購、庫存、銷售、統(tǒng)計分析等)、信息(顯示系統(tǒng)信息的窗口以及(維護系統(tǒng)的窗口)等三部分。
目前,由于可視化技術(shù)的迅速發(fā)展,用戶界面的設(shè)計相對比較簡單。一般情況下,應用系統(tǒng)的用戶界面由帶有菜單條和相應圖形的主窗口組成。
2.實現(xiàn)
再來看一下UML建模過程中的實現(xiàn)問題。構(gòu)造或?qū)崿F(xiàn)階段是對類進行編程的過程??梢赃x擇某種面向?qū)ο髮ο缶幊陶Z言(如Java)作為實現(xiàn)系統(tǒng)的軟件環(huán)境。Java很容易實現(xiàn)從邏輯視圖到代碼部件的映射,因為類到Java代碼文件之間是一一映射關(guān)系。圖6是設(shè)計模型的部件圖,顯示邏輯視圖到部件視圖的一個簡單映射。邏輯視圖中的包也映射到相應的部件視圖中。
在實現(xiàn)階段中,可以選取下列圖的說明來輔助編程:
·類的規(guī)格說明:每個類的規(guī)格說明詳細顯示了必要的屬性和操作。
·類圖:顯示類的靜態(tài)結(jié)構(gòu)和類之間的關(guān)系。
·狀態(tài)圖:顯示類的對象可能的狀態(tài)、所需處理的轉(zhuǎn)移以及觸發(fā)這些轉(zhuǎn)移的操作。
·包含某個類的對象的動態(tài)圖(順序圖、合作圖、活動圖):顯示該類的某個方法的實現(xiàn)或別的對象是如何使用該類的對象的。
·用例圖和規(guī)格說明:顯示系統(tǒng)需求和結(jié)果。
編碼期間也可能會發(fā)現(xiàn)設(shè)計模型的缺陷。這時需要開發(fā)者修改設(shè)計模型。修改設(shè)計模型時一定要保持設(shè)計模型與編碼的一致性,以便將來易于維護。
3.測試和配置
完成系統(tǒng)編碼后,需要對系統(tǒng)進行測試,它通常包括:單元測試、集成測試、系統(tǒng)測試和驗收測試。在單元測試中使用類圖和類的規(guī)格說明,對單獨的類或一組類進行測試;在集成測試中,使用組件圖和合作圖,對各組件的合作情況進行測試;在系統(tǒng)測試中,使用用例圖,以檢驗所開發(fā)的系統(tǒng)是否滿足例圖所描述的需求。
系統(tǒng)的配置是實際的交付系統(tǒng),包括文檔和組成模型等。對商業(yè)MIS而言,它是一個典型的客戶/服務(wù)器系統(tǒng)。可以用配置圖顯示系統(tǒng)的物理結(jié)構(gòu),如圖7所示。從表面上看,配置圖能顯示系統(tǒng)設(shè)備之間的關(guān)系以及顯示節(jié)點跟可執(zhí)行軟件單元的對應關(guān)系。然而一旦某個節(jié)點內(nèi)部的對象或可執(zhí)行部件過多(超過5個),就很難完全用配置圖清楚描述這種關(guān)系。
4.小結(jié)
本文所舉的商業(yè)MIS系統(tǒng)的UML建模過程可以用圖8來描述。其中首先要把握的是如何使用用例技術(shù)正確描述系統(tǒng)需求。UML中的類圖描述的是系統(tǒng)中類的靜態(tài)關(guān)系,對象圖有助于對復雜類的理解。在系統(tǒng)開發(fā)過程中,類圖可應用于分析、設(shè)計和實現(xiàn)階段。類的包化有助于進行系統(tǒng)結(jié)構(gòu)設(shè)計。商業(yè)MIS的包分為用戶接口包、商業(yè)對象包、數(shù)據(jù)庫包,他們之間的關(guān)系是前者依賴后者。
UML的動態(tài)模型包括狀態(tài)圖、順序圖、合作圖以及活動圖。在商業(yè)MIS中,順序圖對描述商業(yè)對象的交互非常有用,是商業(yè)MIS分析、設(shè)計和實現(xiàn)階段最重要的支持手段之一。
總之,UML提供的九種視圖從不同應用層次和不同角度為系統(tǒng)從系統(tǒng)分析、設(shè)計直到實現(xiàn)的提供有力支持。在不同的階段建立不同的模型,建模的目的也各不相同。
UML為用戶建模提供了強大的支持,并提供了很大的自由度。用戶在遵循增量迭代開發(fā)的原則下,完全可以根據(jù)自己所開發(fā)系統(tǒng)的特點,在每次迭代的微過程(分析、設(shè)計、實現(xiàn)、測試和配置)中,靈活的選用UML所提供的各種圖。
在UML應用過程中,選擇合適的工具也很重要,對于簡單的應用,Visio、MSWord等工具就可以支持各種所需圖形的生成。但它們都是靜態(tài)的圖形,都不能支持系統(tǒng)的建模與優(yōu)化。
未來的軟件開發(fā)范式將具有以下三個特點:首先,軟件開發(fā)自動化的程度將越來越高;其次,在所開發(fā)的軟件中隱藏的差錯將越來越少;第三,在新型軟件工程環(huán)境的支持下,將有能力開發(fā)出自適應的軟件系統(tǒng)。標準建模語言UML及其集成化支持環(huán)境,將為走向這個新范式鋪平道路。
【編輯推薦】