面向?qū)ο蠓治雠c設(shè)計課件_第1頁
面向?qū)ο蠓治雠c設(shè)計課件_第2頁
面向?qū)ο蠓治雠c設(shè)計課件_第3頁
面向?qū)ο蠓治雠c設(shè)計課件_第4頁
面向?qū)ο蠓治雠c設(shè)計課件_第5頁
已閱讀5頁,還剩139頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第六章第十章

面向?qū)ο蟮姆治雠c設(shè)計2021/4/91第六章第十章

面向?qū)ο蟮姆治雠c設(shè)計2021/4/91回顧:面向數(shù)據(jù)流(結(jié)構(gòu)化方法)面向數(shù)據(jù)流的分析面向數(shù)據(jù)流的設(shè)計2021/4/92回顧:面向數(shù)據(jù)流(結(jié)構(gòu)化方法)面向數(shù)據(jù)流的分析面向數(shù)據(jù)流的設(shè)面向數(shù)據(jù)流方法的特點面向數(shù)據(jù)流側(cè)重建立構(gòu)成問題解決的處理流。數(shù)據(jù)抽象、數(shù)據(jù)結(jié)構(gòu)根據(jù)算法步驟的要求開發(fā),它貫穿于過程,提供過程所要求操作的信息。系統(tǒng)的狀態(tài)是一組全局變量,這組全局變量保存狀態(tài)的值,把它們從一個過程傳送到另一個過程。2021/4/93面向數(shù)據(jù)流方法的特點面向數(shù)據(jù)流側(cè)重建立構(gòu)成問題解決的處理流。面向數(shù)據(jù)流與面向?qū)ο蟮南到y(tǒng)2021/4/94面向數(shù)據(jù)流與面向?qū)ο蟮南到y(tǒng)2021/4/94面向?qū)ο蟮母拍頒oad和Yourdon給出了定義:“面向?qū)ο?對象+類+繼承+消息”

如果一個軟件系統(tǒng)是使用這4類概念設(shè)計和實現(xiàn)的,則認為這個軟件系統(tǒng)是面向?qū)ο蟮摹R粋€面向?qū)ο蟮某绦虻拿恳怀煞謶?yīng)是對象,計算是通過新的對象的建立和對象之間的信息通信來執(zhí)行的。2021/4/95面向?qū)ο蟮母拍?021/4/95對象對象是面向?qū)ο箝_發(fā)模式的基本成份。每個對象可用它本身的一組屬性和它可以執(zhí)行的一組操作來定義。電子信箱收件人主題優(yōu)先級收郵件發(fā)郵件手機短消息屬性操作對象2021/4/96對象對象是面向?qū)ο箝_發(fā)模式的基本成份。電子信箱收件人收郵件屬對象:電視機—封裝2021/4/97對象:電視機—封裝2021/4/97InternalState對象的例子:TV開請求變更頻道調(diào)節(jié)聲音TurnOnTurnOffChangeChannelAdjustVolumeOthers...被封裝的行為和狀態(tài)關(guān)請求2021/4/98InternalState對象的例子:TV開請求變更頻道類類是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對象的集合。類的定義包括一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合法操作。類定義可以視為一個具有類似特性與共同行為的對象的模板,可用來產(chǎn)生對象。在一個類中,每個對象都是類的實例,它們都可使用類中提供的函數(shù)。2021/4/99類類是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對象的集合。2021/例子:四邊形類&兩個四邊形對象四邊形類對象1對象22021/4/910例子:四邊形類&兩個四邊形對象四邊形類對象1對象22021/繼承繼承是使用已存在的定義做為基礎(chǔ)建立新定義的技術(shù)。新類的定義可以是既存類所聲明的數(shù)據(jù)和新類所增加的聲明的組合。新類復(fù)用既存的定義,而不要求修改既存類。既存類可當做基類來引用,則新類相應(yīng)地可當做派生類來引用。2021/4/911繼承繼承是使用已存在的定義做為基礎(chǔ)建立新定義的技術(shù)。2021繼承的例子多邊形類四邊形類2021/4/912繼承的例子多邊形類四邊形類2021/4/912繼承的例子2021/4/913繼承的例子2021/4/913消息消息是一個對象與另一個對象的通信單元,是要求某個對象執(zhí)行類中定義的某個操作的規(guī)格說明。發(fā)送給一個對象的消息定義了一個方法名和一個參數(shù)表(可能是空的),并指定某一個對象。一個對象接收的消息則調(diào)用消息中指定的方法,并將形式參數(shù)與參數(shù)表中相應(yīng)的值結(jié)合起來。2021/4/914消息消息是一個對象與另一個對象的通信單元,是要求某個對象執(zhí)行Question:考慮電視機的例子怎樣發(fā)送消息?2021/4/915Question:考慮電視機的例子2021/4/915面向?qū)ο蟮姆治雒嫦驅(qū)ο蠓治?OOA)方法的核心思想是利用面向?qū)ο?OO)的概念和方法為軟件需求建造模型,以使用戶需求逐步精確化、一致化、完全化。通過OOA建立的系統(tǒng)模型是以概念為中心的,因此稱為概念模型。這樣的模型由一組相關(guān)的類組成。2021/4/916面向?qū)ο蟮姆治雒嫦驅(qū)ο蠓治?OOA)方法的核心思想是利用面向概念模型(RationalRose工具)2021/4/917概念模型(RationalRose工具)2021/4/Question:怎樣構(gòu)造概念模型呢?構(gòu)造和評審OOA概念模型的順序和由五個層次組成。這五個層次是分析過程中的層次。這五個層次是:類與對象、屬性、服務(wù)、結(jié)構(gòu)和主題。2021/4/918Question:怎樣構(gòu)造概念模型呢?構(gòu)造和評審OOA概念模2021/4/9192021/4/919分析階段的主要活動發(fā)現(xiàn)對象、定義它們的類;識別對象的內(nèi)部特征;定義屬性定義服務(wù)識別對象的外部關(guān)系;定義對象之間的一般化----特殊結(jié)構(gòu);定義對象之間的整體----部分結(jié)構(gòu)建立實例連接建立消息連接劃分主題,建立主題圖建立詳細說明

