版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟件工程概述面向?qū)ο蟮姆椒ㄕ摷白饔密浖こ探o軟件產(chǎn)業(yè)帶來巨大進步!部分的緩解了軟件危機!大量中、小規(guī)模的軟件項目獲得成功!但是,人們發(fā)現(xiàn)一個現(xiàn)象.傳統(tǒng)方法學應用于大型項目時,很少成功!軟件工程方法學的思考瀑布模型的缺點:僵化表現(xiàn)(1):瀑布模型要求:生命周期各階段間遵守嚴格的順序?qū)嶋H情況:軟件開發(fā)往往在反復實踐中完成表現(xiàn)(2):瀑布模型要求:預先定義并“凍結(jié)”軟件需求實際情況:某些系統(tǒng)的需求是一個逐漸明確的過程,且預先定義的需求到軟件完成時可能已經(jīng)過時傳統(tǒng)方法學的缺點本質(zhì)上是功能分解,以實現(xiàn)功能的過程為中心,而用戶的需求變化主要是針對功能的這就使基于過程的設(shè)計不易被理解;且功能變化往往引起結(jié)構(gòu)
2、變化較大,穩(wěn)定性不好系統(tǒng)有明確的邊界定義,且系統(tǒng)結(jié)構(gòu)依賴于系統(tǒng)邊界的定義,這樣的系統(tǒng)不易擴充和修改數(shù)據(jù)與操作分開處理,可能造成軟構(gòu)件對具體應用環(huán)境的依賴,可重用性較差傳統(tǒng)方法學的缺點 cont.20世紀60年代后期出現(xiàn)面向?qū)ο缶幊陶Z言Simula-67,提出類和對象的概念20世紀80年代中期開始面向?qū)ο蠓治龊驮O(shè)計研究,逐步形成面向?qū)ο蟮姆椒▽W20世紀90年代末面向?qū)ο蠓椒▽W成為軟件開發(fā)技術(shù)的首選范型面向?qū)ο蠓椒▽W9.1 面向?qū)ο蠓椒▽W概述9.2 面向?qū)ο蟮母拍?.3 面向?qū)ο蠼?.4 對象模型9.5 動態(tài)模型9.6 功能模型9.7 3種模型之間的關(guān)系提綱9.1 面向?qū)ο蠓椒▽W概述9.2 面向
3、對象的概念9.3 面向?qū)ο蠼?.4 對象模型9.5 動態(tài)模型9.6 功能模型9.7 3種模型之間的關(guān)系面向?qū)ο蠓椒▽W(Object - Oriented Methodology),簡稱OOM面向?qū)ο蠓椒▽W的要點(1) OOM的出發(fā)點和基本原則是盡可能模擬人類習慣的思維方式,使描述問題的問題空間(問題域)與實現(xiàn)解法的解空間(求解域)在結(jié)構(gòu)上盡可能一致(2) 面向?qū)ο蠓椒ㄊ且环N以數(shù)據(jù)和信息為主線,把數(shù)據(jù)和處理相結(jié)合的方法面向?qū)ο蠓椒ò褜ο笞鳛橛蓴?shù)據(jù)及可以施加在這些數(shù)據(jù)上的操作所構(gòu)成的統(tǒng)一體面向?qū)ο蠓椒▽W概述解空間與問題空間的“語義斷層”問題空間對象是行為是豐富多彩的解空間對象的行為的非常呆板的需
4、要借助于復雜的算法才能夠操縱解空間對象客觀世界實體:靜態(tài)屬性+動態(tài)行為傳統(tǒng)方法:屬性與行為分離解空間對象為描述實體屬性的數(shù)據(jù),在程序中從外部操縱它面向?qū)ο蠓椒ǎ簩傩耘c行為統(tǒng)一對象是行為的主體OOM的4個要素:對象(object):世界由對象組成 類 (class) :具有相同屬性和操作的對象可劃分為類;單個對象可視為某一類的實例 (instance)繼承(inheritance):類可分層下層子類與上層父類有相同特征,稱為繼承消息(message):對象間只能通過發(fā)送消息進行聯(lián)系,外界不能處理對象的內(nèi)部數(shù)據(jù),只能通過消息請求它進行處理(如果它提供相應消息的話)OOM = Object + Cl
5、ass + Inheritance + Communication with messagesOOM = 對象+類+繼承機制+消息機制基于對象(objects-based)方法對象-消息基于類(class-based)方法類-對象-消息面向?qū)ο?objects-oriented)類-對象-消息-繼承1. 與人類習慣的思維方式一致傳統(tǒng)方法:面向過程設(shè)計,以計算為核心,數(shù)據(jù)與操作分離,不易理解。OOM:以object 為核心,強調(diào)對現(xiàn)實概念的模擬而不強調(diào)算法?!懊嫦?qū)ο蠓椒▽W的基本原則,是按照人們習慣的思維方式建立問題域的模型,開發(fā)出盡可能直觀、自然地表現(xiàn)求解方法的軟件系統(tǒng)”。Class:由特殊到
6、一般的歸納(induction)Inheritance:由一般到特殊的演繹(deduction)2. 穩(wěn)定性好傳統(tǒng)方法:結(jié)構(gòu)依賴于功能,不穩(wěn)定。OOM:以object模擬實體,需求變化不會引起結(jié)構(gòu)的整體變化,因為實體相對穩(wěn)定,故系統(tǒng)也相應穩(wěn)定。面向?qū)ο蠓椒▽W的優(yōu)點3. 可重用性好傳統(tǒng)方法:通過建立標準函數(shù)庫來重用軟構(gòu)件。但標準函數(shù)缺少必要的“柔性”,難以適應不同場合的不同需要。OOM:一個class所有的 instances 都可重用它的代碼;由 inheritance 派生出的新的 class 可重用其父類的代碼,并且可以修改、擴充而不影響其父類的使用。4. 可維護性好傳統(tǒng)方法:可維護性是最
7、令人頭痛的問題。OOM:從以下幾方面改善了可維護性穩(wěn)定性好:需求的變化不牽動全局,只需局部修改;Class 獨立性強(易修改):只要修改不涉及class的對外接口,則內(nèi)部修改完全不影響外部調(diào)用;繼承(Inheritance)和多態(tài)性(polymorphism)使其易被修改和擴充;容易理解、容易測試、調(diào)試面向?qū)ο蠓椒▽W的優(yōu)點 小結(jié)OOM并不是減少了開發(fā)時間,而是通過提高可重用性、可維護性,進行擴充和修改的容易程度等,從長遠角度改進了軟件的質(zhì)量。OOM與Prototyping結(jié)合使用效果好9.1 面向?qū)ο蠓椒▽W概述9.2 面向?qū)ο蟮母拍?.3 面向?qū)ο蠼?.4 對象模型9.5 動態(tài)模型9.6 功
8、能模型9.7 3種模型之間的關(guān)系對象對象既可以是具體的物理實體的抽象,也可以是人為的概念,或者是任何有明確邊界和意義的東西。例如,一名職工、一家公司、一個窗口、一座圖書館、一本圖書、貸款、借款等等,都可以作為一個對象。面向?qū)ο蟮母拍頵1f2f3fifnfi(X)Sgi(X,S)S輸出輸出Object : = ID + Method + Attribute + Message一個對象好像一個黑盒子,表示它內(nèi)部的數(shù)據(jù)和實現(xiàn)各個操作的代碼及局部數(shù)據(jù),都被封裝在這個黑盒子內(nèi)部,在外部是看不見的,更不能從外部去訪問或修改這些數(shù)據(jù)代碼。對象的定義定義1:對象是具有相同狀態(tài)的一組操作的集合。定義2:對象是對
9、問題域中某個東西的抽象,這種抽象反映了系統(tǒng)保存有關(guān)這個東西的信息或與它交互的能力。定義3:對象:=名字 操作集合 數(shù)據(jù)結(jié)構(gòu) 對外接口 對象的特點 以數(shù)據(jù)為中心,不設(shè)與數(shù)據(jù)無關(guān)的操作; Object主動處理而不 被動地等待被處理,外部只能通過message請求操作; 具有封裝性:外部操作時,無須知道該object內(nèi)部的數(shù)據(jù)結(jié)構(gòu)及算法; 具有并行性:不同object各自獨立地處理自身數(shù)據(jù),彼此間僅通過傳遞message完成通信; 模塊獨立性好:內(nèi)聚強、耦合松類:是對具有相同數(shù)據(jù)和相同操作的一組相似對象的定義。 例如:人、圓實例:是由某個特定的類所描述的一個具體對象。消息:是要求某個對象執(zhí)行在定義它
10、的那個類中所定義的某個操作的規(guī)格說明。由3部分組成:接受消息的對象、消息選擇符(名)、零個和多個變元。方法:是對象所能執(zhí)行的操作即類中所定義的服務。方法描述了對象執(zhí)行操作的算法,響應消息的方法。屬性:是類中所定義的數(shù)據(jù),是對客觀實體所具有的性質(zhì)抽象面向?qū)ο蟮母拍?其他概念封裝:是把某個事務包起來,使外界不知道該事物的具體內(nèi)容。(字面含義)在面向?qū)ο蟪绦蛑?,把?shù)據(jù)和實現(xiàn)操作的代碼集中存放在對象內(nèi)部。封裝的條件:(1)有一個清晰的邊界 私有與共有(2)有確定的接口(3)受保護的內(nèi)部實現(xiàn)繼承繼承是子類自動地共享基類中定義的數(shù)據(jù)和方法的機制,其特性是:一個類的上層可以有父類,下層可以有子類。繼承具有傳
11、遞性,如果類C繼承類B,類B繼承類A,則類C繼承類A。當類等級為樹形結(jié)構(gòu)時,類的繼承是單繼承;當允許一個類有多個父親時,類的繼承是多重繼承。繼承 cont.在程序執(zhí)行期間,對對象某一性質(zhì)的查找是從該對象類在類等級中所在的程序開始,沿類等級逐層向上進行的,并把第一個被找到的性質(zhì)作為所要的性質(zhì)。因此,低層的性質(zhì)將屏蔽高層的同名的性質(zhì)。從原有類派生出新的子類的辦法有:需要擴充原有功能時,派生類的方法可以調(diào)用基類的方法,并在此基礎(chǔ)上增加必要的程序代碼;需要完全改變原有操作的算法時,可以在派生類中實現(xiàn)一個與基類方法同名而算法不同的方法;需要增加新的功能時,可以在派生類中實現(xiàn)一個新的方法。Class 中國
12、人中國人 Attributes中國人 Methods張山 (instance) Class 中國人 張山的 AttributesClass 杭州人 (子類) 杭州人 Attributes杭州人 Methods Class 中國人李士 (instance) 中國人李士的 Attributes 杭州人李士的 Attributes Class 杭州人例:多態(tài)性多態(tài)性是指子類對象可以像父類對象那樣使用,同樣的消息既可以發(fā)送給父類對象也可以發(fā)送給子類對象。在C+語言中,多態(tài)性是通過虛函數(shù)來實現(xiàn)的。虛函數(shù)機制使得程序員能在一個類等級中使用相同函數(shù)的多個不同版本,稱為動態(tài)聯(lián)遍,也叫滯后聯(lián)編。多態(tài)性機制不僅增
13、加了面向?qū)ο筌浖撵`活性,進一步減少了信息冗余,而且顯著提高了軟件可重用性和可擴充性。重載函數(shù)重載是指在同一作用域內(nèi)的若干個參數(shù)特征不同的函數(shù)可以使用相同的函數(shù)名字;運算符重載是指同一個運算符可以施加與不同類型的操作數(shù)上面,當參數(shù)類型不同或被操作數(shù)的類型不同時,實現(xiàn)函數(shù)的算法或運算符的語義是不相同的;在C+語言中函數(shù)重載是通過靜態(tài)聯(lián)編(也叫先前聯(lián)編)實現(xiàn)的,也就是在編譯時根據(jù)函數(shù)變元的個數(shù)和類型,決定到底使用函數(shù)的哪個實現(xiàn)代碼;對于重載的運算符,同樣是在編譯時根據(jù)被操作數(shù)的類型,決定使用該運算符的哪種語義。9.1 面向?qū)ο蠓椒▽W概述9.2 面向?qū)ο蟮母拍?.3 面向?qū)ο蠼?.4 對象模型9.
14、5 動態(tài)模型9.6 功能模型9.7 3種模型之間的關(guān)系模型為了理解事物而對事物作出的一種抽象,是對事物的一種無歧義的書面描述模型由一組圖示符號和規(guī)則說明構(gòu)成,用他們來定義和描述問題域中的術(shù)語和概念模型是一種思考工具,把知識規(guī)范的表示出來思考問題、定義術(shù)語、作出假設(shè)保持定義和假設(shè)的一致性面向?qū)ο蠼DP?cont.軟件開發(fā)是模型的應用系統(tǒng)分析員從不同角度抽象出目標系統(tǒng)的特性使用精確的表示方法構(gòu)造系統(tǒng)的模型驗證模型是否滿足用戶的需求在設(shè)計過程把實現(xiàn)細節(jié)加進模型直至用程序?qū)崿F(xiàn)模型用面向?qū)ο蠓椒ㄩ_發(fā)軟件,通常要建立3種形式的模型:描述系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的對象模型描述系統(tǒng)控制結(jié)構(gòu)的動態(tài)模型描述系統(tǒng)功能的功能模
15、型一個典型的軟件系統(tǒng)使用數(shù)據(jù)結(jié)構(gòu)(對象模型),執(zhí)行操作(動態(tài)模型),并完成數(shù)據(jù)值的變化(功能模型)9.1 面向?qū)ο蠓椒▽W概述9.2 面向?qū)ο蟮母拍?.3 面向?qū)ο蠼?.4 對象模型9.5 動態(tài)模型9.6 功能模型9.7 3種模型之間的關(guān)系模型通常由一組圖示符號和組成這些符號的規(guī)則組成,定義和描述問題域的術(shù)語和概念為建立模型,需要用適當?shù)恼Z言來表達模型建模語言由記號(即模型中使用的符號)和使用這些記號的規(guī)則(語法、語義)組成建模語言面向?qū)ο蠓治雠c設(shè)計方法在20世紀80年代末到90年代中出現(xiàn)了一個高潮,統(tǒng)一建模語言UML就是這個高潮的產(chǎn)物UML是由面向?qū)ο蠓椒I(lǐng)域的三位著名專家Grady Boo
16、ch,James Rumbaugh和Ivar Jacobson提出的UML統(tǒng)一了他們?nèi)说谋硎痉椒?,而且融入了眾多?yōu)秀的軟件方法和思想,從而把面向?qū)ο蠓椒ㄌ岣叩揭粋€嶄新的高度UML標志著面向?qū)ο蠼7椒ㄟM入了第三代UML建模語言UML已得到許多世界知名公司的使用和支持1997年11月17日被OMG組織采納,成為面向?qū)ο蠼5臉藴收Z言O(shè)MG已經(jīng)把UML作為公共可得到的規(guī)格說明提交給國際標準化組織進行國際標準化,UML最終成為信息技術(shù)的正式國際標準UML不論在計算機學術(shù)界、軟件產(chǎn)業(yè)界還是在商業(yè)界,UML已經(jīng)逐漸成為人們?yōu)楦鞣N系統(tǒng)建模、描述系統(tǒng)體系結(jié)構(gòu)、商業(yè)體系結(jié)構(gòu)和商業(yè)過程時使用的統(tǒng)一工具,而且在
17、實踐過程中人們還在不斷擴展它的應用領(lǐng)域?qū)ο竽P捅硎眷o態(tài)的、結(jié)構(gòu)化的系統(tǒng)的“數(shù)據(jù)”性質(zhì)是對模擬客觀世界實體的對象以及對象彼此間的關(guān)系的映射建立對象模型時,我們的目標是從客觀世界中提煉出對具體應用有價值的概念OO方法強調(diào)圍繞“對象”而不是“功能”來構(gòu)造系統(tǒng)對象模型為建立動態(tài)模型和功能模型提供了架構(gòu)UML使用類圖來建立對象模型對象模型類圖的基本符號類圖描述類、類與類之間的靜態(tài)關(guān)系,是一種靜態(tài)模型,是創(chuàng)建其他UML圖的基礎(chǔ)一個系統(tǒng)由多張類圖來描述,一個類也可以出現(xiàn)在幾張類圖中1. 定義類UML中類的圖形符號為長方形,用兩條橫線把長方形分成上、中、下3個區(qū)域(下面兩個區(qū)域可以省略)為類命名時應該遵守以下
18、幾條準則:使用標準術(shù)語使用具有確切含義的名詞必要時用名詞短語作為名字類名屬性服務2. 定義屬性UML描述屬性的語法如下:可見性 屬性名:類型名=初值性質(zhì)串屬性的可見性(即可訪問性)通常有下述3種:公有的(public)(+)私有的(private)(-)保護的(protected)(#)類型名表示該屬性的數(shù)據(jù)類型,它可以是基本數(shù)據(jù)類型,也可以是用戶自定義的類型用花括號括起來的性質(zhì)串明列出該屬性所有可能的取值例: -管理員:String“未定”3. 定義服務UML描述操作的語法格式如下:可見性 操作名(參數(shù)表):返回值類型性質(zhì)串操作可見性的定義方法與屬性相同。參數(shù)表是用逗號分隔的形式參數(shù)的序列。
19、描述一個參數(shù)的語法如下:參數(shù)名:類型名默認值當操作的調(diào)用者未提供實在參數(shù)時,該參數(shù)就使用默認值。類與類之間通常有關(guān)聯(lián)、泛化(繼承)、依賴和細化等4種關(guān)系1. 關(guān)聯(lián)關(guān)聯(lián)表示兩個類的對象之間存在某種語義上的聯(lián)系 (1) 普通關(guān)聯(lián):最常見的關(guān)聯(lián)關(guān)系,只要在類與類之間存在連接關(guān)系就可以用普通關(guān)聯(lián)表示。例如,作家使用計算機,我們就認為在作家和計算機之間存在某種語義連接,因此在類圖中應該在作家類和計算機類之間建立關(guān)聯(lián)關(guān)系表示關(guān)系的符號作家計算機 * 使用 1.* 被使用1. 關(guān)聯(lián) cont.通常關(guān)聯(lián)是雙向的,可在一個方向上為關(guān)聯(lián)起一個名字,在另一個方向上起另一個名字(也可不起名字)在表示關(guān)聯(lián)的直線兩端可以
20、寫上重數(shù)(multiplicity),它表示該類有多少個對象與對方的一個對象連接。重數(shù)的表示方法通常有(默認重數(shù)為1)0.1表示0到1個對象0.*或*表示0到多個對象1或1.*表示1到多個對象1.15表示1到15個對象3表示3個對象作家計算機 * 使用 1.* 被使用1. 關(guān)聯(lián) cont.(2)關(guān)聯(lián)的角色在任何關(guān)聯(lián)中都會涉及到參與此關(guān)聯(lián)的對象所扮演的角色,在某些情況下顯式標明角色名有助于別人理解類圖例:一個人與另一個人結(jié)婚,必然一個人扮演丈夫的角色,另一個人扮演妻子的角色。如果沒有顯式標出角色名,則意味著用類名作為角色名。人結(jié)婚丈夫妻子1. 關(guān)聯(lián) cont.(3)限定關(guān)聯(lián)限定關(guān)聯(lián)通常在一對多或
21、多對多的關(guān)聯(lián)關(guān)系中,可以把模型中的重數(shù)從一對多變成一對一,或從多對多簡化成多對一例如,某操作系統(tǒng)中一個目錄下有許多文件,一個文件僅屬于一個目錄,在一個目錄內(nèi)文件名確定了惟一一個文件??梢?,利用限定詞把一對多關(guān)系簡化成了一對一關(guān)系目錄文件名文件1. 關(guān)聯(lián) cont.(4)關(guān)聯(lián)類為了說明關(guān)聯(lián)的性質(zhì)可能需要一些附加信息,可以引入一個關(guān)聯(lián)類來記錄這些信息。關(guān)聯(lián)中的每個連接與關(guān)聯(lián)類的一個對象相聯(lián)系。關(guān)聯(lián)類通過一條虛線與關(guān)聯(lián)連接。隊列電梯控制器電梯按鈕4*2. 聚集聚集也稱為聚合,是關(guān)聯(lián)的特例。聚集表示類與類之間的關(guān)系是整體和部分的關(guān)系。在陳述需求時使用的“包含”、“組成”、“分為部分”等字句,往往意味著
22、存在聚集關(guān)系。除了一般聚集之外,還有兩種特殊的聚集關(guān)系,分別是共享聚集和組合聚集。(1)共享聚集如果在聚集關(guān)系中處于部分方的對象可同時參與多個處于整體方對象的構(gòu)成,則該聚集稱為共享聚集。課題組人 * 1 .* 成員2. 聚集 cont.(2)組合聚集如果部分類完全隸屬于整體類,部分與整體共存,整體不存在了部分也會隨之消失(或失去存在的價值了),則該聚集稱為組合聚集(簡稱為組成)。例如,在屏幕上打開一個窗口,它由文本框、列表框、按鈕和菜單組成,一旦關(guān)閉了窗口,各個組成部分也同時消失,窗口和它的組成部分之間存在著組合聚集關(guān)系。窗口文本框列表框按鈕菜單包含*3. 泛化在UML中的泛化關(guān)系就是通常所說
23、的繼承關(guān)系,它是通用元素和具體元素之間的一種分類關(guān)系。具體元素完全擁有通用元素的信息,并且還可以附加一些其他信息。泛化針對類型而不針對實例,一個類可以繼承另一個類,但一個對象不能繼承另一個對象。實際上,泛化關(guān)系指出在類與類之間存在“一般-特殊”關(guān)系。泛化可進一步劃分成普通泛化和受限泛化。3. 泛化 cont.(1)普通泛化需要特別說明的是:沒有具體對象的類稱為抽象類抽象類通常作為父類,用于描述其他類(子類)的公共屬性和行為。圖示抽象類時,在類名下方附加一個標記值abstract交通工具abstractdrive( ) abstract汽車drive( )船drive( )驅(qū)動車輪轉(zhuǎn)換轉(zhuǎn)動螺旋槳
24、3. 泛化 cont.例子:一副工程藍圖由許多圖形組成,圖形可以是直線,圓,多邊形或組合圖,而多邊形由直線組成,組合圖由各種線型混合而成。圖形abstractdraw( ) abstract位置:pos組合圖draw( )多邊形draw( )線draw( )圓draw( )由組成 *藍圖由組成 *由組成 *3. 泛化 cont.(2)受限泛化可以給泛化關(guān)系附加約束條件,以進一步說明該泛化關(guān)系的使用方法或擴充方法,這樣的泛化關(guān)系稱為受限泛化。預定義的約束有4種:多重,不相交,完全和不完全,這些約束都是語義約束。多重繼承指的是,一個子類可以同時多次繼承同一個上層基類。與多重繼承相反是不相交繼承完全
25、繼承指的是父類的所有子類都已在圖中窮舉交通工具水路兩用 汽車船動力裝置 動力裝置 多重 4. 依賴和細化(1)依賴關(guān)系:依賴關(guān)系描述兩個模型元素之間的語義連接關(guān)系,其中一個模型元素是獨立的,另一個模型元素不是獨立的,如果獨立的模型元素改變,將影響依賴于它的模型元素。(2)細化關(guān)系:當對同一個事物在不同抽象層次上描述時,這些描述之間具有細化關(guān)系。類B類A獨立分析類設(shè)計類9.1 面向?qū)ο蠓椒▽W概述9.2 面向?qū)ο蟮母拍?.3 面向?qū)ο蠼?.4 對象模型9.5 動態(tài)模型9.6 功能模型9.7 3種模型之間的關(guān)系動態(tài)模型表示瞬時的,行為化的系統(tǒng)的“控制”性質(zhì),它規(guī)定了對象模型中的對象的合法變化序列。
26、每個類的動態(tài)行為用一張狀態(tài)圖來描繪各個類的狀態(tài)圖通過共享事件合并起來,從而構(gòu)成系統(tǒng)的動態(tài)模型動態(tài)模型是基于事件共享而互相關(guān)聯(lián)的一組狀態(tài)圖的集合狀態(tài)有持續(xù)性,它占用一段時間間隔狀態(tài)與事件密不可分,一個事件分開兩個狀態(tài),一個狀態(tài)隔開兩個事件事件表示時刻,狀態(tài)代表時間間隔動態(tài)模型動態(tài)模型的三要素: 事件(event):引發(fā)對象狀態(tài)改變的控制信息(瞬時) 狀態(tài)(status):即對象的屬性所處的情形(可持續(xù)) 行為(action):對象要達到某種狀態(tài)所做的操作(耗時)表示方法:注:當描述循環(huán)運行過程時,通常不關(guān)心是怎樣啟動的。Event 0Status 1do: Action 1Status 2do:
27、 Action 2Event 1Event 2StartEndCondition 1閑 置撥 號通 話斷 線撥號音do:響撥號音超 時do:響蜂鳴音存儲的信息do:播放信息接通中do:試接通振 鈴do:振 鈴忙 音do:響忙音拿起聽筒數(shù)字數(shù)字有效號碼已接通受話人回話受話人掛斷電話掛斷電話超 時掛斷電話超時無效號碼信息播完占 線例: 的狀態(tài)圖9.1 面向?qū)ο蠓椒▽W概述9.2 面向?qū)ο蟮母拍?.3 面向?qū)ο蠼?.4 對象模型9.5 動態(tài)模型9.6 功能模型9.7 3種模型之間的關(guān)系表示變化的系統(tǒng)的“功能”性質(zhì),它指明了系統(tǒng)應該“做什么”,因此更直接地反映了用戶對目標系統(tǒng)的需求。功能模型由一組數(shù)據(jù)
28、流圖組成,在面向?qū)ο蠓椒▽W中,數(shù)據(jù)流圖遠不如在結(jié)構(gòu)分析設(shè)計方法中那樣重要一般說來,與對象模型和動態(tài)模型比較,數(shù)據(jù)流圖并沒有增加新的信息UML提供的用例圖也是進行需求分析和建立功能模塊的強有力工具,在UML中把用用例圖建立起來的系統(tǒng)模型成為用例模型。功能模型用例圖包含的模型元素有系統(tǒng),行為者,用例及用例之間的關(guān)系圖中的方框代表系統(tǒng),橢圓代表用例,線條人代表行為者,它們之間的連線表示關(guān)系用例圖售貨供貨取款機自動售貨機系統(tǒng)顧客供貨人收銀員用例圖的元素:1. 系統(tǒng)系統(tǒng)被看作是一個提供用例的黑盒子,內(nèi)部如何工作,用例如何實現(xiàn),這些對于建立用例模型來說都是不重要的。系統(tǒng)的方框邊線表示系統(tǒng)的邊界,劃定系統(tǒng)的
29、功能范圍。用例圖的元素 cont.2. 用例 Use Case用例是可以被行為者感受到的,系統(tǒng)的一個完整的功能在UML中把用例定義成系統(tǒng)完成的一系列動作,動作的結(jié)果能被特定的行為者察覺到。用例具有下述特征:(1)用例代表某些用戶可見的功能,實現(xiàn)一個具體用戶目標(2)用例總是被行為者啟動的,并向行為者提供可識別的值(3)用例必須是完整的用例圖的元素 cont.2. 用例 cont.用例的實例是系統(tǒng)的一種實際使用方法,通常把用例的實例稱為腳本。腳本是系統(tǒng)的一次具體執(zhí)行過程例如,在自動售貨機系統(tǒng)中,張三投入硬幣購買礦泉水,系統(tǒng)收到錢后把礦泉水送出來,上述過程就是一個腳本;李四投幣買可樂,但是可樂賣完了,于是系統(tǒng)給出提示信息并把錢退還給李四,這個過程是另一個腳本。用例圖的元素:3. 行為者 Actor行為者是指與系統(tǒng)交互的人或其他系統(tǒng),它代表外部實體。使用用例并且與系統(tǒng)交互的任何人或物都是行為者。行為者代表一種角色,而不是某個具體的人或物。例如,在自動售貨機系統(tǒng)中,使用售貨功能的人既可以是買張三(買礦泉水)也可以是李四的(買可樂),但是不能把張三或李四這樣的個體對象稱為行為者。在用例圖中用直線連接行為者和用例,表示兩者之間交換信息,稱為通信聯(lián)系。行為者觸發(fā)(激活)用例,并與用例交換信息,單個行為者可與多個用例聯(lián)系;反之,一個用例也可與多個行為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版體育賽事運營權(quán)收購協(xié)議書范本(含贊助商權(quán)益)3篇
- 農(nóng)業(yè)科技項目2025年度市場開發(fā)與品牌建設(shè)合同3篇
- 2025版二零二五民辦學校教師職業(yè)發(fā)展規(guī)劃聘用協(xié)議4篇
- 2025年度美容美發(fā)行業(yè)技師勞動合同續(xù)簽條件合同4篇
- 2025年度美甲店品牌形象保護與侵權(quán)糾紛處理合同4篇
- 二零二五年度車牌租賃經(jīng)營合作協(xié)議范本3篇
- 2025年高科技研發(fā)中心投資合作框架協(xié)議3篇
- 2025年度綠化工程進度跟蹤與管理合同4篇
- 2025年攤位電子支付系統(tǒng)合作協(xié)議3篇
- 2025年智能城市基礎(chǔ)設(shè)施建設(shè)土地買賣合同范例3篇
- 2024年住院醫(yī)師規(guī)范化培訓師資培訓理論考試試題
- 期末綜合測試卷(試題)-2024-2025學年五年級上冊數(shù)學人教版
- 2024年廣東省公務員錄用考試《行測》試題及答案解析
- 結(jié)構(gòu)力學本構(gòu)模型:斷裂力學模型:斷裂力學實驗技術(shù)教程
- 黑色素的合成與美白產(chǎn)品的研究進展
- 金蓉顆粒-臨床用藥解讀
- 法治副校長專題培訓課件
- 《幼兒園健康》課件精1
- 汽車、電動車電池火災應對
- 中醫(yī)藥適宜培訓-刮痧療法教學課件
- 免疫組化he染色fishish
評論
0/150
提交評論