軟件工程課件:第10章 面向?qū)ο蠓椒▽W(xué)1_第1頁(yè)
軟件工程課件:第10章 面向?qū)ο蠓椒▽W(xué)1_第2頁(yè)
軟件工程課件:第10章 面向?qū)ο蠓椒▽W(xué)1_第3頁(yè)
軟件工程課件:第10章 面向?qū)ο蠓椒▽W(xué)1_第4頁(yè)
軟件工程課件:第10章 面向?qū)ο蠓椒▽W(xué)1_第5頁(yè)
已閱讀5頁(yè),還剩117頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第十章面向?qū)ο蠓椒▽W(xué)(1)1軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)第十章內(nèi)容概要面向?qū)ο蠓椒▽W(xué)概述面向?qū)ο蟮母拍蠲嫦驅(qū)ο蠼ML可視化建?;A(chǔ)面向?qū)ο蟮男枨筇崛∶嫦驅(qū)ο蠓治?軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)3軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)Coad和Yourdon給出了一個(gè)定義:“面向?qū)ο?對(duì)象+類+繼承+通過(guò)消息進(jìn)行通信”一個(gè)面向?qū)ο蟮某绦虻拿恳怀煞輵?yīng)是對(duì)象,計(jì)算是通過(guò)新的對(duì)象的建立和對(duì)象之間的通信來(lái)執(zhí)行的。這個(gè)定義的要點(diǎn) :認(rèn)為客觀世界是由各種對(duì)象組成的,任何事物都是對(duì)象,復(fù)雜的對(duì)象可以由比較簡(jiǎn)單的對(duì)象以某種方式組合而成; 什么是面向?qū)ο?軟件工程-2010-第十

2、章 面向?qū)ο蠓椒▽W(xué)把所有對(duì)象都劃分成各種對(duì)象類(簡(jiǎn)稱為類,class),每個(gè)對(duì)象類都定義了一組數(shù)據(jù)和一組方法。;按照子類(或稱為派生類)與父類(或稱為基類)的關(guān)系,把若干個(gè)對(duì)象類組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(也稱為類等級(jí));對(duì)象彼此之間僅能通過(guò)傳遞消息互相聯(lián)系。 什么是面向?qū)ο?軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)與人類習(xí)慣的思維方法一致:傳統(tǒng)的程序設(shè)計(jì)技術(shù)忽略了數(shù)據(jù)和操作之間的內(nèi)在聯(lián)系,用這種方法所設(shè)計(jì)出來(lái)的軟件系統(tǒng)其解空間與問(wèn)題空間并不一致,難于理解。面向?qū)ο蟮能浖夹g(shù)以對(duì)象(object)為核心 , 而對(duì)象是數(shù)據(jù)和操作的統(tǒng)一體,是對(duì)現(xiàn)實(shí)世界實(shí)體的正確抽象。面向?qū)ο蟮脑O(shè)計(jì)方法與傳統(tǒng)的面向過(guò)

3、程的方法有本質(zhì)不同:面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn)6軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)面向?qū)ο蟮沫h(huán)境提供了強(qiáng)有力的抽象機(jī)制,便于用戶在利用計(jì)算機(jī)軟件系統(tǒng)解決復(fù)雜問(wèn)題時(shí)使用習(xí)慣的抽象思維工具;面向?qū)ο蠓椒▽W(xué)中普遍進(jìn)行的對(duì)象分類過(guò)程,支持從特殊到一般的歸納思維過(guò)程;面向?qū)ο蠓椒▽W(xué)中通過(guò)建立類等級(jí)而獲得的繼承特性,支持從一般到特殊的演繹思維過(guò)程;先設(shè)計(jì)出由抽象類構(gòu)成的系統(tǒng)框架,隨著認(rèn)識(shí)深入和具體化再逐步派生出更具體的派生類符合人們認(rèn)識(shí)客觀世界解決復(fù)雜問(wèn)題時(shí)逐步深化的漸進(jìn)過(guò)程。面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn)7軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)穩(wěn)定性好:傳統(tǒng)的軟件開(kāi)發(fā)方法以算法為核心,建立起來(lái)的軟件系統(tǒng)的結(jié)