2021/4/920分析階段的主要活動發(fā)現(xiàn)對象、定義它們的類;2021/4/92識別對象第一步:研究需求無論以何種形式提供的用戶需求,最終都應(yīng)成為系統(tǒng)分析員頭腦中關(guān)于系統(tǒng)責(zé)任的正確認識,問題包括:系統(tǒng)需要哪些功能,要達到何種性能指標及可靠性、安全性、人機交互要求、系統(tǒng)的對外接口等。2021/4/921識別對象第一步:研究需求2021/4/識別對象第二步:研究問題域定義:被開發(fā)的應(yīng)用系統(tǒng)所考慮的整個業(yè)務(wù)范圍OO比其它分析方法更強調(diào)系統(tǒng)模型與問題域的緊密對應(yīng)要發(fā)現(xiàn)對象、定義對象類的主要途徑就是研究問題域2021/4/922識別對象第二步:研究問題域2021/4/922識別對象第三步:確定系統(tǒng)邊界僅僅由系統(tǒng)及其信息或模擬的行為的人和物應(yīng)該看作系統(tǒng)邊界以內(nèi)的對象;認識系統(tǒng)邊界是為了明確系統(tǒng)的范圍以及與外部世界的接口2021/4/923識別對象第三步:確定系統(tǒng)邊界2021/4/923識別對象第四步:發(fā)現(xiàn)對象一般原則:只注意與系統(tǒng)責(zé)任有關(guān)的事物報社對象名稱文章2021/4/924識別對象第四步:發(fā)現(xiàn)對象報社對象名稱文章2021/4/9識別對象第五步:篩選掉無用的對象判斷屬性:對象記錄的信息是否有用,是否確實有些信息需要保存和管理服務(wù)判斷:有用的服務(wù),提供用戶需要的功能2021/4/925識別對象第五步:篩選掉無用的對象2021/4/925識別對象第六步:對象的精簡只有一個屬性的對象只有一個服務(wù)的對象2021/4/926識別對象第六步:對象的精簡2021/4/926識別對象所屬的類從認識對象到定義這些對象的類的過程是一個從特殊到一般的過程,特別是認識的單個對象特征是否可以作為整個類的特征,需要用到SA的認識哲學(xué),領(lǐng)域知識,數(shù)學(xué)基礎(chǔ)等方面的知識與技術(shù),另外,把各種對象放在一起構(gòu)成一個系統(tǒng),也需要從全局的觀點對對象進行認真研究。

2021/4/927識別對象所屬的類從認識對象到定義這些對象的類的過標識類的結(jié)構(gòu)典型的結(jié)構(gòu)有兩種:一般化-特殊化結(jié)構(gòu)(Gen-Spec結(jié)構(gòu))整體-部分結(jié)構(gòu)(Whole-Part結(jié)構(gòu))2021/4/928標識類的結(jié)構(gòu)典型的結(jié)構(gòu)有兩種:2021/4/928一般化—特殊化的結(jié)構(gòu)2021/4/929一般化—特殊化的結(jié)構(gòu)2021/4/929一般化—特殊化的結(jié)構(gòu)以特殊化的視點來看,一個Gen-Spec結(jié)構(gòu)可以看作是“isa”或“isakindof”結(jié)構(gòu)。例如,

aTruckVehicleisaVehicle aTruckVehicleisakindofVehicle在Gen-Spec結(jié)構(gòu)中,使用繼承將較一般化的屬性和服務(wù)放在一般化的類和對象中。2021/4/930一般化—特殊化的結(jié)構(gòu)以特殊化的視點來看,一個Gen-Spec整體—部分的結(jié)構(gòu)2021/4/931整體—部分的結(jié)構(gòu)2021/4/931整體—部分的結(jié)構(gòu)從整體的視點來看,一個Whole-Part結(jié)構(gòu)可看作一個“hasa”或“isapartof”結(jié)構(gòu)。例如,

