UML與面向?qū)ο蟾攀鯻第1頁
UML與面向?qū)ο蟾攀鯻第2頁
UML與面向?qū)ο蟾攀鯻第3頁
UML與面向?qū)ο蟾攀鯻第4頁
UML與面向?qū)ο蟾攀鯻第5頁
已閱讀5頁,還剩154頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

UML及面向?qū)ο蠓治黾霸O(shè)計(jì)

主講:胡元發(fā)

本課程采用平時成績〔包括出勤考核,課堂發(fā)言等〕、實(shí)踐〔實(shí)驗(yàn)和課程設(shè)計(jì)〕和理論考試相結(jié)合的考核方法??傇u成績中平時成績占15%,實(shí)踐成績占25%,期末考試占60%。課程設(shè)計(jì)要求學(xué)生按小組完成工程設(shè)計(jì),并以軟件驗(yàn)收書面報(bào)告的形式上交。課程安排教科書:《UML面向?qū)ο笤O(shè)計(jì)與分析根底教程》,牛麗平等編著,清華大學(xué)出版社2007第1章UML與面向?qū)ο蟊菊轮饕榻B什么是面向?qū)ο蟮姆治龇椒ê驮O(shè)計(jì)方法,面向?qū)ο蠓治龅娜龑釉O(shè)計(jì);然后介紹面向?qū)ο蠓治龅墓ぞ吆头椒?UML,以及UML的主要構(gòu)成Coad和Yourdon:

面向?qū)ο?對象+類+繼承+通信1.1面向?qū)ο箝_發(fā)1.1.1不同的分析與設(shè)計(jì)方法1.功能分解法〔functiondecomposition〕

以系統(tǒng)需要提供的功能為中心來組織系統(tǒng)。

首先定義各種功能,然后把功能分解為子功能,對較大的子功能進(jìn)一步分解,直到可給出明確的定義

設(shè)計(jì)功能/子功能所需要的數(shù)據(jù)結(jié)構(gòu)

定義功能/子功能之間的接口。

〔作為一種早期的建模方法,沒有明確地區(qū)分分析與設(shè)計(jì)〕

建模過程:層層進(jìn)行功能分解1.1面向?qū)ο箝_發(fā)1.1.1不同的分析與設(shè)計(jì)方法1.功能分解法〔functiondecomposition〕功能分解法得到的系統(tǒng)模型〔由模塊及其接口構(gòu)成〕優(yōu)點(diǎn)與缺點(diǎn):

直接地反映用戶的需求,所以工作很容易開始;

不能直接地映射問題域,很難檢驗(yàn)結(jié)果的正確性;

對需求變化的適應(yīng)能力很差;

局部的錯誤和修改很容易產(chǎn)生全局性的影響。

1.1面向?qū)ο箝_發(fā)1.1.1不同的分析與設(shè)計(jì)方法2.結(jié)構(gòu)化方法:

結(jié)構(gòu)化分析〔structuredanalysis,SA〕

結(jié)構(gòu)化設(shè)計(jì)〔structureddesign。SD〕

結(jié)構(gòu)化分析又稱數(shù)據(jù)流法,其根本策略是跟蹤數(shù)據(jù)流,即研究問題域中數(shù)據(jù)如何流動,以及在各個環(huán)節(jié)上進(jìn)行何種處理,從而發(fā)現(xiàn)數(shù)據(jù)流和加工。得到的分析模型是數(shù)據(jù)流圖〔DFD〕,主要模型元素是數(shù)據(jù)流、加工、文件及端點(diǎn),外加處理說明和數(shù)據(jù)字典。數(shù)據(jù)流圖:

1.1面向?qū)ο箝_發(fā)1.1.1不同的分析與設(shè)計(jì)方法2.結(jié)構(gòu)化方法:

結(jié)構(gòu)化設(shè)計(jì)與功能分解法根本相同,基于模塊的概念建立設(shè)計(jì)模型,分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。

概要設(shè)計(jì):確定系統(tǒng)中包含哪些模塊以及模塊之間的調(diào)用關(guān)系,得到模塊結(jié)構(gòu)圖〔MSD〕。

詳細(xì)設(shè)計(jì):描述每個模塊內(nèi)部的數(shù)據(jù)結(jié)構(gòu)和操作流程。

結(jié)構(gòu)化方法的優(yōu)缺點(diǎn):優(yōu)點(diǎn):強(qiáng)調(diào)研究問題域,并且有嚴(yán)格的法那么。缺點(diǎn):仍然是間接映射問題域;分析與設(shè)計(jì)的概念不一致,從分析到設(shè)計(jì)的過渡比較困難;數(shù)據(jù)流和加工的數(shù)量太多,引起分析文檔的膨脹。

1.1面向?qū)ο箝_發(fā)1.1.1不同的分析與設(shè)計(jì)方法3.信息建模法〔informationmodeling〕

由實(shí)體-關(guān)系法〔E-R方法〕開展而來。

核心概念是實(shí)體和關(guān)系。實(shí)體描述問題域中的事物,關(guān)系描述事物之間在數(shù)據(jù)方面的聯(lián)系,都可以帶有屬性。

開展之后的方法也把實(shí)體稱作對象,并使用了類型和子類型的概念,作為實(shí)體〔對象〕的抽象描述。

E-R圖:

1.1面向?qū)ο箝_發(fā)1.1.1不同的分析與設(shè)計(jì)方法3.信息建模法〔informationmodeling〕

信息模型:信息建模法已經(jīng)很接近面向?qū)ο蠓椒ǎ虼擞械奈墨I(xiàn)也把它稱為一種面向?qū)ο蠓椒?,但有以下差異?/p>

1)

強(qiáng)調(diào)的重點(diǎn)是信息建模和狀態(tài)建模,而不是對象建模

2)

實(shí)體中只有屬性沒有操作

3)

只有屬性的繼承,不正常操作的繼承

4)

沒有采用信息通訊

1.1面向?qū)ο箝_發(fā)1.1.1不同的分析與設(shè)計(jì)方法4.面向?qū)ο蠓椒?/p>

面向?qū)ο蟮姆治觥睴OA〕〔做什么〕

面向?qū)ο蟮脑O(shè)計(jì)〔OOD〕〔怎么做〕面向?qū)ο蟮木幊獭睴OP〕

運(yùn)用對象、類、繼承、封裝、聚合、關(guān)聯(lián)、消息、多態(tài)性等概念來構(gòu)造系統(tǒng)。

把問題域中的事物抽象為對象,作為系統(tǒng)的根本構(gòu)成單位,其屬性和操作刻畫了事物的靜態(tài)特征和動態(tài)特征——完整地刻畫了問題域中事物。

用類作為對象的抽象描述,建立它們之間的繼承、聚合、關(guān)聯(lián)、消息等關(guān)系——如實(shí)地表達(dá)了問題域中事物之間的各種關(guān)系。