4、構(gòu)緊密依賴于系統(tǒng)所要完成的功能,當(dāng)功能需求發(fā)生變化時(shí)將引起軟件結(jié)構(gòu)的整體修改。 面向?qū)ο蠓椒ɑ跇?gòu)造問(wèn)題領(lǐng)域的對(duì)象模型,以對(duì)象為中心構(gòu)造軟件系統(tǒng)。由于現(xiàn)實(shí)世界中的實(shí)體是相對(duì)穩(wěn)定的,因此,以對(duì)象為中心構(gòu)造的軟件系統(tǒng)也是比較穩(wěn)定的。 面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn)8軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)面向?qū)ο蟮能浖夹g(shù)在利用可重用的軟件成分構(gòu)造新的軟件系統(tǒng)時(shí),有很大的靈活性:實(shí)例化、繼承。面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn)9軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)可重用性好:傳統(tǒng)的軟件重用技術(shù)是利用標(biāo)準(zhǔn)函數(shù)庫(kù),但是,標(biāo)準(zhǔn)函數(shù)缺乏必要的“柔性”。即使是具有功能內(nèi)聚性的模塊也并不是自含的和獨(dú)立的,相反,它必須運(yùn)行在相

5、應(yīng)的數(shù)據(jù)結(jié)構(gòu)上。面向?qū)ο蠓椒ㄋ褂玫膶?duì)象是數(shù)據(jù)和操作的統(tǒng)一體,因此,對(duì)象具有很強(qiáng)的自含性。對(duì)象固有的封裝性和信息隱藏機(jī)制,使得對(duì)象的內(nèi)部實(shí)現(xiàn)與外界隔離,具有較強(qiáng)的獨(dú)立性。面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn)10軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)面向?qū)ο蟮能浖夹g(shù)在利用可重用的軟件成分構(gòu)造新的軟件系統(tǒng)時(shí),有很大的靈活性:實(shí)例化、繼承。面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn)11軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)較易開(kāi)發(fā)大型軟件產(chǎn)品:面向?qū)ο蠓缎椭袠?gòu)成軟件系統(tǒng)的每個(gè)對(duì)象就像一個(gè)微型程序,可以把一個(gè)大型軟件產(chǎn)品分解成一系列本質(zhì)上相互獨(dú)立的小產(chǎn)品來(lái)處理 。從而有利于對(duì)開(kāi)發(fā)工作的管理。面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn)12軟件工程-20

6、10-第十章 面向?qū)ο蠓椒▽W(xué)可維護(hù)性好:面向?qū)ο蟮能浖€(wěn)定性比較好。 面向?qū)ο蟮能浖容^容易修改:封裝,繼承和多態(tài)性。面向?qū)ο蟮能浖容^容易理解。 易于測(cè)試和調(diào)試。面向?qū)ο蠓椒▽W(xué)的優(yōu)點(diǎn)13軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)第十章內(nèi)容概要面向?qū)ο蠓椒▽W(xué)概述面向?qū)ο蟮母拍蠲嫦驅(qū)ο蠼ML可視化建?;A(chǔ)面向?qū)ο蟮男枨筇崛∶嫦驅(qū)ο蠓治?4軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)對(duì)象:在應(yīng)用領(lǐng)域中有意義的、與所要解決的問(wèn)題有關(guān)系的任何事物都可以作為對(duì)象,它既可以是具體的物理實(shí)體的抽象,也可以是人為的概念,或者是任何有明確邊界和意義的東西。 對(duì)象是由描述該對(duì)象屬性的數(shù)據(jù)以及可以對(duì)這些數(shù)據(jù)施加的

7、所有操作封裝在一起構(gòu)成的統(tǒng)一體。 面向?qū)ο蟮母拍?5軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)對(duì)象的形象表示:面向?qū)ο蟮母拍顮顟B(tài) S 操作1,2,3的實(shí)現(xiàn) 操作1 操作2 操作3 對(duì)象的形象表示 界 面 16軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)對(duì)象的定義: 定義1:對(duì)象是具有相同狀態(tài)的一組操作的集合。(從OO程序設(shè)計(jì)角度)定義2:對(duì)象是對(duì)問(wèn)題域中某個(gè)東西的抽象,這種抽象反映了系統(tǒng)保存有關(guān)這個(gè)東西的信息或與它交互的能力。也就是說(shuō),對(duì)象是對(duì)屬性值和操作的封裝。(從信息模擬角度)定義3:對(duì)象=(ID,MS,DS,MI)。其中,ID是對(duì)象的標(biāo)識(shí)或名字,MS是對(duì)象中的操作集合,DS是對(duì)象的數(shù)據(jù)結(jié)構(gòu)

