版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、目標(biāo):目標(biāo):運(yùn)用面向?qū)ο蠓椒ㄅc技術(shù),分析用戶對運(yùn)用面向?qū)ο蠓椒ㄅc技術(shù),分析用戶對軟件系統(tǒng)的需求,建立軟件系統(tǒng)模型。軟件系統(tǒng)的需求,建立軟件系統(tǒng)模型。 以以功能為中心功能為中心的軟件開發(fā)方法(結(jié)構(gòu)化方法)的軟件開發(fā)方法(結(jié)構(gòu)化方法) 以以數(shù)據(jù)為中心數(shù)據(jù)為中心的軟件開發(fā)方法(信息建模方法)的軟件開發(fā)方法(信息建模方法)低內(nèi)聚,高耦合,缺乏靈活性和可維護(hù)性低內(nèi)聚,高耦合,缺乏靈活性和可維護(hù)性分析與設(shè)計(jì)階段采用的概念和表示不一致分析與設(shè)計(jì)階段采用的概念和表示不一致對功能的處理較弱,不適合具有復(fù)雜功能對功能的處理較弱,不適合具有復(fù)雜功能的系統(tǒng)的系統(tǒng)面向?qū)ο蠓椒ɑ舅枷朊嫦驅(qū)ο蠓椒ɑ舅枷朊嫦驅(qū)ο筌浖_發(fā)
2、方法的目標(biāo)面向?qū)ο筌浖_發(fā)方法的目標(biāo) 源于面向?qū)ο蟪绦蛟O(shè)計(jì)語言源于面向?qū)ο蟪绦蛟O(shè)計(jì)語言 1967, Simula67 1970s, Smalltalk, Modula 1980s-90s,C+, Objective-C, Eiffel, java 向分析、設(shè)計(jì)甚至測試、維護(hù)等整個(gè)軟件生命向分析、設(shè)計(jì)甚至測試、維護(hù)等整個(gè)軟件生命 周期擴(kuò)展周期擴(kuò)展 1990s,統(tǒng)一建模語言(,統(tǒng)一建模語言(Unified Modeling Language, UML)誕生)誕生1.3 1.3 面向?qū)ο蠓椒ǖ幕靖拍詈驮瓌t面向?qū)ο蠓椒ǖ幕靖拍詈驮瓌t 基本概念基本概念 類與對象,屬性與操作,繼承、聚合和關(guān)聯(lián)類與對象
3、,屬性與操作,繼承、聚合和關(guān)聯(lián) 基本原則基本原則 抽象,分類,封裝,消息,多態(tài)性抽象,分類,封裝,消息,多態(tài)性例例2 2:對下列事物進(jìn)行分類和抽象:對下列事物進(jìn)行分類和抽象顯微鏡、摩天樓、望遠(yuǎn)鏡、飛機(jī)、鉚釘、顯微鏡、摩天樓、望遠(yuǎn)鏡、飛機(jī)、鉚釘、 管道、管道、卡車、單向閥、指數(shù)、過濾器、壓力器、卡車、單向閥、指數(shù)、過濾器、壓力器、 自行自行車、正旋、巖洞、眼鏡、車庫、車、正旋、巖洞、眼鏡、車庫、 滑翔機(jī)、平方滑翔機(jī)、平方根、鐵釘、水龍頭、螺釘、根、鐵釘、水龍頭、螺釘、 余旋、螺栓、余旋、螺栓、 帳篷、帳篷、雙筒鏡、車棚、雜物堆房、摩托車、帆船、瞄準(zhǔn)雙筒鏡、車棚、雜物堆房、摩托車、帆船、瞄準(zhǔn)器器例
4、例1 1:數(shù)據(jù)抽象和過程抽象:數(shù)據(jù)抽象和過程抽象 數(shù)據(jù)抽象:數(shù)據(jù)抽象:學(xué)生、客戶、電子郵件、汽車學(xué)生、客戶、電子郵件、汽車過程抽象:交易、答辯、備課、開門過程抽象:交易、答辯、備課、開門光學(xué)設(shè)備類:顯微鏡、眼鏡、望遠(yuǎn)鏡、瞄準(zhǔn)器、雙筒鏡光學(xué)設(shè)備類:顯微鏡、眼鏡、望遠(yuǎn)鏡、瞄準(zhǔn)器、雙筒鏡管道控制類:管道、單向伐、水龍頭、過濾器、壓力器管道控制類:管道、單向伐、水龍頭、過濾器、壓力器交通工具類:自行車、帆船交通工具類:自行車、帆船 、卡車、飛機(jī)、滑翔機(jī)、摩托車、卡車、飛機(jī)、滑翔機(jī)、摩托車五金類:五金類: 鐵釘、螺釘、螺栓、鉚釘鐵釘、螺釘、螺栓、鉚釘建筑類:建筑類: 帳篷、巖洞、車棚、車庫、雜物堆房、摩
5、天樓帳篷、巖洞、車棚、車庫、雜物堆房、摩天樓數(shù)學(xué)概念類:平方根、指數(shù)、正旋、余旋數(shù)學(xué)概念類:平方根、指數(shù)、正旋、余旋 光學(xué)設(shè)備類:聚焦度、變焦長度、單雙鏡形式、用途功能光學(xué)設(shè)備類:聚焦度、變焦長度、單雙鏡形式、用途功能管道控制類:時(shí)速、功率,動(dòng)力資源、消耗、用途、管道控制類:時(shí)速、功率,動(dòng)力資源、消耗、用途、五金類:五金類: 材料、直徑、長度、硬度、用途材料、直徑、長度、硬度、用途建筑類:建筑類: 面積、高度、材料、用途面積、高度、材料、用途數(shù)學(xué)概念類:概念定義、公式內(nèi)容、用途數(shù)學(xué)概念類:概念定義、公式內(nèi)容、用途 抽取同類事物的共同性質(zhì):抽取同類事物的共同性質(zhì): 分類:分類:學(xué)生學(xué)生姓名姓名年
6、齡年齡研究生研究生導(dǎo)師導(dǎo)師研究方向研究方向本科生本科生班級班級專業(yè)專業(yè)人員人員姓名姓名年齡年齡研究生研究生導(dǎo)師導(dǎo)師研究方向研究方向職工職工部門部門職務(wù)職務(wù)在職研究生在職研究生運(yùn)輸工具運(yùn)輸工具輪船輪船車輛車輛飛機(jī)飛機(jī)卡車卡車轎車轎車?yán)^承:繼承:多繼承:多繼承:繼承層次:繼承層次:關(guān)聯(lián)關(guān)聯(lián) 關(guān)聯(lián)表示類之間的靜態(tài)聯(lián)系。關(guān)聯(lián)表示類之間的靜態(tài)聯(lián)系。 當(dāng)類實(shí)例化為對象后,關(guān)聯(lián)實(shí)例化為對象之間當(dāng)類實(shí)例化為對象后,關(guān)聯(lián)實(shí)例化為對象之間的鏈。的鏈。 可以通過屬性來表達(dá)關(guān)聯(lián)??梢酝ㄟ^屬性來表達(dá)關(guān)聯(lián)。職員職員公司公司關(guān)聯(lián):關(guān)聯(lián):工作工作聚合聚合 聚合表示對象之間的整體部分關(guān)系,具有聚合表示對象之間的整體部分關(guān)系,具
7、有“有有 一個(gè)一個(gè)”或或“是一部分是一部分”的語義的語義 聚合也是一種關(guān)聯(lián)。聚合也是一種關(guān)聯(lián)。汽車汽車發(fā)動(dòng)機(jī)發(fā)動(dòng)機(jī)車輪車輪聚合:聚合:系統(tǒng)復(fù)雜性控制(包)系統(tǒng)復(fù)雜性控制(包) 包用于控制系統(tǒng)的包用于控制系統(tǒng)的粒度粒度,將系統(tǒng)組成元素組織,將系統(tǒng)組成元素組織到不同的包中,可以方便系統(tǒng)整體規(guī)劃,減小到不同的包中,可以方便系統(tǒng)整體規(guī)劃,減小系統(tǒng)分析和設(shè)計(jì)的復(fù)雜性。系統(tǒng)分析和設(shè)計(jì)的復(fù)雜性。面向?qū)ο蠓椒▽?shí)現(xiàn)其目標(biāo)的途徑面向?qū)ο蠓椒▽?shí)現(xiàn)其目標(biāo)的途徑1.4 1.4 面向?qū)ο筌浖到y(tǒng)模型面向?qū)ο筌浖到y(tǒng)模型 系統(tǒng)模型系統(tǒng)模型 為了理解和實(shí)現(xiàn)所要建造的軟件系統(tǒng),對系統(tǒng)及其工作為了理解和實(shí)現(xiàn)所要建造的軟件系統(tǒng),對
8、系統(tǒng)及其工作 環(huán)境的簡化和形式化描述。環(huán)境的簡化和形式化描述。 一個(gè)完整的軟件系統(tǒng)模型通常包括若干不同層一個(gè)完整的軟件系統(tǒng)模型通常包括若干不同層次、不同視角的模型次、不同視角的模型 層次:系統(tǒng)的抽象程度層次:系統(tǒng)的抽象程度 視角:系統(tǒng)的不同方面(交互、功能、實(shí)現(xiàn)、組織視角:系統(tǒng)的不同方面(交互、功能、實(shí)現(xiàn)、組織)面向?qū)ο竽P鸵晥D面向?qū)ο竽P鸵晥D用況視圖用況視圖進(jìn)程視圖進(jìn)程視圖部署視圖部署視圖設(shè)計(jì)視圖設(shè)計(jì)視圖實(shí)現(xiàn)視圖實(shí)現(xiàn)視圖結(jié)構(gòu)視圖結(jié)構(gòu)視圖 用況視圖:軟件系統(tǒng)的內(nèi)外交互情況用況視圖:軟件系統(tǒng)的內(nèi)外交互情況 設(shè)計(jì)視圖:軟件系統(tǒng)的功能需求設(shè)計(jì)視圖:軟件系統(tǒng)的功能需求 進(jìn)程視圖:軟件系統(tǒng)的控制與驅(qū)動(dòng)進(jìn)
9、程視圖:軟件系統(tǒng)的控制與驅(qū)動(dòng) 實(shí)現(xiàn)視圖:軟件系統(tǒng)的配置與管理實(shí)現(xiàn)視圖:軟件系統(tǒng)的配置與管理 部署視圖:軟件系統(tǒng)的物理分布與安裝部署視圖:軟件系統(tǒng)的物理分布與安裝 結(jié)構(gòu)視圖:結(jié)構(gòu)視圖: 軟件系統(tǒng)的體系結(jié)構(gòu)軟件系統(tǒng)的體系結(jié)構(gòu)面向?qū)ο竽P鸵晥D的構(gòu)成面向?qū)ο竽P鸵晥D的構(gòu)成2.1 2.1 分析面臨的主要問題分析面臨的主要問題 OOA OOA與與OODOOD的界限的界限 對問題域和系統(tǒng)責(zé)任的理解對問題域和系統(tǒng)責(zé)任的理解 人與人之間的交流人與人之間的交流 需求的不斷變化需求的不斷變化 軟件復(fù)用的要求軟件復(fù)用的要求OOAOOA與與OODOOD的界限的界限 OOA OOA:運(yùn)用面向?qū)ο蠓椒?,對問題域和系統(tǒng)責(zé)任進(jìn)
10、行分運(yùn)用面向?qū)ο蠓椒ǎ瑢栴}域和系統(tǒng)責(zé)任進(jìn)行分析和理解,找出描述問題域和系統(tǒng)責(zé)任所需的對象,定析和理解,找出描述問題域和系統(tǒng)責(zé)任所需的對象,定義對象的屬性和操作以及對象之間的關(guān)系,建立一個(gè)符義對象的屬性和操作以及對象之間的關(guān)系,建立一個(gè)符合問題域,滿足用戶需求的合問題域,滿足用戶需求的OOAOOA模型。模型。 OOA OOA不考慮與系統(tǒng)具體實(shí)現(xiàn)有關(guān)的因素,而將其不考慮與系統(tǒng)具體實(shí)現(xiàn)有關(guān)的因素,而將其留給留給OODOOD去處理,因此去處理,因此OODOOD包括兩方面的工作:包括兩方面的工作: 1 1)根據(jù)實(shí)現(xiàn)條件對)根據(jù)實(shí)現(xiàn)條件對OOAOOA模型作某些必要的修改和調(diào)整。模型作某些必要的修改和調(diào)整
11、。 2 2)針對具體實(shí)現(xiàn)條件,建立人機(jī)界面、數(shù)據(jù)存儲(chǔ)和控)針對具體實(shí)現(xiàn)條件,建立人機(jī)界面、數(shù)據(jù)存儲(chǔ)和控制驅(qū)動(dòng)等模型。制驅(qū)動(dòng)等模型。問題域和系統(tǒng)責(zé)任問題域和系統(tǒng)責(zé)任軟件分析人員必須盡快了解和明確:軟件分析人員必須盡快了解和明確: 1 1)問題域)問題域-被開發(fā)系統(tǒng)的應(yīng)用領(lǐng)域,現(xiàn)實(shí)世界中,被開發(fā)系統(tǒng)的應(yīng)用領(lǐng)域,現(xiàn)實(shí)世界中, 要要求系統(tǒng)處理的業(yè)務(wù)范圍。求系統(tǒng)處理的業(yè)務(wù)范圍。 2 2)系統(tǒng)責(zé)任)系統(tǒng)責(zé)任-所開發(fā)的系統(tǒng)應(yīng)該具備的功能。所開發(fā)的系統(tǒng)應(yīng)該具備的功能。問題域不等于系統(tǒng)責(zé)任,但它們有很多重合部分問題域不等于系統(tǒng)責(zé)任,但它們有很多重合部分 金融業(yè)務(wù)金融業(yè)務(wù) 個(gè)人儲(chǔ)蓄個(gè)人儲(chǔ)蓄 代發(fā)工資代發(fā)工資收費(fèi)業(yè)
12、務(wù)收費(fèi)業(yè)務(wù) 貸款業(yè)務(wù)貸款業(yè)務(wù)辦公管理辦公管理數(shù)據(jù)備份數(shù)據(jù)備份系統(tǒng)責(zé)任問題域人與人之間的交流人與人之間的交流 交流包括三部分人員之間:交流包括三部分人員之間: 1 1)開發(fā)人員與用戶(需求方)開發(fā)人員與用戶(需求方) 2 2)開發(fā)人員之間)開發(fā)人員之間 3 3)開發(fā)人員與管理人員)開發(fā)人員與管理人員 交流工具包括談話和文檔交流工具包括談話和文檔 用戶文檔,技術(shù)文檔,管理文檔用戶文檔,技術(shù)文檔,管理文檔需求的不斷變化需求的不斷變化樹立樹立“需求變化是絕對的需求變化是絕對的”的觀念,從分析的觀念,從分析到設(shè)計(jì),始終注意到設(shè)計(jì),始終注意“易維護(hù)修改易維護(hù)修改”這一原則。這一原則。需求變化時(shí),最容易變化
13、的是系統(tǒng)功能。在需求變化時(shí),最容易變化的是系統(tǒng)功能。在面向?qū)ο蠓椒ㄖ?,最容易變化的成分是對象面向?qū)ο蠓椒ㄖ校钊菀鬃兓某煞质菍ο笾械牟僮?,其次是對象間的交互與協(xié)作,第中的操作,其次是對象間的交互與協(xié)作,第三是對象的屬性。對象本事是相對穩(wěn)定的。三是對象的屬性。對象本事是相對穩(wěn)定的。隱蔽內(nèi)部操作,抽取高層類,可以使系統(tǒng)穩(wěn)隱蔽內(nèi)部操作,抽取高層類,可以使系統(tǒng)穩(wěn)定且易于應(yīng)對需求變化。定且易于應(yīng)對需求變化。軟件復(fù)用的要求軟件復(fù)用的要求在已有的軟件成分基礎(chǔ)上建造系統(tǒng),是新型軟在已有的軟件成分基礎(chǔ)上建造系統(tǒng),是新型軟 件開發(fā)方法的一個(gè)重要原則。件開發(fā)方法的一個(gè)重要原則。復(fù)用已有的軟件成分,不僅是提高開發(fā)效
14、率的復(fù)用已有的軟件成分,不僅是提高開發(fā)效率的資源集約化生產(chǎn)方式,更重要的原因在于復(fù)用資源集約化生產(chǎn)方式,更重要的原因在于復(fù)用已有軟件成分可以保證其相對正確性,回避不已有軟件成分可以保證其相對正確性,回避不宜保證的軟件質(zhì)量問題。宜保證的軟件質(zhì)量問題。復(fù)用是多方面的,從執(zhí)行代碼、源代碼到設(shè)計(jì)復(fù)用是多方面的,從執(zhí)行代碼、源代碼到設(shè)計(jì)文檔,乃至分析文檔。文檔,乃至分析文檔。2.2 2.2 面向?qū)ο蟮姆治瞿P兔嫦驅(qū)ο蟮姆治瞿P湍繕?biāo):目標(biāo):用規(guī)范的面向?qū)ο髨D表和文字來描述所要建造用規(guī)范的面向?qū)ο髨D表和文字來描述所要建造的軟件系統(tǒng),以便在用戶與系統(tǒng)分析人員之間達(dá)成共的軟件系統(tǒng),以便在用戶與系統(tǒng)分析人員之間達(dá)
15、成共識,同時(shí)使后續(xù)工作得以繼續(xù)。識,同時(shí)使后續(xù)工作得以繼續(xù)。內(nèi)容:內(nèi)容: 需求描述需求描述 Use CaseUse Case 用況圖用況圖 輔助模型輔助模型 SequenceSequence 交互圖交互圖 CollaborationCollaboration 協(xié)作圖協(xié)作圖 State TransitionState Transition 狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖 ComponentComponent 包圖包圖基本模型基本模型 ClassClass類圖類圖 詳細(xì)說明詳細(xì)說明對象層關(guān)系層特征層用況圖(用況圖(Use CaseUse Case) 捕獲與描述用戶需求的工具捕獲與描述用戶需求的工具類圖(類圖
16、(ClassClass) 類圖是系統(tǒng)模型的基礎(chǔ),描述系統(tǒng)的靜態(tài)結(jié)構(gòu)。類圖是系統(tǒng)模型的基礎(chǔ),描述系統(tǒng)的靜態(tài)結(jié)構(gòu)。 三個(gè)層次:三個(gè)層次: 對象層:描述問題域和系統(tǒng)責(zé)任所需的對象對象層:描述問題域和系統(tǒng)責(zé)任所需的對象 關(guān)系層:類之間的相互關(guān)系關(guān)系層:類之間的相互關(guān)系 特征層:類的屬性和操作(分析階段不用細(xì)化)特征層:類的屬性和操作(分析階段不用細(xì)化)順序圖(順序圖(SequenceSequence) 按時(shí)間順序排列在完成某一功能過程中對象之間的交互按時(shí)間順序排列在完成某一功能過程中對象之間的交互行為。行為。 協(xié)作圖(協(xié)作圖(CollaborationCollaboration) 以某一對象為中心描述
17、對象之間的交互。以某一對象為中心描述對象之間的交互。狀態(tài)轉(zhuǎn)換圖(狀態(tài)轉(zhuǎn)換圖(State TransitionState Transition) 描述對象在生命周期內(nèi),響應(yīng)事件的狀態(tài)轉(zhuǎn)換過程,以描述對象在生命周期內(nèi),響應(yīng)事件的狀態(tài)轉(zhuǎn)換過程,以及響應(yīng)事件后所做的反映。及響應(yīng)事件后所做的反映。包圖(包圖(ComponentComponent) 對關(guān)系密切的模型元素進(jìn)行打包。對關(guān)系密切的模型元素進(jìn)行打包。2.3 2.3 面向?qū)ο蟮姆治鲞^程面向?qū)ο蟮姆治鲞^程分析過程中各個(gè)步驟不要求按固定順序進(jìn)行。所以,面向分析過程中各個(gè)步驟不要求按固定順序進(jìn)行。所以,面向?qū)ο蟮姆治霾襟E經(jīng)常被叫做對象的分析步驟經(jīng)常被叫做
18、“活動(dòng)活動(dòng)”。建立建立Use CaseUse Case發(fā)現(xiàn)對象發(fā)現(xiàn)對象定義屬性與服務(wù)定義屬性與服務(wù)建立結(jié)構(gòu)與連接建立結(jié)構(gòu)與連接定義:順序圖、定義:順序圖、協(xié)作圖、狀態(tài)圖協(xié)作圖、狀態(tài)圖建立建立ClassClass詳細(xì)說明詳細(xì)說明原型開發(fā)原型開發(fā)實(shí)施實(shí)施OOAOOA的幾點(diǎn)建議:的幾點(diǎn)建議:1 1)確定需求的工作放在前面;)確定需求的工作放在前面;2 2)建立)建立ClassClass圖,可以隨時(shí)切換到其他活動(dòng);圖,可以隨時(shí)切換到其他活動(dòng);3 3)建立順序圖、協(xié)作圖和狀態(tài)圖的活動(dòng),放在對象)建立順序圖、協(xié)作圖和狀態(tài)圖的活動(dòng),放在對象 識別之后,并與基本模型活動(dòng)交錯(cuò)進(jìn)行,識別之后,并與基本模型活動(dòng)交錯(cuò)
19、進(jìn)行,4 4)詳細(xì)說明應(yīng)分散在各項(xiàng)活動(dòng)之中進(jìn)行,最后做一次審)詳細(xì)說明應(yīng)分散在各項(xiàng)活動(dòng)之中進(jìn)行,最后做一次審查和補(bǔ)充;查和補(bǔ)充;5 5)原形可以反復(fù)地進(jìn)行,早期的原型可以用來證實(shí)用戶)原形可以反復(fù)地進(jìn)行,早期的原型可以用來證實(shí)用戶需求;需求;6 6)對于規(guī)模較小系統(tǒng),分析時(shí)可以省略包圖。)對于規(guī)模較小系統(tǒng),分析時(shí)可以省略包圖。第三章第三章 面向?qū)ο蟮脑O(shè)計(jì)面向?qū)ο蟮脑O(shè)計(jì) 3.1 3.1 面向?qū)ο笤O(shè)計(jì)概述面向?qū)ο笤O(shè)計(jì)概述3.2 3.2 問題域設(shè)計(jì)問題域設(shè)計(jì)3.3 3.3 人機(jī)交互設(shè)計(jì)人機(jī)交互設(shè)計(jì)3.4 3.4 控制驅(qū)動(dòng)設(shè)計(jì)設(shè)計(jì)控制驅(qū)動(dòng)設(shè)計(jì)設(shè)計(jì)3.5 3.5 數(shù)據(jù)管理設(shè)計(jì)數(shù)據(jù)管理設(shè)計(jì)3.6 3.6
20、構(gòu)件和部署設(shè)計(jì)構(gòu)件和部署設(shè)計(jì)3.1 3.1 面向?qū)ο笤O(shè)計(jì)概述面向?qū)ο笤O(shè)計(jì)概述按照軟件生命周期的規(guī)律,面向?qū)ο蟮姆椒▽W(xué)也包括分按照軟件生命周期的規(guī)律,面向?qū)ο蟮姆椒▽W(xué)也包括分析活動(dòng)和設(shè)計(jì)活動(dòng)。析活動(dòng)和設(shè)計(jì)活動(dòng)。分析活動(dòng)和設(shè)計(jì)活動(dòng)并沒有明顯的階段劃分,對應(yīng)噴泉分析活動(dòng)和設(shè)計(jì)活動(dòng)并沒有明顯的階段劃分,對應(yīng)噴泉式模型:式模型:演化演化維護(hù)維護(hù)測試測試實(shí)現(xiàn)實(shí)現(xiàn)設(shè)計(jì)設(shè)計(jì)分析分析 體現(xiàn)認(rèn)識事物的循環(huán)迭代性體現(xiàn)認(rèn)識事物的循環(huán)迭代性 強(qiáng)調(diào)開發(fā)活動(dòng)的無間隙性(無強(qiáng)調(diào)開發(fā)活動(dòng)的無間隙性(無明顯的階段劃分)明顯的階段劃分) 強(qiáng)調(diào)開發(fā)活動(dòng)的并發(fā)性強(qiáng)調(diào)開發(fā)活動(dòng)的并發(fā)性 面向?qū)ο蠓治龌顒?dòng)面向?qū)ο蠓治龌顒?dòng)-針對問題域和系統(tǒng)責(zé)
21、任,不考慮針對問題域和系統(tǒng)責(zé)任,不考慮與實(shí)現(xiàn)有關(guān)的因素,建立獨(dú)立于實(shí)現(xiàn)的與實(shí)現(xiàn)有關(guān)的因素,建立獨(dú)立于實(shí)現(xiàn)的OOA模型。模型。 面向?qū)ο笤O(shè)計(jì)活動(dòng)面向?qū)ο笤O(shè)計(jì)活動(dòng)-考慮與實(shí)現(xiàn)有關(guān)的問題,建立針考慮與實(shí)現(xiàn)有關(guān)的問題,建立針對具體實(shí)現(xiàn)的對具體實(shí)現(xiàn)的OOD模型,設(shè)計(jì)內(nèi)容包括:模型,設(shè)計(jì)內(nèi)容包括: 1)根據(jù)實(shí)現(xiàn)語言對類(屬性與操作)進(jìn)行描述)根據(jù)實(shí)現(xiàn)語言對類(屬性與操作)進(jìn)行描述 2)人機(jī)交互界面設(shè)計(jì))人機(jī)交互界面設(shè)計(jì) 3)系統(tǒng)控制部分的設(shè)計(jì))系統(tǒng)控制部分的設(shè)計(jì) 4)數(shù)據(jù)管理部分的設(shè)計(jì))數(shù)據(jù)管理部分的設(shè)計(jì) 5)系統(tǒng)構(gòu)件部署)系統(tǒng)構(gòu)件部署問題域問題域 部分部分 詳細(xì)說明詳細(xì)說明控制驅(qū)動(dòng)部分控制驅(qū)動(dòng)部分人機(jī)交
22、互部分人機(jī)交互部分?jǐn)?shù)據(jù)管理部分?jǐn)?shù)據(jù)管理部分行為圖與包圖行為圖與包圖類圖類圖用況圖用況圖詳詳細(xì)細(xì)說說明明面向?qū)ο笤O(shè)計(jì)準(zhǔn)則面向?qū)ο笤O(shè)計(jì)準(zhǔn)則 以設(shè)計(jì)元素的耦合性、內(nèi)聚性以及復(fù)用性為主以設(shè)計(jì)元素的耦合性、內(nèi)聚性以及復(fù)用性為主要準(zhǔn)則要準(zhǔn)則 耦合性耦合性 衡量耦合度的兩個(gè)方面:衡量耦合度的兩個(gè)方面:成分之間的信息傳輸量成分之間的信息傳輸量成分之間傳遞信息的復(fù)雜程度成分之間傳遞信息的復(fù)雜程度 交互耦合:成分之間通過消息交互,越松散越好交互耦合:成分之間通過消息交互,越松散越好 繼承耦合:成分之間有繼承關(guān)系,越緊密越好繼承耦合:成分之間有繼承關(guān)系,越緊密越好 內(nèi)聚性內(nèi)聚性 操作內(nèi)聚:完成單一功能的操作的內(nèi)聚最
23、高操作內(nèi)聚:完成單一功能的操作的內(nèi)聚最高 類內(nèi)聚:類中沒有多余的屬性和操作,且所有屬性和類內(nèi)聚:類中沒有多余的屬性和操作,且所有屬性和操作應(yīng)該是自身的責(zé)任,每個(gè)操作也是高內(nèi)聚的。操作應(yīng)該是自身的責(zé)任,每個(gè)操作也是高內(nèi)聚的。 復(fù)用性復(fù)用性 執(zhí)行代碼級的復(fù)用執(zhí)行代碼級的復(fù)用 源代碼級的復(fù)用和繼承源代碼級的復(fù)用和繼承 分析和設(shè)計(jì)結(jié)果的復(fù)用和繼承分析和設(shè)計(jì)結(jié)果的復(fù)用和繼承 體系結(jié)構(gòu)的復(fù)用和繼承(設(shè)計(jì)模式)體系結(jié)構(gòu)的復(fù)用和繼承(設(shè)計(jì)模式) 清晰準(zhǔn)則清晰準(zhǔn)則統(tǒng)一的用語統(tǒng)一的用語一致的約定一致的約定消息模板要少消息模板要少類責(zé)任表達(dá)要明確類責(zé)任表達(dá)要明確獨(dú)立處理算法和策略算法獨(dú)立處理算法和策略算法繼承關(guān)系層
24、次不宜過深繼承關(guān)系層次不宜過深 類簡潔性準(zhǔn)則類簡潔性準(zhǔn)則避免過多的屬性,使用繼承保持屬性量避免過多的屬性,使用繼承保持屬性量對象間協(xié)作最小化對象間協(xié)作最小化避免過多的操作避免過多的操作保持操作的高內(nèi)聚保持操作的高內(nèi)聚保持內(nèi)部成員的私有性保持內(nèi)部成員的私有性(包括屬性和操作)(包括屬性和操作) 其他設(shè)計(jì)準(zhǔn)則其他設(shè)計(jì)準(zhǔn)則3.2 3.2 問題域設(shè)計(jì)問題域設(shè)計(jì) 3.2.1 3.2.1 引入可復(fù)用類引入可復(fù)用類 3.2.2 3.2.2 增設(shè)一般類增設(shè)一般類 3.2.3 3.2.3 調(diào)整繼承關(guān)系調(diào)整繼承關(guān)系 3.2.4 3.2.4 調(diào)整多態(tài)性調(diào)整多態(tài)性 3.2.5 3.2.5 為提高性能進(jìn)行類調(diào)整為提高性
25、能進(jìn)行類調(diào)整 3.2.6 3.2.6 為對象存儲(chǔ)增補(bǔ)屬性與操作為對象存儲(chǔ)增補(bǔ)屬性與操作 3.2.7 3.2.7 關(guān)聯(lián)的實(shí)現(xiàn)關(guān)聯(lián)的實(shí)現(xiàn) 3.2.8 3.2.8 調(diào)整屬性調(diào)整屬性 3.2.9 3.2.9 設(shè)計(jì)算法設(shè)計(jì)算法 3.2.10 3.2.10 定義對象的可訪問性定義對象的可訪問性3.2.1 3.2.1 引入可引入可復(fù)用類復(fù)用類目標(biāo)目標(biāo)-盡可能地使用可以利用的復(fù)用成分。盡可能地使用可以利用的復(fù)用成分。例:已經(jīng)存在圖書類,在書店管理系統(tǒng)和圖書館例:已經(jīng)存在圖書類,在書店管理系統(tǒng)和圖書館系統(tǒng)中可以復(fù)用它。系統(tǒng)中可以復(fù)用它。 圖書圖書零售圖書零售圖書館藏圖書館藏圖書書店系統(tǒng)書店系統(tǒng)圖書館系統(tǒng)圖書館系
26、統(tǒng) 可可直接利用:把可復(fù)用的類加到問題域并做標(biāo)記。直接利用:把可復(fù)用的類加到問題域并做標(biāo)記。 只滿足部分利用:把可復(fù)用類加到問題域,用子類繼承只滿足部分利用:把可復(fù)用類加到問題域,用子類繼承并重新定義或新添操作。并重新定義或新添操作。 只有部分可以利用:把可復(fù)用的類加到問題域,刪除多只有部分可以利用:把可復(fù)用的類加到問題域,刪除多余部分成為新的類。余部分成為新的類。注:注:重新重新規(guī)劃問題域中的復(fù)用類與原有類之間的關(guān)聯(lián)。規(guī)劃問題域中的復(fù)用類與原有類之間的關(guān)聯(lián)。 復(fù)用方法復(fù)用方法 車輛車輛序號序號顏色顏色樣式樣式出廠日期出廠日期序號認(rèn)證序號認(rèn)證()() 車輛車輛序號序號廠商廠商樣式樣式序號認(rèn)證(
27、)序號認(rèn)證()例:例:新建的類新建的類已有的類已有的類換名字換名字3.2.2 3.2.2 增設(shè)一般類增設(shè)一般類 目標(biāo)目標(biāo)-把具有相同操作和屬性的類組織在一起把具有相同操作和屬性的類組織在一起形成超類,建立繼承關(guān)系。形成超類,建立繼承關(guān)系。 處理策略處理策略 1)若子類中不需要父類中的某些操作,可在子類中重)若子類中不需要父類中的某些操作,可在子類中重新聲明該操作為無方法的操作。新聲明該操作為無方法的操作。 2)若在不同的類中的操作具有相同語義名字,但方法)若在不同的類中的操作具有相同語義名字,但方法不同,可利用多態(tài)機(jī)制,在一般類中為該操作做一個(gè)不同,可利用多態(tài)機(jī)制,在一般類中為該操作做一個(gè)虛函
28、數(shù)。虛函數(shù)。 3)若繼承來的操作執(zhí)行效果相同,只是缺少參數(shù)。在)若繼承來的操作執(zhí)行效果相同,只是缺少參數(shù)。在父類操作中加入必要的參數(shù),執(zhí)行時(shí)忽略該參數(shù)。父類操作中加入必要的參數(shù),執(zhí)行時(shí)忽略該參數(shù)。3.2.3 3.2.3 調(diào)整調(diào)整繼承關(guān)系繼承關(guān)系1)對不支持多繼承的編程語言,需要將多繼承)對不支持多繼承的編程語言,需要將多繼承關(guān)系調(diào)整為單繼承關(guān)系關(guān)系調(diào)整為單繼承關(guān)系 方法方法1:用聚合關(guān)系將多繼承關(guān)系轉(zhuǎn)換為單繼承關(guān)系:用聚合關(guān)系將多繼承關(guān)系轉(zhuǎn)換為單繼承關(guān)系手機(jī)手機(jī)照相機(jī)照相機(jī)照相手機(jī)照相手機(jī)手機(jī)手機(jī)照相機(jī)照相機(jī)照相手機(jī)照相手機(jī)方法方法1例例1:學(xué)生學(xué)生職工職工在職學(xué)生在職學(xué)生人員人員學(xué)生學(xué)生職工
29、職工身份身份人員人員方法方法1例例2:身份身份= 在職學(xué)生在職學(xué)生 = 學(xué)生學(xué)生 = 職工職工方法方法2例例1:學(xué)生學(xué)生職工職工人員人員在職學(xué)生在職學(xué)生學(xué)生學(xué)生在職學(xué)生在職學(xué)生人員人員職工職工學(xué)生信息學(xué)生信息職工信息職工信息方法方法2:提升多繼承子類的層次,將多繼承轉(zhuǎn)換為單繼承:提升多繼承子類的層次,將多繼承轉(zhuǎn)換為單繼承方法方法2例例2:學(xué)生學(xué)生職工職工在職學(xué)生在職學(xué)生方法方法1:取消繼承:取消繼承方法方法2:改為聚合:改為聚合手機(jī)手機(jī)照相機(jī)照相機(jī)手機(jī)照相機(jī)手機(jī)照相機(jī)手機(jī)手機(jī)照相機(jī)照相機(jī)2)對不支持繼承的編程語言,需要將繼承關(guān)系)對不支持繼承的編程語言,需要將繼承關(guān)系取消。取消。手機(jī)照相機(jī)手機(jī)
30、照相機(jī).4 對多態(tài)性的調(diào)整對多態(tài)性的調(diào)整 若編程語言不支持多態(tài),需修改與相關(guān)的屬性和若編程語言不支持多態(tài),需修改與相關(guān)的屬性和 操作的名字,并根據(jù)情況,重新進(jìn)行對象分類。操作的名字,并根據(jù)情況,重新進(jìn)行對象分類。多邊形多邊形線條色線條色線形線形邊數(shù)邊數(shù)頂點(diǎn)坐標(biāo)頂點(diǎn)坐標(biāo)繪圖繪圖填充填充正多邊形正多邊形*頂點(diǎn)坐標(biāo)頂點(diǎn)坐標(biāo)*繪圖繪圖矩形矩形 邊數(shù)邊數(shù)*頂點(diǎn)坐標(biāo)頂點(diǎn)坐標(biāo)*繪圖繪圖多邊形多邊形線條色線條色線形線形填充填充不規(guī)則多邊形不規(guī)則多邊形邊數(shù)邊數(shù)頂點(diǎn)坐標(biāo)頂點(diǎn)坐標(biāo)繪圖繪圖正多邊形正多邊形頂點(diǎn)坐標(biāo)頂點(diǎn)坐標(biāo)繪圖繪圖矩形矩形頂點(diǎn)坐標(biāo)頂點(diǎn)坐標(biāo)繪圖繪圖 例:例:*表示多態(tài)表示多態(tài)新增的類新增的
31、類virtual 表示不用表示不用3.2.5 3.2.5 為為提高性能進(jìn)行類調(diào)整提高性能進(jìn)行類調(diào)整 影響系統(tǒng)性能的因素影響系統(tǒng)性能的因素 為提高性能可以做的處理:為提高性能可以做的處理: 1)調(diào)整對象的分布)調(diào)整對象的分布 2)增加保存中間結(jié)果的屬性或類)增加保存中間結(jié)果的屬性或類 3)調(diào)整系統(tǒng)功能的并發(fā)度)調(diào)整系統(tǒng)功能的并發(fā)度 4)合并通信頻繁的類)合并通信頻繁的類 5)縮小類范圍,分解復(fù)雜對象)縮小類范圍,分解復(fù)雜對象數(shù)據(jù)傳輸時(shí)間數(shù)據(jù)傳輸時(shí)間數(shù)據(jù)存取時(shí)間數(shù)據(jù)存取時(shí)間數(shù)據(jù)處理時(shí)間數(shù)據(jù)處理時(shí)間1)調(diào)整對象的分布:)調(diào)整對象的分布: 頻繁交換信息的對象,盡量集中在一個(gè)物理空間處頻繁交換信息的對象
32、,盡量集中在一個(gè)物理空間處理。例如:理。例如:2)增加保存中間結(jié)果的屬性或類)增加保存中間結(jié)果的屬性或類 經(jīng)常重復(fù)的某些處理,要設(shè)置中間存儲(chǔ)。例如:經(jīng)常重復(fù)的某些處理,要設(shè)置中間存儲(chǔ)。例如:對月報(bào)表的處理,通常存儲(chǔ)周統(tǒng)計(jì)信息;對上半年與對月報(bào)表的處理,通常存儲(chǔ)周統(tǒng)計(jì)信息;對上半年與下半年的增長率的計(jì)算,通常要累計(jì)階段性的增長率,下半年的增長率的計(jì)算,通常要累計(jì)階段性的增長率,不要每次都從頭計(jì)算。不要每次都從頭計(jì)算。將與用戶頻繁交互的操作界面對象集中在前端客戶機(jī);將與用戶頻繁交互的操作界面對象集中在前端客戶機(jī);將與數(shù)據(jù)庫頻繁交換信息的業(yè)務(wù)處理邏輯對象集中在將與數(shù)據(jù)庫頻繁交換信息的業(yè)務(wù)處理邏輯對象
33、集中在主機(jī)服務(wù)器。主機(jī)服務(wù)器。流速調(diào)節(jié)器流速調(diào)節(jié)器指定流速指定流速流速調(diào)節(jié)流速調(diào)節(jié)流速探測器流速探測器當(dāng)前流速當(dāng)前流速流速探測流速探測取當(dāng)前流速取當(dāng)前流速流速控制器流速控制器指定流速指定流速當(dāng)前流速當(dāng)前流速流速調(diào)節(jié)流速調(diào)節(jié)流速探測流速探測例如:合并流速探測器和流速調(diào)節(jié)器兩個(gè)類,減少頻例如:合并流速探測器和流速調(diào)節(jié)器兩個(gè)類,減少頻繁通訊,提高效率。繁通訊,提高效率。4)合并通信頻繁的類)合并通信頻繁的類原設(shè)計(jì):原設(shè)計(jì):1:n1對應(yīng)對應(yīng)5)縮小類范圍,分解復(fù)雜對象)縮小類范圍,分解復(fù)雜對象例例1:將范圍較大的類分解為較具體的類,可以使復(fù)雜處:將范圍較大的類分解為較具體的類,可以使復(fù)雜處理簡單化。理
34、簡單化。幾何圖象幾何圖象多邊形多邊形橢圓橢圓扇形扇形例例2 2:用聚合關(guān)系描述分解的復(fù)雜對象,可以分別應(yīng)對不用聚合關(guān)系描述分解的復(fù)雜對象,可以分別應(yīng)對不同的情況。同的情況。禎禎顯示顯示背景背景顯示顯示前景前景顯示顯示 存儲(chǔ)對象是指永久性對象,為了存儲(chǔ)永久性對存儲(chǔ)對象是指永久性對象,為了存儲(chǔ)永久性對象,需要在對象類中增補(bǔ)必要的屬性與操作象,需要在對象類中增補(bǔ)必要的屬性與操作 方法方法1: 在作為永久對象的類屬性中增加類名,并增加在作為永久對象的類屬性中增加類名,并增加存儲(chǔ)和檢索操作,使類的對象可以自己存儲(chǔ)或檢索自存儲(chǔ)和檢索操作,使類的對象可以自己存儲(chǔ)或檢索自己。己。永久存儲(chǔ)類永久存儲(chǔ)類類名類名(
35、對應(yīng)數(shù)據(jù)庫表名對應(yīng)數(shù)據(jù)庫表名)存儲(chǔ)對象存儲(chǔ)對象( )檢索對象檢索對象( )3.2.6 3.2.6 為對象存儲(chǔ)增補(bǔ)屬性與操作為對象存儲(chǔ)增補(bǔ)屬性與操作方法方法2: 設(shè)立獨(dú)立的數(shù)據(jù)管理對象類,負(fù)責(zé)問題域中所設(shè)立獨(dú)立的數(shù)據(jù)管理對象類,負(fù)責(zé)問題域中所有永久對象的存儲(chǔ)和檢索。有永久對象的存儲(chǔ)和檢索。存儲(chǔ)數(shù)據(jù)管理器存儲(chǔ)數(shù)據(jù)管理器類名類名(對應(yīng)各個(gè)數(shù)據(jù)庫表對應(yīng)各個(gè)數(shù)據(jù)庫表)存儲(chǔ)對象存儲(chǔ)對象檢索對象檢索對象方法方法3: 利用面向?qū)ο髷?shù)據(jù)庫存儲(chǔ)和檢索永久對象。利用面向?qū)ο髷?shù)據(jù)庫存儲(chǔ)和檢索永久對象。3.2.7 3.2.7 關(guān)聯(lián)的轉(zhuǎn)化與實(shí)現(xiàn)關(guān)聯(lián)的轉(zhuǎn)化與實(shí)現(xiàn) 關(guān)聯(lián)的轉(zhuǎn)化:關(guān)聯(lián)的轉(zhuǎn)化: 1 1)把關(guān)聯(lián)類和)把關(guān)聯(lián)類和N
36、N元關(guān)聯(lián)轉(zhuǎn)化為二元關(guān)聯(lián)元關(guān)聯(lián)轉(zhuǎn)化為二元關(guān)聯(lián) 2 2)把多對多關(guān)聯(lián)轉(zhuǎn)化為一對多關(guān)聯(lián))把多對多關(guān)聯(lián)轉(zhuǎn)化為一對多關(guān)聯(lián)供貨商供貨商客戶客戶1.*供貨商供貨商客戶客戶供需合同供需合同賣方賣方買方買方1.*11例:例: 關(guān)聯(lián)的實(shí)現(xiàn)關(guān)聯(lián)的實(shí)現(xiàn) 1)聚合實(shí)現(xiàn):在整體類中,加入部分類類型的屬性)聚合實(shí)現(xiàn):在整體類中,加入部分類類型的屬性 或指針屬性或指針屬性 汽車汽車型號型號顏色顏色牌照牌照 底盤底盤 發(fā)動(dòng)機(jī)發(fā)動(dòng)機(jī) 車輪車輪 車廂車廂底盤底盤發(fā)動(dòng)機(jī)發(fā)動(dòng)機(jī)車輪車輪*車廂車廂例:例:2)關(guān)聯(lián)實(shí)現(xiàn):)關(guān)聯(lián)實(shí)現(xiàn): 單項(xiàng)關(guān)聯(lián):用關(guān)聯(lián)對象作為指針屬性的類型,加入源單項(xiàng)關(guān)聯(lián):用關(guān)聯(lián)對象作為指針屬性的類型,加入源 對象類;雙向
37、關(guān)聯(lián):在兩端都設(shè)置對方類型的指針屬對象類;雙向關(guān)聯(lián):在兩端都設(shè)置對方類型的指針屬性性 關(guān)聯(lián)重?cái)?shù)為關(guān)聯(lián)重?cái)?shù)為1:設(shè)立一個(gè)指針對象;關(guān)聯(lián)重?cái)?shù)大于:設(shè)立一個(gè)指針對象;關(guān)聯(lián)重?cái)?shù)大于1:設(shè)立指針集合設(shè)立指針集合 機(jī)場機(jī)場城市城市. 飛機(jī)飛機(jī)航班號航班號機(jī)型機(jī)型. 學(xué)生學(xué)生學(xué)號學(xué)號姓名姓名 課程課程名稱名稱學(xué)分學(xué)分著陸城市機(jī)場著陸城市機(jī)場*例:例:1.n0.n著陸著陸有有停放的飛機(jī)停放的飛機(jī)*1.n0.n有有課程課程*授課教師授課教師姓名姓名院系單位院系單位1.n1.n有有課程課程*授課教師授課教師*講授講授3.2.8 3.2.8 調(diào)整屬性調(diào)整屬性學(xué)生學(xué)生姓名姓名學(xué)號學(xué)號籍貫籍貫學(xué)生學(xué)生姓名姓名學(xué)號學(xué)號籍
38、貫籍貫國家國家省省縣縣驗(yàn)證驗(yàn)證11 屬性是組合數(shù)據(jù)項(xiàng)時(shí),可能需要對屬性進(jìn)行調(diào)整屬性是組合數(shù)據(jù)項(xiàng)時(shí),可能需要對屬性進(jìn)行調(diào)整 按照屬性的語法,明確標(biāo)出屬性的完整內(nèi)容按照屬性的語法,明確標(biāo)出屬性的完整內(nèi)容 包括:包括:可見性可見性 屬性名稱屬性名稱 :類型類型 =初始值初始值 性質(zhì)性質(zhì)例例: 屬性的性質(zhì),指屬性范圍的限定。屬性的性質(zhì),指屬性范圍的限定。 例:例:姓名姓名:420字符字符;學(xué)號;學(xué)號:8位數(shù)字位數(shù)字; 成績總和成績總和read:RETUNS sensor.ID,sensor.status;MESSAGE(motion.sensor)-set: SENDS sensor.ID,senso
39、r.status;用結(jié)構(gòu)化自然語言描述協(xié)議例用結(jié)構(gòu)化自然語言描述協(xié)議例系統(tǒng)設(shè)置協(xié)議:系統(tǒng)設(shè)置協(xié)議:MESSAGE(system)- program: 可細(xì)化為:可細(xì)化為:MESSAGE(system)-install:telephone number MESSAGE(system)-define:alarm time MESSAGE(system)-build:sensor table MESSAGE(system)-load:password Procedure SafeHome software PACKAGE system IS TYPE system data PORC install
40、,define,build,load PROC display,reset,query,modify,call PRIVATE PACKAGE BODY system IS PRIVATE system.id IS STRING LENGTH verification phone.number, telephone.number, .IS STRING LENGTH (8); sensor.table DEFINED sensor.type IS STRING LENGTH (2), sensor.number, alarm.threshold IS NUMBER; PUBLIC PORC i
41、nstall RECEIVES (telephone.number) design detail for operation install . (多個(gè)操作描述)(多個(gè)操作描述) END system.END SafeHome softwareTYPE:數(shù)據(jù)類型說明PROC:過程說明數(shù)數(shù)據(jù)據(jù)對對象象定定義義用結(jié)構(gòu)化自然語言描述算法例:用結(jié)構(gòu)化自然語言描述算法例:SafeHome 高高層構(gòu)件設(shè)計(jì)描述(類似層構(gòu)件設(shè)計(jì)描述(類似Ada的偽碼)的偽碼)操作部分描述操作部分描述PROC read (sensor.id, sensor.status:OUT) GET(sensor,exception:se
42、nsor.status:= error)raw.signal; raw.signal IS BIT STRING IF(erface.type = “S” & alarm.characteristics.signal.type = “B” THEN COVERT raw.signal TO internal.signal.level; IF internal.signal.level threshold THEN sensor.status:=“event”; ELSE sensor.status:= “no event”; ENDIF ELSE processing
43、for other type of S interfaces would be specified ENDIF RETURN sensor.id, sensor.status;END read 定義對象:在算法設(shè)計(jì)中,根據(jù)實(shí)現(xiàn)條件,按定義對象:在算法設(shè)計(jì)中,根據(jù)實(shí)現(xiàn)條件,按以下方式以下方式 定義對象:定義對象: 內(nèi)存中的對象:內(nèi)存中的對象: 用相應(yīng)的類定義,可以一個(gè)對象定義一個(gè)變量,也可用相應(yīng)的類定義,可以一個(gè)對象定義一個(gè)變量,也可以定義對象數(shù)組,包括靜態(tài)聲明。以定義對象數(shù)組,包括靜態(tài)聲明。 外存上的對象:外存上的對象:(永久對象)(永久對象) 設(shè)置專門的操作,按照規(guī)定的格式,從外存中讀取對設(shè)
44、置專門的操作,按照規(guī)定的格式,從外存中讀取對象;前提是有對應(yīng)的保存永久對象的操作。象;前提是有對應(yīng)的保存永久對象的操作。3.2.10 3.2.10 定義對象及可訪問性定義對象及可訪問性 類之間存在依賴,表明對象間的訪問有如下情況:類之間存在依賴,表明對象間的訪問有如下情況: 1)類的對象作為參數(shù)傳遞)類的對象作為參數(shù)傳遞 例例: vector multiply( matrix& m, vector& v, int n) 2)類對象被聲明為操作的局部成分)類對象被聲明為操作的局部成分 例例: outer_class : write( ) inner_class g ; g.write( ) ;
45、3)類對象被聲明為全局的)類對象被聲明為全局的 例例: sensor s_control(“cc”); main( ) 類之間存在關(guān)聯(lián),也就是對象之間存在鏈,表明對類之間存在關(guān)聯(lián),也就是對象之間存在鏈,表明對 象間可以訪問,且可見性為象間可以訪問,且可見性為“公共公共”的。的。 根據(jù)類的關(guān)聯(lián)考慮對象的可訪問性根據(jù)類的關(guān)聯(lián)考慮對象的可訪問性3.3 3.3 人機(jī)交互設(shè)計(jì)人機(jī)交互設(shè)計(jì)3.3.1 3.3.1 人機(jī)交互人機(jī)交互設(shè)計(jì)原則設(shè)計(jì)原則界面設(shè)計(jì)黃金規(guī)則界面設(shè)計(jì)黃金規(guī)則至于用戶的控制之下至于用戶的控制之下減少用戶的記憶負(fù)擔(dān)減少用戶的記憶負(fù)擔(dān)保持界面風(fēng)格一致保持界面風(fēng)格一致界面設(shè)計(jì)問題界面設(shè)計(jì)問題響應(yīng)
46、時(shí)間問題響應(yīng)時(shí)間問題聯(lián)機(jī)幫助問題聯(lián)機(jī)幫助問題錯(cuò)誤提示問題錯(cuò)誤提示問題命令操作問題命令操作問題設(shè)計(jì)人員設(shè)計(jì)人員設(shè)計(jì)設(shè)計(jì)界面界面設(shè)計(jì)目標(biāo)設(shè)計(jì)目標(biāo)用戶用戶學(xué)習(xí)學(xué)習(xí)評判評判經(jīng)驗(yàn)與需求經(jīng)驗(yàn)與需求反饋反饋啟發(fā)啟發(fā)3.3.2 3.3.2 人機(jī)交互的人機(jī)交互的設(shè)計(jì)過程設(shè)計(jì)過程 設(shè)計(jì)人員與用戶協(xié)作的重復(fù)過程設(shè)計(jì)人員與用戶協(xié)作的重復(fù)過程3.3.3 3.3.3 人機(jī)交互的分析策略人機(jī)交互的分析策略1) 通過與系統(tǒng)交互的參與者進(jìn)行分析通過與系統(tǒng)交互的參與者進(jìn)行分析 列舉所有的人員與參與者列舉所有的人員與參與者 對人員與參與者進(jìn)行調(diào)查研究對人員與參與者進(jìn)行調(diào)查研究 區(qū)分人員類型區(qū)分人員類型 統(tǒng)計(jì)(或估算)出各類人員的比
47、例統(tǒng)計(jì)(或估算)出各類人員的比例 了解各類人員的主觀需求了解各類人員的主觀需求 按照一定的準(zhǔn)則進(jìn)行折中與均衡按照一定的準(zhǔn)則進(jìn)行折中與均衡2) 通過用況進(jìn)行分析通過用況進(jìn)行分析 分析用況腳本陳述,劃分參與者行為和系統(tǒng)行為分析用況腳本陳述,劃分參與者行為和系統(tǒng)行為 分離出每個(gè)段落包含的輸入或輸出分離出每個(gè)段落包含的輸入或輸出 去掉與輸入或輸出無關(guān)的陳述去掉與輸入或輸出無關(guān)的陳述 包括:參與者或系統(tǒng)自身的行為,以及一些控制行為包括:參與者或系統(tǒng)自身的行為,以及一些控制行為收款(usecase)輸入本次收款命令; 收款準(zhǔn)備,應(yīng)收款總數(shù)置為0 輸出提示信息;for 顧客選購的每種商品 do 輸入商品編號
48、; if 此種商品多于一件 then 輸入商品數(shù)量 end if; 檢索商品名稱及單價(jià); 貨架商品數(shù)減去售出數(shù); if 貨架數(shù)低于下限 then 通知供貨員請求上貨 end if; 計(jì)算商品總價(jià)并 打印編號、名稱、數(shù)量、單價(jià)和總價(jià); 總價(jià)累加到應(yīng)收款總數(shù);end for; 打印應(yīng)收款總數(shù);輸入顧客交來的款數(shù); 計(jì)算應(yīng)找回的款數(shù); 打印以上兩個(gè)數(shù)目;收款(人機(jī)交互)輸入開始本次收款命令; 輸出提示信息;for 顧客選購的每種商品 輸入商品編號; if 此種商品多于一件 then 輸入商品數(shù)量end if; 打印商品編號名稱、數(shù)量、單價(jià)和總價(jià);end for; 打印應(yīng)收款總數(shù);輸入顧客交來的款數(shù);
49、 打印交款數(shù)及找回款數(shù);通過用況分析人機(jī)交互例通過用況分析人機(jī)交互例3.3.4 3.3.4 面向?qū)ο蟮拿嫦驅(qū)ο蟮娜藱C(jī)交互設(shè)計(jì)人機(jī)交互設(shè)計(jì)1)確定輸入設(shè)備)確定輸入設(shè)備2)設(shè)計(jì)輸入界面對象)設(shè)計(jì)輸入界面對象3)輸入步驟細(xì)化輸入步驟細(xì)化 對話框設(shè)計(jì)要點(diǎn)對話框設(shè)計(jì)要點(diǎn):(a)使用有意義且易理解的標(biāo)題;)使用有意義且易理解的標(biāo)題;(b)按邏輯排序輸入框;)按邏輯排序輸入框;(c)允許編輯文本型輸入框;)允許編輯文本型輸入框;(d)對輸入錯(cuò)誤有保證措施,出錯(cuò)時(shí)有提示;)對輸入錯(cuò)誤有保證措施,出錯(cuò)時(shí)有提示;(e)明確標(biāo)出輸入框的可選和必選;)明確標(biāo)出輸入框的可選和必選;(f)有必要的輸入框解釋(如在)有必
50、要的輸入框解釋(如在Windows的狀態(tài)條上)。的狀態(tài)條上)。菜單菜單對話框?qū)υ捒?) 設(shè)計(jì)輸入設(shè)計(jì)輸入 檢查輸入的內(nèi)容:檢查輸入的內(nèi)容:(a)輸入框組合的完備性:確保所有必要的輸入框都要被輸入)輸入框組合的完備性:確保所有必要的輸入框都要被輸入(b)數(shù)據(jù)的有效范圍控制:檢查所輸入數(shù)據(jù)類型)數(shù)據(jù)的有效范圍控制:檢查所輸入數(shù)據(jù)類型(c)數(shù)據(jù)有效位數(shù)的控制)數(shù)據(jù)有效位數(shù)的控制:檢查所輸入數(shù)據(jù)值范圍檢查所輸入數(shù)據(jù)值范圍2) 設(shè)計(jì)輸出設(shè)計(jì)輸出設(shè)計(jì)相應(yīng)的設(shè)備類及接口操作設(shè)計(jì)相應(yīng)的設(shè)備類及接口操作1)確定輸出設(shè)備)確定輸出設(shè)備2)確定輸出的形式和內(nèi)容)確定輸出的形式和內(nèi)容3)輸出步驟的細(xì)化)輸出步驟的細(xì)化
51、設(shè)備驅(qū)動(dòng)設(shè)備驅(qū)動(dòng)用戶操作界面用戶操作界面打印機(jī)打印機(jī)顯示器顯示器繪圖儀繪圖儀外存外存 設(shè)計(jì)相應(yīng)的輸出的形式類設(shè)計(jì)相應(yīng)的輸出的形式類輸出設(shè)備輸出設(shè)備文本文本表格表格圖形圖形圖像圖像 聲音聲音輸出的內(nèi)容輸出的內(nèi)容提示信息提示信息運(yùn)算結(jié)果運(yùn)算結(jié)果處理反饋處理反饋界面設(shè)計(jì)的指導(dǎo)性策略界面設(shè)計(jì)的指導(dǎo)性策略1)窗口作為基本類窗口作為基本類;2)窗口類的聚合關(guān)系)窗口類的聚合關(guān)系 按命令的邏輯層次在窗口中部署元素,這些元素作按命令的邏輯層次在窗口中部署元素,這些元素作為窗口類的部分類,并與窗口類形成聚合關(guān)系。為窗口類的部分類,并與窗口類形成聚合關(guān)系。3)窗口類形成繼承關(guān)系)窗口類形成繼承關(guān)系 發(fā)現(xiàn)窗口類間的
52、共性以及部件類間的共性,定義較發(fā)現(xiàn)窗口類間的共性以及部件類間的共性,定義較一般的窗口類和部件類,分別形成窗口類及部件間一般的窗口類和部件類,分別形成窗口類及部件間的繼承關(guān)系。的繼承關(guān)系。窗口中的元素:窗口中的元素:菜單菜單工作區(qū)工作區(qū)對話框?qū)υ捒虬存I按鍵4)窗口的靜態(tài)特征)窗口的靜態(tài)特征 用屬性表示窗口或部件的靜態(tài)特征,如尺寸、位置、用屬性表示窗口或部件的靜態(tài)特征,如尺寸、位置、顏色和選項(xiàng)等。顏色和選項(xiàng)等。5)窗口的動(dòng)態(tài)特征)窗口的動(dòng)態(tài)特征 用操作表示窗口或部件的動(dòng)態(tài)特征,如移動(dòng)或滾動(dòng)用操作表示窗口或部件的動(dòng)態(tài)特征,如移動(dòng)或滾動(dòng)等。如果使用界面生成工具,就不需要對這樣的操等。如果使用界面生成工
53、具,就不需要對這樣的操作進(jìn)行設(shè)計(jì)。作進(jìn)行設(shè)計(jì)。6)界面類之間的關(guān)聯(lián))界面類之間的關(guān)聯(lián) 在界面元素之間發(fā)現(xiàn)聯(lián)系,建立關(guān)聯(lián)??衫L制用戶在界面元素之間發(fā)現(xiàn)聯(lián)系,建立關(guān)聯(lián)??衫L制用戶與系統(tǒng)交互的順序圖。與系統(tǒng)交互的順序圖。 人機(jī)界面只負(fù)責(zé)輸入、輸出和窗口更新工作。所有問人機(jī)界面只負(fù)責(zé)輸入、輸出和窗口更新工作。所有問題域的處理請求,都轉(zhuǎn)發(fā)給問題域,在界面對象中,題域的處理請求,都轉(zhuǎn)發(fā)給問題域,在界面對象中,不進(jìn)行應(yīng)用邏輯或業(yè)務(wù)的處理。不進(jìn)行應(yīng)用邏輯或業(yè)務(wù)的處理。 界面部分對象總是主動(dòng)發(fā)起與問題域部分的請求,問界面部分對象總是主動(dòng)發(fā)起與問題域部分的請求,問題域部分,只對界面對象的請求進(jìn)行響應(yīng)。題域部分,只
54、對界面對象的請求進(jìn)行響應(yīng)。 界面與問題域之間通過接口通信,或者界面與問題域之間通過接口通信,或者在界面類與問在界面類與問題域類之間增設(shè)控制類(題域類之間增設(shè)控制類(“出版出版-訂閱訂閱”模式),模式),以以減小耦合。減小耦合。7)建立界面類與問題域類之間的聯(lián)系。)建立界面類與問題域類之間的聯(lián)系。請求請求回應(yīng)回應(yīng)問題域部分問題域部分人機(jī)交互部分人機(jī)交互部分接口接口接口接口出版者出版者管理者管理者訂閱者訂閱者1111.*“出版出版-訂閱訂閱”模式:模式:訂閱者向管理者訂閱感興趣的事件,出版者向管理者訂閱者向管理者訂閱感興趣的事件,出版者向管理者發(fā)布事件,管理者維護(hù)出版者和訂閱者之間的映射。發(fā)布事件
55、,管理者維護(hù)出版者和訂閱者之間的映射。一個(gè)管理者可以對應(yīng)多個(gè)訂閱者和出版者,使出版者一個(gè)管理者可以對應(yīng)多個(gè)訂閱者和出版者,使出版者和訂閱者之間解耦。和訂閱者之間解耦??蚣芸蚣軜?biāo)題標(biāo)題接收動(dòng)作接收動(dòng)作()菜單條菜單條名稱名稱菜單菜單名稱名稱進(jìn)入下級菜單進(jìn)入下級菜單()菜單項(xiàng)菜單項(xiàng)名稱名稱點(diǎn)擊點(diǎn)擊()列表列表?xiàng)l目條目條目索引條目索引選擇選擇()按鈕按鈕標(biāo)題標(biāo)題點(diǎn)擊點(diǎn)擊()標(biāo)簽標(biāo)簽文本文本設(shè)置文本設(shè)置文本()界面類圖例:界面類圖例:Cedit復(fù)用復(fù)用人機(jī)交互界面復(fù)用人機(jī)交互界面復(fù)用1)直接復(fù)用)直接復(fù)用CDialog復(fù)用復(fù)用2)間接復(fù)用)間接復(fù)用CMvsvstemDig 界面的兩種復(fù)用方式:界面的兩
56、種復(fù)用方式:3.43.4 控制器驅(qū)動(dòng)部分設(shè)計(jì)控制器驅(qū)動(dòng)部分設(shè)計(jì) 控制驅(qū)動(dòng)設(shè)計(jì)任務(wù):控制驅(qū)動(dòng)設(shè)計(jì)任務(wù): 1)定義并表示系統(tǒng)的的控制流定義并表示系統(tǒng)的的控制流 2)并發(fā)系統(tǒng)中控制流的協(xié)調(diào)設(shè)計(jì)并發(fā)系統(tǒng)中控制流的協(xié)調(diào)設(shè)計(jì) 3)機(jī)器無關(guān)性設(shè)計(jì)(機(jī)器無關(guān)性設(shè)計(jì)(隔離硬件、操作系統(tǒng)、網(wǎng)絡(luò)變化對系統(tǒng)隔離硬件、操作系統(tǒng)、網(wǎng)絡(luò)變化對系統(tǒng)的影響)的影響)順序系統(tǒng):在一個(gè)時(shí)間點(diǎn)上,有且僅有一件事情發(fā)生,順序系統(tǒng):在一個(gè)時(shí)間點(diǎn)上,有且僅有一件事情發(fā)生, 只有一個(gè)控制流。只有一個(gè)控制流。并發(fā)系統(tǒng):在一個(gè)時(shí)間點(diǎn)上,有多件事情發(fā)生。存在多并發(fā)系統(tǒng):在一個(gè)時(shí)間點(diǎn)上,有多件事情發(fā)生。存在多 于一個(gè)的控制流。于一個(gè)的控制流。 控制
57、驅(qū)動(dòng)部分由系統(tǒng)中所有的主動(dòng)類構(gòu)成控制驅(qū)動(dòng)部分由系統(tǒng)中所有的主動(dòng)類構(gòu)成 控制流驅(qū)動(dòng)者是由主動(dòng)類所創(chuàng)建的主動(dòng)對象控制流驅(qū)動(dòng)者是由主動(dòng)類所創(chuàng)建的主動(dòng)對象 控制流:處理機(jī)上順序執(zhí)行的動(dòng)作序列,控制流:處理機(jī)上順序執(zhí)行的動(dòng)作序列,進(jìn)程或進(jìn)程或線程的統(tǒng)稱線程的統(tǒng)稱 進(jìn)程是獨(dú)立功能程序的執(zhí)行過程進(jìn)程是獨(dú)立功能程序的執(zhí)行過程 線程是需要連續(xù)執(zhí)行的操作序列線程是需要連續(xù)執(zhí)行的操作序列 進(jìn)程有獨(dú)立的機(jī)器空間,線程在進(jìn)程內(nèi),競爭進(jìn)程資源進(jìn)程有獨(dú)立的機(jī)器空間,線程在進(jìn)程內(nèi),競爭進(jìn)程資源控制驅(qū)動(dòng)部分設(shè)計(jì)方法控制驅(qū)動(dòng)部分設(shè)計(jì)方法1. 識別控制流:識別控制流: - 系統(tǒng)的分布方案要求多控制流系統(tǒng)的分布方案要求多控制流 每個(gè)
58、分布點(diǎn)至少有一個(gè)控制流,至少擁有一個(gè)主動(dòng)對象。每個(gè)分布點(diǎn)至少有一個(gè)控制流,至少擁有一個(gè)主動(dòng)對象。 - 系統(tǒng)的并發(fā)需求要求多控制流系統(tǒng)的并發(fā)需求要求多控制流 要求多項(xiàng)任務(wù)同時(shí)進(jìn)行,則每項(xiàng)任務(wù)對應(yīng)一個(gè)控制流。要求多項(xiàng)任務(wù)同時(shí)進(jìn)行,則每項(xiàng)任務(wù)對應(yīng)一個(gè)控制流。 - 為實(shí)現(xiàn)方便設(shè)立控制流為實(shí)現(xiàn)方便設(shè)立控制流 通信睡眠控制流和時(shí)鐘驅(qū)動(dòng)控制流通信睡眠控制流和時(shí)鐘驅(qū)動(dòng)控制流 - 分析中定義的主動(dòng)類對象都對應(yīng)獨(dú)立的控制流。分析中定義的主動(dòng)類對象都對應(yīng)獨(dú)立的控制流。 - 為提高性能而增設(shè)的控制流為提高性能而增設(shè)的控制流 設(shè)立高、低、緊急三種優(yōu)先級的控制流。設(shè)立高、低、緊急三種優(yōu)先級的控制流。 - 異常事件處理作為
59、獨(dú)立的控制流異常事件處理作為獨(dú)立的控制流 - 起并發(fā)協(xié)調(diào)作用的控制流起并發(fā)協(xié)調(diào)作用的控制流2. 定義控制流定義控制流1)用主動(dòng)對象表示控制流,給出命名和簡單說明)用主動(dòng)對象表示控制流,給出命名和簡單說明 控制流表示:進(jìn)程控制流表示:進(jìn)程 或或 線程線程2)確保每個(gè)操作屬于一個(gè)控制流)確保每個(gè)操作屬于一個(gè)控制流3)描述時(shí)間驅(qū)動(dòng)控制流的條件)描述時(shí)間驅(qū)動(dòng)控制流的條件4)描述控制流的數(shù)據(jù)出處)描述控制流的數(shù)據(jù)出處 r:ReservationAgentlocation=reservationserverb:KnowledgeSource3. 建??刂屏鏖g的通信建??刂屏鏖g的通信1)同步通信)同步通信
60、調(diào)用者調(diào)用操作,等待接收者接收這個(gè)調(diào)用調(diào)用者調(diào)用操作,等待接收者接收這個(gè)調(diào)用 操作被喚醒,處理后將計(jì)算結(jié)果返回給調(diào)用者操作被喚醒,處理后將計(jì)算結(jié)果返回給調(diào)用者 經(jīng)典同步事例:過程調(diào)用經(jīng)典同步事例:過程調(diào)用2)異步通信)異步通信 調(diào)用者發(fā)送信號后無需等待,繼續(xù)他自己的工作調(diào)用者發(fā)送信號后無需等待,繼續(xù)他自己的工作 接收者在作好準(zhǔn)備后,適當(dāng)?shù)臅r(shí)候去取需要的信息接收者在作好準(zhǔn)備后,適當(dāng)?shù)臅r(shí)候去取需要的信息 經(jīng)典異步事例:郵箱、共享存儲(chǔ)器經(jīng)典異步事例:郵箱、共享存儲(chǔ)器 用順序圖對線程間的通信建模用順序圖對線程間的通信建模c:BlackboadControlerb:KnowledgeSources:Bl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲公司國企員工申請員工勞務(wù)合同范本
- 北京租房合同范本 建委
- 保險(xiǎn)合同糾紛觀后感
- 山東省濟(jì)南市章丘區(qū)第四中學(xué)2024-2025學(xué)年部編版九年級歷史上學(xué)期期中考試題(含答案)
- 《蠶絲非織造布》
- 2025新課改-高中物理-選修第1冊(21講)19 C光的干涉 提升版含答案
- 粘結(jié)稀土永磁材料行業(yè)相關(guān)投資計(jì)劃提議
- 豆干相關(guān)行業(yè)投資規(guī)劃報(bào)告范本
- 聚丙烯(PP)相關(guān)項(xiàng)目投資計(jì)劃書
- 白血病大四講課
- 托育服務(wù)中心項(xiàng)目可行性研究報(bào)告
- 北京科技大學(xué)第二批非教學(xué)科研崗位招考聘用高頻500題難、易錯(cuò)點(diǎn)模擬試題附帶答案詳解
- 國開2024年秋《機(jī)電控制工程基礎(chǔ)》形考任務(wù)3答案
- (高清版)JTGT 5440-2018 公路隧道加固技術(shù)規(guī)范
- 一+《展示國家工程++了解工匠貢獻(xiàn)》(教學(xué)課件)-【中職專用】高二語文精講課堂(高教版2023·職業(yè)模塊)
- 廣州個(gè)人出租房屋稅收管理辦法
- 鐘銳:從技術(shù)到管理—管理技能提升20150319(2)
- 制除鹽水水成本核算
- 新目標(biāo)八年級英語上unit7 will people have robots評課稿
- 【畢業(yè)設(shè)計(jì)】小型油壓機(jī)的液壓系統(tǒng)設(shè)計(jì)
- 鋁合金壓鑄結(jié)構(gòu)設(shè)計(jì)規(guī)范
評論
0/150
提交評論