![面向對象分析與設計課件_第1頁](http://file4.renrendoc.com/view/4fa21fd57d87192888ceb5ce37c1c303/4fa21fd57d87192888ceb5ce37c1c3031.gif)
![面向對象分析與設計課件_第2頁](http://file4.renrendoc.com/view/4fa21fd57d87192888ceb5ce37c1c303/4fa21fd57d87192888ceb5ce37c1c3032.gif)
![面向對象分析與設計課件_第3頁](http://file4.renrendoc.com/view/4fa21fd57d87192888ceb5ce37c1c303/4fa21fd57d87192888ceb5ce37c1c3033.gif)
![面向對象分析與設計課件_第4頁](http://file4.renrendoc.com/view/4fa21fd57d87192888ceb5ce37c1c303/4fa21fd57d87192888ceb5ce37c1c3034.gif)
![面向對象分析與設計課件_第5頁](http://file4.renrendoc.com/view/4fa21fd57d87192888ceb5ce37c1c303/4fa21fd57d87192888ceb5ce37c1c3035.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第六章第十章
面向對象的分析與設計2021/4/91第六章第十章
面向對象的分析與設計2021/4/91回顧:面向數(shù)據流(結構化方法)面向數(shù)據流的分析面向數(shù)據流的設計2021/4/92回顧:面向數(shù)據流(結構化方法)面向數(shù)據流的分析面向數(shù)據流的設面向數(shù)據流方法的特點面向數(shù)據流側重建立構成問題解決的處理流。數(shù)據抽象、數(shù)據結構根據算法步驟的要求開發(fā),它貫穿于過程,提供過程所要求操作的信息。系統(tǒng)的狀態(tài)是一組全局變量,這組全局變量保存狀態(tài)的值,把它們從一個過程傳送到另一個過程。2021/4/93面向數(shù)據流方法的特點面向數(shù)據流側重建立構成問題解決的處理流。面向數(shù)據流與面向對象的系統(tǒng)2021/4/94面向數(shù)據流與面向對象的系統(tǒng)2021/4/94面向對象的概念Coad和Yourdon給出了定義:“面向對象=對象+類+繼承+消息”
如果一個軟件系統(tǒng)是使用這4類概念設計和實現(xiàn)的,則認為這個軟件系統(tǒng)是面向對象的。一個面向對象的程序的每一成分應是對象,計算是通過新的對象的建立和對象之間的信息通信來執(zhí)行的。2021/4/95面向對象的概念2021/4/95對象對象是面向對象開發(fā)模式的基本成份。每個對象可用它本身的一組屬性和它可以執(zhí)行的一組操作來定義。電子信箱收件人主題優(yōu)先級收郵件發(fā)郵件手機短消息屬性操作對象2021/4/96對象對象是面向對象開發(fā)模式的基本成份。電子信箱收件人收郵件屬對象:電視機—封裝2021/4/97對象:電視機—封裝2021/4/97InternalState對象的例子:TV開請求變更頻道調節(jié)聲音TurnOnTurnOffChangeChannelAdjustVolumeOthers...被封裝的行為和狀態(tài)關請求2021/4/98InternalState對象的例子:TV開請求變更頻道類類是一組具有相同數(shù)據結構和相同操作的對象的集合。類的定義包括一組數(shù)據屬性和在數(shù)據上的一組合法操作。類定義可以視為一個具有類似特性與共同行為的對象的模板,可用來產生對象。在一個類中,每個對象都是類的實例,它們都可使用類中提供的函數(shù)。2021/4/99類類是一組具有相同數(shù)據結構和相同操作的對象的集合。2021/例子:四邊形類&兩個四邊形對象四邊形類對象1對象22021/4/910例子:四邊形類&兩個四邊形對象四邊形類對象1對象22021/繼承繼承是使用已存在的定義做為基礎建立新定義的技術。新類的定義可以是既存類所聲明的數(shù)據和新類所增加的聲明的組合。新類復用既存的定義,而不要求修改既存類。既存類可當做基類來引用,則新類相應地可當做派生類來引用。2021/4/911繼承繼承是使用已存在的定義做為基礎建立新定義的技術。2021繼承的例子多邊形類四邊形類2021/4/912繼承的例子多邊形類四邊形類2021/4/912繼承的例子2021/4/913繼承的例子2021/4/913消息消息是一個對象與另一個對象的通信單元,是要求某個對象執(zhí)行類中定義的某個操作的規(guī)格說明。發(fā)送給一個對象的消息定義了一個方法名和一個參數(shù)表(可能是空的),并指定某一個對象。一個對象接收的消息則調用消息中指定的方法,并將形式參數(shù)與參數(shù)表中相應的值結合起來。2021/4/914消息消息是一個對象與另一個對象的通信單元,是要求某個對象執(zhí)行Question:考慮電視機的例子怎樣發(fā)送消息?2021/4/915Question:考慮電視機的例子2021/4/915面向對象的分析面向對象分析(OOA)方法的核心思想是利用面向對象(OO)的概念和方法為軟件需求建造模型,以使用戶需求逐步精確化、一致化、完全化。通過OOA建立的系統(tǒng)模型是以概念為中心的,因此稱為概念模型。這樣的模型由一組相關的類組成。2021/4/916面向對象的分析面向對象分析(OOA)方法的核心思想是利用面向概念模型(RationalRose工具)2021/4/917概念模型(RationalRose工具)2021/4/Question:怎樣構造概念模型呢?構造和評審OOA概念模型的順序和由五個層次組成。這五個層次是分析過程中的層次。這五個層次是:類與對象、屬性、服務、結構和主題。2021/4/918Question:怎樣構造概念模型呢?構造和評審OOA概念模2021/4/9192021/4/919分析階段的主要活動發(fā)現(xiàn)對象、定義它們的類;識別對象的內部特征;定義屬性定義服務識別對象的外部關系;定義對象之間的一般化----特殊結構;定義對象之間的整體----部分結構建立實例連接建立消息連接劃分主題,建立主題圖建立詳細說明
2021/4/920分析階段的主要活動發(fā)現(xiàn)對象、定義它們的類;2021/4/92識別對象第一步:研究需求無論以何種形式提供的用戶需求,最終都應成為系統(tǒng)分析員頭腦中關于系統(tǒng)責任的正確認識,問題包括:系統(tǒng)需要哪些功能,要達到何種性能指標及可靠性、安全性、人機交互要求、系統(tǒng)的對外接口等。2021/4/921識別對象第一步:研究需求2021/4/識別對象第二步:研究問題域定義:被開發(fā)的應用系統(tǒng)所考慮的整個業(yè)務范圍OO比其它分析方法更強調系統(tǒng)模型與問題域的緊密對應要發(fā)現(xiàn)對象、定義對象類的主要途徑就是研究問題域2021/4/922識別對象第二步:研究問題域2021/4/922識別對象第三步:確定系統(tǒng)邊界僅僅由系統(tǒng)及其信息或模擬的行為的人和物應該看作系統(tǒng)邊界以內的對象;認識系統(tǒng)邊界是為了明確系統(tǒng)的范圍以及與外部世界的接口2021/4/923識別對象第三步:確定系統(tǒng)邊界2021/4/923識別對象第四步:發(fā)現(xiàn)對象一般原則:只注意與系統(tǒng)責任有關的事物報社對象名稱文章2021/4/924識別對象第四步:發(fā)現(xiàn)對象報社對象名稱文章2021/4/9識別對象第五步:篩選掉無用的對象判斷屬性:對象記錄的信息是否有用,是否確實有些信息需要保存和管理服務判斷:有用的服務,提供用戶需要的功能2021/4/925識別對象第五步:篩選掉無用的對象2021/4/925識別對象第六步:對象的精簡只有一個屬性的對象只有一個服務的對象2021/4/926識別對象第六步:對象的精簡2021/4/926識別對象所屬的類從認識對象到定義這些對象的類的過程是一個從特殊到一般的過程,特別是認識的單個對象特征是否可以作為整個類的特征,需要用到SA的認識哲學,領域知識,數(shù)學基礎等方面的知識與技術,另外,把各種對象放在一起構成一個系統(tǒng),也需要從全局的觀點對對象進行認真研究。
2021/4/927識別對象所屬的類從認識對象到定義這些對象的類的過標識類的結構典型的結構有兩種:一般化-特殊化結構(Gen-Spec結構)整體-部分結構(Whole-Part結構)2021/4/928標識類的結構典型的結構有兩種:2021/4/928一般化—特殊化的結構2021/4/929一般化—特殊化的結構2021/4/929一般化—特殊化的結構以特殊化的視點來看,一個Gen-Spec結構可以看作是“isa”或“isakindof”結構。例如,
aTruckVehicleisaVehicle aTruckVehicleisakindofVehicle在Gen-Spec結構中,使用繼承將較一般化的屬性和服務放在一般化的類和對象中。2021/4/930一般化—特殊化的結構以特殊化的視點來看,一個Gen-Spec整體—部分的結構2021/4/931整體—部分的結構2021/4/931整體—部分的結構從整體的視點來看,一個Whole-Part結構可看作一個“hasa”或“isapartof”結構。例如,
VehiclehasaEngine EngineisapartofVehicle其中,Vehicle是整體對象,Engine是局部對象。2021/4/932整體—部分的結構從整體的視點來看,一個Whole-Part結例子:類圖2021/4/933例子:類圖2021/4/933標識對象的屬性屬性是對問題域中對象性質的刻畫,屬性的取值決定了對象所有可能的狀態(tài)。2021/4/934標識對象的屬性屬性是對問題域中對象性質的表示對象的行為(服務)對象收到消息后所能執(zhí)行的操作稱為它可提供的服務。2021/4/935表示對象的行為(服務)對象收到消息后所能執(zhí)行的操作定義主題詞對于復雜的系統(tǒng),可能出現(xiàn)大量的對象,但分析員同時能處理的對象卻不宜過多,因此引入主題機制。通過建立多個主題,可以處理規(guī)模比較大的復雜模型,降低系統(tǒng)的復雜性。每個主題可以看作一個子模型,甚至是一個系統(tǒng)。在分析的某一時刻,分析人員只許重點關注某個特定的主題域。對于非常龐大的系統(tǒng)可以建立多級主題詞,形成一個層次結構。2021/4/936定義主題詞對于復雜的系統(tǒng),可能出現(xiàn)大量的對象,但分析員同時能概念模型(RationalRose工具)2021/4/937概念模型(RationalRose工具)2021/4/面向對象的設計設計的準則:反映OOA中對象和類的實現(xiàn):OOA反映問題空間和系統(tǒng)任務;OOD反映一種實現(xiàn);OOA和OOD分別在不同層次的抽象上(問題空間和實現(xiàn)空間)2021/4/938面向對象的設計設計的準則:2021/4/938高層設計2021/4/939高層設計2021/4/939OOD模型用戶交互部件主體部件任務管理部件數(shù)據管理部件主題層類與對象層結構層屬性層服務層2021/4/940OOD模型用戶主體任務數(shù)據主題層類與對象層結構層屬性層服務層一問題論域(主體部件)部分問題論域部分包括與應用問題直接有關的所有類和對象。識別和定義這些類和對象的工作在OOA中已經開始,在OOA階段得到的有關應用的概念模型描述了我們要解決的問題。在OOD階段,應當繼續(xù)OOA階段的工作,對在OOA中得到的結果進行改進和增補。2021/4/941一問題論域(主體部件)部分問題論域部分包括與應用問題直接1.復用設計根據問題解決的需要,把從類庫或其它來源得到的既存類增加到問題解決方案中去。標明既存類中不需要的屬性和操作增加從既存類到應用類之間的一般化-特殊化的關系。把應用類中因繼承既存類而成為多余的屬性和操作標出。修改應用類的結構和連接。2021/4/9421.復用設計根據問題解決的需要,把從類庫或其它來源得到的既存2.把問題論域相關的類關聯(lián)起來在設計時,從類庫中引進一個根類,做為包容類,把所有與問題論域有關的類關聯(lián)到一起,建立類的層次。把同一問題論域的一些類集合起來,存于類庫中。2021/4/9432.把問題論域相關的類關聯(lián)起來在設計時,從類庫中引進一個根類3.加入一般化類以建立類間協(xié)議有時,某些特殊類要求一組類似的服務。此時,應加入一個一般化的類,定義為所有這些特殊類共用的一組服務名,這些服務都是虛函數(shù)。在特殊類中定義其實現(xiàn)。2021/4/9443.加入一般化類以建立類間協(xié)議有時,某些特殊類要求一組類似4.調整繼承支持級別在OOA階段建立的對象模型中可能包括有多繼承關系,但實現(xiàn)時使用的程序設計語言可能只有單繼承,甚至沒有繼承機制,這樣就需對分析的結果進行修改。多繼承模式有兩種:
狹義的菱形廣義的菱形2021/4/9454.調整繼承支持級別在OOA階段建立的對象模型中可能包括有2021/4/9462021/4/9465.改進性能提高執(zhí)行效率和速度是系統(tǒng)設計的主要指標之一。有時,必須改變問題論域的結構以提高效率。如果類之間經常需要傳送大量消息,可合并相關的類以減少消息傳遞引起的速度損失。增加某些屬性到原來的類中,或增加低層的類,以保存暫時結果,避免每次都要重復計算造成速度損失。2021/4/9475.改進性能提高執(zhí)行效率和速度是系統(tǒng)設計的主要指標之一。有6.加入較低層的構件在做面向對象分析時,分析員往往專注于較高層的類和對象,避免考慮太多較低層的實現(xiàn)細節(jié)。在做面向對象設計時,設計師在找出高層的類和對象時,必須考慮到底需要用到哪些較低層的類和對象。2021/4/9486.加入較低層的構件在做面向對象分析時,分析員往往專注于較二用戶界面部分的設計在OOA階段給出了所需的屬性和操作在設計階段必須根據需求把交互細節(jié)加入到用戶界面設計中,包括人機交互所必需的實際顯示和輸入。用戶界面部分設計主要由以下幾個方面組成。2021/4/949二用戶界面部分的設計在OOA階段給出了所需的屬性和操1.用戶分類按技能層次分類:
外行/初學者/熟練者/專家按組織層次分類:
行政人員/管理人員/專業(yè)技術人員/其它辦事員按職能分類:
顧客/職員2021/4/9501.用戶分類按技能層次分類:2021/4/950
2.描述人及其任務的腳本對以上定義的每一類用戶,列出對以下問題做出的考慮:什么人、目的、特點、成功的關鍵因素、熟練程度以及任務腳本。2021/4/9512.描述人及其任務的腳本2021/4/951什么人──分析員目的──要求一個工具來輔助分析工作(擺脫繁重的畫圖和檢查圖的工作)。
特點──年齡:42歲;教育水平:大學;限制:不要微型打印,小于9個點的打印太小成功的關鍵因素──工具應當使分析工作順利進行;工具不應與分析工作沖突;工具應能捕獲假設和思想,能適時做出折衷;應能及時給出模型各個部分的文檔,這與給出需求同等重要。熟練程度──專家。在OOATOOLTM
中一個例子2021/4/952什么人──分析員在OOATOOLTM中一個例子2021/任務腳本──
主腳本:識別“核心的”類和對象;識別“核心”結構;在發(fā)現(xiàn)了新的屬性或操作時隨時都可以加進模型中去。
檢驗模型:打印模型及其全部文檔。2021/4/953任務腳本──2021/4/9533.設計命令層研究現(xiàn)行的人機交互活動的內容和準則:這些準則可以是非形式的,如“輸入時眼睛不易疲勞”,也可以是正式規(guī)定的;建立一個初始的命令層:可以有多種形式,如一系列MenuScreens、或一個MenuBar、或一系列Icons.細化命令層:考慮以下幾個問題。2021/4/9543.設計命令層研究現(xiàn)行的人機交互活動的內容和準則:這些準則排列命令層次。把使用最頻繁的操作放在前面;按照用戶工作步驟排列。通過逐步分解,找到整體-局部模式,以幫助在命令層中對操作分塊。根據人們短期記憶的“7±2”或“每次記憶3塊/每塊3項”的特點,把深度盡量限制在三層之內。減少操作步驟:把點取、拖動和鍵盤操作減到最少。2021/4/955排列命令層次。把使用最頻繁的操作放在前面;按照用戶工作步驟排4.設計詳細的交互用戶界面設計有若干原則,包括:
一致性:采用一致的術語、一致的步驟和一致的活動。
操作步驟少:減少敲鍵和鼠標點取的次數(shù),減少完成某件事所需的下拉菜單的距離。
不要“啞播放”:每當用戶等待系統(tǒng)完成一個活動時,要給出一些反饋信息。2021/4/9564.設計詳細的交互用戶界面設計有若干原則,包括:2021/
Undo:在操作出現(xiàn)錯誤時,要恢復或部分恢復原來的狀態(tài)。
減少人腦的記憶負擔:不應在一個窗口使用在另一個窗口中記憶或寫下的信息;需要人按特定次序記憶的東西應當組織得容易記憶。
學習的時間和效果:提供聯(lián)機的幫助信息。
趣味性:盡量采取圖形界面,符合人類習慣.2021/4/957Undo:在操作出現(xiàn)錯誤時,要恢復或部分恢復原來的狀態(tài)。25.繼續(xù)做原型用戶界面原型是用戶界面設計的重要工作。人需要對提交的人機交互活動進行體驗、實地操作,并精煉成一致的模式。使用快速原型工具或應用構造器,對各種命令方式,如菜單、彈出、填充以及快捷命令,做出原型讓用戶使用,通過用戶反饋、修改、演示的迭代,使界面越來越有效。2021/4/9585.繼續(xù)做原型用戶界面原型是用戶界面設計的重要工作。人需要6.設計HIC(人機交互)類窗口需要進一步細化,通常包括:類窗口、條件窗口、檢查窗口、文檔窗口、畫圖窗口、過濾器窗口、模型控制窗口、運行策略窗口、模板窗口等。設計HIC類,首先從組織窗口和部件的用戶界面界面的設計開始。每個類包括窗口的菜單條、下拉菜單、彈出菜單的定義。還要定義用于創(chuàng)建菜單、加亮選擇項、引用相應的響應的操作。每個類負責窗口的實際顯示。所有有關物理對話的處理都封裝在類的內部。必要時,還要增加在窗口中畫圖形圖符的類、在窗口中選擇項目的類、字體控制類、支持剪切和粘貼的類等。與機器有關的操作實現(xiàn)應隱蔽在這些類中。2021/4/9596.設計HIC(人機交互)類窗口需要進一步細化,通常7.根據圖形用戶界面進行設計圖形用戶界面區(qū)分為字型、坐標系統(tǒng)和事件。
字型是字體、字號、樣式和顏色的組合。
坐標系統(tǒng)主要因素有原點(基準點)、顯示分辨率、顯示維數(shù)等。
事件則是圖形用戶界面程序的核心,操作將對事件做出響應。2021/4/9607.根據圖形用戶界面進行設計圖形用戶界面區(qū)分為字型、坐標系三任務管理部分的設計任務,是進程的別稱,是執(zhí)行一系列活動的一段程序。當系統(tǒng)中有許多并發(fā)行為時,需要依照各個行為的協(xié)調和通信關系,劃分各種任務,以簡化并發(fā)行為的設計和編碼。任務管理主要包括任務的選擇和調整,它的工作有以下幾種。2021/4/961三任務管理部分的設計任務,是進程的別稱,是執(zhí)行一系列活動
識別事件驅動任務:
一些負責與硬件設備通信的任務是事件驅動的,也就是說,這種任務可由事件來激發(fā)。
識別時鐘驅動任務:以固定的時間間隔激發(fā)這種事件,以執(zhí)行某些處理。某些人機界面、子系統(tǒng)、任務、處理機或與其它系統(tǒng)需要周期性的通信,因此時鐘驅動任務應運而生。
識別優(yōu)先任務和關鍵任務:根據處理的優(yōu)先級別來安排各個任務。
識別協(xié)調者:當有三個或更多的任務時,應當增加一個追加任務,起協(xié)調者的作用。它的行為可以用狀態(tài)轉換矩陣來描述。
評審各個任務:對各任務進行評審,確保它能滿足選擇任務的工程標準─事件驅動?時鐘驅動?優(yōu)先級/關鍵任務?協(xié)調者?2021/4/962識別事件驅動任務:一些負責與硬件設備通信的任務是事件驅定義各個任務定義任務的工作主要包括:它是什么任務、如何協(xié)調工作及如何通信。
(1)它是什么任務──為任務命名,并簡要說明這個任務。
(2)如何協(xié)調工作──定義各個任務如何協(xié)調工作。指出它是事件驅動還是時鐘驅動。
(3)如何通信──定義各個任務之間如何通信。任務從哪里取值,結果送往何方。
(4)一個模版──任務的定義如下:
Name(任務名) Description(描述) Priority(優(yōu)先級)Servicesincluded(包含的操作)、
CommunicationVia(經由誰通信)。2021/4/963定義各個任務定義任務的工作主要包括:它是什么任務、如何協(xié)調工四數(shù)據管理部分的設計數(shù)據管理部分提供了在數(shù)據管理系統(tǒng)中存儲和檢索對象的基本結構,包括對永久性數(shù)據的訪問和管理。它分離了數(shù)據管理機構所關心的事項,包括文件、關系型DBMS或面向對象DBMS等。2021/4/964四數(shù)據管理部分的設計數(shù)據管理部分提供了在數(shù)據管理系統(tǒng)中存UML:UseCaseDiagram
統(tǒng)一建模語言UML:是一種繪制軟件藍圖的標準語言??梢杂肬ML對軟件密集型系統(tǒng)的制品進行可視化詳述和文檔化。設計模式:是指一種在設計問題中經常用到的解決方案。2021/4/965UML:UseCaseDiagram統(tǒng)一建模語言UMClassDiagram2021/4/966ClassDiagram2021/4/966Package2021/4/967Package2021/4/967SequenceDiagram2021/4/968SequenceDiagram2021/4/968書籍推薦UML和模式應用:面向對象分析與設計導論2021/4/969書籍推薦UML和模式應用:面向對象分析與設計導論2021/4論文:1《面向數(shù)據流方法》2《面向對象方法》3《兩種方法的比較》
要求:三個主題任選一個題目不定最好有一些實例
字數(shù)不限下個星期完成課程論文2021/4/970論文:1《面向數(shù)據流方法》下個星期完成課程論文第五講結束2021/4/971第五講結束2021/4/971感謝您的閱讀收藏,謝謝!
2021/4/972感謝您的閱讀收藏,謝謝!
2021/4/972第六章第十章
面向對象的分析與設計2021/4/973第六章第十章
面向對象的分析與設計2021/4/91回顧:面向數(shù)據流(結構化方法)面向數(shù)據流的分析面向數(shù)據流的設計2021/4/974回顧:面向數(shù)據流(結構化方法)面向數(shù)據流的分析面向數(shù)據流的設面向數(shù)據流方法的特點面向數(shù)據流側重建立構成問題解決的處理流。數(shù)據抽象、數(shù)據結構根據算法步驟的要求開發(fā),它貫穿于過程,提供過程所要求操作的信息。系統(tǒng)的狀態(tài)是一組全局變量,這組全局變量保存狀態(tài)的值,把它們從一個過程傳送到另一個過程。2021/4/975面向數(shù)據流方法的特點面向數(shù)據流側重建立構成問題解決的處理流。面向數(shù)據流與面向對象的系統(tǒng)2021/4/976面向數(shù)據流與面向對象的系統(tǒng)2021/4/94面向對象的概念Coad和Yourdon給出了定義:“面向對象=對象+類+繼承+消息”
如果一個軟件系統(tǒng)是使用這4類概念設計和實現(xiàn)的,則認為這個軟件系統(tǒng)是面向對象的。一個面向對象的程序的每一成分應是對象,計算是通過新的對象的建立和對象之間的信息通信來執(zhí)行的。2021/4/977面向對象的概念2021/4/95對象對象是面向對象開發(fā)模式的基本成份。每個對象可用它本身的一組屬性和它可以執(zhí)行的一組操作來定義。電子信箱收件人主題優(yōu)先級收郵件發(fā)郵件手機短消息屬性操作對象2021/4/978對象對象是面向對象開發(fā)模式的基本成份。電子信箱收件人收郵件屬對象:電視機—封裝2021/4/979對象:電視機—封裝2021/4/97InternalState對象的例子:TV開請求變更頻道調節(jié)聲音TurnOnTurnOffChangeChannelAdjustVolumeOthers...被封裝的行為和狀態(tài)關請求2021/4/980InternalState對象的例子:TV開請求變更頻道類類是一組具有相同數(shù)據結構和相同操作的對象的集合。類的定義包括一組數(shù)據屬性和在數(shù)據上的一組合法操作。類定義可以視為一個具有類似特性與共同行為的對象的模板,可用來產生對象。在一個類中,每個對象都是類的實例,它們都可使用類中提供的函數(shù)。2021/4/981類類是一組具有相同數(shù)據結構和相同操作的對象的集合。2021/例子:四邊形類&兩個四邊形對象四邊形類對象1對象22021/4/982例子:四邊形類&兩個四邊形對象四邊形類對象1對象22021/繼承繼承是使用已存在的定義做為基礎建立新定義的技術。新類的定義可以是既存類所聲明的數(shù)據和新類所增加的聲明的組合。新類復用既存的定義,而不要求修改既存類。既存類可當做基類來引用,則新類相應地可當做派生類來引用。2021/4/983繼承繼承是使用已存在的定義做為基礎建立新定義的技術。2021繼承的例子多邊形類四邊形類2021/4/984繼承的例子多邊形類四邊形類2021/4/912繼承的例子2021/4/985繼承的例子2021/4/913消息消息是一個對象與另一個對象的通信單元,是要求某個對象執(zhí)行類中定義的某個操作的規(guī)格說明。發(fā)送給一個對象的消息定義了一個方法名和一個參數(shù)表(可能是空的),并指定某一個對象。一個對象接收的消息則調用消息中指定的方法,并將形式參數(shù)與參數(shù)表中相應的值結合起來。2021/4/986消息消息是一個對象與另一個對象的通信單元,是要求某個對象執(zhí)行Question:考慮電視機的例子怎樣發(fā)送消息?2021/4/987Question:考慮電視機的例子2021/4/915面向對象的分析面向對象分析(OOA)方法的核心思想是利用面向對象(OO)的概念和方法為軟件需求建造模型,以使用戶需求逐步精確化、一致化、完全化。通過OOA建立的系統(tǒng)模型是以概念為中心的,因此稱為概念模型。這樣的模型由一組相關的類組成。2021/4/988面向對象的分析面向對象分析(OOA)方法的核心思想是利用面向概念模型(RationalRose工具)2021/4/989概念模型(RationalRose工具)2021/4/Question:怎樣構造概念模型呢?構造和評審OOA概念模型的順序和由五個層次組成。這五個層次是分析過程中的層次。這五個層次是:類與對象、屬性、服務、結構和主題。2021/4/990Question:怎樣構造概念模型呢?構造和評審OOA概念模2021/4/9912021/4/919分析階段的主要活動發(fā)現(xiàn)對象、定義它們的類;識別對象的內部特征;定義屬性定義服務識別對象的外部關系;定義對象之間的一般化----特殊結構;定義對象之間的整體----部分結構建立實例連接建立消息連接劃分主題,建立主題圖建立詳細說明
2021/4/992分析階段的主要活動發(fā)現(xiàn)對象、定義它們的類;2021/4/92識別對象第一步:研究需求無論以何種形式提供的用戶需求,最終都應成為系統(tǒng)分析員頭腦中關于系統(tǒng)責任的正確認識,問題包括:系統(tǒng)需要哪些功能,要達到何種性能指標及可靠性、安全性、人機交互要求、系統(tǒng)的對外接口等。2021/4/993識別對象第一步:研究需求2021/4/識別對象第二步:研究問題域定義:被開發(fā)的應用系統(tǒng)所考慮的整個業(yè)務范圍OO比其它分析方法更強調系統(tǒng)模型與問題域的緊密對應要發(fā)現(xiàn)對象、定義對象類的主要途徑就是研究問題域2021/4/994識別對象第二步:研究問題域2021/4/922識別對象第三步:確定系統(tǒng)邊界僅僅由系統(tǒng)及其信息或模擬的行為的人和物應該看作系統(tǒng)邊界以內的對象;認識系統(tǒng)邊界是為了明確系統(tǒng)的范圍以及與外部世界的接口2021/4/995識別對象第三步:確定系統(tǒng)邊界2021/4/923識別對象第四步:發(fā)現(xiàn)對象一般原則:只注意與系統(tǒng)責任有關的事物報社對象名稱文章2021/4/996識別對象第四步:發(fā)現(xiàn)對象報社對象名稱文章2021/4/9識別對象第五步:篩選掉無用的對象判斷屬性:對象記錄的信息是否有用,是否確實有些信息需要保存和管理服務判斷:有用的服務,提供用戶需要的功能2021/4/997識別對象第五步:篩選掉無用的對象2021/4/925識別對象第六步:對象的精簡只有一個屬性的對象只有一個服務的對象2021/4/998識別對象第六步:對象的精簡2021/4/926識別對象所屬的類從認識對象到定義這些對象的類的過程是一個從特殊到一般的過程,特別是認識的單個對象特征是否可以作為整個類的特征,需要用到SA的認識哲學,領域知識,數(shù)學基礎等方面的知識與技術,另外,把各種對象放在一起構成一個系統(tǒng),也需要從全局的觀點對對象進行認真研究。
2021/4/999識別對象所屬的類從認識對象到定義這些對象的類的過標識類的結構典型的結構有兩種:一般化-特殊化結構(Gen-Spec結構)整體-部分結構(Whole-Part結構)2021/4/9100標識類的結構典型的結構有兩種:2021/4/928一般化—特殊化的結構2021/4/9101一般化—特殊化的結構2021/4/929一般化—特殊化的結構以特殊化的視點來看,一個Gen-Spec結構可以看作是“isa”或“isakindof”結構。例如,
aTruckVehicleisaVehicle aTruckVehicleisakindofVehicle在Gen-Spec結構中,使用繼承將較一般化的屬性和服務放在一般化的類和對象中。2021/4/9102一般化—特殊化的結構以特殊化的視點來看,一個Gen-Spec整體—部分的結構2021/4/9103整體—部分的結構2021/4/931整體—部分的結構從整體的視點來看,一個Whole-Part結構可看作一個“hasa”或“isapartof”結構。例如,
VehiclehasaEngine EngineisapartofVehicle其中,Vehicle是整體對象,Engine是局部對象。2021/4/9104整體—部分的結構從整體的視點來看,一個Whole-Part結例子:類圖2021/4/9105例子:類圖2021/4/933標識對象的屬性屬性是對問題域中對象性質的刻畫,屬性的取值決定了對象所有可能的狀態(tài)。2021/4/9106標識對象的屬性屬性是對問題域中對象性質的表示對象的行為(服務)對象收到消息后所能執(zhí)行的操作稱為它可提供的服務。2021/4/9107表示對象的行為(服務)對象收到消息后所能執(zhí)行的操作定義主題詞對于復雜的系統(tǒng),可能出現(xiàn)大量的對象,但分析員同時能處理的對象卻不宜過多,因此引入主題機制。通過建立多個主題,可以處理規(guī)模比較大的復雜模型,降低系統(tǒng)的復雜性。每個主題可以看作一個子模型,甚至是一個系統(tǒng)。在分析的某一時刻,分析人員只許重點關注某個特定的主題域。對于非常龐大的系統(tǒng)可以建立多級主題詞,形成一個層次結構。2021/4/9108定義主題詞對于復雜的系統(tǒng),可能出現(xiàn)大量的對象,但分析員同時能概念模型(RationalRose工具)2021/4/9109概念模型(RationalRose工具)2021/4/面向對象的設計設計的準則:反映OOA中對象和類的實現(xiàn):OOA反映問題空間和系統(tǒng)任務;OOD反映一種實現(xiàn);OOA和OOD分別在不同層次的抽象上(問題空間和實現(xiàn)空間)2021/4/9110面向對象的設計設計的準則:2021/4/938高層設計2021/4/9111高層設計2021/4/939OOD模型用戶交互部件主體部件任務管理部件數(shù)據管理部件主題層類與對象層結構層屬性層服務層2021/4/9112OOD模型用戶主體任務數(shù)據主題層類與對象層結構層屬性層服務層一問題論域(主體部件)部分問題論域部分包括與應用問題直接有關的所有類和對象。識別和定義這些類和對象的工作在OOA中已經開始,在OOA階段得到的有關應用的概念模型描述了我們要解決的問題。在OOD階段,應當繼續(xù)OOA階段的工作,對在OOA中得到的結果進行改進和增補。2021/4/9113一問題論域(主體部件)部分問題論域部分包括與應用問題直接1.復用設計根據問題解決的需要,把從類庫或其它來源得到的既存類增加到問題解決方案中去。標明既存類中不需要的屬性和操作增加從既存類到應用類之間的一般化-特殊化的關系。把應用類中因繼承既存類而成為多余的屬性和操作標出。修改應用類的結構和連接。2021/4/91141.復用設計根據問題解決的需要,把從類庫或其它來源得到的既存2.把問題論域相關的類關聯(lián)起來在設計時,從類庫中引進一個根類,做為包容類,把所有與問題論域有關的類關聯(lián)到一起,建立類的層次。把同一問題論域的一些類集合起來,存于類庫中。2021/4/91152.把問題論域相關的類關聯(lián)起來在設計時,從類庫中引進一個根類3.加入一般化類以建立類間協(xié)議有時,某些特殊類要求一組類似的服務。此時,應加入一個一般化的類,定義為所有這些特殊類共用的一組服務名,這些服務都是虛函數(shù)。在特殊類中定義其實現(xiàn)。2021/4/91163.加入一般化類以建立類間協(xié)議有時,某些特殊類要求一組類似4.調整繼承支持級別在OOA階段建立的對象模型中可能包括有多繼承關系,但實現(xiàn)時使用的程序設計語言可能只有單繼承,甚至沒有繼承機制,這樣就需對分析的結果進行修改。多繼承模式有兩種:
狹義的菱形廣義的菱形2021/4/91174.調整繼承支持級別在OOA階段建立的對象模型中可能包括有2021/4/91182021/4/9465.改進性能提高執(zhí)行效率和速度是系統(tǒng)設計的主要指標之一。有時,必須改變問題論域的結構以提高效率。如果類之間經常需要傳送大量消息,可合并相關的類以減少消息傳遞引起的速度損失。增加某些屬性到原來的類中,或增加低層的類,以保存暫時結果,避免每次都要重復計算造成速度損失。2021/4/91195.改進性能提高執(zhí)行效率和速度是系統(tǒng)設計的主要指標之一。有6.加入較低層的構件在做面向對象分析時,分析員往往專注于較高層的類和對象,避免考慮太多較低層的實現(xiàn)細節(jié)。在做面向對象設計時,設計師在找出高層的類和對象時,必須考慮到底需要用到哪些較低層的類和對象。2021/4/91206.加入較低層的構件在做面向對象分析時,分析員往往專注于較二用戶界面部分的設計在OOA階段給出了所需的屬性和操作在設計階段必須根據需求把交互細節(jié)加入到用戶界面設計中,包括人機交互所必需的實際顯示和輸入。用戶界面部分設計主要由以下幾個方面組成。2021/4/9121二用戶界面部分的設計在OOA階段給出了所需的屬性和操1.用戶分類按技能層次分類:
外行/初學者/熟練者/專家按組織層次分類:
行政人員/管理人員/專業(yè)技術人員/其它辦事員按職能分類:
顧客/職員2021/4/91221.用戶分類按技能層次分類:2021/4/950
2.描述人及其任務的腳本對以上定義的每一類用戶,列出對以下問題做出的考慮:什么人、目的、特點、成功的關鍵因素、熟練程度以及任務腳本。2021/4/91232.描述人及其任務的腳本2021/4/951什么人──分析員目的──要求一個工具來輔助分析工作(擺脫繁重的畫圖和檢查圖的工作)。
特點──年齡:42歲;教育水平:大學;限制:不要微型打印,小于9個點的打印太小成功的關鍵因素──工具應當使分析工作順利進行;工具不應與分析工作沖突;工具應能捕獲假設和思想,能適時做出折衷;應能及時給出模型各個部分的文檔,這與給出需求同等重要。熟練程度──專家。在OOATOOLTM
中一個例子2021/4/9124什么人──分析員在OOATOOLTM中一個例子2021/任務腳本──
主腳本:識別“核心的”類和對象;識別“核心”結構;在發(fā)現(xiàn)了新的屬性或操作時隨時都可以加進模型中去。
檢驗模型:打印模型及其全部文檔。2021/4/9125任務腳本──2021/4/9533.設計命令層研究現(xiàn)行的人機交互活動的內容和準則:這些準則可以是非形式的,如“輸入時眼睛不易疲勞”,也可以是正式規(guī)定的;建立一個初始的命令層:可以有多種形式,如一系列MenuScreens、或一個MenuBar、或一系列Icons.細化命令層:考慮以下幾個問題。2021/4/91263.設計命令層研究現(xiàn)行的人機交互活動的內容和準則:這些準則排列命令層次。把使用最頻繁的操作放在前面;按照用戶工作步驟排列。通過逐步分解,找到整體-局部模式,以幫助在命令層中對操作分塊。根據人們短期記憶的“7±2”或“每次記憶3塊/每塊3項”的特點,把深度盡量限制在三層之內。減少操作步驟:把點取、拖動和鍵盤操作減到最少。2021/4/9127排列命令層次。把使用最頻繁的操作放在前面;按照用戶工作步驟排4.設計詳細的交互用戶界面設計有若干原則,包括:
一致性:采用一致的術語、一致的步驟和一致的活動。
操作步驟少:減少敲鍵和鼠標點取的次數(shù),減少完成某件事所需的下拉菜單的距離。
不要“啞播放”:每當用戶等待系統(tǒng)完成一個活動時,要給出一些反饋信息。2021/4/91284.設計詳細的交互用戶界面設計有若干原則,包括:2021/
Undo:在操作出現(xiàn)錯誤時,要恢復或部分恢復原來的狀態(tài)。
減少人腦的記憶負擔:不應在一個窗口使用在另一個窗口中記憶或寫下的信息;需要人按特定次序記憶的東西應當組織得容易記憶。
學習的時間和效果:提供聯(lián)機的幫助信息。
趣味性:盡量采取圖形界面,符合人類習慣.2021/4/9129Undo:在操作出現(xiàn)錯誤時,要恢復或部分恢復原來的狀態(tài)。25.繼續(xù)做原型用戶界面原型是用戶界面設計的重要工作。人需要對提交的人機交互活動進行體驗、實地操作,并精煉成一致的模式。使用快速原型工具或應用構造器,對各種命令方式,如菜單、彈出、填充以及快捷命令,做出原型讓用戶使用,通過用戶反饋、修改、演示的迭代,使界面越來越有效。2021/4/91305.繼續(xù)做原型用戶界面原型是用戶界面設計的重要工作。人需要6.設計HIC(人機交互)類窗口需要進一步細化,通常包括:類窗口、條件窗口、檢查窗口、文檔窗口、畫圖窗口、過濾器窗口、模型控制窗口、運行策略窗口、模板窗口等。設計HIC類,首先從組織窗口和部件的用戶界面界面的設計開始。每個類包括窗口的菜單條、下拉菜單、彈出菜單的定義。還要定義用于創(chuàng)建菜單、加亮選擇項、引用相應的響應的操作。每個類負責窗口的實際顯示。所有有關物理對話的處理都封裝在類的內部。必要時,還要增加在窗口中畫圖形圖符的類、在窗口中選擇項目的類、字體控制類、支持剪切和粘貼的類等。與機器有關的操作實現(xiàn)應隱蔽在這些類中。2021/4/91
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工安全協(xié)議書的法律法規(guī)與標準依據
- 2025年醫(yī)藥公司宿舍房屋租賃合同范文
- 2025年債權債務清算執(zhí)行協(xié)議
- 2025年建筑現(xiàn)澆樓板合同樣本
- 2025年光學計量標準器具項目提案報告模板
- 2025年企業(yè)籌資借款策劃合同范本
- 2025年住宅購置合同樣式
- 2025年臨時員工聘用協(xié)議規(guī)定
- 2025年個人司機工作合同
- 2025年企業(yè)消費信貸擔保協(xié)議范本
- SL631-637-2012-水利水電工程單元工程施工質量驗收評定標準
- 監(jiān)理質量管理講義監(jiān)理工作的基本知識
- 浙江臺州仙居富民村鎮(zhèn)銀行2023年招聘人員筆試歷年高頻考點試題答案帶詳解
- 煙花爆竹考試真題模擬匯編(共758題)
- 四年級數(shù)學上冊口算天天練4
- 水利水電工程監(jiān)理平行檢測表部分
- 分部分項工程質量檢驗計劃表
- HY/T 266-2018外壓中空纖維超濾膜表面親水性的測試接觸角法
- GB/T 4857.3-2008包裝運輸包裝件基本試驗第3部分:靜載荷堆碼試驗方法
- 2023年金華職業(yè)技術學院高職單招(英語)試題庫含答案解析
- CB/T 465-1995法蘭鑄鐵閘閥
評論
0/150
提交評論