8、,MI是對(duì)象受理的消息名集合(即對(duì)外接口)。面向?qū)ο蟮母拍?7軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)對(duì)象中的數(shù)據(jù)表示對(duì)象的狀態(tài),一個(gè)對(duì)象的狀態(tài)只能由該對(duì)象的操作來(lái)改變。每當(dāng)需要改變對(duì)象的狀態(tài)時(shí),只能由其他對(duì)象向該對(duì)象發(fā)送消息。對(duì)象響應(yīng)消息時(shí),按照消息模式找出與之匹配的方法,并執(zhí)行該方法。 面向?qū)ο蟮母拍顮顟B(tài) S 操作:f1,f2,fn轉(zhuǎn)換:g1,g2,gn 輸出fi(X,S) 輸入 fi , X 轉(zhuǎn)換 :新?tīng)顟B(tài)S=gi (X,S) 用自動(dòng)機(jī)模擬對(duì)象 18軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)以數(shù)據(jù)為中心對(duì)象是主動(dòng)的實(shí)現(xiàn)了數(shù)據(jù)封裝本質(zhì)上具有并行性模塊獨(dú)立性好對(duì)象的特點(diǎn)19軟件工程-201

9、0-第十章 面向?qū)ο蠓椒▽W(xué)類(class)實(shí)例(instance)消息(message) 由下述3部分組成:接收消息的對(duì)象;消息選擇符(也稱為消息名);零個(gè)或多個(gè)變?cè)椒?method)屬性(attribute)面向?qū)ο蟮钠渌拍?0軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)封裝:類封裝了它的實(shí)例對(duì)象的屬性與行為,隱藏實(shí)現(xiàn)細(xì)節(jié)。對(duì)象具有封裝性的條件如下:有一個(gè)清晰的邊界。所有私有數(shù)據(jù)和實(shí)現(xiàn)操作的代碼都被封裝在這個(gè)邊界內(nèi),從外面看不見(jiàn)更不能直接訪問(wèn)。有確定的接口(即協(xié)議)。這些接口就是對(duì)象可以接受的消息,只能通過(guò)向?qū)ο蟀l(fā)送消息來(lái)使用它。受保護(hù)的內(nèi)部實(shí)現(xiàn)。 面向?qū)ο蟮钠渌拍?1軟件工程-2010

10、-第十章 面向?qū)ο蠓椒▽W(xué)繼承:是指能夠直接獲得已有的性質(zhì)和特征,而不必重復(fù)定義它們。 根據(jù)各類間的異同點(diǎn)把它們組成層次結(jié)構(gòu),從而表示:位于下層的類繼承了上層中某類的特點(diǎn)。繼承是子類自動(dòng)地共享基類中定義的數(shù)據(jù)和方法的機(jī)制?;蛘叻捶较騺?lái)看,是從“特殊性”概念歸納“一般性” 概念的一種機(jī)制。抽象類面向?qū)ο蟮钠渌拍?2軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)使用繼承的好處:繼承性使得相似的對(duì)象可以共享程序代碼和數(shù)據(jù)結(jié)構(gòu),從而大大減少了程序中的冗余信息;易于修改軟件;方便新的應(yīng)用系統(tǒng)的開(kāi)發(fā);利于軟件重用;面向?qū)ο蟮母拍?3軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)多態(tài):類的一個(gè)行為在其子類中有不同表

11、現(xiàn)形式。行為(Behavior):是指一個(gè)對(duì)象所能執(zhí)行的動(dòng)作或者變換;操作(Operation):行為在類的定義中進(jìn)一步被明確為操作; 方法(Method):一個(gè)操作在某個(gè)類中的一種特定實(shí)現(xiàn)被稱為一個(gè)方法;面向?qū)ο蟮母拍?4軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)Polymorphism means “many forms”. Polymorphic operations have many implementations.A concrete subclass must implement all the abstract operations that it inherits.With