VehiclehasaEngine EngineisapartofVehicle其中,Vehicle是整體對象,Engine是局部對象。2021/4/932整體—部分的結(jié)構(gòu)從整體的視點來看,一個Whole-Part結(jié)例子:類圖2021/4/933例子:類圖2021/4/933標識對象的屬性屬性是對問題域中對象性質(zhì)的刻畫,屬性的取值決定了對象所有可能的狀態(tài)。2021/4/934標識對象的屬性屬性是對問題域中對象性質(zhì)的表示對象的行為(服務(wù))對象收到消息后所能執(zhí)行的操作稱為它可提供的服務(wù)。2021/4/935表示對象的行為(服務(wù))對象收到消息后所能執(zhí)行的操作定義主題詞對于復(fù)雜的系統(tǒng),可能出現(xiàn)大量的對象,但分析員同時能處理的對象卻不宜過多,因此引入主題機制。通過建立多個主題,可以處理規(guī)模比較大的復(fù)雜模型,降低系統(tǒng)的復(fù)雜性。每個主題可以看作一個子模型,甚至是一個系統(tǒng)。在分析的某一時刻,分析人員只許重點關(guān)注某個特定的主題域。對于非常龐大的系統(tǒng)可以建立多級主題詞,形成一個層次結(jié)構(gòu)。2021/4/936定義主題詞對于復(fù)雜的系統(tǒng),可能出現(xiàn)大量的對象,但分析員同時能概念模型(RationalRose工具)2021/4/937概念模型(RationalRose工具)2021/4/面向?qū)ο蟮脑O(shè)計設(shè)計的準則:反映OOA中對象和類的實現(xiàn):OOA反映問題空間和系統(tǒng)任務(wù);OOD反映一種實現(xiàn);OOA和OOD分別在不同層次的抽象上(問題空間和實現(xiàn)空間)2021/4/938面向?qū)ο蟮脑O(shè)計設(shè)計的準則:2021/4/938高層設(shè)計2021/4/939高層設(shè)計2021/4/939OOD模型用戶交互部件主體部件任務(wù)管理部件數(shù)據(jù)管理部件主題層類與對象層結(jié)構(gòu)層屬性層服務(wù)層2021/4/940OOD模型用戶主體任務(wù)數(shù)據(jù)主題層類與對象層結(jié)構(gòu)層屬性層服務(wù)層一問題論域(主體部件)部分問題論域部分包括與應(yīng)用問題直接有關(guān)的所有類和對象。識別和定義這些類和對象的工作在OOA中已經(jīng)開始,在OOA階段得到的有關(guān)應(yīng)用的概念模型描述了我們要解決的問題。在OOD階段,應(yīng)當繼續(xù)OOA階段的工作,對在OOA中得到的結(jié)果進行改進和增補。2021/4/941一問題論域(主體部件)部分問題論域部分包括與應(yīng)用問題直接1.復(fù)用設(shè)計根據(jù)問題解決的需要,把從類庫或其它來源得到的既存類增加到問題解決方案中去。標明既存類中不需要的屬性和操作增加從既存類到應(yīng)用類之間的一般化-特殊化的關(guān)系。把應(yīng)用類中因繼承既存類而成為多余的屬性和操作標出。修改應(yīng)用類的結(jié)構(gòu)和連接。2021/4/9421.復(fù)用設(shè)計根據(jù)問題解決的需要,把從類庫或其它來源得到的既存2.把問題論域相關(guān)的類關(guān)聯(lián)起來在設(shè)計時,從類庫中引進一個根類,做為包容類,把所有與問題論域有關(guān)的類關(guān)聯(lián)到一起,建立類的層次。把同一問題論域的一些類集合起來,存于類庫中。2021/4/9432.把問題論域相關(guān)的類關(guān)聯(lián)起來在設(shè)計時,從類庫中引進一個根類3.加入一般化類以建立類間協(xié)議有時,某些特殊類要求一組類似的服務(wù)。此時,應(yīng)加入一個一般化的類,定義為所有這些特殊類共用的一組服務(wù)名,這些服務(wù)都是虛函數(shù)。在特殊類中定義其實現(xiàn)。2021/4/9443.加入一般化類以建立類間協(xié)議有時,某些特殊類要求一組類似4.調(diào)整繼承支持級別在OOA階段建立的對象模型中可能包括有多繼承關(guān)系,但實現(xiàn)時使用的程序設(shè)計語言可能只有單繼承,甚至沒有繼承機制,這樣就需對分析的結(jié)果進行修改。多繼承模式有兩種:

狹義的菱形廣義的菱形2021/4/9454.調(diào)整繼承支持級別在OOA階段建立的對象模型中可能包括有2021/4/9462021/4/9465.改進性能提高執(zhí)行效率和速度是系統(tǒng)設(shè)計的主要指標之一。有時,必須改變問題論域的結(jié)構(gòu)以提高效率。如果類之間經(jīng)常需要傳送大量消息,可合并相關(guān)的類以減少消息傳遞引起的速度損失。增加某些屬性到原來的類中,或增加低層的類,以保存暫時結(jié)果,避免每次都要重復(fù)計算造成速度損失。2021/4/9475.改進性能提高執(zhí)行效率和速度是系統(tǒng)設(shè)計的主要指標之一。有6.加入較低層的構(gòu)件在做面向?qū)ο蠓治鰰r,分析員往往專注于較高層的類和對象,避免考慮太多較低層的實現(xiàn)細節(jié)。在做面向?qū)ο笤O(shè)計時,設(shè)計師在找出高層的類和對象時,必須考慮到底需要用到哪些較低層的類和對象。2021/4/9486.加入較低層的構(gòu)件在做面向?qū)ο蠓治鰰r,分析員往往專注于較二用戶界面部分的設(shè)計在OOA階段給出了所需的屬性和操作在設(shè)計階段必須根據(jù)需求把交互細節(jié)加入到用戶界面設(shè)計中,包括人機交互所必需的實際顯示和輸入。用戶界面部分設(shè)計主要由以下幾個方面組成。2021/4/949二用戶界面部分的設(shè)計在OOA階段給出了所需的屬性和操1.用戶分類按技能層次分類:

外行/初學(xué)者/熟練者/專家按組織層次分類:

行政人員/管理人員/專業(yè)技術(shù)人員/其它辦事員按職能分類:

顧客/職員2021/4/9501.用戶分類按技能層次分類:2021/4/950

2.描述人及其任務(wù)的腳本對以上定義的每一類用戶,列出對以下問題做出的考慮:什么人、目的、特點、成功的關(guān)鍵因素、熟練程度以及任務(wù)腳本。2021/4/9512.描述人及其任務(wù)的腳本2021/4/951什么人──分析員目的──要求一個工具來輔助分析工作(擺脫繁重的畫圖和檢查圖的工作)。

特點──年齡:42歲;教育水平:大學(xué);限制:不要微型打印,小于9個點的打印太小成功的關(guān)鍵因素──工具應(yīng)當使分析工作順利進行;工具不應(yīng)與分析工作沖突;工具應(yīng)能捕獲假設(shè)和思想,能適時做出折衷;應(yīng)能及時給出模型各個部分的文檔,這與給出需求同等重要。熟練程度──專家。在OOATOOLTM

中一個例子2021/4/952什么人──分析員在OOATOOLTM中一個例子2021/任務(wù)腳本──

主腳本:識別“核心的”類和對象;識別“核心”結(jié)構(gòu);在發(fā)現(xiàn)了新的屬性或操作時隨時都可以加進模型中去。

