面向對象系統(tǒng)分析與設計_第1頁
已閱讀1頁,還剩156頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、面向對象系統(tǒng)分析與設計,,2,面向對象系統(tǒng)分析與設計,7.1 面向對象的發(fā)展歷史7.2 面向對象的基本概念7.3 面向對象的方法論7.4 面向對象的分析7.5 面向對象的設計7.6 面向對象與統(tǒng)一建模語言,3,面向對象系統(tǒng)分析與設計,面向對象的歷史與發(fā)展,古希臘哲學家的論著,K.Nyguard等設計的Simula 67,Alan Keyz主持設計的Smalltalk,以Smalltalk 80和 C++為代表的語言,面向對象的

2、系統(tǒng)開發(fā),面向對象的應用深入,,4,面向對象系統(tǒng)分析與設計,數(shù)據抽象 – 一種設計方法把一組數(shù)據及作用與其上的操作組成一個設計實體或單位。接口說明外部可見,其實現(xiàn)是隱蔽的,不可見的。發(fā)展的三個階段,5,面向對象系統(tǒng)分析與設計,抽象數(shù)據類型抽象數(shù)據類型是指“一個值集和作用在該值集上的操作集”。抽象數(shù)據類型的定義只決定于其邏輯特性,與其具體的計算機內部實現(xiàn)無關。一個抽象數(shù)據類型可以分解為語法、語義、表示和算法4個部分。,6,面向對象系

3、統(tǒng)分析與設計,抽象數(shù)據類型的實現(xiàn)實現(xiàn)抽象數(shù)據類型需要借助于高級程序設計語言(Pascal,C,C++,…);在面向過程的語言中,用戶可以自己定義數(shù)據類型;(ADA Package, Pascal Unit)在面向對象的程序設計語言中,借助于對象描述抽象數(shù)據類型。(Class),7,面向對象系統(tǒng)分析與設計,問題求解面向對象設計方法:實現(xiàn)問題空間和問題求解空間的近似和直接模擬。,意識部分教室,物質部分303教室,抽象部分

4、教室類,具體部分一個對象:教室實例,,,現(xiàn)實問題空間,解空間,8,面向對象技術概述,面向對象的特點封裝機制基于消息的通信繼承機制多態(tài)機制,9,面向對象系統(tǒng)分析與設計,7.1 面向對象的發(fā)展歷史7.2 面向對象的基本概念7.3 面向對象的方法論7.4 面向對象的分析7.5 面向對象的設計7.6 面向對象與統(tǒng)一建模語言,10,7.2面向對象的基本概念,基本概念與特點對象(Object)消息(Message)類(C

5、lass)實例(Instance)繼承(Inheritance)封裝(Encapsulation)多態(tài)(Polymorphism),11,面向對象的世界觀,把客觀世界從概念上看成是一個由相互配合而協(xié)作的對象所組成的系統(tǒng)面向對象=對象+分類+繼承+通信一個實例——椅子,12,一個面向對象的實例——椅子,13,對象,對象(Object)對象是用來描述客觀存在的事物,它是構成系統(tǒng)的基本單位,是對客觀世界中事物的抽象描述。,對象

6、= 行為(功能、方法、服務) + 屬性(數(shù)據),屬性,行為,,,,,,,接口,對象,對象,對象,,7.2面向對象的基本概念,14,對象是由私有數(shù)據(屬性)及作用于其上的一組操作(行為)所構成的一個封閉整體由于對象的數(shù)據是私有的,所以要想訪問其數(shù)據的正確方法是向該對象發(fā)送消息,讓對象自身選擇其內部相應的操作以完成對該項數(shù)據的訪問對象的動作取決于外界給對象的刺激,這就是消息,消息告訴對象所要求它完成的功能。對象具有一定的智能功能,即“知

7、道”如何選擇相應的操作來處理對象所接收的消息從設計人員的角度看,對象是一個完成特定功能的程序塊從用戶的角度看,對象為他們提供了所希望的行為,7.2面向對象的基本概念,15,對象(Object)對象標識對象生命周期一般對象主動對象永久對象,7.2面向對象的基本概念,16,類(Class)一個對象類描述的是具有相似性質(屬性)的一組對象,這組對象具有一般行為(操作),一般的關系(對象之間)及一般語義。類是對象類的縮寫,類

8、中的對象有著相同的屬性、行為模式。,將事物進行歸納劃分成不同的一些類是人們認識客觀世界的基本思維方法。這種方法依據的原則是抽象,它忽略了客觀事物非本質特性,將客觀事物所具有的共同點,即本質特性劃分為一類,形成對事物的本質認識,得出事物的抽象結果。,7.2面向對象的基本概念,17,類(Class),,結構化程序設計,面向對象的程序設計,7.2面向對象的基本概念,18,7.2面向對象的基本概念,消息(Message)對象之間的聯(lián)系是通過傳

