標準建模語言UML及其支援環境(一) (轉)

worldblog發表於2007-12-02
標準建模語言UML及其支援環境(一) (轉)[@more@]編者按:
工程領域在1995年至1997年取得了前所未有的進展,其成果超過軟體工程領域過去15年來的成就總和。其中最重要的、具有劃時代重大意義的成果之一就是統一建模語言(UML:Unified Modeling Language)的出現。在世界範圍內,至少在近10年內,UML將是面向技術領域內占主導地位的標準建模語言。採用UML作為我國統一的建模語言是完全必要的:首先,過去數十種物件導向的建模語言都是相互獨立的,而UML可以消除一些潛在的不必要的差異,以免混淆;其次,透過統一語義和符號表示,能夠穩定我國的物件導向技術市場,使專案根植於一個成熟的標準建模語言,從而可以大大拓寬所研製與開發的軟體的適用範圍,並大大提高其靈活程度。為使讀者對UML語言及其支援環境有更深入、細緻的瞭解,我們特邀北京航空航天大學軟體工程研究所的專家撰文介紹,本文共分五個部分:
一、標準建模語言UML的概念 作者 張莉 周伯莊
二、標準建模語言UML的靜態建模機制 作者 葛科楊順祥
三、標準建模語言UML的動態建模機制 作者 王雲葛科
四、標準建模語言UML支援環境 作者 周伯生 張莉
五、標準建模語言UML的應用例項 作者楊順祥 王雲
我們將以連載的形式分7次對上述內容進行介紹。


一、標準建模語言UML概述


物件導向的分析與設計(&D)方法的發展在80年代末至90年代中出現了一個高潮,UML是這個高潮的產物。它不僅統一了Booch、Rumbaugh和Jacobson的表示方法,而且對其作了進一步的發展,並最終統一為大眾所接受的標準建模語言。


1. 標準建模語言UML的出現
公認的物件導向建模語言出現於70年代中期。從1989年到1994年,其數量從不到十種增加到了五十多種。在眾多的建模語言中,語言的創造者努力推崇自己的產品,並在實踐中不斷完善。但是,OO方法的使用者並不瞭解不同建模語言的優缺點及相互之間的差異,因而很難根據應用特點選擇合適的建模語言,於是爆發了一場"方法大戰"。90年代中,一批新方法出現了,其中最引人注目的是Booch 1993、OOSE和OMT-2等。


Booch是物件導向方法最早的倡導者之一,他提出了物件導向軟體工程的概念。1991 年,他將以前面向Ada的工作擴充套件到整個物件導向設計領域。Booch 1993比較適合於系統的設計和構造。Rumbaugh等人提出了物件導向的建模技術(OMT)方法,採用了物件導向的概念,並引入各種獨立於語言的表示符。這種方法用物件模型、動態模型、功能模型和用例模型,共同完成對整個系統的建模,所定義的概念和符號可用於的分析、設計和實現的全過程,軟體開發人員不必在開發過程的不同階段進行概念和符號的轉換。OMT-2特別適用於分析和描述以資料為中心的資訊系統。Jacobson於1994年提出了OOSE方法,其最大特點是面向用例(Use-Case),並在用例的描述中引入了外部角色的概念。用例的概念是精確描述需求的重要武器,但用例貫穿於整個開發過程,包括對系統的測試和驗證。OOSE比較適合支援商業工程和需求分析。此外,還有Coad/Yourdon方法,即著名的OOA/OOD,它是最早的物件導向的分析和設計方法之一。該方法簡單、易學,適合於物件導向技術的初學者使用,但由於該方法在處理能力方面的侷限,目前已很少使用。


概括起來,首先,面對眾多的建模語言,使用者由於沒有能力區別不同語言之間的差別,因此很難找到一種比較適合其應用特點的語言;其次,眾多的建模語言實際上各有千秋;第三,雖然不同的建模語言大多類同,但仍存在某些細微的差別,極大地妨礙了使用者之間的交流。因此在客觀上,極有必要在精心比較不同的建模語言優缺點及總結物件導向技術應用實踐的基礎上,組織聯合設計小組,根據應用需求,取其精華,去其糟粕,求同存異,統一建模語言。