檢驗?zāi)P停捍蛴∧P图捌淙课臋n。2021/4/953任務(wù)腳本──2021/4/9533.設(shè)計命令層研究現(xiàn)行的人機交互活動的內(nèi)容和準則:這些準則可以是非形式的,如“輸入時眼睛不易疲勞”,也可以是正式規(guī)定的;建立一個初始的命令層:可以有多種形式,如一系列MenuScreens、或一個MenuBar、或一系列Icons.細化命令層:考慮以下幾個問題。2021/4/9543.設(shè)計命令層研究現(xiàn)行的人機交互活動的內(nèi)容和準則:這些準則排列命令層次。把使用最頻繁的操作放在前面;按照用戶工作步驟排列。通過逐步分解,找到整體-局部模式,以幫助在命令層中對操作分塊。根據(jù)人們短期記憶的“7±2”或“每次記憶3塊/每塊3項”的特點,把深度盡量限制在三層之內(nèi)。減少操作步驟:把點取、拖動和鍵盤操作減到最少。2021/4/955排列命令層次。把使用最頻繁的操作放在前面;按照用戶工作步驟排4.設(shè)計詳細的交互用戶界面設(shè)計有若干原則,包括:

一致性:采用一致的術(shù)語、一致的步驟和一致的活動。

操作步驟少:減少敲鍵和鼠標點取的次數(shù),減少完成某件事所需的下拉菜單的距離。

不要“啞播放”:每當用戶等待系統(tǒng)完成一個活動時,要給出一些反饋信息。2021/4/9564.設(shè)計詳細的交互用戶界面設(shè)計有若干原則,包括:2021/

Undo:在操作出現(xiàn)錯誤時,要恢復(fù)或部分恢復(fù)原來的狀態(tài)。

減少人腦的記憶負擔:不應(yīng)在一個窗口使用在另一個窗口中記憶或?qū)懴碌男畔?;需要人按特定次序記憶的東西應(yīng)當組織得容易記憶。

學(xué)習(xí)的時間和效果:提供聯(lián)機的幫助信息。

趣味性:盡量采取圖形界面,符合人類習(xí)慣.2021/4/957Undo:在操作出現(xiàn)錯誤時,要恢復(fù)或部分恢復(fù)原來的狀態(tài)。25.繼續(xù)做原型用戶界面原型是用戶界面設(shè)計的重要工作。人需要對提交的人機交互活動進行體驗、實地操作,并精煉成一致的模式。使用快速原型工具或應(yīng)用構(gòu)造器,對各種命令方式,如菜單、彈出、填充以及快捷命令,做出原型讓用戶使用,通過用戶反饋、修改、演示的迭代,使界面越來越有效。2021/4/9585.繼續(xù)做原型用戶界面原型是用戶界面設(shè)計的重要工作。人需要6.設(shè)計HIC(人機交互)類窗口需要進一步細化,通常包括:類窗口、條件窗口、檢查窗口、文檔窗口、畫圖窗口、過濾器窗口、模型控制窗口、運行策略窗口、模板窗口等。設(shè)計HIC類,首先從組織窗口和部件的用戶界面界面的設(shè)計開始。每個類包括窗口的菜單條、下拉菜單、彈出菜單的定義。還要定義用于創(chuàng)建菜單、加亮選擇項、引用相應(yīng)的響應(yīng)的操作。每個類負責(zé)窗口的實際顯示。所有有關(guān)物理對話的處理都封裝在類的內(nèi)部。必要時,還要增加在窗口中畫圖形圖符的類、在窗口中選擇項目的類、字體控制類、支持剪切和粘貼的類等。與機器有關(guān)的操作實現(xiàn)應(yīng)隱蔽在這些類中。2021/4/9596.設(shè)計HIC(人機交互)類窗口需要進一步細化,通常7.根據(jù)圖形用戶界面進行設(shè)計圖形用戶界面區(qū)分為字型、坐標系統(tǒng)和事件。

字型是字體、字號、樣式和顏色的組合。

坐標系統(tǒng)主要因素有原點(基準點)、顯示分辨率、顯示維數(shù)等。

事件則是圖形用戶界面程序的核心,操作將對事件做出響應(yīng)。2021/4/9607.根據(jù)圖形用戶界面進行設(shè)計圖形用戶界面區(qū)分為字型、坐標系三任務(wù)管理部分的設(shè)計任務(wù),是進程的別稱,是執(zhí)行一系列活動的一段程序。當系統(tǒng)中有許多并發(fā)行為時,需要依照各個行為的協(xié)調(diào)和通信關(guān)系,劃分各種任務(wù),以簡化并發(fā)行為的設(shè)計和編碼。任務(wù)管理主要包括任務(wù)的選擇和調(diào)整,它的工作有以下幾種。2021/4/961三任務(wù)管理部分的設(shè)計任務(wù),是進程的別稱,是執(zhí)行一系列活動

識別事件驅(qū)動任務(wù):

一些負責(zé)與硬件設(shè)備通信的任務(wù)是事件驅(qū)動的,也就是說,這種任務(wù)可由事件來激發(fā)。

識別時鐘驅(qū)動任務(wù):以固定的時間間隔激發(fā)這種事件,以執(zhí)行某些處理。某些人機界面、子系統(tǒng)、任務(wù)、處理機或與其它系統(tǒng)需要周期性的通信,因此時鐘驅(qū)動任務(wù)應(yīng)運而生。

識別優(yōu)先任務(wù)和關(guān)鍵任務(wù):根據(jù)處理的優(yōu)先級別來安排各個任務(wù)。

識別協(xié)調(diào)者:當有三個或更多的任務(wù)時,應(yīng)當增加一個追加任務(wù),起協(xié)調(diào)者的作用。它的行為可以用狀態(tài)轉(zhuǎn)換矩陣來描述。

評審各個任務(wù):對各任務(wù)進行評審,確保它能滿足選擇任務(wù)的工程標準─事件驅(qū)動?時鐘驅(qū)動?優(yōu)先級/關(guān)鍵任務(wù)?協(xié)調(diào)者?2021/4/962識別事件驅(qū)動任務(wù):一些負責(zé)與硬件設(shè)備通信的任務(wù)是事件驅(qū)定義各個任務(wù)定義任務(wù)的工作主要包括:它是什么任務(wù)、如何協(xié)調(diào)工作及如何通信。