9、遞消息來實現(xiàn)的。是對象之間進行通訊的一種數(shù)據結構。消息統(tǒng)一了“數(shù)據流”和“控制流”。,19,7.2面向對象的基本概念,消息 - 消息傳送與函數(shù)調用的區(qū)別函數(shù)調用可以帶或不帶參數(shù),但是消息至少帶一個參數(shù),它表明接收該消息的對象,消息中告訴對象做什么的部分稱為消息操作;消息操作名類似于函數(shù)名,其本質區(qū)別在于:函數(shù)名代表一段可執(zhí)行的代碼,但消息操作名具體功能的選定還取決于接收消息的對象本身函數(shù)調用是過程式的(如何做),消息傳送是說明

10、式的(做什么),具體如何做,由對象根據收到的消息自行確定。,20,屬于某類的具體對象就是該類的實例。一個類的不同實例必定具有:相同的操作(或行為)的集合相同的信息結構或屬性定義,但可以有不同的屬性值不同的對象標識,7.2面向對象的基本概念,21,7.2面向對象的基本概念,實例(Instance),22,7.2面向對象的基本概念,繼承(Inheritance)是自動共享類、子類和對象中的方法和數(shù)據的機制。是實現(xiàn)從可重用成分構造系統(tǒng)

11、的最有效的特性,23,封裝(Encapsulation)封裝封裝是一種信息隱蔽技術,就是把對象的屬性和行為相結合構成一個獨立的基本單位,用戶只能見到對象封裝界面上的信息,對象內部對用戶是隱蔽的。封裝的目的在于將對象的使用者和對象的設計者分開,使用者不必知道行為實現(xiàn)的細節(jié),只需使用設計者提供的消息訪問對象,7.2面向對象的基本概念,24,PosColor… …,公有消息,私有消息,,,,存儲結構,方法,協(xié)..……議,,一個對象,7.

12、2面向對象的基本概念,封裝的定義為:(1)一個限定所有對象內部軟件的一個清楚界面;(2)一個描述這個對象和其它對象之間相互作用的接口(3)受保護的內部實現(xiàn),這個實現(xiàn)給出了由軟件對象提供的功能細節(jié),實現(xiàn)細節(jié)不能在定義這個對象的類的外面訪問,25,7.2面向對象的基本概念,多態(tài)(Polymorphism)即一個名字具有多種語義。同一對象接收到不同消息采用不同的行為方式不同對象收到相同消息時產生不同的動作重載(overload)

13、動態(tài)綁定類屬,26,面向對象系統(tǒng)分析與設計,7.1 面向對象的發(fā)展歷史7.2 面向對象的基本概念7.3 面向對象的方法論7.4 面向對象的分析7.5 面向對象的設計7.6 面向對象與統(tǒng)一建模語言,27,分析方法的改進,分析工作面臨的問題問題域和系統(tǒng)任務通信需求變化重用,28,7.3面向對象的方法論,處理復雜問題的原則抽象(Abstract)封裝(Encapsulation)繼承(Inheritance)相關

14、(Association)消息通訊(Communication with message)組織方法(Method of organization)規(guī)模(Scale)行為規(guī)范(Categories of behavior),29,7.3面向對象的方法論,從認識論看面向對象 信息系統(tǒng)認識的三個方面,30,采用面向對象的概念及其抽象機制建立應用系統(tǒng)模型,將系統(tǒng)開發(fā)視為對象模型的轉換和不斷細化過程優(yōu)點與其他建模方法的關系,7.

15、3面向對象的方法論,31,面向對象方法的優(yōu)點,它是在人類思維的3個基本方法的框架(即:對象分類、封裝和繼承)之內定義并表達需求;主要集中于對問題空間的分析與理解;使屬性和對屬性的服務作為一個整體看待;使對象之間的依賴達到最小;可以對一類對象的共同特征顯式的表示;使分析與設計擁有共同和一致的基本表示,32,分析方法的改進,分析方法功能分解法數(shù)據流法信息模擬法面向對象法,33,分析方法的改進,分析方法 – 功能分解法功能

16、分解 = 功能 + 子功能 + 功能接口將問題域映射為功能和子功能。為系統(tǒng)必須提供的功能和子功能編寫文檔。產生的規(guī)格說明只能間接的反映問題域。,34,分析方法的改進,分析方法 – 數(shù)據流法(結構化方法)數(shù)據流法 = 數(shù)據流 + 數(shù)據變換 + 數(shù)據存儲 + 過程規(guī)格說明 + 數(shù)據字典將現(xiàn)實世界映射為數(shù)據流圖。刻畫數(shù)據從輸入到輸出的信息流。面向對象方法代表了相對于面向過程的根本性變化。面向過程的觀點是系統(tǒng)被分解后,用過程來實現(xiàn)

17、系統(tǒng)的基礎構造,把對問題域的分析轉化為對求解域的設計,分析的結果是設計階段的輸入,35,分析方法的改進,分析方法 – 信息模擬法信息模擬法 = 對象 + 屬性 + 關系 + 超類/子類 + 有關對象面向對象方法相對于面向數(shù)據的方法學僅僅是適當增補,36,分析方法的改進,分析方法 – 面向對象法面向對象法 = 對象 + 類 + 繼承 + 消息通信 面向對象的方法是采用構造模型的觀點。在系統(tǒng)的開發(fā)過程中,各個步驟的共同目標是建