封裝、繼承、聚合、關(guān)聯(lián)、消息通訊等原那么符合人類的日常思維——使系統(tǒng)的復(fù)雜性得到控制。

不同的建模方法

表達(dá)于

從不同的概念出發(fā)認(rèn)識問題域

用不同的概念進(jìn)行系統(tǒng)構(gòu)造1.1面向?qū)ο箝_發(fā)1.1.1不同的分析與設(shè)計(jì)方法系統(tǒng)對現(xiàn)實(shí)世界的映射方式不同1.1面向?qū)ο箝_發(fā)不同的方法對同一應(yīng)用實(shí)例〔安裝業(yè)務(wù)系統(tǒng)〕的不同效果

結(jié)構(gòu)化分析——數(shù)據(jù)流和加工問題:

不是直接映射問題域,與事物相關(guān)的數(shù)據(jù)和操作不是圍繞這些事物來組織的,而是分散在數(shù)據(jù)流和加工中;經(jīng)常發(fā)生信息膨脹——模型中的多個數(shù)據(jù)里,實(shí)現(xiàn)中其實(shí)只是一項(xiàng)數(shù)據(jù);分析模型難以與設(shè)計(jì)模型及源程序?qū)?yīng)。1.1面向?qū)ο箝_發(fā)面向?qū)ο蠓椒ā獙ο蠹捌潢P(guān)系1.1面向?qū)ο箝_發(fā)OO包括OOA、OOD、OOP什么是OOA

顧名思義,面向?qū)ο蟮姆治觥睴OA〕,就是運(yùn)用面向?qū)ο蠓椒ㄟM(jìn)行系統(tǒng)分析。

首先,OOA是分析,是軟件生存周期的一個階段,具有一般分析方法共同具有的內(nèi)容、目標(biāo)及策略;

但是,它強(qiáng)調(diào)運(yùn)用面向?qū)ο蠓椒ㄟM(jìn)行分析,用面向?qū)ο蟮母拍詈捅硎痉ū磉_(dá)分析結(jié)果。

根本任務(wù):運(yùn)用面向?qū)ο蟮母拍顚栴}域進(jìn)行分析,將問題域中與系統(tǒng)責(zé)任有關(guān)的事物抽象為系統(tǒng)中的對象,定義這些對象的屬性與操作,以及它們之間的各種關(guān)系。

最終目標(biāo):建立一個滿足用戶需求、直接映射問題域的OOA模型。1.1面向?qū)ο箝_發(fā)

什么是OOD

不同時期有不同內(nèi)容及特點(diǎn)

早期〔80年代末期之前〕OOD的特點(diǎn):

1)

不是基于OOA的

大多基于結(jié)構(gòu)化分析結(jié)果〔數(shù)據(jù)流圖〕

2)

是OO編程方法的延伸

多數(shù)方法與編程語言無關(guān),特別受Ada影響很大

3)

不是純OO的

對某些OO概念〔如繼承〕缺少支持,摻雜一些非OO概念〔如數(shù)據(jù)流、包、模塊等〕

4)

不是只針對軟件生存周期的設(shè)計(jì)階段

OOD中的“D〞——指的是Design或Development,多少涉及分析問題〔如識別問題域的對象〕,但很不徹底

——早期的OOD可看作現(xiàn)今OOA&D方法的雛形

現(xiàn)今〔90年代以后〕OOD的特點(diǎn):

i.

以面向?qū)ο蟮姆治鰹楦?,一般不依賴結(jié)構(gòu)化分析。

ii.

與OOA方法共同構(gòu)成一種OOA&D方法體系。OOA和OOD采用一致的概念與原那么,但屬于軟件生存周期的不同階段,有不同的目標(biāo)及策略。

iii.

較全面地表達(dá)面向?qū)ο蠓椒ǖ母拍钆c原那么。

iv.

大多數(shù)方法獨(dú)立于編程語言,通過面向?qū)ο蟮姆治雠c設(shè)計(jì)所得到的系統(tǒng)模型可以由不同的編程語言實(shí)現(xiàn)。

定義:

面向?qū)ο蟮脑O(shè)計(jì)〔OOD〕就在是OOA模型根底上運(yùn)用面向?qū)ο蠓椒ㄟM(jìn)行系統(tǒng)設(shè)計(jì),目標(biāo)是產(chǎn)生一個符合具體實(shí)現(xiàn)條件的OOD模型。1.1面向?qū)ο箝_發(fā)

什么是OOP

OOP就是使用某種面向?qū)ο蟮恼Z言,實(shí)現(xiàn)系統(tǒng)中的類和對象,并使系統(tǒng)能夠正常運(yùn)行。在理想的OO開發(fā)過程中,OOP只是簡單的使用編程語言實(shí)現(xiàn)了OOA和OOD分析和設(shè)計(jì)模型。1.1面向?qū)ο箝_發(fā)

OO方法的主要優(yōu)點(diǎn)

軟件建模面臨的挑戰(zhàn)

a)

問題域和系統(tǒng)責(zé)任復(fù)雜性日益增長

問題域〔problemdomain〕:被開發(fā)系統(tǒng)的應(yīng)用領(lǐng)域,即在現(xiàn)實(shí)世界中由這個系統(tǒng)進(jìn)行處理的業(yè)務(wù)范圍。

系統(tǒng)責(zé)任〔systemresponsibilities〕:所開發(fā)的系統(tǒng)應(yīng)該具備的職能。

隨著硬件性能的提高和價格的下降,軟件系統(tǒng)所面臨的問題域和系統(tǒng)責(zé)任越來越復(fù)雜,因此系統(tǒng)也越來越龐大。

b)

交流問題

軟件系統(tǒng)的開發(fā)需要各類人員之頻繁交流。領(lǐng)域的多樣性使軟件工程中的交流問題比與其他工程更為突出。

有效的交流需要一種彼此都能理解的共同語言,否那么將彼此的思維難以溝通,很容易隱藏下許多錯誤。

c)

需求的不斷變化

用戶因素,競爭因素,經(jīng)費(fèi)因素……d)

軟件復(fù)用的要求

復(fù)用級別提高——分析與設(shè)計(jì)結(jié)果復(fù)用

要求分析與設(shè)計(jì)模型的根本成分可以在多個系統(tǒng)中復(fù)用1.1面向?qū)ο箝_發(fā)

面向?qū)ο蠓椒ǖ膬?yōu)勢

i.

對問題域和系統(tǒng)責(zé)任的復(fù)雜性具有較強(qiáng)的處理能力

從問題域中的實(shí)際事物出發(fā)來構(gòu)造系統(tǒng)模型,使系統(tǒng)模型能直接地映射問題域;繼承、封裝、聚合等概念使系統(tǒng)的復(fù)雜性得到有效的控制。

ii.

提供了便于各類相關(guān)人員交流共同語言