(1)它是什么任務(wù)──為任務(wù)命名,并簡要說明這個任務(wù)。

(2)如何協(xié)調(diào)工作──定義各個任務(wù)如何協(xié)調(diào)工作。指出它是事件驅(qū)動還是時鐘驅(qū)動。

(3)如何通信──定義各個任務(wù)之間如何通信。任務(wù)從哪里取值,結(jié)果送往何方。

(4)一個模版──任務(wù)的定義如下:

Name(任務(wù)名) Description(描述) Priority(優(yōu)先級)Servicesincluded(包含的操作)、

CommunicationVia(經(jīng)由誰通信)。2021/4/963定義各個任務(wù)定義任務(wù)的工作主要包括:它是什么任務(wù)、如何協(xié)調(diào)工四數(shù)據(jù)管理部分的設(shè)計數(shù)據(jù)管理部分提供了在數(shù)據(jù)管理系統(tǒng)中存儲和檢索對象的基本結(jié)構(gòu),包括對永久性數(shù)據(jù)的訪問和管理。它分離了數(shù)據(jù)管理機構(gòu)所關(guān)心的事項,包括文件、關(guān)系型DBMS或面向?qū)ο驞BMS等。2021/4/964四數(shù)據(jù)管理部分的設(shè)計數(shù)據(jù)管理部分提供了在數(shù)據(jù)管理系統(tǒng)中存UML:UseCaseDiagram

統(tǒng)一建模語言UML:是一種繪制軟件藍圖的標準語言??梢杂肬ML對軟件密集型系統(tǒng)的制品進行可視化詳述和文檔化。設(shè)計模式:是指一種在設(shè)計問題中經(jīng)常用到的解決方案。2021/4/965UML:UseCaseDiagram統(tǒng)一建模語言UMClassDiagram2021/4/966ClassDiagram2021/4/966Package2021/4/967Package2021/4/967SequenceDiagram2021/4/968SequenceDiagram2021/4/968書籍推薦UML和模式應(yīng)用:面向?qū)ο蠓治雠c設(shè)計導(dǎo)論2021/4/969書籍推薦UML和模式應(yīng)用:面向?qū)ο蠓治雠c設(shè)計導(dǎo)論2021/4論文:1《面向數(shù)據(jù)流方法》2《面向?qū)ο蠓椒ā?《兩種方法的比較》

要求:三個主題任選一個題目不定最好有一些實例

字數(shù)不限下個星期完成課程論文2021/4/970論文:1《面向數(shù)據(jù)流方法》下個星期完成課程論文第五講結(jié)束2021/4/971第五講結(jié)束2021/4/971感謝您的閱讀收藏,謝謝!

2021/4/972感謝您的閱讀收藏,謝謝!

2021/4/972第六章第十章

面向?qū)ο蟮姆治雠c設(shè)計2021/4/973第六章第十章

面向?qū)ο蟮姆治雠c設(shè)計2021/4/91回顧:面向數(shù)據(jù)流(結(jié)構(gòu)化方法)面向數(shù)據(jù)流的分析面向數(shù)據(jù)流的設(shè)計2021/4/974回顧:面向數(shù)據(jù)流(結(jié)構(gòu)化方法)面向數(shù)據(jù)流的分析面向數(shù)據(jù)流的設(shè)面向數(shù)據(jù)流方法的特點面向數(shù)據(jù)流側(cè)重建立構(gòu)成問題解決的處理流。數(shù)據(jù)抽象、數(shù)據(jù)結(jié)構(gòu)根據(jù)算法步驟的要求開發(fā),它貫穿于過程,提供過程所要求操作的信息。系統(tǒng)的狀態(tài)是一組全局變量,這組全局變量保存狀態(tài)的值,把它們從一個過程傳送到另一個過程。2021/4/975面向數(shù)據(jù)流方法的特點面向數(shù)據(jù)流側(cè)重建立構(gòu)成問題解決的處理流。面向數(shù)據(jù)流與面向?qū)ο蟮南到y(tǒng)2021/4/976面向數(shù)據(jù)流與面向?qū)ο蟮南到y(tǒng)2021/4/94面向?qū)ο蟮母拍頒oad和Yourdon給出了定義:“面向?qū)ο?對象+類+繼承+消息”