12、polymorphism, objects of different classes respond to the same message in different ways.Concrete operations may also be polymorphic but this is bad style.25軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)CanvasShapedraw(g: Graphics)getArea(): intgetBoundingArea(): intCircledraw(g: Graphics)getArea(): intSquaredraw(g: Graphic

13、s)getArea(): int1*26軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)重載(overloading) 有兩種重載:函數(shù)重載是指在同一作用域內(nèi)的若干個(gè)參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字;運(yùn)算符重載是指同一個(gè)運(yùn)算符可以施加于不同類型的操作數(shù)上面。當(dāng)然,當(dāng)參數(shù)特征不同或被操作數(shù)的類型不同時(shí),實(shí)現(xiàn)函數(shù)的算法或運(yùn)算符的語(yǔ)義是不相同的。面向?qū)ο蟮母拍?7軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)面向?qū)ο箝_(kāi)發(fā)的優(yōu)勢(shì):易于表示含有大量交互的系統(tǒng);能用相同術(shù)語(yǔ)來(lái)描述問(wèn)題及其解決方案:對(duì)象連接了問(wèn)題空間和求解空間;開(kāi)發(fā)過(guò)程的不同階段都能使用同一種術(shù)語(yǔ):對(duì)象連接了各開(kāi)發(fā)階段;面向?qū)ο笫且环N關(guān)于問(wèn)題

14、及其解答該如何表述的哲學(xué);面向?qū)ο蟛皇且环N軟件生命周期模型。使用面向?qū)ο蠓椒ǖ拈_(kāi)發(fā)過(guò)程28軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)使用面向?qū)ο蠓椒ǖ拈_(kāi)發(fā)過(guò)程29軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)使用面向?qū)ο蠓椒ǖ拈_(kāi)發(fā)過(guò)程噴泉模型30軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)第十章內(nèi)容概要面向?qū)ο蠓椒▽W(xué)概述面向?qū)ο蟮母拍蠲嫦驅(qū)ο蠼ML可視化建?;A(chǔ)面向?qū)ο蟮男枨筇崛∶嫦驅(qū)ο蠓治?1軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)模型:為了理解事物而對(duì)事物作出的一種抽象,是對(duì)事物的一種無(wú)歧義的書面描述。模型由一組圖示符號(hào)和組織這些符號(hào)的規(guī)則組成,利用它們來(lái)定義和描述問(wèn)題域中的術(shù)語(yǔ)和概念。模

15、型是一種思考工具,把知識(shí)規(guī)范地表示出來(lái)。模型是現(xiàn)實(shí)的簡(jiǎn)化、化簡(jiǎn)的實(shí)現(xiàn)。面向?qū)ο蠼?2軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)33軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)34軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)35軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)36軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)37軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)38軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)39軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)40軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)第十章內(nèi)容概要面向?qū)ο蠓椒▽W(xué)概述面向?qū)ο蟮母拍蠲嫦驅(qū)ο蠼ML可視化建模基礎(chǔ)面向?qū)ο蟮男枨筇崛∶嫦驅(qū)ο?/p>

16、分析41軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)42軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)43軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)44軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)45軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)46軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)47軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)48軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)49軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)50軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)51軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)52軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)53軟件工程-2010-第十章 面向?qū)ο蠓椒?/p>

17、學(xué)54軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)55軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)UML描述模型的三種基本詞匯:要素(Things)、關(guān)系(Relationships)、圖(Diagrams)UML有4種要素:表述結(jié)構(gòu)的要素:Use Case、類、接口、協(xié)作表述行為的要素:交互、狀態(tài)機(jī)用于組織的要素:包用于輔助說(shuō)明的要素:注釋面向?qū)ο蠼7?hào)系統(tǒng)UML56軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)UML有4種關(guān)系:關(guān)聯(lián)關(guān)系:有聯(lián)系依賴關(guān)系:使用泛化關(guān)系:特殊到一般實(shí)現(xiàn)關(guān)系:規(guī)約到解決方案UML有9種圖:Use Case圖:展示Use Case、Actor及其關(guān)系;類圖:展示類、接口

18、、包及其關(guān)系;面向?qū)ο蠼7?hào)系統(tǒng)UML0.1*employeremployee57軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)順序圖:按時(shí)序展示對(duì)象間消息傳遞;協(xié)作圖:強(qiáng)調(diào)收發(fā)消息的對(duì)象間的組織結(jié)構(gòu);狀態(tài)圖:展示對(duì)象在其生命周期中的可能狀態(tài)以及在這些狀態(tài)上對(duì)事件的響應(yīng);活動(dòng)圖:展示系統(tǒng)從一個(gè)活動(dòng)轉(zhuǎn)到另一活動(dòng)的可能路徑和判斷條件;對(duì)象圖:某個(gè)時(shí)間點(diǎn)上系統(tǒng)中各對(duì)象的快照;構(gòu)件圖:展示系統(tǒng)各構(gòu)件及其關(guān)系;配置圖:展示交付系統(tǒng)中軟硬件間物理關(guān)系;面向?qū)ο蠼7?hào)系統(tǒng)UML58軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)Use Case圖主要用于描述系統(tǒng)和外部環(huán)境的關(guān)系。Use Case:對(duì)系統(tǒng)提供的功能