18、造一個問題域的模型,因此雖然分析與設計是不同的系統(tǒng)開發(fā)階段,但它們全是為實現(xiàn)這一目的而努力的。系統(tǒng)分析不是設計的輸入,從分析到設計的轉移是一致的。這就是在分析階段把系統(tǒng)分解成實體及其關系,設計則是解決這些實體和關系如何實現(xiàn)的問題,37,面向對象的方法論,解決語言的鴻溝,38,面向對象的方法論,語言的鴻溝變窄,39,面向對象的方法論,分析與設計的鴻溝,40,面向對象分析設計的基本思路,識別對象和類通過一組互相關聯(lián)的模型詳細表示類之間的關

19、系和對象的行為,并最終描述系統(tǒng)的信息、功能和行為靜態(tài)邏輯模型動態(tài)邏輯模型,41,識別對象和類,為了發(fā)現(xiàn)對象和類,開發(fā)人員要在系統(tǒng)需求分析的文檔中查找名詞和名詞短語,包括可感知的事物(雷達、火炮、傳感器);角色(指揮官、操作員、士兵);事件(線路中斷、登陸、收到命令);互相作用(指揮、控制、戰(zhàn)斗);人員;場所;組織;設備;地點等發(fā)現(xiàn)重要的對象和其責任,是面向對象分析設計的初期重要的技術,42,靜態(tài)邏輯模型,靜態(tài)邏輯模型描述實例化(類

20、成員關系)、關聯(lián)、聚集(整體/部分)、和一般化(繼承)等關系。這被稱為對象模型。一般化關系表示屬性和方法的繼承關 系。定義對象模型的圖形符號體系通常是從用于數(shù)據建模的實體關系圖導出的。對設計十分重要的約束,如基數(shù)(一對一、一對多、多對多),也在對象模型中表示,43,動態(tài)邏輯模型,動態(tài)邏輯模型描述對象之間的互相作用?;ハ嘧饔猛ㄟ^一組協(xié)同的對象,對象之間消息的有序的序列,加上對象的可見性定義,來定義系統(tǒng)運行時的行為,44,面向對象

21、方法綜述,Booch方法Coad/Yourdon方法Jocobson方法(OOSE方法)Rambaugh方法(OMT方法)Wirfs-Brock方法RDD方法VMT方法,45,Booch方法,46,把系統(tǒng)的開發(fā)工作分為兩個部分:微觀過程和宏觀過程。,微觀過程,宏觀過程,Booch方法,47,Coad/Yourdon方法,五個層次的問題域模型,48,Jocobson方法(OOSE方法),使用實例(use case)驅動,它

22、建立的所有模型都是以使用實例模型為基礎的。使用實例——用以描述用戶和系統(tǒng)間如何交互的場景,49,Rambaugh方法(OMT方法),創(chuàng)建三個模型:對象模型(對象類、層次和關系的表示)、動態(tài)模型(對象和系統(tǒng)行為的表示)和功能模型(高層的類似DFD的系統(tǒng)信息流的表示),50,主要分為分析、設計和實現(xiàn)三個階段。分析階段:確定對象模型、動態(tài)模型和功能模型設計階段:系統(tǒng)設計和對象設計實現(xiàn)階段的細節(jié)和具體的實現(xiàn)環(huán)境有關OMT方法突出的特點

23、是在分析階段,它可以較為全面地描述系統(tǒng)的靜杰結構,所以0MT方法適合于數(shù)據密集型的信息系統(tǒng)的開發(fā)。,Rambaugh方法(OMT方法),51,Wirfs-Brock方法,評估客戶規(guī)約使用語法分析從規(guī)約中抽取候選類組合類以試圖標識超類為每個類定義責任為每個類賦予責任標識類之間的關系定義類之間基于責任的協(xié)作構造類的層次表示以顯示繼承關系構造系統(tǒng)的協(xié)作圖,52,RDD方法,主要思想強調對象行為以及對象間的關系 使用責任、合

24、作、合作者、顧客、服務者、合約等概念。它用擬人的手法把對象的行為比喻為責任,對象間的關系比喻為合作,具有責任的對象比喻為合作者。基本過程探查階段。尋找類,確定責任和合作 分析階段。細化對象的行為和服務 工具:CRC卡片,53,CRC卡片,54,RDD方法對于小型項目具有較好的靈活性和適應性。但是對于大型系統(tǒng),這個方法則顯得力不從心了。,RDD方法,55,VMT方法,作為第三代面向對象開發(fā)方法,VMT方法結合了OMT,OOSE,R

25、DD等方法的優(yōu)點,并且結合了可視化編程和原型技術 選擇OMT方法作為整個方法的框架,并采用其表示方法 引入了OOSE方法中的使用實例概念加強對需求的分析引入了RDD方法中的CRC卡片代替OMT方法中用數(shù)據流圖表示的功能模型,56,面向對象系統(tǒng)分析與設計,7.1 面向對象的發(fā)展歷史7.2 面向對象的基本概念7.3 面向對象的方法論7.4 面向對象的分析7.5 面向對象的設計7.6 面向對象與統(tǒng)一建模語言,57,面向對象的分