使用與問題域一致的概念及術(shù)語,表達(dá)人類的日常思維方式,為改進(jìn)各類人員之間的交流提供了最根本的條件。

iii.

對需求的變化具有較強(qiáng)的適應(yīng)性

按封裝原那么把系統(tǒng)中最容易變化的因素隔離起來,系統(tǒng)的各個單元成分之間接口很少,把需求變化所引起的影響局部化。

iv.

為實(shí)現(xiàn)分析與設(shè)計(jì)級別的軟件復(fù)用提供了有力支持

OO方法的封裝、繼承、聚合等原那么,對象的完整性、獨(dú)立性以及與問題域的良好對應(yīng),使之有利于軟件復(fù)用。

v.

貫穿軟件生存周期全過程的一致性

從OOA開始使用與問題域一致的概念、詞匯、原那么及表示法,這種一致性保持到設(shè)計(jì)、編程、測試、維護(hù)等各個階段,對于整個軟件生存周期的開發(fā)、維護(hù)及管理活動都具有重要的意義。1.1面向?qū)ο箝_發(fā)

幾種典型的OO方法方法的異同表達(dá)于:概念、表示法、系統(tǒng)模型、開發(fā)過程、可用性、技術(shù)支持等方面

1.1面向?qū)ο箝_發(fā)

Booch方法

1.1面向?qū)ο箝_發(fā)

Booch方法的過程,特點(diǎn):思維活潑,開拓與創(chuàng)新,可操作性不夠強(qiáng),類圖與對象圖并存1.1面向?qū)ο箝_發(fā)

Coad/Yourdon方法,特點(diǎn):概念簡練,過程清晰,強(qiáng)調(diào)概念的一致性,過程指導(dǎo)不夠具體

1.1面向?qū)ο箝_發(fā)

Jacobson方法〔OOSE〕,特點(diǎn):通過用況描述用戶需求,用交互圖描述對象之間的交互,用況驅(qū)動的觀點(diǎn)言之有過。

1.1面向?qū)ο箝_發(fā)

Rumbaugh方法〔OMT〕,特點(diǎn):概念嚴(yán)謹(jǐn),闡述清楚,過程具體,可操作性強(qiáng),包含了許多非OO的內(nèi)容,提出假設(shè)干擴(kuò)充概念,偏于復(fù)雜。