如果一個軟件系統(tǒng)是使用這4類概念設(shè)計和實現(xiàn)的,則認為這個軟件系統(tǒng)是面向?qū)ο蟮?。一個面向?qū)ο蟮某绦虻拿恳怀煞謶?yīng)是對象,計算是通過新的對象的建立和對象之間的信息通信來執(zhí)行的。2021/4/977面向?qū)ο蟮母拍?021/4/95對象對象是面向?qū)ο箝_發(fā)模式的基本成份。每個對象可用它本身的一組屬性和它可以執(zhí)行的一組操作來定義。電子信箱收件人主題優(yōu)先級收郵件發(fā)郵件手機短消息屬性操作對象2021/4/978對象對象是面向?qū)ο箝_發(fā)模式的基本成份。電子信箱收件人收郵件屬對象:電視機—封裝2021/4/979對象:電視機—封裝2021/4/97InternalState對象的例子:TV開請求變更頻道調(diào)節(jié)聲音TurnOnTurnOffChangeChannelAdjustVolumeOthers...被封裝的行為和狀態(tài)關(guān)請求2021/4/980InternalState對象的例子:TV開請求變更頻道類類是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對象的集合。類的定義包括一組數(shù)據(jù)屬性和在數(shù)據(jù)上的一組合法操作。類定義可以視為一個具有類似特性與共同行為的對象的模板,可用來產(chǎn)生對象。在一個類中,每個對象都是類的實例,它們都可使用類中提供的函數(shù)。2021/4/981類類是一組具有相同數(shù)據(jù)結(jié)構(gòu)和相同操作的對象的集合。2021/例子:四邊形類&兩個四邊形對象四邊形類對象1對象22021/4/982例子:四邊形類&兩個四邊形對象四邊形類對象1對象22021/繼承繼承是使用已存在的定義做為基礎(chǔ)建立新定義的技術(shù)。新類的定義可以是既存類所聲明的數(shù)據(jù)和新類所增加的聲明的組合。新類復(fù)用既存的定義,而不要求修改既存類。既存類可當做基類來引用,則新類相應(yīng)地可當做派生類來引用。2021/4/983繼承繼承是使用已存在的定義做為基礎(chǔ)建立新定義的技術(shù)。2021繼承的例子多邊形類四邊形類2021/4/984繼承的例子多邊形類四邊形類2021/4/912繼承的例子2021/4/985繼承的例子2021/4/913消息消息是一個對象與另一個對象的通信單元,是要求某個對象執(zhí)行類中定義的某個操作的規(guī)格說明。發(fā)送給一個對象的消息定義了一個方法名和一個參數(shù)表(可能是空的),并指定某一個對象。一個對象接收的消息則調(diào)用消息中指定的方法,并將形式參數(shù)與參數(shù)表中相應(yīng)的值結(jié)合起來。2021/4/986消息消息是一個對象與另一個對象的通信單元,是要求某個對象執(zhí)行Question:考慮電視機的例子怎樣發(fā)送消息?2021/4/987Question:考慮電視機的例子2021/4/915面向?qū)ο蟮姆治雒嫦驅(qū)ο蠓治?OOA)方法的核心思想是利用面向?qū)ο?OO)的概念和方法為軟件需求建造模型,以使用戶需求逐步精確化、一致化、完全化。通過OOA建立的系統(tǒng)模型是以概念為中心的,因此稱為概念模型。這樣的模型由一組相關(guān)的類組成。2021/4/988面向?qū)ο蟮姆治雒嫦驅(qū)ο蠓治?OOA)方法的核心思想是利用面向概念模型(RationalRose工具)2021/4/989概念模型(RationalRose工具)2021/4/Question:怎樣構(gòu)造概念模型呢?構(gòu)造和評審OOA概念模型的順序和由五個層次組成。這五個層次是分析過程中的層次。這五個層次是:類與對象、屬性、服務(wù)、結(jié)構(gòu)和主題。2021/4/990Question:怎樣構(gòu)造概念模型呢?構(gòu)造和評審OOA概念模2021/4/9912021/4/919分析階段的主要活動發(fā)現(xiàn)對象、定義它們的類;識別對象的內(nèi)部特征;定義屬性定義服務(wù)識別對象的外部關(guān)系;定義對象之間的一般化----特殊結(jié)構(gòu);定義對象之間的整體----部分結(jié)構(gòu)建立實例連接建立消息連接劃分主題,建立主題圖建立詳細說明

2021/4/992分析階段的主要活動發(fā)現(xiàn)對象、定義它們的類;2021/4/92識別對象第一步:研究需求無論以何種形式提供的用戶需求,最終都應(yīng)成為系統(tǒng)分析員頭腦中關(guān)于系統(tǒng)責(zé)任的正確認識,問題包括:系統(tǒng)需要哪些功能,要達到何種性能指標及可靠性、安全性、人機交互要求、系統(tǒng)的對外接口等。2021/4/993識別對象第一步:研究需求2021/4/識別對象第二步:研究問題域定義:被開發(fā)的應(yīng)用系統(tǒng)所考慮的整個業(yè)務(wù)范圍OO比其它分析方法更強調(diào)系統(tǒng)模型與問題域的緊密對應(yīng)要發(fā)現(xiàn)對象、定義對象類的主要途徑就是研究問題域2021/4/994識別對象第二步:研究問題域2021/4/922識別對象第三步:確定系統(tǒng)邊界僅僅由系統(tǒng)及其信息或模擬的行為的人和物應(yīng)該看作系統(tǒng)邊界以內(nèi)的對象;認識系統(tǒng)邊界是為了明確系統(tǒng)的范圍以及與外部世界的接口2021/4/995識別對象第三步:確定系統(tǒng)邊界2021/4/923識別對象第四步:發(fā)現(xiàn)對象一般原則:只注意與系統(tǒng)責(zé)任有關(guān)的事物報社對象名稱文章2021/4/996識別對象第四步:發(fā)現(xiàn)對象報社對象名稱文章2021/4/9識別對象第五步:篩選掉無用的對象判斷屬性:對象記錄的信息是否有用,是否確實有些信息需要保存和管理服務(wù)判斷:有用的服務(wù),提供用戶需要的功能2021/4/997識別對象第五步:篩選掉無用的對象2021/4/925識別對象第六步:對象的精簡只有一個屬性的對象只有一個服務(wù)的對象2021/4/998識別對象第六步:對象的精簡2021/4/926識別對象所屬的類從認識對象到定義這些對象的類的過程是一個從特殊到一般的過程,特別是認識的單個對象特征是否可以作為整個類的特征,需要用到SA的認識哲學(xué),領(lǐng)域知識,數(shù)學(xué)基礎(chǔ)等方面的知識與技術(shù),另外,把各種對象放在一起構(gòu)成一個系統(tǒng),也需要從全局的觀點對對象進行認真研究。

2021/4/999識別對象所屬的類從認識對象到定義這些對象的類的過標識類的結(jié)構(gòu)典型的結(jié)構(gòu)有兩種:一般化-特殊化結(jié)構(gòu)(Gen-Spec結(jié)構(gòu))整體-部分結(jié)構(gòu)(Whole-Part結(jié)構(gòu))2021/4/9100標識類的結(jié)構(gòu)典型的結(jié)構(gòu)有兩種:2021/4/928一般化—特殊化的結(jié)構(gòu)2021/4/9101一般化—特殊化的結(jié)構(gòu)2021/4/929一般化—特殊化的結(jié)構(gòu)以特殊化的視點來看,一個Gen-Spec結(jié)構(gòu)可以看作是“isa”或“isakindof”結(jié)構(gòu)。例如,