1994年10月,Grady Booch和Jim Rumbaugh開始致力於這一工作。他們首先將Booch9 3和OMT-2 統一起來,並於1995年10月釋出了第一個公開版本,稱之為統一方法UM 0.8(Un itied Method)。1995年秋,OOSE 的創始人Ivar Jacobson加盟到這一工作。經過Booch、Rumbaugh和Jacobson三人的共同努力,於1996年6月和10月分別釋出了兩個新的版本,即UML 0.9和UML 0.91,並將UM重新命名為UML(Unified Modeling Language)。1996年,一些機構將UML作為其商業策略已日趨明顯。UML的開發者得到了來自公眾的正面反應,並倡議成立了UML成員協會,以完善、加強和促進UML的定義工作。當時的成員有DEC、HP、I-Logix、 Itellicorp、 IBM、ICON Computing、MCI Systemhouse、Micr osoft、、Rational Software、TI以及Unisys。這一機構對UML 1.0(1997年1月)及UML 1.1(1997年11月17日)的定義和釋出起了重要的促進作用。


UML是一種定義良好、易於表達、功能強大且普遍適用的建模語言。它溶入了軟體工程領域的新思想、新方法和新技術。它的作用域不限於支援物件導向的分析與設計,還支援從需求分析開始的軟體開發的全過程。

圖1 UML的發展歷程


物件導向技術和UML的發展過程可用上圖來表示,標準建模語言的出現是其重要成果。在美國,截止1996年10月,UML獲得了工業界、科技界和應用界的廣泛支援,已有700多個公司表示支援採用UML作為建模語言。1996年底,UML已穩佔物件導向技術市場的85%,成為視覺化建模語言事實上的工業標準。1997年11月17日,OMG採納UML 1.1作為基於物件導向技術的標準建模語言。UML代表了物件導向方法的軟體開發技術的發展方向,具有巨大的市場前景,也具有重大的經濟價值和國防價值。


2. 標準建模語言UML的內容


首先,UML融合了Booch、OMT和OOSE方法中的基本概念,而且這些基本概念與其他物件導向技術中的基本概念大多相同,因而,UML必然成為這些方法以及其他方法的使用者樂於採用的一種簡單一致的建模語言;其次,UML不僅僅是上述方法的簡單匯合,而是在這些方法的基礎上廣泛徵求意見,集眾家之長,幾經修改而完成的,UML擴充套件了現有方法的應用範圍;第三,UML是標準的建模語言,而不是標準的開發過程。儘管UML的應用必然以系統的開發過程為背景,但由於不同的組織和不同的應用領域,需要採取不同的開發過程。
作為一種建模語言,UML的定義包括UML語義和UML表示法兩個部分

(1) UML語義 描述基於UML的精確元模型定義。元模型為UML的所有元素在語法和語義上提供了簡單、一致、通用的定義性說明,使開發者能在語義上取得一致,消除了因人而異的最佳表達方法所造成的影響。此外UML還支援對元模型的擴充套件定義。
(2) UML表示法 定義UML符號的表示法,為開發者或開發工具使用這些圖形符號和文字語法為系統建模提供了標準。這些圖形符號和文字所表達的是應用級的模型,在語義上它是UML元模型的例項。
標準建模語言UML的重要內容可以由下列五類圖(共9種圖形)來定義:


·第一類是用例圖,從使用者角度描述系統功能,並指出各功能的操作者。
·第二類是靜態圖(Static diagram),包括類圖、物件圖和包圖。其中類圖描述系統中類的靜態結構。不僅定義系統中的類,表示類之間的聯絡如關聯、依賴、聚合等,也包括類的內部結構(類的屬性和操作)。類圖描述的是一種靜態關係,在系統的整個生命週期都是有效的。物件圖是類圖的例項,幾乎使用與類圖完全相同的標識。他們的不同點在於物件圖顯示類的多個物件例項,而不是實際的類。一個物件圖是類圖的一個例項。由於物件存在生命週期,因此物件圖只能在系統某一時間段存在。包由包或類組成,表示包與包之間的關係。包圖用於描述系統的分層結構。
·第三類是行為圖(Behavior diagram),描述系統的動態模型和組成物件間的互動關係。其中狀態圖描述類的物件所有可能的狀態以及事件發生時狀態的轉移條件。通常,狀態圖是對類圖的補充。在實用上並不需要為所有的類畫狀態圖,僅為那些有多個狀態其行為受外界環境的影響並且發生改變的類畫狀態圖。而活動圖描述滿足用例要求所要進行的活動以及活動間的關係,有利於識別並行活動。
·第四類是互動圖(Interactive diagram),描述物件間的互動關係。其中順序圖顯示物件之間的動態合作關係,它強調物件之間訊息傳送的順序,同時顯示物件之間的互動;合作圖描述物件間的協作關係,合作圖跟順序圖相似,顯示物件間的動態合作關係。除顯示資訊外,合作圖還顯示物件以及它們之間的關係。如果強調時間和順序,則使用順序圖;如果強調上下級關係,則選擇合作圖。這兩種圖合稱為互動圖。
·第五類是實現圖( Implementation diagram )。其中構件圖描述程式碼部件的物理結構及各部件之間的依賴關係。一個部件可能是一個資部件、一個二進位制部件或一個可部件。它包含邏輯類或實現類的有關資訊。部件圖有助於分析和理解部件之間的相互影響程度。
圖定義系統中軟的物理體系結構。它可以顯示實際的和裝置(用節點表示)以及它們之間的連線關係,也可顯示連線的型別及部件之間的依賴性。在節點內部,放置可執行部件和物件以顯示節點跟可執行軟體單元的對應關係。


從應用的角度看,當採用物件導向技術設計系統時,首先是描述需求;其次根據需求建立系統的靜態模型,以構造系統的結構;第三步是描述系統的行為。其中在第一步與第二步中所建立的模型都是靜態的,包括用例圖、類圖(包含包)、物件圖、圖和配置圖等五個圖形,是標準建模語言UML的靜態建模機制。其中第三步中所建立的模型或者可以執行,或者表示執行時的時序狀態或互動關係。它包括狀態圖、活動圖、順序圖和合作圖等四個圖形,是標準建模語言UML的動態建模機制。因此,標準建模語言UML的主要內容也可以歸納為靜態建模機制和動態建模機制兩大類。


3. 標準建模語言UML的主要特點
標準建模語言UML的主要特點可以歸結為三點:
(1) UML統一了Booch、OMT和OOSE等方法中的基本概念。
(2) UML還吸取了物件導向技術領域中其他流派的長處,其中也包括非OO方法的影響。UML符號表示考慮了各種方法的圖形表示,刪掉了大量易引起混亂的、多餘的和極少使用的符號,也新增了一些新符號。因此,在UML中匯入了物件導向領域中很多人的思想。這些思想並不是UML的開發者們發明的,而是開發者們依據最優秀的OO方法和豐富的電腦科學實踐綜合提煉而成的。
(3) UML在演變過程中還提出了一些新的概念。在UML標準中新加了模板(Stereotyp es)、職責(Responsibilities)、擴充套件機制(Extensibility mechanisms)、執行緒(Thread s)、過程(Processes)、分散式(Distribution)、併發(Concurrency)、(Patterns) 、合作(Collaborations)、活動圖(Activity diagram)等新概念,並清晰地區分型別(Ty pe)、類(Class)和例項(Instance)、細化(Refinement)、介面(Interfaces)和元件(ponents)等概念。


因此可以認為,UML是一種先進實用的標準建模語言,但其中某些概念尚待實踐來驗證,UML也必然存在一個進化過程(未完待續)。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-987471/,如需轉載,請註明出處,否則將追究法律責任。

相關文章