26、析,面向對象分析方法建立的認識基礎:從現(xiàn)實世界中區(qū)分特定的客體及其屬性。 區(qū)分事物的整體及其組成部分。 對不同種類的事物給出形式化表示,然后在此基礎上加以區(qū)分。,58,面向對象的分析,面向對象的系統(tǒng)分析原則:抽象封裝 繼承 分類聚合關聯(lián)消息通信粒度控制,59,面向對象的分析,面向對象的系統(tǒng)分析模型的過程:發(fā)現(xiàn)對象,定義問題域的類;識別對象的內部特征(定義屬性,定義方法)識別對象的外部關系建立一般-特殊結構;

27、建立整體-部分結構建立實例連接;建立消息通信(上述三個活動建立基本模型)劃分主題,建立主題圖定義Use-Case,建立交互圖(上述兩個過程在某些情況下可以省略)給出詳細說明原型開發(fā),60,面向對象的分析,面向對象的系統(tǒng)分析工作的前提:(1)研究用戶需求,明確系統(tǒng)責任(2)研究問題域(3)確定系統(tǒng)邊界,61,面向對象的分析,面向對象的分析內容:標識發(fā)現(xiàn)對象定義屬性定義方法結構的認定主題的認定,62,標識對象,

28、步驟和內容尋找對象那些可以作為對象對候選對象審查和篩選質疑和調整對象命名,63,標識對象,對象表示,表示一個類和對象,表示一個類,類的名稱,類的屬性,類的方法,64,標識對象,尋找對象考慮:系統(tǒng)責任素材:問題域、文字說明、圖形表示等等。,65,標識對象,哪些可以作為對象問題域人員、組織、物品、設備、事件、表格、結構;系統(tǒng)邊界從系統(tǒng)外部邊界出發(fā),尋找系統(tǒng)以外的與系統(tǒng)直接交互的相關人員、外部系統(tǒng)、設備,從而找出對象系

29、統(tǒng)責任,66,標識對象,對候選對象的審查和篩選舍棄無用對象對象精簡,67,標識對象,質疑和調整類的屬性或服務不適合該類的全部對象 屬性和服務相同的類 屬性和服務相似的類同一事物的重復描述,68,標識對象,命名對象原則上講,對象名應該能描述對象的實例的基本特征,因此,為對象命名的主要方法可以是:?用單個名詞或形容詞加名詞作為對象名;?采用標準名稱作為對象名;?盡量采用可讀性好的名字。,69,標識對象例子,,假定商場銷售

30、系統(tǒng)有如下功能需求:為顧客選購的商品計價、收費、打印清單;記錄每一種商品的編號、單價及現(xiàn)有數(shù)量;幫助供貨員發(fā)現(xiàn)哪些商品將要脫銷,以及時補充貨源;隨時按上級系統(tǒng)的要求報告當前的款貨數(shù)量、增減商品種類或修改商品定價;交接班時結算貨款數(shù)目,報告上級系統(tǒng)。系統(tǒng)以外與系統(tǒng)進行交互的活動者有收款員、供貨員和它的上級系統(tǒng)。據此,可以啟發(fā)我們發(fā)現(xiàn)如下一些對象:收款機;供貨員;上級系統(tǒng)接口??紤]該系統(tǒng)問題域內部的事物和系統(tǒng)責任可以發(fā)現(xiàn)下述對

31、象:商品;特價商品;計量商品;商品一覽表:考慮系統(tǒng)責任,根據商品編號快速地找到相應商品的信息,需要設立一個“商品一覽表”對象,它保持一個商品目錄表,并提供對商品項的檢索及增刪等功能。銷售事件;賬冊:記錄一個收款員在一個班次內經手的。,70,標識對象例子,,例子以商場銷售管理系統(tǒng)為例建立OOA的模型 。,71,定義屬性,1. 認定屬性2. 確定屬性的位置3. 重新修改關于對象的認定4. 對屬性及實例關聯(lián)進行規(guī)格說明,72,認

32、定一個屬性需要3個基本原則。 首先,要確認它對于相應對象或分類結構的每一個實例都是適用的。 其次,一個屬性即使對某種對象的實例都是適用的,也還要考察在現(xiàn)實世界中它與這種事物的關系是不是最密切。 第三,認定的屬性應當是一種相對的原子概念,也就是說,不依賴于并列的其他屬性就可以被理解。,定義屬性-認定屬性,73,定義屬性-確定屬性的位置,確定屬性的位置 確定一個屬性的位置主要是針對分類結構而言,采用的是繼承的