1.1.2面向?qū)ο蟮闹饕拍?對象對象〔Object〕是面向?qū)ο蟆睴bject-Oriented,OO〕系統(tǒng)的根本構(gòu)造塊,是一些相關(guān)的變量和方法的軟件集。2面向?qū)ο笈c面向過程的區(qū)別面向?qū)ο?以對象為根底,以事件或消息來驅(qū)動對象執(zhí)行處理,是自下而上的程序設(shè)計(jì)方法,其特點(diǎn)是,從問題的一局部著手,在設(shè)計(jì)中以數(shù)據(jù)為中心,類為工具.結(jié)構(gòu)化程序設(shè)計(jì):自上而下,先確定程序的流程怎么走,函數(shù)間的調(diào)用關(guān)系和依賴關(guān)系是什么.3對象與類確實(shí)定對象〔Object〕是由狀態(tài)〔State〕和行為〔Behavior〕構(gòu)成的,是包含客觀事物特征的抽象實(shí)體,封裝了狀態(tài)和行為。對象=數(shù)據(jù)+數(shù)據(jù)操作可以利用對象來代表現(xiàn)實(shí)世界中的對象:可用一個飛行試駕程序來代表現(xiàn)實(shí)世界中的正在飛行的飛機(jī),或者用機(jī)床數(shù)控程序來代表現(xiàn)實(shí)世界的運(yùn)行的機(jī)床。同樣可以使用對象來造型抽象的概念,比方,點(diǎn)擊按鈕事件就是一個用在GUI窗口系統(tǒng)的公共對象,它可以代表用戶點(diǎn)擊程序界面中的一個確定按鈕的動作。1.1.3對象與類確實(shí)定類〔Class〕是具有相同屬性和操作的一組對象的組合。對象是類的實(shí)體化類確實(shí)定:確定系統(tǒng)的范圍,在系統(tǒng)范圍內(nèi)尋找對象,將對象抽象成為一個類,進(jìn)而確定類的數(shù)據(jù)和操作。例如名為“學(xué)生〞的類被用于描述為被學(xué)生管理系統(tǒng)管理的學(xué)生對象。類的定義要包含以下的要素第一,定義該類對象的數(shù)據(jù)結(jié)構(gòu)〔屬性的名稱和類型〕第二,定義對象所要執(zhí)行的操作,也就是類的對象要被調(diào)用執(zhí)行那些操作,以及這些操作時對象要執(zhí)行那些操作,比方數(shù)據(jù)庫操作等等。4消息和事件所謂消息〔Message〕是指描述事件發(fā)生的信息,是對象間相互聯(lián)系和相互作用的方式。一個消息主要由5局部組成:消息的發(fā)送對象、消息的接收對象、消息傳遞方式、消息內(nèi)容〔參數(shù)〕、消息的返回。傳入的消息內(nèi)容的目的有兩個,一個是讓接受請求的對象獲取執(zhí)行任務(wù)的相關(guān)信息,另一個是行為指令。所謂事件通常是指一種由系統(tǒng)預(yù)先定義而由用戶或系統(tǒng)發(fā)出的動作。事件作用于對象,對象識別事件并作出相應(yīng)反響。對象通過對外提供的方法在系統(tǒng)中發(fā)揮自己的作用,當(dāng)系統(tǒng)中的其它對象請求這個對象執(zhí)行某個方法時,就向該對象發(fā)送一個消息,對象響應(yīng)這個請求,完成指定的操作。程序的執(zhí)行取決于事件發(fā)生的順序,由順序產(chǎn)生的消息來驅(qū)動程序的執(zhí)行。1.2面向?qū)ο蟮母咎卣髅嫦驅(qū)ο蟮暮诵脑?對象,封裝,消息,類,繼承,多態(tài)性,結(jié)構(gòu)與連接客觀世界里的任何實(shí)體都可以被稱為對象。對象可以是具體的、有形的物,也可以是無形的事物或概念。對象是問題域或?qū)崿F(xiàn)域中某些事物的一個抽象。對象是一個封裝數(shù)據(jù)屬性和操作行為的實(shí)體。系統(tǒng)中的對象在軟件生命周期的各個階段可能有不同的表示形式。1.對象一個對象的實(shí)例圖解封裝〔Encapsulation〕是把對象的狀態(tài)和行為綁到一起的機(jī)制,把對象形成一個獨(dú)立的整體,并且盡可能的隱藏對象的內(nèi)部細(xì)節(jié)。封裝有兩個含義:一是把對象的全部狀態(tài)和行為結(jié)合一起,形成一個不可分割的整體。對象的私有屬性只能夠由對象的行為來修改和讀取。二是盡可能隱蔽對象的內(nèi)部細(xì)節(jié),與外界的聯(lián)系只能夠通過外部接口來實(shí)現(xiàn)。封裝的信息屏蔽作用反映了事物的相對獨(dú)立性,我們可以只關(guān)心它對外所提供的接口,即能夠提供什么樣的效勞,而不用去關(guān)注其內(nèi)部的細(xì)節(jié)問題。比方說使用,我們關(guān)注的通常是這個能實(shí)現(xiàn)什么功能,而不太會去關(guān)心這個的是怎么一步步制造出來的。2.封裝消息是向?qū)ο蟀l(fā)出的效勞請求。一個消息包含消息名、接受對象的標(biāo)志、效勞標(biāo)志、輸入信息、答復(fù)信息等。消息傳遞機(jī)制。3.消息類是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對象的集合。類是對象的抽象??陀^世界實(shí)際存在的都是對象,而不是類。類和對象的關(guān)系。4.類繼承〔Inheritance〕是一種連接類與類的之間的層次模型。繼承是指特殊類的對象擁有其一般類的屬性和行為。繼承意味著“自動地?fù)碛楔?,即在特殊類中不必重新對已?jīng)在一般類中所定義過的屬性和行為進(jìn)行定義,而是特殊類自動地、隱含地?fù)碛衅湟话泐惖膶傩院托袨?。繼承對類的重用性,提供了一種明確表述共性的方法。即一個特殊類既有自己定義的屬性和行為,又有繼承下來的屬性和行為。5.繼承繼承的描述單重繼承和多重繼承的描述定義:同一操作作用于不同的對象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果。多態(tài)性分為兩種:編譯時的多態(tài)性。運(yùn)行時的多態(tài)性。6.多態(tài)性一般/特殊結(jié)構(gòu)整體/局部結(jié)構(gòu)實(shí)例連接消息連接7.結(jié)構(gòu)與連接發(fā)現(xiàn)對象,從對象中抽象出類的定義。識別對象的內(nèi)部特征。識別對象的外部關(guān)系。劃分主題,建立主題圖。定義用例,建立交互圖。建立詳細(xì)說明。原型開發(fā)。面向?qū)ο蠓治龅母具^程面向?qū)ο蠓治鲞^程模型抽象原那么分類原那么聚合原那么關(guān)聯(lián)原那么消息通信原那么面向?qū)ο蠓治龅母驹敲?.3UML簡介為什么要利用UML對系統(tǒng)進(jìn)行面向?qū)ο蠼?,如何使用UML形成面向?qū)ο蠼5拈_發(fā)模式。建模的使用是軟件成功的一個根本因素。模型的實(shí)質(zhì):對現(xiàn)實(shí)的簡化。建模的目標(biāo):便于展現(xiàn)系統(tǒng)。允許指定系統(tǒng)的結(jié)構(gòu)或行為。提供構(gòu)造系統(tǒng)的模板。記錄決策。建模的重要性選擇建立什么樣的模型對如何發(fā)現(xiàn)和解決問題具有重要的影響。每個模型可以有多種表達(dá)方式。最好的模型總是能夠切合實(shí)際。孤立的模型是不完整的。任何好的系統(tǒng)都是由一些幾乎獨(dú)立的模型拼湊出來的。建模四原那么面向?qū)ο蠼煞N最常用的建模方法:基于算法的和面向?qū)ο蟮摹kS著需求的變化和系統(tǒng)的增長,運(yùn)用基于算法的建模方法建立起來的系統(tǒng)很難維護(hù)。在面向?qū)ο蟮慕7椒ㄖ校饕哪K是對象或者類。Booch1993〔GradyBooch〕OOSE〔JimRumbaugh〕OMT-2〔IvarJacobson〕面向?qū)ο蟮慕UZ言—統(tǒng)一建模語言UML的開展過程1.4UML視圖UML定義了一套建模語言。UML是一種對軟件系統(tǒng)進(jìn)行規(guī)約,構(gòu)造,可視化和文檔化的語言。UML也致力于并發(fā)分布式系統(tǒng)和實(shí)時系統(tǒng)的建模。UML的概念模型分為靜態(tài)結(jié)構(gòu),動態(tài)行為,實(shí)現(xiàn)構(gòu)造,模型組織和擴(kuò)展機(jī)制等局部。UML的概念和模型劃分為視圖,圖和模型。1.4視圖UML利用模型來描述系統(tǒng)的結(jié)構(gòu)、靜態(tài)特征、行為或動態(tài)特征,它從不同的視角為系統(tǒng)的架構(gòu)建模形成系統(tǒng)的不同視圖。結(jié)構(gòu)分類描述了系統(tǒng)中的結(jié)構(gòu)成員及其相互關(guān)系。類元包括類、用例、構(gòu)件和節(jié)點(diǎn)。類元為研究系統(tǒng)動態(tài)行為奠定了根底。類元視圖包括靜態(tài)視圖、用例視圖、實(shí)現(xiàn)視圖以及部署視圖。動態(tài)行為描述了系統(tǒng)隨時間變化的行為。行為利用從靜態(tài)視圖中抽取的瞬間值的變化來描述。動態(tài)行為視圖包括狀態(tài)機(jī)視圖、活動視圖和交互視圖。模型管理說明了模型的分層組織結(jié)構(gòu)。包是模型的根本組織單元。特殊的包還包括模型和子系統(tǒng)。模型管理視圖跨越了其他視圖并根據(jù)系統(tǒng)開發(fā)和配置組織這些視圖。視圖模型劃分為三個視圖域UML中的主要視圖有:用例視圖、邏輯視圖、并發(fā)視圖、組件視圖、部署視圖。1.用例視圖用例視圖描述了系統(tǒng)的參與者與系統(tǒng)進(jìn)行交互的功能,是參與者所能觀察和使用到的系統(tǒng)功能的模型圖。2.邏輯視圖描述用例視圖提出的系統(tǒng)功能的實(shí)現(xiàn)。主要關(guān)注系統(tǒng)內(nèi)部,既描述系統(tǒng)的靜態(tài)結(jié)構(gòu),如類、對象及它們之間的關(guān)系,又描述系統(tǒng)內(nèi)部的動態(tài)協(xié)作關(guān)系。3.并發(fā)視圖主要考慮資源的有效利用、代碼的并行執(zhí)行已經(jīng)系統(tǒng)環(huán)境中異步事件的處理。除了系統(tǒng)劃分為并發(fā)執(zhí)行的控制以外,并發(fā)視圖還要處理線程之間的通信與同步。描述并發(fā)視圖主要使用狀態(tài)圖、協(xié)作圖和活動圖4.組件視圖描述系統(tǒng)的實(shí)現(xiàn)模塊以及它們之間的依賴關(guān)系。組件視圖可以添加組件的其它附加信息。描述組件視圖的主要是組件圖。5.部署視圖顯示系統(tǒng)的物理部署,它描述位于節(jié)點(diǎn)上的運(yùn)行實(shí)例的部署情況,還允許評估分配結(jié)果和資源分配。一般使用部署圖來描述。最常用的UML圖包括:用例圖、類圖、對象圖、組件圖和部署圖〔靜態(tài)圖〕;順序圖、協(xié)作圖、狀態(tài)圖、活動圖〔動態(tài)圖〕。1.5圖1.用例圖:用例圖描述了系統(tǒng)提供的一個功能單元。用例圖的主要目的是幫助開發(fā)團(tuán)隊(duì)以一種可視化的方式理解系統(tǒng)的功能需求,包括基于根本流程的“角色〞關(guān)系以及系統(tǒng)用例之間的關(guān)系。用例角色用例間的關(guān)系2.類圖:顯示了系統(tǒng)的靜態(tài)結(jié)構(gòu),表示不同的實(shí)體(人,事物和數(shù)據(jù))是如何相關(guān)聯(lián)的.名稱操作或方法屬性類圖可以整合其他許多概念,以下圖中可以看到泛化關(guān)系和關(guān)聯(lián)關(guān)系。3.對象圖:類圖的一個實(shí)例,用于顯示系統(tǒng)執(zhí)行時的一個可能,即在某一個時刻上系統(tǒng)顯現(xiàn)的樣子。它使用與類圖相似的符號描述。不同之處在于對象圖顯示的是類的多個對象實(shí)例而非實(shí)際的類。4.狀態(tài)圖:是對類描述的補(bǔ)充,用于顯示類的對象可能具備的所有狀態(tài),以及引起狀態(tài)改變的事件。狀態(tài)之間的變化稱為轉(zhuǎn)移,狀態(tài)圖由對象的各個狀態(tài)和連接這些狀態(tài)的轉(zhuǎn)移組成。事件的發(fā)生會觸發(fā)狀態(tài)間的轉(zhuǎn)移,導(dǎo)致對象從一種狀態(tài)轉(zhuǎn)化到另一種新的狀態(tài)。4.狀態(tài)圖:表示某個類所處的不同狀態(tài)以及在這些狀態(tài)中的轉(zhuǎn)換過程.判斷點(diǎn)初始起點(diǎn)狀態(tài)間的轉(zhuǎn)換狀態(tài)終止點(diǎn)5.序列圖〔順序圖〕:顯示了一個具體用例或者用例一局部的流程。垂直維度水平維度6.協(xié)作圖:對一次交互中有意義的對象和對象間鏈接建模,除顯示消息的交互,協(xié)作圖也顯示對象以及它們之間的關(guān)系。順序圖和協(xié)作圖都可以表示各對象之間的交互關(guān)系,但它們的側(cè)重點(diǎn)不同。順序圖用消息的排列關(guān)系來表達(dá)消息的時間順序,各角色之間的關(guān)系是隱含的;協(xié)作圖用各個角色的排列來表示角色之間的關(guān)系,并用消息說明這些關(guān)系。7.活動圖用來表示兩個或者更多的對象之間在處理某個活動時的過程控制流程.開始泳道活動結(jié)束8.組件圖指出某些功能實(shí)際存在于哪些地方.構(gòu)件可以是源代碼組件、二進(jìn)制組件或可執(zhí)行的組件。確保最終系統(tǒng)將會被接受。9.部署圖用于表示該軟件系統(tǒng)如何部署到硬件環(huán)境中。它是顯示在系統(tǒng)中的不同的構(gòu)件在何處物理運(yùn)行以及如何進(jìn)行彼此的通信。圖之間的作用:系統(tǒng)的部署圖利用系統(tǒng)物理結(jié)構(gòu)的節(jié)點(diǎn)顯示屬于該節(jié)點(diǎn)的構(gòu)件,然后使用構(gòu)件圖顯示該構(gòu)件包含的類,接著使用交互圖顯示該類對象參與的交互,最終到達(dá)某個用例。把可以在圖中使用的根本概念統(tǒng)稱為模型元素。模型元素使用相關(guān)的語義、元素的正式定義、確定的語句來表達(dá)準(zhǔn)確的含義。1.6模型元素模型元素劃分為事物和關(guān)系。〔1〕結(jié)構(gòu)事物〔StructuralThing〕〔2〕動作事物〔BehavioralThing〕〔3〕分組事物〔GroupingThing〕〔4〕注釋事物〔AnnotationalThing〕1.事物事物是UML模型中面向?qū)ο蟮母灸K,它們在模型中屬于靜態(tài)局部。2.關(guān)系〔5種〕以及這些事物之間的各種關(guān)系構(gòu)成的。關(guān)系是指支配、協(xié)調(diào)各種模型元素存在并相互使用的規(guī)那么?!?〕依賴〔Dependency〕關(guān)系〔1〕關(guān)聯(lián)〔Associate〕關(guān)系〔3〕泛化〔Generalization〕關(guān)系〔4〕實(shí)現(xiàn)〔Realization〕關(guān)系用在接口和實(shí)現(xiàn)接口的類或構(gòu)件之間,用在用例和實(shí)現(xiàn)用例的協(xié)作之間繼承指的是一個類〔稱為子類、子接口〕繼承另外的一個類〔稱為父類、父接口〕的功能,并可以增加它自己的新功能的能力,繼承是類與類或者接口與接口之間最常見的關(guān)系;在Java中此類關(guān)系通過關(guān)鍵字extends明確標(biāo)識,在設(shè)計(jì)時一般沒有爭議性;實(shí)現(xiàn)指的是一個class類實(shí)現(xiàn)interface接口〔可以是多個〕的功能;實(shí)現(xiàn)是類與接口之間最常見的關(guān)系;在Java中此類關(guān)系通過關(guān)鍵字implements明確標(biāo)識,在設(shè)計(jì)時一般沒有爭議性;依賴可以簡單的理解,就是一個類A使用到了另一個類B,而這種使用關(guān)系是具有偶然性的、、臨時性的、非常弱的,但是B類的變化會影響到A;比方某人要過河,需要借用一條船,此時人與船之間的關(guān)系就是依賴;表現(xiàn)在代碼層面,為類B作為參數(shù)被類A在某個method方法中使用;關(guān)聯(lián)他表達(dá)的是兩個類、或者類與接口之間語義級別的一種強(qiáng)依賴關(guān)系,比方我和我的朋友;這種關(guān)系比依賴更強(qiáng)、不存在依賴關(guān)系的偶然性、關(guān)系也不是臨時性的,一般是長期性的,而且雙方的關(guān)系一般是平等的、關(guān)聯(lián)可以是單向、雙向的;表現(xiàn)在代碼層面,為被關(guān)聯(lián)類B以類屬性的形式出現(xiàn)在關(guān)聯(lián)類A中,也可能是關(guān)聯(lián)類A引用了一個類型為被關(guān)聯(lián)類B的全局變量;〔5〕聚合聚合是關(guān)聯(lián)關(guān)系的一種特例,他表達(dá)的是整體與局部、擁有的關(guān)系,即has-a的關(guān)系,此時整體與局部之間是可別離的,他們可以具有各自的生命周期,局部可以屬于多個整體對象,也可以為多個整體對象共享;比方計(jì)算機(jī)與CPU、公司與員工的關(guān)系等;表現(xiàn)在代碼層面,和關(guān)聯(lián)關(guān)系是一致的,只能從語義級別來區(qū)分;組合組合也是關(guān)聯(lián)關(guān)系的一種特例,他表達(dá)的是一種contains-a的關(guān)系,這種關(guān)系比聚合更強(qiáng),也稱為強(qiáng)聚合;他同樣表達(dá)整體與局部間的關(guān)系,但此時整體與局部是不可分的,整體的生命周期結(jié)束也就意味著局部的生命周期結(jié)束;比方你和你的大腦;表現(xiàn)在代碼層面,和關(guān)聯(lián)關(guān)系是一致的,只能從語義級別來區(qū)分;UML提供了一些通用的公共機(jī)制,使用這些通用的公共機(jī)制〔通用機(jī)制〕能夠使UML在各種圖中添加適當(dāng)?shù)拿枋鲂畔?,從而完善UML的語義表達(dá)。1.7UML的通用機(jī)制通用機(jī)制:修飾、注釋、規(guī)格說明、擴(kuò)展機(jī)制。1.修飾〔Adornment〕在UML的圖形表示中,每一個模型元素都有一個根本符號,這個根本符號可視化地表達(dá)了模型元素最重要的信息。2.注釋用于為模型元素添加額外信息與說明。注釋以自由文本的形式出現(xiàn),它的信息類型為字符串,可以附加到任何模型中,并且可以放置在模型元素的任意位置上。在UML圖中注釋使用一條虛線連接它所解釋或細(xì)化的元素。3.規(guī)格說明〔Specification〕如果把模型元素當(dāng)成一個對象來看待,那么模型元素本身也應(yīng)該具有很多的屬性,這些屬性用于維護(hù)屬于該模型元素的數(shù)據(jù)值。屬性是使用名稱和標(biāo)記值〔TaggedValue〕來定義的。4.擴(kuò)展機(jī)制〔Extensibility〕允許UML的使用人員根據(jù)需要自定義一些構(gòu)造型語言成分,通過該擴(kuò)展機(jī)制用戶可以定義使用自己的元素。UML擴(kuò)展機(jī)制由三局部組成:構(gòu)造型〔Stereotype〕、標(biāo)記值〔TaggedValue〕和約束〔Constraint〕。1.構(gòu)造型〔Stereotype〕構(gòu)造型就像在模型元素的外面重新添加了一層外殼,這樣就在模型元素上又參加了一個額外語義。圖2使用include構(gòu)造型例如圖1未使用構(gòu)造型例如2.標(biāo)記值〔TaggedValue〕標(biāo)記值是由一對字符串構(gòu)成的,這對字符串包含一個標(biāo)記字符串和一個值字符串,從而用來存儲有關(guān)模型元素或表達(dá)元素的相關(guān)信息。3.約束〔Constraint〕如果需要對UML構(gòu)造塊的語義進(jìn)行擴(kuò)展,就可以使用約束機(jī)制,這種機(jī)制用于擴(kuò)展UML構(gòu)造塊的語義,允許建模者和設(shè)計(jì)人員增加新的規(guī)那么和修改現(xiàn)有的規(guī)那么。13章UML的對象約束語言對象約束語言〔ObjectConstraintLanguage,OCL〕是一種能夠使用工具進(jìn)行解釋的表達(dá)UML約束的標(biāo)準(zhǔn)方法。用標(biāo)準(zhǔn)或自然語言表達(dá)。對象約束語言包含如下4個特性。1.對象約束語言不僅是查詢語言還是約束語言2.對象約束語言是基于數(shù)學(xué)的3.對象約束語言是一種強(qiáng)類型的語言4.對象約束語言也是一種聲明式語言對象約束語言的元模型包含類型包和表達(dá)式包.對象約束語言支持不變量約束、前置條件和后置條件.不變量約束是指當(dāng)某個對象在進(jìn)行某一操作的過程中將某種約束應(yīng)用到一種類型上,并指定一個條件特征,該特征在此操作的整個過程中保持不變。UML中的前置條件是指當(dāng)某個對象進(jìn)行某一操作時,附于此操作的限定條件〔Constraint〕必須為True。UML中的后置條件是指當(dāng)一個操作執(zhí)行結(jié)束時附于此操作的限定條件〔Constraint〕也必須為True。UML的未來開展目標(biāo)對于UML2.0的新改進(jìn)包括以下5個方面。1.在語言定義方面的精確程度有了很大提高2.一個改進(jìn)的語言組織3.重點(diǎn)改進(jìn)大規(guī)模的軟件系統(tǒng)的模型性能4.對特定領(lǐng)域改進(jìn)的支持5.全面合并、合理化、清晰化各種不同的模型概念本節(jié)小結(jié)本節(jié)是對UML的內(nèi)容進(jìn)行一個簡要的概括,重點(diǎn)強(qiáng)調(diào)的是UML的根本內(nèi)容,它是后面對UML進(jìn)行詳細(xì)介紹的鋪墊。在下一章中將對UML的工具RationalRose進(jìn)行介紹。第11章RationalRose概述本章學(xué)習(xí)的重點(diǎn)是RationalRose的4種視圖模型11.1RationalRose的起源與開展RoseModeler:僅僅用于創(chuàng)立系統(tǒng)模型,但是不支持代碼生成和逆向工程。RoseProfessional:可以創(chuàng)立系統(tǒng)模型,包含了RoseModeler的功能,并且還可以使用一種語言來進(jìn)行代碼生成。RoseEnterprise:Rose的企業(yè)版工具,支持前面Rose工具的所有功能,并且支持各種語言,包括C++、Java、Ada、CORBA、VisualBasic、COM、Oracle8等,還包括對XML的支持。11.2RationalRose對UML的支持1.RationalRose提供根本的繪圖功能2.RationalRose提供模型庫3.RationalRose提供導(dǎo)航功能4.RationalRose提供代碼生成功能5.RationalRose提供逆向工程功能6.RationalRose提供模型互換功能RationalRose建模工具能夠?yàn)閁ML提供很好的支持,可以從以下6個方面進(jìn)行說明。RationalRose提供根本的繪圖功能為UML提供了根本的繪圖功能是RationalRose作為一個建模語言工具的根底。RationalRose提供了眾多的繪圖元素,形象化的繪圖支持使得繪制UML圖形變得輕松有趣。2.RationalRose提供模型庫RationalRose的支持工具維護(hù)著一個模型庫,這個模型庫相當(dāng)于一個數(shù)據(jù)庫,該數(shù)據(jù)庫中包含模型中使用的各種元素的信息?!?〕非一致性檢查〔2〕審查功能〔3〕報(bào)告功能〔4〕重用建模元素和圖功能3.RationalRose提供導(dǎo)航功能在使用多個視圖或圖來共同描述一個解決方案的時候,允許用戶在這些視圖或圖中進(jìn)行導(dǎo)航。4.RationalRose提供代碼生成功能RationalRose的代碼生成功能可以針對不同類型的目標(biāo)語言生成相應(yīng)的代碼,這些目標(biāo)語言包括C++、Ada、Java、CORBA、Oracle、VisualBasic等。5.RationalRose提供逆向工程功能逆向工程與代碼生成功能正好相反。利用逆向工程功能,RationalRose可以通過讀取用戶編寫的相關(guān)代碼,在進(jìn)行分析以后生成顯示用戶代碼結(jié)構(gòu)的相關(guān)UML圖。6.RationalRose提供模型互換功能在一種建模工具中創(chuàng)立了模型并將其輸出后,接著想在另外一種建模工具中將其導(dǎo)入,由于各種建模工具之間提供了不同的保存格式,這就造成了導(dǎo)入往往是不可能實(shí)現(xiàn)的。為了實(shí)現(xiàn)這種功能,一個必要的條件就是在兩種不同的工具之間采用一種用于存儲和共享模型的標(biāo)準(zhǔn)格式。11.3RationalRose的4種視圖模型用例視圖〔UseCaseView〕 邏輯視圖〔LogicalView〕 構(gòu)件視圖〔ComponentView〕 部署視圖〔DeploymentView〕 使用RationalRose建立的Rose模型中分別包括4種視圖.11.3.1用例視圖〔UseCaseView〕在用例視圖〔UseCaseView〕中包括了系統(tǒng)中的所有參與者、用例和用例圖,必要時還可以在用例視圖中添加順序圖、協(xié)作圖、活動圖和類圖等。建立方法:11.3.1用例視圖〔UseCaseView〕1.包〔Package〕包是在用例視圖和其他視圖中最通用的模型元素組的表達(dá)形式。2.用例〔UseCase〕用例用來表示在系統(tǒng)中所提供的各種效勞。3.參與者〔Actor〕參與者是指存在于被定義系統(tǒng)外部并與該系統(tǒng)發(fā)生交互的人或其他系統(tǒng)。4.類〔Class〕類是對某個或某些對象的定義。5.用例圖〔UseCaseDiagram〕用例圖顯示了各個參與者、用例以及它們之間的交互。6.類圖〔ClassDiagram〕類圖提供了結(jié)構(gòu)圖類型的一個主要實(shí)例,并提供一組記號元素的初始集,以供其他結(jié)構(gòu)圖使用。7.協(xié)作圖〔CollaborationDiagram〕協(xié)作圖用于表達(dá)各種參與者和用例之間的交互協(xié)作關(guān)系。8.序列圖〔SequenceDiagram〕序列圖用于表達(dá)各種參與者和用例之間的交互序列關(guān)系。9.狀態(tài)圖〔StatechartDiagram〕狀態(tài)圖主要用來表達(dá)各種參與者或類的狀態(tài)之間的轉(zhuǎn)換。10.活動圖〔ActivityDiagram〕活動圖主要用來表達(dá)參與者的各種活動之間的轉(zhuǎn)換。11.文件〔File〕File是指能夠連接到用例視圖中的一些外部文件。12.URL地址〔URL〕URL是指能夠連接到用例視圖的一些外部URL地址。邏輯視圖關(guān)注于系統(tǒng)如何實(shí)現(xiàn)用例中所描述的功能,主要是對系統(tǒng)功能性需求提供支持,即在為用戶提供效勞方面系統(tǒng)所應(yīng)該提供的功能。11.3.2邏輯視圖〔LogicalView〕在邏輯視圖中,同樣可以創(chuàng)立一些模型元素。邏輯視圖的創(chuàng)立:類〔Class〕在邏輯視圖中主要是對抽象出來的類進(jìn)行詳細(xì)定義,包括確定類的名稱、方法和屬性等。2.工具類〔ClassUtility〕工具類是對公共機(jī)制或效勞的定義,通常存放一些靜態(tài)的全局變量,從而方便其他類對這些信息進(jìn)行訪問。3.用例〔UseCase〕在邏輯視圖中仍然可以存在用例,目的是圍繞用例添加各種圖,從而詳細(xì)描述該用例。4.接口〔Interface〕類可以有它的真實(shí)實(shí)例,然而一個接口必須至少有一個類來實(shí)現(xiàn)它。5.包〔Package〕使用包可以將邏輯視圖中的各種UML圖或模型元素按照某種規(guī)那么進(jìn)行劃分。6.類圖〔ClassDiagram〕類圖用于瀏覽系統(tǒng)中的各種類、類的屬性、操作以及類與類之間的關(guān)系。7.用例圖〔UseCaseDiagram〕其功能和在用例視圖中介紹的一樣,只是放在不同的視圖區(qū)域中了。8.協(xié)作圖〔CollaborationDiagram〕協(xié)作圖用于按照各種類或?qū)ο蠼换グl(fā)生的一系列協(xié)作關(guān)系顯示這些類或?qū)ο笾g的交互。9.序列圖〔SequenceDiagram〕序列圖用于按照各種類或?qū)ο蠼换グl(fā)生的一系列順序顯示各種類或?qū)ο笾g的交互。10.狀態(tài)圖〔StatechartDiagram〕狀態(tài)圖用于描述各個對象自身所處狀態(tài)的轉(zhuǎn)換,用于對模型元素的動態(tài)行為進(jìn)行建模,更具體地說,就是對系統(tǒng)行為中受事件驅(qū)動的方面進(jìn)行建模。11.活動圖〔ActivityDiagram〕活動圖含:活動狀態(tài),狀態(tài)的轉(zhuǎn)移。活動決策。同步連接。12.文件〔File〕File是指能夠連接到邏輯視圖中的一些外部文件,用來詳細(xì)介紹使用邏輯視圖的各種信息。13.URL地址〔URL〕URL是指能夠連接到邏輯視圖的一些外部URL地址。這些地址用于介紹邏輯視圖的相關(guān)信息。構(gòu)件視圖用來描述系統(tǒng)中的各個實(shí)現(xiàn)模塊以及它們之間的依賴關(guān)系。包含模型代碼庫,執(zhí)行文件,運(yùn)行庫和其他構(gòu)件信息。11.3.3構(gòu)件視圖〔ComponentView〕1.包〔Package〕包在構(gòu)件視圖中仍然擔(dān)當(dāng)?shù)氖莿澐值墓δ堋?.構(gòu)件〔Component〕構(gòu)件是系統(tǒng)中實(shí)際存在的可更換局部,它實(shí)現(xiàn)特定的功能,符合一套接口標(biāo)準(zhǔn)并實(shí)現(xiàn)一組接口。3.構(gòu)件圖〔ComponentDiagram〕構(gòu)件圖的主要目的是顯示系統(tǒng)構(gòu)件間的結(jié)構(gòu)關(guān)系。4.文件〔File〕File是指能夠連接到構(gòu)件視圖中的一些外部文件,用來詳細(xì)介紹使用構(gòu)件視圖的各種信息。5.URL地址〔URL〕URL是指能夠連接到構(gòu)件視圖的一些外部URL地址。這些地址用于介紹構(gòu)件視圖的相關(guān)信息。在系統(tǒng)中只包含一個部署視圖,用來說明各種處理活動在系統(tǒng)各節(jié)點(diǎn)的分布。11.3.4部署視圖〔DeploymentView〕1.處理器〔Processor〕處理器是指任何有處理功能的節(jié)點(diǎn)。2.設(shè)備〔Device〕設(shè)備是指任何沒有處理功能的節(jié)點(diǎn),例如打印機(jī)。3.文件〔File〕File是指那些能夠連接到部署視圖中的外部文件,用來詳細(xì)介紹使用部署視圖的各種信息。4.URL地址〔URL〕URL是指能夠連接到部署視圖的一些外部URL地址。這些地址用于介紹部署視圖的相關(guān)信息。RationalRose作為一種很強(qiáng)大的UML建模工具,不僅通過視圖建立不同詳細(xì)程度的模型,從而對UML提供非常好的支持,而且還提供了一些其他的技術(shù)來完善軟件開發(fā),其中RationalRose使用模型生成代碼、使用逆向工程從代碼生成模型以及對XML的支持都是一些很重要的技術(shù)。11.4RationalRose的其他技術(shù)可以通過選擇Tools|Options命令來查看所支持的語言信息。1.代碼生成RationalRoseEnterprise支持的語言信息使用RationalRose生成代碼時可以通過以下4個步驟進(jìn)行,以目標(biāo)語言Java代碼為例?!?〕選擇待轉(zhuǎn)換的目標(biāo)模型〔2〕檢查Java語言的語法錯誤〔3〕設(shè)置代碼生成屬性〔4〕生成代碼2.逆向工程在RationalRose中可以通過收集有關(guān)類〔Classes〕、類的屬性〔Attributes〕、類的操作〔Operations〕、類與類之間的關(guān)系〔Relationships〕以及包〔Packages〕和構(gòu)件〔Components〕等靜態(tài)信息,將這些信息轉(zhuǎn)化成為對應(yīng)的模型,并在相應(yīng)的圖中顯示出來。11.5本章小結(jié)本章對RationalRose進(jìn)行概要介紹,如RationalRose的起源與開展、對UML是如何支持的等。還介紹了RationalRose的4個視圖模型,分別為用例視圖〔UseCaseView〕、邏輯視圖〔LogicalView〕、構(gòu)件視圖〔ComponentView〕和部署視圖〔DeploymentView〕。最后介紹了RationalRose的一些其他技術(shù),如RationalRose的雙向工程等。第11章Rational統(tǒng)一過程