aTruckVehicleisaVehicle aTruckVehicleisakindofVehicle在Gen-Spec結(jié)構(gòu)中,使用繼承將較一般化的屬性和服務(wù)放在一般化的類和對象中。2021/4/9102一般化—特殊化的結(jié)構(gòu)以特殊化的視點來看,一個Gen-Spec整體—部分的結(jié)構(gòu)2021/4/9103整體—部分的結(jié)構(gòu)2021/4/931整體—部分的結(jié)構(gòu)從整體的視點來看,一個Whole-Part結(jié)構(gòu)可看作一個“hasa”或“isapartof”結(jié)構(gòu)。例如,

VehiclehasaEngine EngineisapartofVehicle其中,Vehicle是整體對象,Engine是局部對象。2021/4/9104整體—部分的結(jié)構(gòu)從整體的視點來看,一個Whole-Part結(jié)例子:類圖2021/4/9105例子:類圖2021/4/933標識對象的屬性屬性是對問題域中對象性質(zhì)的刻畫,屬性的取值決定了對象所有可能的狀態(tài)。2021/4/9106標識對象的屬性屬性是對問題域中對象性質(zhì)的表示對象的行為(服務(wù))對象收到消息后所能執(zhí)行的操作稱為它可提供的服務(wù)。2021/4/9107表示對象的行為(服務(wù))對象收到消息后所能執(zhí)行的操作定義主題詞對于復(fù)雜的系統(tǒng),可能出現(xiàn)大量的對象,但分析員同時能處理的對象卻不宜過多,因此引入主題機制。通過建立多個主題,可以處理規(guī)模比較大的復(fù)雜模型,降低系統(tǒng)的復(fù)雜性。每個主題可以看作一個子模型,甚至是一個系統(tǒng)。在分析的某一時刻,分析人員只許重點關(guān)注某個特定的主題域。對于非常龐大的系統(tǒng)可以建立多級主題詞,形成一個層次結(jié)構(gòu)。2021/4/9108定義主題詞對于復(fù)雜的系統(tǒng),可能出現(xiàn)大量的對象,但分析員同時能概念模型(RationalRose工具)2021/4/9109概念模型(RationalRose工具)2021/4/面向?qū)ο蟮脑O(shè)計設(shè)計的準則:反映OOA中對象和類的實現(xiàn):OOA反映問題空間和系統(tǒng)任務(wù);OOD反映一種實現(xiàn);OOA和OOD分別在不同層次的抽象上(問題空間和實現(xiàn)空間)2021/4/9110面向?qū)ο蟮脑O(shè)計設(shè)計的準則:2021/4/938高層設(shè)計2021/4/9111高層設(shè)計2021/4/939OOD模型用戶交互部件主體部件任務(wù)管理部件數(shù)據(jù)管理部件主題層類與對象層結(jié)構(gòu)層屬性層服務(wù)層2021/4/9112OOD模型用戶主體任務(wù)數(shù)據(jù)主題層類與對象層結(jié)構(gòu)層屬性層服務(wù)層一問題論域(主體部件)部分問題論域部分包括與應(yīng)用問題直接有關(guān)的所有類和對象。識別和定義這些類和對象的工作在OOA中已經(jīng)開始,在OOA階段得到的有關(guān)應(yīng)用的概念模型描述了我們要解決的問題。在OOD階段,應(yīng)當繼續(xù)OOA階段的工作,對在OOA中得到的結(jié)果進行改進和增補。2021/4/9113一問題論域(主體部件)部分問題論域部分包括與應(yīng)用問題直接1.復(fù)用設(shè)計根據(jù)問題解決的需要,把從類庫或其它來源得到的既存類增加到問題解決方案中去。標明既存類中不需要的屬性和操作增加從既存類到應(yīng)用類之間的一般化-特殊化的關(guān)系。把應(yīng)用類中因繼承既存類而成為多余的屬性和操作標出。修改應(yīng)用類的結(jié)構(gòu)和連接。2021/4/91141.復(fù)用設(shè)計根據(jù)問題解決的需要,把從類庫或其它來源得到的既存2.把問題論域相關(guān)的類關(guān)聯(lián)起來在設(shè)計時,從類庫中引進一個根類,做為包容類,把所有與問題論域有關(guān)的類關(guān)聯(lián)到一起,建立類的層次。把同一問題論域的一些類集合起來,存于類庫中。2021/4/91152.把問題論域相關(guān)的類關(guān)聯(lián)起來在設(shè)計時,從類庫中引進一個根類3.加入一般化類以建立類間協(xié)議有時,某些特殊類要求一組類似的服務(wù)。此時,應(yīng)加入一個一般化的類,定義為所有這些特殊類共用的一組服務(wù)名,這些服務(wù)都是虛函數(shù)。在特殊類中定義其實現(xiàn)。2021/4/91163.加入一般化類以建立類間協(xié)議有時,某些特殊類要求一組類似4.調(diào)整繼承支持級別在OOA階段建立的對象模型中可能包括有多繼承關(guān)系,但實現(xiàn)時使用的程序設(shè)計語言可能只有單繼承,甚至沒有繼承機制,這樣就需對分析的結(jié)果進行修改。多繼承模式有兩種:

狹義的菱形廣義的菱形2021/4/91174.調(diào)整繼承支持級別在OOA階段建立的對象模型中可能包括有2021/4/91182021/4/9465.改進性能提高執(zhí)行效率和速度是系統(tǒng)設(shè)計的主要指標之一。有時,必須改變問題論域的結(jié)構(gòu)以提高效率。如果類之間經(jīng)常需要傳送大量消息,可合并相關(guān)的類以減少消息傳遞引起的速度損失。增加某些屬性到原來的類中,或增加低層的類,以保存暫時結(jié)果,避免每次都要重復(fù)計算造成速度損失。2021/4/91195.改進性能提高執(zhí)行效率和速度是系統(tǒng)設(shè)計的主要指標之一。有6.加入較低層的構(gòu)件在做面向?qū)ο蠓治鰰r,分析員往往專注于較高層的類和對象,避免考慮太多較低層的實現(xiàn)細節(jié)。在做面向?qū)ο笤O(shè)計時,設(shè)計師在找出高層的類和對象時,必須考慮到底需要用到哪些較低層的類和對象。2021/4/91206.加入較低層的構(gòu)件在做面向?qū)ο蠓治鰰r,分析員往往專注于較二用戶界面部分的設(shè)計在OOA階段給出了所需的屬性和操作在設(shè)計階段必須根據(jù)需求把交互細節(jié)加入到用戶界面設(shè)計中,包括人機交互所必需的實際顯示和輸入。用戶界面部分設(shè)計主要由以下幾個方面組成。2021/4/9121二用戶界面部分的設(shè)計在OOA階段給出了所需的屬性和操1.用戶分類按技能層次分類:

外行/初學(xué)者/熟練者/專家按組織層次分類:

行政人員/管理人員/專業(yè)技術(shù)人員/其它辦事員按職能分類:

顧客/職員2021/4/91221.用戶分類按技能層次分類:2021/4/950

2.描述人及其任務(wù)的腳本對以上定義的每一類用戶,列出對以下問題做出的考慮:什么人、目的、特點、成功的關(guān)鍵因素、熟練程度以及任務(wù)腳本。2021/4/91232.描述人及其任務(wù)的腳本2021/4/951什么人──分析員目的──要求一個工具來輔助分析工作(擺脫繁重的畫圖和檢查圖的工作)。

特點──年齡:42歲;教育水平:大學(xué);限制:不要微型打印,小于9個點的打印太小成功的關(guān)鍵因素──工具應(yīng)當使分析工作順利進行;工具不應(yīng)與分析工作沖突;工具應(yīng)能捕獲假設(shè)和思想,能適時做出折衷;應(yīng)能及時給出模型各個部分的文檔,這與給出需求同等重要。熟練程度──專家。在OOATOOLTM

中一個例子2021/4/9124什么人──分析員在OOATOOLTM中一個例子2021/任務(wù)腳本──

主腳本:識別“核心的”類和對象;識別“核心”結(jié)構(gòu);在發(fā)現(xiàn)了新的屬性或操作時隨時都可以加進模型中去。

檢驗?zāi)P停捍蛴∧P图捌淙课臋n。2021/4/9125任務(wù)腳本──2021/4/9533.設(shè)計命令層研究現(xiàn)行的人機交互活動的內(nèi)容和準則:這些準則可以是非形式的,如“輸入時眼睛不易疲勞”,也可以是正式規(guī)定的;建立一個初始的命令層:可以有多種形式,如一系列MenuScreens、或一個MenuBar、或一系列Icons.細化命令層:考慮以下幾個問題。2021/4/91263.設(shè)計命令層研究現(xiàn)行的人機交互活動的內(nèi)容和準則:這些準則排列命令層次。把使用最頻繁的操作放在前面;按照用戶工作步驟排列。通過逐步分解,找到整體-局部模式,以幫助在命令層中對操作分塊。根據(jù)人們短期記憶的“7±2”或“每次記憶3塊/每塊3項”的特點,把深度盡量限制在三層之內(nèi)。減少操作步驟:把點取、拖動和鍵盤操作減到最少。2021/4/9127排列命令層次。把使用最頻繁的操作放在前面;按照用戶工作步驟排4.設(shè)計詳細的交互用戶界面設(shè)計有若干原則,包括:

一致性:采用一致的術(shù)語、一致的步驟和一致的活動。

操作步驟少:減少敲鍵和鼠標點取的次數(shù),減少完成某件事所需的下拉菜單的距離。

不要“啞播放”:每當用戶等待系統(tǒng)完成一個活動時,要給出一些反饋信息。2021/4/91284.設(shè)計詳細的交互用戶界面設(shè)計有若干原則,包括:2021/

Undo:在操作出現(xiàn)錯誤時,要恢復(fù)或部分恢復(fù)原來的狀態(tài)。

減少人腦的記憶負擔:不應(yīng)在一個窗口使用在另一個窗口中記憶或?qū)懴碌男畔?;需要人按特定次序記憶的東西應(yīng)當組織得容易記憶。

學(xué)習(xí)的時間和效果:提供聯(lián)機的幫助信息。

趣味性:盡量采取圖形界面,符合人類習(xí)慣.2021/4/9129Undo:在操作出現(xiàn)錯誤時,要恢復(fù)或部分恢復(fù)原來的狀態(tài)。25.繼續(xù)做原型用戶界面原型是用戶界面設(shè)計的重要工作。人需要對提交的人機交互活動進行體驗、實地操作,并精煉成一致的模式。使用快速原型工具或應(yīng)用構(gòu)造器,對各種命令方式,如菜單、彈出、填充以及快捷命令,做出原型讓用戶使用,通過用戶反饋、修改、演示的迭代,使界面越來越有效。2021/4/91305.繼續(xù)做原型用戶界面原型是用戶界面設(shè)計的重要工作。人需要6.設(shè)計HIC(人機交互)類窗口需要進一步細化,通常包括:類窗口、條件窗口、檢查窗口、文檔窗口、畫圖窗口、過濾器窗口、模型控制窗口、運行策略窗口、模板窗口等。設(shè)計HIC類,首先從組織窗口和部件的用戶界面界面的設(shè)計開始。每個類包括窗口的菜單條、下拉菜單、彈出菜單的定義。還要定義用于創(chuàng)建菜單、加亮選擇項、引用相應(yīng)的響應(yīng)的操作。每個類負責(zé)窗口的實際顯示。所有有關(guān)物理對話的處理都封裝在類的內(nèi)部。必要時,還要增加在窗口中畫圖形圖符的類、在窗口中選擇項目的類、字體控制類、支持剪切和粘貼的類等。與機器有關(guān)的操作實現(xiàn)應(yīng)隱蔽在這些類中。2021/4/91

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論