33、觀點。低層對象的共有屬性應在上層對象中定義,而自己只定義特有的屬性。,74,這里應重點注意下面幾種情況:不能適用于對象的所有實例的屬性;只有一個屬性的對象;值的數(shù)目不定的對象;適配參數(shù)。,定義屬性-重新修改關于對象的認定,75,關于屬性與實例關聯(lián)的說明要包含在對象的規(guī)格說明之中,對屬性的說明,包括屬性的名、描述、約束和范疇;對實例關聯(lián)的說明,應給出關聯(lián)的雙方(一般用對象的名來表示)和映射的種類。,常見的關聯(lián)類型有表示物理位置的(

34、如毗鄰、包含),動作傳遞的(如驅動、發(fā)動),通訊聯(lián)系的(如告訴),所有關系的(如擁有)和條件滿足的(為...工作、與...結婚、管理)等等。,定義屬性-對屬性及實例關聯(lián)進行規(guī)格說明,76,屬性例子,77,定義方法,1. 認定基礎的方法2. 認定輔助方法3. 認定消息關聯(lián)4. 對方法進行規(guī)格說明,78,定義方法,認定基礎的方法 在一個OOA模型中,對每一種對象或分類結構要考慮的基礎方法有三類:存在(實例的添加、修改、刪除和選

35、擇)、計算(處理)、監(jiān)控(狀態(tài))。對這三類方法的認定,就是對一個系統(tǒng)中專有的方法進行認定的基本方面。,79,定義方法,認定輔助方法 在一個OOA模型中,對每一種對象或分類結構所要考慮的輔助方法有兩類:對象的生存史、狀態(tài)-事件-響應。,80,定義方法,認定消息關聯(lián) 消息關聯(lián)是事件-響應和數(shù)據流的一種結合。換句話說,每一個消息關聯(lián)都表示著一條要發(fā)出的消息和收到這條消息后要作出的一個響應。,81,定義方法,對方法進行規(guī)格說明

36、 對方法進行規(guī)格說明的重點是那些要求使外部可觀察到的行為,目的是強調可測試的部分,作為將來對系統(tǒng)需求進行驗證、對系統(tǒng)實現(xiàn)進行驗收和測試的基準。,82,方法例子,83,含義:結構指的是對象的多種組織方式。作用:用來反映問題域中的復雜事物和復雜關系兩種結構:分類結構- 組裝結構-標識結構的內容如下:,標識結構和連接,1. 分類結構2. 組裝結構,事物的類別之間的組織關系,整體與部件之間的組合關系,3. 靜態(tài)連接

37、4. 動態(tài)連接,84,分類結構-(一般特殊關系),定義: 如果類A具有類B的全部屬性和服務,而且具有自己特有的某些屬性或服務,則A叫作B的特殊類,B叫作A的一般類。,85,分類結構的表示,表示方法,,,86,分類結構的認定,分類結構一般是樹型,但并非總是樹型。當對象之間有多重繼承的時候,就會有復雜的分類結構。,87,分類結構的認定,認定分類結構,總的原則是先從一般向特殊考慮,再從特殊向一般考慮。,對于一種對象,首先認為它具有最

38、一般的含義??此趩栴}域中具有不同特殊性的可能性,即對于該對象每一種可能的特殊性,考慮:. 是否可以用不同的屬性和(或)方法來描述;. 是否反映了現(xiàn)實世界中有意義的特殊性;. 是否在問題域之內,即是否限定在目標系統(tǒng)之內。,確定了對象的特殊性之后,就可以令共有的屬性和方法從屬于一般含義的對象,而令擴充的特殊屬性和方法分屬于特殊含義的對象,這時原來認定的對象將會發(fā)生分解。飛機→民用+軍用,88,分類結構的認定,認定分類結構,總的原則

39、是先從一般向特殊考慮,再從特殊向一般考慮。,然后,再從特殊向一般考慮。對于一種對象,在認為它具有某種特殊的含義之后考察:. 問題域中是否還有其它對象與這種對象有一些屬性和方法是共有的。若有,則意味著可能存在某種更一般化的對象,能夠把這些共有的屬性和(或)方法概括在一起;. 如果引入某一種更一般化的對象,是否反映了現(xiàn)實世界中更有意義的一般性;. 如果引入某一種更一般化的對象,那么這種對象是否在問題域內。汽車+飛機→交通工具,89,

40、一般-特殊結構,,,,,,,表示一般與特殊結構,90,分類結構的認定,舉例。牛奶,羊毛,豬肉三個對象,好象風馬牛不相及。,但它們在問題域基層部隊農副業(yè)生產管理中都同屬于“農副業(yè)產品”這個一般類。,91,組裝結構,如果對象A是對象B的一個組成部分,則稱B是A整體對象,A是B的部分對象。并將B和A之間的關系稱作整體-部分關系或“has-a”關系。,組裝結構又稱為整體-部分結構,用于描述系統(tǒng)中各類對象之間的組成關系,通過它可以看出某個類

41、的對象以另外一些類的對象作為其組成部分。,92,組裝結構的表示,表示,,93,組裝結構的認定,認定組裝結構,總的原則是先從整體向部件考慮,再從部件向整體考慮。,對于一種對象,首先認為它是一個整體。這時,看它在問題域中含有部件的可能性,即考察:. 它的部件是什么?. 對于它的一個部件,系統(tǒng)是否必要記錄每一個實例或值?. 對于它的一個部件,每一個實例或值是否都可以用屬性來描述?. 它的部件是否反映了現(xiàn)實世界中存在的部件?. 它的部

42、件是否限定在目標系統(tǒng)之內?飛機→引擎、機翼、座位,94,組裝結構的認定,認定組裝結構,總的原則是先從整體向部件考慮,再從部件向整體考慮。,之后,再從部件向整體考慮。對于一種對象,假定它可能是另一種對象的一個部件,可以考慮:. 這種對象適合什么樣的組裝關系?. 還需要哪些對象與這種對象一起來構成另一種對象?. 對于這樣的組裝而成的對象,系統(tǒng)是否有必要記錄它的一個實例?. 這樣組裝而成的對象在現(xiàn)實世界中是否有意義?. 這樣組裝