19、的一種描述。(A use case describes behavior that the system exhibits to benefit one or more actors.)Actor:是可能使用這些Use Case的人或外部系統(tǒng)。(Actors are roles adopted by things that interact directly with system. A role is like a hat that something wears in a particular context.)系統(tǒng)邊界:Use Case在內(nèi),Actor在外;用例之間的關(guān)系:extend、

20、include、 GeneralizationUse Case(用例)圖簡(jiǎn)介59軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)用例圖示例PlaceOrderCancleOrderCheckOrderStatusRequestCatalogShipProductMail order systemactorcommunication relationshipSubject namesystem boundaryuse caseCustomerShippingCompanyDispatcher60軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)用例圖示例61軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)Actor

21、與Use Case間的連線稱為通信關(guān)聯(lián),表示Actor與相應(yīng)Use Case的交互。無(wú)論有無(wú)箭頭,通信關(guān)聯(lián)都表示雙向會(huì)話,箭頭表示Actor觸發(fā)Use Case。62軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)類圖應(yīng)用最廣,可在各個(gè)層次上描述系統(tǒng)的靜態(tài)結(jié)構(gòu)。方框表示類:上面寫類名,中間是類的屬性,下面是類的操作。關(guān)聯(lián)(Association):關(guān)聯(lián)關(guān)系表示類的實(shí)例之間存在某種穩(wěn)定的聯(lián)系。對(duì)象圖是類圖的一種變形,對(duì)象名下面要加下劃線。類圖/對(duì)象圖簡(jiǎn)介63軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)類的表述形式:public:private:protected關(guān)聯(lián)關(guān)系:64軟件工程-2010-第十章

22、面向?qū)ο蠓椒▽W(xué)A Class in UMLClass nameAttributesOperators65軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)An Object in UMLobject name and class66軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)Class Relationships in UMLGeneralizationDependencyAssociationThese can represent inheritance, using, aggregation, etc.67軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)Example class diagram68軟件工

23、程-2010-第十章 面向?qū)ο蠓椒▽W(xué)AssociationStructural relationship between peer classes (or objects). Association can have a name and direction, or be bi-directionalRole names for each end of the associationMultiplicity of the relationship69軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)Examples of Association70軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)Associ

24、ation code exampleclass Person public:private: Company *employer;class Company public:private:Person *employee;Each instance of Person has a pointer to its employerEach instance of Company has a collection of pointers denoting its employees71軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)Link AttributesAssociations may have

25、properties in the same manner as objects/classes.Salary and job title can be represented as72軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)Aggregation (聚合/共享聚集)A part of relationship (physical containment)class ProjectGroup public: ProjectGroup(); private: Person membern;73軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)Composition (組合,組合聚集)74軟件工程-20

26、10-第十章 面向?qū)ο蠓椒▽W(xué)Aggregation vs CompositionAggregation is a shared containment. Many other classes may have the same type of aggregate. E.g., string, listComposition is aggregates that can not stand by themselves (e.g., foot, arm, etc.)75軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)Generalization/Inheritance76軟件工程-2010-第十章 面向

27、對(duì)象方法學(xué)77軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)Dependency依賴關(guān)系描述兩個(gè)模型元素(類、用例等)之間的語(yǔ)義連接關(guān)系: 其中一個(gè)模型元素是獨(dú)立的,另一個(gè)模型元素不是獨(dú)立的,它依賴于獨(dú)立的模型元素,如果獨(dú)立的模型元素改變了,將影響依賴于它的模型元素。78軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)類圖示例:簡(jiǎn)單手表的組成部分79軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)對(duì)象圖:類圖:80軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)在三個(gè)層次上使用類圖:概念層:描述應(yīng)用域中的概念說(shuō)明層:考察軟件的接口部分,而非實(shí)現(xiàn)部分,要區(qū)分接口與實(shí)現(xiàn)(即類型與類)實(shí)現(xiàn)層:揭示軟件實(shí)現(xiàn)體的構(gòu)成情況。只