關(guān)于Rational統(tǒng)一過程中更加詳細(xì)的內(nèi)容,可以參考Rational統(tǒng)一過程的電子資源或書籍。本章的重點(diǎn)是對Rational統(tǒng)一過程的內(nèi)容和結(jié)構(gòu)進(jìn)行介紹。4.1什么是Rational統(tǒng)一過程下面將從4個方面介紹什么是Rational統(tǒng)一過程。1.Rational統(tǒng)一過程是一種軟件工程過程2.Rational統(tǒng)一過程是一個過程產(chǎn)品3.Rational統(tǒng)一過程擁有一套自己的過程框架4.Rational統(tǒng)一過程包含了許多現(xiàn)代軟件開發(fā)中的最正確實(shí)踐在各種書籍以及參考資料中,將Rational統(tǒng)一過程的開發(fā)過程使用一種二維結(jié)構(gòu)來表達(dá),即使用沿著橫軸和縱軸兩個坐標(biāo)軸來表達(dá)該過程。Rational統(tǒng)一過程同時也包含了許多現(xiàn)代軟件開發(fā)中的最正確實(shí)踐。Rational統(tǒng)一過程以一種能夠被大多數(shù)工程和開發(fā)組織適應(yīng)的形式建立整個過程,其包含的6項(xiàng)最正確實(shí)踐如下:1.迭代式軟件開發(fā)。2.需求管理。3.基于構(gòu)件的架構(gòu)應(yīng)用。4.建立可視化的軟件模型。5.軟件質(zhì)量驗(yàn)證。6.軟件變更控制。4.2Rational統(tǒng)一過程的演進(jìn)歷史Ratinal統(tǒng)一過程是經(jīng)過一系列的階段逐步開展和完善起來的,在這開展的十幾年的時間里,Rational統(tǒng)一過程搜集并反響了很多公司和個人的使用經(jīng)驗(yàn),并不斷逐步豐富Rational統(tǒng)一過程的內(nèi)容。統(tǒng)一建模語言〔UML〕可以說是迄今為止最為成熟的軟件建模技術(shù)和語言。Rational統(tǒng)一過程的演進(jìn)歷史4.3Rational統(tǒng)一過程的結(jié)構(gòu)4.1什么是Rational統(tǒng)一過程 4.2Rational統(tǒng)一過程的演進(jìn)歷史 4.3Rational統(tǒng)一過程的結(jié)構(gòu)4.4RATIONAL統(tǒng)一過程的配置和實(shí)現(xiàn)