43、而成的對象是否限定在目標系統(tǒng)之內?單位 職員 駕駛證注冊,95,整體-部分結構,,,,,表示整體與部分結構,,,,,,,,96,標識結構例子,(1)分類結構一般類“商品”和它的兩個特殊類“特價商品”及“計量商品”構成分類結構。在這個結構中一部分屬性和服務是多態(tài)的。(2)組裝結構“商品一覽表”和“商品”構成一個組裝結構,通過前者的“商品目錄”屬性體現(xiàn)這種關系?!百~冊”和“銷售事件”構成另一個組裝結構,通過前者的“銷售事件表

44、”屬性體現(xiàn)這種關系。,97,實例關聯(lián),認定和定義實例關聯(lián) 實例關聯(lián)是一個實例集合到另一個實例集合的映射。稱為實例關聯(lián)而不是對象關聯(lián),是因為有關聯(lián)關系的兩個實例集合,既可以是兩種對象的實例集合,也可以是同一種對象之實例集合的兩個子集。,98,實例關聯(lián)又稱為鏈接,用于表達對象之間的靜態(tài)關系。,靜態(tài)關系是指可通過對象屬性來表示的一個對象對另一個對象的依賴關系。,實例關聯(lián),99,消息連接,在應用面對象方法構造的系統(tǒng)中,消息體現(xiàn)了對象行為

45、之間的依賴關系。它是實現(xiàn)對象之間的動態(tài)聯(lián)系,使系統(tǒng)成為一個能活動的整體,并使各個部分能夠協(xié)調工作的關鍵因素。,100,消息連接,消息特征語法上,消息的描述應包括:消息名;入口參數(shù);返回參數(shù)。語義上,消息應包括:發(fā)送者;接收者;其它需要的傳送的信息。,101,消息連接,OOA方法應該識別和表示的主要問題包括:(1)對象之間是否存在著某種消息?(2)每一種消息是從發(fā)送者的哪個服務發(fā)出的?是由接收者的哪個服務響應和處理的?(3)消息

46、是同步的還是異步的?(4)發(fā)送者是否等待消息的處理結果?,102,消息連接,定義: 消息連接是OOA和OOD模型中對對象之間行為依賴關系的表示。即:若類A的對象在它的服務執(zhí)行時需要向類B的對象發(fā)送消息,則稱存在著從A到B的消息連接。,103,消息連接,根據對上述問題的思考與回答,在相應的類符號之間畫出用虛線箭頭表示的消息連接符。,104,標識結構例子,105,定義主題,1. 主題的概念2. 主題的表示方法3. 主題的劃分

47、,人同時可以考慮和理解的問題數(shù)目受到記憶能力和處理能力的制約,為7±2個。因此人類在認識復雜事物時,學會了采用粒度控制的原則。當對象太多時,人們對它觀察和理解時就會感到困難。需要引進一種比類和對象抽象層次更高、粒度更大的概念,用以建立系統(tǒng)的高層抽象視圖。OOA方法將這種概念稱為主題。,為什么要引入主題的概念?,106,主題的定義,主題是把一組具有較強聯(lián)系的類組織在一起而得到的類的集合。主題:是一種指導研究大型復雜模型的機制

48、機制:控制必須考慮的模型數(shù)目。同時可以給出OOA模型的總體概貌依據:整體 – 部分關系的擴充。,107,主題的概念,主題的概念具有以下特點:(1)它是由一組類構成的集合,但它本身并不是一個類。(2)一個主題內部的對象類應具有某種意義上的內在聯(lián)系。每個主題內部應該是高內聚的,各個主題之間應該是低耦合的。(3)主題的劃分有一定的靈活性或隨意性。強調的重點不同可以得到不同的主題劃分,可能每一種劃分都是合理的。,108,主題的表示方法

49、,主題有三種表示方式:壓縮方式-半展開方式-全展開方式-,帶編號和主題名的矩形,上欄填寫主題的編號和主題名。下欄列出這個主題中所包含的類和下層主題名,在類圖上用一個多邊形框出這個主題所包含的類符號,并在凸角位置上標出主題的編號;它的內部是類圖上原有的全部內容,在OOA工具的幫助下,主題的展開與壓縮可以很方便的進行,109,主題(子系統(tǒng))的圖形化表示,主題1,主題2,主題3,主題4,主題5,,,,,,,,110,主題的劃分,主題的

50、劃分包含兩個部分(步驟)的工作:主題的劃分主題的合并,一種是自底向上的。即,先建立類圖,然后把類圖中每一組聯(lián)系較強的類組織為一個主題。如果主題數(shù)量仍然大多,則進一步把聯(lián)系較強的小主題組織成一個大主題,直到系統(tǒng)中最上層的主題數(shù)量為七個左右。,基本方法,111,主題的劃分,主題的劃分包含兩個部分(步驟)的工作:主題的劃分主題的合并,另一種方式是自頂向下的。即先對系統(tǒng)做初步的分析,確定幾個大的主題,每個主題相當于一個子系統(tǒng),按這些子系