28、有在這層才有真正嚴(yán)格意義上的類的概念要理解問(wèn)題:概念層要理解軟件:說(shuō)明層類圖/對(duì)象圖簡(jiǎn)介81軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)順序圖描述幾個(gè)對(duì)象間的動(dòng)態(tài)協(xié)作關(guān)系,一個(gè)對(duì)象通過(guò)發(fā)送消息與其他對(duì)象相互作用。一個(gè)對(duì)象對(duì)消息的接收觸發(fā)一個(gè)操作的執(zhí)行,從而可能給其他對(duì)象發(fā)消息。順序圖對(duì)識(shí)別Use Case 中的附加對(duì)象很有用:包含在Use Case中的對(duì)象稱為參與對(duì)象;順序圖展示了這些對(duì)象間傳送消息的時(shí)間順序,反映了對(duì)象之間的一次特定交互過(guò)程;順序圖簡(jiǎn)介82軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)順序圖示例:簡(jiǎn)單手表調(diào)時(shí)83軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)順序圖示例:一臺(tái)打印服務(wù)器8

29、4軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)也是用來(lái)描述系統(tǒng)中對(duì)象間的動(dòng)態(tài)協(xié)作關(guān)系;協(xié)作圖側(cè)重說(shuō)明哪些對(duì)象間有消息傳遞;順序圖側(cè)重表述在某情況下對(duì)象間傳遞消息的時(shí)序性;協(xié)作圖中要給消息編號(hào)來(lái)標(biāo)明消息的執(zhí)行順序;協(xié)作圖簡(jiǎn)介85軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)協(xié)作圖示例:打印服務(wù)器86軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)協(xié)作圖中使用的消息層次編號(hào)能反映激活的嵌套性質(zhì),這在順序圖中能顯式地表示出來(lái)。87軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)一個(gè)狀態(tài)是對(duì)象滿足的一種條件。狀態(tài)可認(rèn)為是一個(gè)類屬性值的抽象;用對(duì)象的多個(gè)狀態(tài)及這些狀態(tài)間的轉(zhuǎn)換來(lái)描述單個(gè)對(duì)象的行為。標(biāo)注狀態(tài)轉(zhuǎn)移:事件條件動(dòng)

30、作動(dòng)作:伴隨轉(zhuǎn)移發(fā)生,不會(huì)被中斷活動(dòng):在某一狀態(tài)中進(jìn)行,可以被中斷狀態(tài)圖簡(jiǎn)介88軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)簡(jiǎn)單手表“設(shè)置時(shí)間”Use Case的狀態(tài)圖89軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)類似流程圖描述所要進(jìn)行的各項(xiàng)活動(dòng)的執(zhí)行流程描述一個(gè)Use Case的處理流程活動(dòng)圖可以方便地描述控制轉(zhuǎn)移條件以及并行執(zhí)行等要求活動(dòng)圖簡(jiǎn)介90軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)活動(dòng)圖示例:打印過(guò)程91軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)92軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)活動(dòng)圖示例:開(kāi)發(fā)軟件需求的流程93軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)活動(dòng)圖示例:表示并

31、發(fā)和同步94軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)95軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)構(gòu)件圖描述程序代碼的組織結(jié)構(gòu)構(gòu)件:源代碼構(gòu)件二進(jìn)制目標(biāo)代碼構(gòu)件可執(zhí)行構(gòu)件文檔構(gòu)件構(gòu)件圖簡(jiǎn)介96軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)反映程序代碼構(gòu)件間的依賴關(guān)系的構(gòu)件圖97軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)描述系統(tǒng)中軟硬件的物理配置情況和系統(tǒng)體系結(jié)構(gòu)結(jié)點(diǎn)表示實(shí)際的物理設(shè)備連接表示各物理結(jié)點(diǎn)的連接方式結(jié)點(diǎn)內(nèi)部表示分配到該結(jié)點(diǎn)運(yùn)行的構(gòu)件或?qū)ο笈渲脠D簡(jiǎn)介98軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)描述一個(gè)系統(tǒng)的物理體系結(jié)構(gòu)的配置圖99軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)標(biāo)記值(Tagged Value)附屬于UML元素的各種信息(Property)具有形式:屬性名 = 值約束(Constraint)UML中限制一種或多個(gè)元素語(yǔ)義的規(guī)則形式:約束條件UML的三種擴(kuò)展機(jī)制100軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)UML的三種擴(kuò)展機(jī)制101軟件工程-2010-第十章 面向?qū)ο蠓椒▽W(xué)構(gòu)造型(Stereotype)構(gòu)造型機(jī)制是指在已有的模型元素基礎(chǔ)上建立一種新的模型元素。它與現(xiàn)有元素要相差不多,只是多一些特別的語(yǔ)義UML的三種擴(kuò)展機(jī)制102軟件工

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論