4.3.1統(tǒng)一過程的靜態(tài)結(jié)構(gòu):Rational統(tǒng)一過程的靜態(tài)結(jié)構(gòu)是通過對其模型元素的定義來進(jìn)行描述的。在Rational統(tǒng)一過程的開發(fā)流程中定義了“誰何時如何做某事〞,并分別使用4種主要的建模元素來進(jìn)行表達(dá)。1.角色〔Workers〕“誰〞來做?角色定義了個人或由假設(shè)干人所組成小組的行為和責(zé)任。2.活動〔Activities〕“如何〞去做?角色所執(zhí)行的行為使用活動表示,每一個角色都與一組相關(guān)的活動聯(lián)系,活動定義了它們執(zhí)行的工作。3.產(chǎn)物〔Artifacts〕要做“某事〞?產(chǎn)物是被過程產(chǎn)生的、修改或過程所使用的一段信息。4.工作流〔Workflows〕“何時〞做?需要一種方法來描述能產(chǎn)生假設(shè)干有價值的有意義結(jié)果的活動序列,從而顯示角色之間的交互作用,這就是工作流。4種主要的建模元素:Rational統(tǒng)一過程的動態(tài)結(jié)構(gòu)是通過對迭代式軟件開發(fā)過程的周期、階段、迭代過程以及

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論