51、統(tǒng)進行分工,各個分析小組對自己分工的子系統(tǒng)進行正規(guī)的面向對象分析,建立各個子系統(tǒng)(主題)中的類圖。最后各個小組的分析結果將合并為一個大的OOA模型。,基本方法,112,主題的劃分,把類圖中的類劃分到一些最低層的主題中。類圖中的每個分類結構和每個組裝結構都是一組聯(lián)系較為緊密的類,所以首先考慮把每個結構作為一個主題。對于分類結構,可以用這個結構中最上層一般類的類名作為主題名。有少量交叉的兩個結構,可以劃分為兩個主題;對于交叉部分大多而很

52、難看成兩個結構的,可以劃分到一個主題,并為它取一個合適的主題名。對于組裝結構,可以用這個結構中最上層整體類的類名作為主題名。通過實例連接互相聯(lián)系的類可考慮劃分到一個主題中。剩下的一些既不屬于任何結構,也沒有實例連接的類。,113,主題的合并,主題合并工作是把一些較小的主題合并為一個較大的主題。向上抽象一層。,(1)根據問題域的情況,如果某幾個主題所包含的對象類在概念上比較接近,或者有較強的相關性,則可考慮合并為一個主題。 (2)

53、考慮系統(tǒng)責任,如果某幾個主題所涉及的系統(tǒng)責任有較大的相關性,或者說,它們的功能同屬某項大的功能,則可考慮合并為一個主題。 (3)在類圖上觀察各個主題之間的關系強弱,把強耦合的(即各種關系較多的)主題合并為一個主題。,114,定義主題的例子,115,116,面向對象系統(tǒng)分析與設計,7.1 面向對象的發(fā)展歷史7.2 面向對象的基本概念7.3 面向對象的方法論7.4 面向對象的分析7.5 面向對象的設計7.6 面向對象與統(tǒng)一建模語

54、言,117,面向對象的設計,問題域部分的設計人機交互部分的設計任務管理部分的設計數(shù)據管理部分的設計OOD的評價標準,118,從OOA到OOD不是一個突變的過程, OOA的結果符合OOD的問題域部分(PDC),OOD是在對OOA的結果作深入研究的基礎上的改動和增補,這是一個循序漸進的過程。,,面向對象的設計,119,人機交互部分(HIC) 根據用戶選用的圖形用戶界面系統(tǒng)(GUI)和特定用戶對人機界面的要求而設計的系

55、統(tǒng)使用界面。它很大程度上依賴于所用的圖形用戶界面環(huán)境(如MS-Windows、Linux等),由新定義的人機界面類和對象組成。,,面向對象的設計,120,任務管理部分(TMC) 用于定義系統(tǒng)中需要并發(fā)執(zhí)行的各個任務。包括任務的定義、通信和協(xié)調,以及硬件分配、外部系統(tǒng)及設備約定,可能包括的類有“任務”類和“任務協(xié)調”類。,面向對象的設計,121,數(shù)據管理部分(DMC) 按選定的數(shù)據管理系統(tǒng)而設計的負責對象的

56、存儲及檢索的系統(tǒng)組成部分。它與物理的數(shù)據管理方法無關,可以是普通文件、帶標記語言的文件、關系型數(shù)據庫、面向對象數(shù)據庫等等??赡馨ǖ念愑小按鎯Ψ铡鳖?,協(xié)調每個需永久保存的對象的存儲。,面向對象的設計,122,問題域部分的設計,問題域部分的設計需要對OOA的結果加以增補和具體化:1.針對編程語言支持能力進行調整2.增加一般類,提供共同協(xié)議3.為實現(xiàn)復用采取的設計策略4.提高性能5.提供數(shù)據管理部分6.完善對象細節(jié),123,針

57、對語言能力進行調整,不同的實現(xiàn)語言對設計的影響是不同的,OOD階段需要將OOA階段得到的分析結果根據適用語言的進行調整,主要包括:(1)語言對面向對象的支持能力。(2)一般-特殊結構和整體-部分結構的調整。(3)其他方面,124,增加一般類,提供共同協(xié)議,在OOA中定義一般類的主要目的是:集中地描述問題域中事物的共同特性,將多個類都具有的特征提升到一般類中進行表示。 在OOD中定義上述一般類的主要目的是:描述特定

58、條件下某些(全部或部分)類的共同實現(xiàn)策略,用一個一般類集中地給出多個類的實現(xiàn)都要使用的屬性和服務。,125,為復用采取的設計策略,軟件復用可分為程序代碼級、設計級和分析級等不同級別。 (1)直接復用:如果類庫中定義的類恰好與系統(tǒng)的要求完全相符,則可以直接在OOD模型中使用這個復用的類。 (2)通過繼承復用:如果可復用的類中屬性和服務都是系統(tǒng)中所需要的,但是并不完整,則可以通過繼承來復用。,126,改進性能,影響性能的因素可分為三個方

59、面: (1)網絡傳輸時間 (2)數(shù)據存取時間 (3)數(shù)據處理時間 幾種可以改進性能的措施:(1)在對象之間具有高度繁忙的消息流通的情況下,這種高度耦合可能需要把兩個或更多的類進行合并;(2)在類及對象中擴充一些保存臨時結果的屬性;(3)避開正常的數(shù)據抽象原則而允許服務從其它對象中強行獲得屬性值。,127,提供數(shù)據管理部分,為了提供數(shù)據管理部分,每個被保存的對象需要知道自己是怎樣被存儲的。 (1)第一種方法是“每個對象

60、自己保存自己”。 (2)第二種方法是,每個對象把自己傳送給數(shù)據管理部分,讓數(shù)據管理部分來存儲對象自己。 (3)第三種方法是,每個需要長期保存的對象由一個面向對象數(shù)據庫管理系統(tǒng)(OO-DBMS)來管理。,128,增加低層細節(jié),底層細節(jié)一般包括: (1)彌補OOA模型的不足 (2)解決OOA階段推遲考慮的問題 (3)設計對象和服務,129,人機交互部分的設計,人機交互部分的設計主要包括人機交互使用的界面,突出人如何命令系統(tǒng)以及

61、系統(tǒng)如何向用戶提交信息,人在使用計算機過程中的感受直接影響到用戶對系統(tǒng)的接受程度。 人機界面部分不是純粹的設計和實現(xiàn)問題,很大程度上也是分析問題。,130,人機交互部分的設計,人機交互部分的策略由以下幾點構成:·對人分類;·描述每類人的任務腳本;·設計命令層次;·設計詳細的交互;·不斷原型化;·設計人機交互部分的類;,131,人機交互部分的設計,例子的設計命令

62、層如下:系統(tǒng)登錄 商品銷售 商品維護 系統(tǒng)查詢 計價 增加商品 銷售記錄 收款 刪除商品 商品數(shù)量 打印購貨單 修改

63、商品 帳目 交接班 設定特價商品 統(tǒng)計銷售情況 缺貨登記,132,任務管理部分的設計,任務又稱為進程,若干任務并發(fā)執(zhí)行時叫做多任務。任務增加了設計、編碼和過程的復雜性,因此必須

64、細心地選擇并作最終調整。,133,定義每個任務,(1)任務的內容 首先要說明是什么任務:為任務命名,并簡要地說明該任務。(2)如何協(xié)調任務 定義每個任務怎樣協(xié)調工作。(3)如何通信 定義每個任務如何通信。,134,數(shù)據管理部分的設計,數(shù)據管理部分提供了在數(shù)據管理協(xié)調中存儲和檢索東西的基本結構。數(shù)據管理部分旨在隔離數(shù)據管理方案的影響,不管該方案是普通文件、關系型數(shù)據庫、面向對象數(shù)據庫或其它方式的。,

65、135,數(shù)據管理部分的設計,設計數(shù)據管理部分既包括數(shù)據存放方法的設計,也包括相應服務的設計。數(shù)據存放設計 按普通文件、關系或面向對象的數(shù)據管理來設計數(shù)據的存放。設計相應的服務 為每個需要存儲其對象的類增加一個屬性和一個服務,形成了問題域部分和數(shù)據管理部分之間的必要橋梁。,136,數(shù)據管理方法,數(shù)據管理方法主要有三種——文件、關系型的及OO方法。(1)文件管理: 文件管理具有基本的文件管理及排序機制。(2)關

66、系DBMS: 關系DBMS是建立在關系理論的基礎上的。(3)面向對象數(shù)據庫管理系統(tǒng): OO-DBMS是一種新的技術,OO-DBMS的設計主要綜合了二種方法:擴展的關系型DBMS與擴展的OOPL的結合。,137,數(shù)據管理方法,(1)文件管理:OOA&D階段為應用系統(tǒng)識別、定義的對象,在實現(xiàn)時將被表示成文件中的數(shù)據。,138,數(shù)據管理方法,(2)關系數(shù)據庫系統(tǒng)關系數(shù)據庫存儲對象的方式是將對象的屬性存儲在數(shù)據庫中的二維表

67、中,表中的列存儲對象的簡單屬性,對于對象的復雜屬性可以將其進行分解成為簡單屬性,并在其他二維表中存儲。,,139,OOD的評價標準,優(yōu)秀設計是一種權衡各種因素,最小化整個生命周期的總系統(tǒng)開銷的設計。軟件的耦合、內聚以及重用是衡量設計好壞的重要標準。,140,耦合性,在OOD中,有兩種情況:由消息連接表示的兩個對象之間的耦合和一般類與特殊類之間的耦合。即:交互耦合和繼承耦合。減少交互耦合的原則是盡可能減少消息聯(lián)結的復雜性。提高繼承耦合

68、性是十分需要的。,141,內聚性,服務內聚 一個服務應該完成一個并且僅完成一個功能。類內聚 屬性和服務應該是高內聚性的,其中不含無用的屬性和服務,而且全都是描述類的對象責任的。一般一特殊內聚 一般類應該確實描述一般的屬性與服務,特殊類應該確實描述特殊,并且仔細斟酌其在結構中的位置。,142,重用性,原因①需要創(chuàng)建可重用的組元;②需要完成高級質量保證,常常需要花多倍的時間去測試可重用的組元;③需要維護一些相應的

溫馨提示

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

評論

0/150

提交評論