




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1軟件工程第十一章 面向對象設計2第十一章 面向對象設計11.1 面向對象設計的準則面向對象設計的準則11.2 啟發(fā)規(guī)則啟發(fā)規(guī)則11.3 軟件重用軟件重用11.4 系統分解系統分解11.5 設計問題域子系統設計問題域子系統(主題部件主題部件)11.6 設計人機交互子系統設計人機交互子系統11.7 設計任務管理子系統設計任務管理子系統11.8 設計數據管理子系統設計數據管理子系統11.9 設計類中的服務設計類中的服務11.10 設計關聯設計關聯11.11 設計優(yōu)化設計優(yōu)化3概述l設計是把分析階段得到的對目標系統的需求轉變成符合成設計是把分析階段得到的對目標系統的需求轉變成符合成本和質量要求的本和
2、質量要求的、抽象的系統實現方案的過程抽象的系統實現方案的過程。l從面向對象分析到面向對象設計,是一個逐漸擴充模型的從面向對象分析到面向對象設計,是一個逐漸擴充模型的過程,或者說,過程,或者說,面向對象設計就是利用面向對象觀點建立面向對象設計就是利用面向對象觀點建立求解域模型的過程求解域模型的過程。l實際上實際上,分析和設計是一個多次反復迭代的過程。分析和設計是一個多次反復迭代的過程。l面向對象方法學在概念和表示方法上的一致性,保證了在面向對象方法學在概念和表示方法上的一致性,保證了在各開發(fā)活動之間的平滑過渡,這是面向對象方法的一大優(yōu)各開發(fā)活動之間的平滑過渡,這是面向對象方法的一大優(yōu)點。點。4概
3、述客觀世界的客觀世界的對象和操作對象和操作客觀世界客觀世界的對象的對象輸出數據輸出數據程序設計語言程序設計語言的對象和操作的對象和操作數據結果問題空間客觀世界的算法空間計算機算法解空間程序員對問題的表達對象、操作、消息對象、操作、消息 類、實例和繼承類、實例和繼承對象描述對象描述(對象名及所屬對象類,私有數據結構的每一(對象名及所屬對象類,私有數據結構的每一數據項及類型,每個操作的過程描述或指向該過程描述數據項及類型,每個操作的過程描述或指向該過程描述的指針)的指針)511.1 面向對象設計的準則l模塊化模塊化對象是面向對象軟件系統中的模塊,它是把數對象是面向對象軟件系統中的模塊,它是把數據結
4、構和操作這些數據的方法緊密地結合在一起所構成的據結構和操作這些數據的方法緊密地結合在一起所構成的模塊。模塊。 l抽象抽象面向對象的程序設計育秧不僅支持過程抽象,而面向對象的程序設計育秧不僅支持過程抽象,而且支持數據抽象,對象類實際上是具有繼承機制的抽象數且支持數據抽象,對象類實際上是具有繼承機制的抽象數據類型。此外,某些面向對象的程序設計語言還支持參數據類型。此外,某些面向對象的程序設計語言還支持參數化抽象。化抽象。l信息隱藏信息隱藏在面向對象的軟件中,信息隱藏通過對象的在面向對象的軟件中,信息隱藏通過對象的封裝來實現:類結構分離了接口與實現,從而支持了信息封裝來實現:類結構分離了接口與實現,
5、從而支持了信息隱藏。隱藏。611.1 面向對象設計的準則l弱耦合弱耦合交互耦合交互耦合:對象之間的耦合通過消息連接來實現。:對象之間的耦合通過消息連接來實現。交互耦交互耦合應盡可能松散合應盡可能松散:l盡量降低消息連接的復雜程度盡量降低消息連接的復雜程度l盡量減少消息中的參數個數,降低參數的復雜程度盡量減少消息中的參數個數,降低參數的復雜程度l減少對象發(fā)送減少對象發(fā)送(或接收或接收)的消息數的消息數繼承耦合繼承耦合:是一般化類與特殊類之間耦合的一種形式。:是一般化類與特殊類之間耦合的一種形式。應應該提高繼承耦合程度該提高繼承耦合程度:l從本質上看,通過繼承關系結合起來的基類和派生類,構從本質上
6、看,通過繼承關系結合起來的基類和派生類,構成了系統中粒度更大的模塊,因此,它們彼此之間應該結成了系統中粒度更大的模塊,因此,它們彼此之間應該結合得越緊密越好合得越緊密越好l為獲得緊密的繼承耦合,特殊類應該是對其一般化類的具為獲得緊密的繼承耦合,特殊類應該是對其一般化類的具體化體化711.1 面向對象設計的準則l強內聚強內聚服務內聚:服務內聚:一個服務應該完成一個且僅完成一個功能。一個服務應該完成一個且僅完成一個功能。類內聚:類內聚:一個類應該只有一個用途,它的屬性和服務應該一個類應該只有一個用途,它的屬性和服務應該是高內聚的,也就是說,類的屬性和服務應該全都是完成是高內聚的,也就是說,類的屬性
7、和服務應該全都是完成該類對象的任務所必需的,其中不包含無用的屬性或服務該類對象的任務所必需的,其中不包含無用的屬性或服務。實際上,對于面向對象軟件來說,最佳的內聚是。實際上,對于面向對象軟件來說,最佳的內聚是信息型信息型內聚:一個模塊可以完成許多相關的操作,每個操作都有內聚:一個模塊可以完成許多相關的操作,每個操作都有各自的入口點,它們的代碼相對獨立,而且所有操作都在各自的入口點,它們的代碼相對獨立,而且所有操作都在相同的數據結構上完成相同的數據結構上完成 。一般一般-特殊內聚特殊內聚:設計出的一般:設計出的一般-特殊結構應該是對相應的特殊結構應該是對相應的領域知識的正確抽取。領域知識的正確抽
8、取。一般說來,緊密的繼承耦合與高度一般說來,緊密的繼承耦合與高度的一般的一般-特殊內聚是一致的。特殊內聚是一致的。811.1 面向對象設計的準則l可重用可重用重用是提高軟件開發(fā)生產率和目標系統質量的重用是提高軟件開發(fā)生產率和目標系統質量的重要途徑。重要途徑。重用基本上從設計階段開始。重用基本上從設計階段開始。重用有兩方面的含義:重用有兩方面的含義:盡量使用已有的類盡量使用已有的類(包括開發(fā)環(huán)境提供的類庫,及以往開包括開發(fā)環(huán)境提供的類庫,及以往開發(fā)類是系統是創(chuàng)建的類發(fā)類是系統是創(chuàng)建的類)如果確實需要創(chuàng)建新類,則在設計這些新類的協議時,應如果確實需要創(chuàng)建新類,則在設計這些新類的協議時,應該考慮將來
9、的可重復使用性該考慮將來的可重復使用性911.2 啟發(fā)規(guī)則1. 設計結果應該清晰易懂設計結果應該清晰易懂l用詞一致:用詞一致:應該是名字與它所代表的事物一致,而且應該應該是名字與它所代表的事物一致,而且應該盡量使用人們習慣的名字。不同類中相似服務的名字應該盡量使用人們習慣的名字。不同類中相似服務的名字應該相同。相同。l使用已有的協議:使用已有的協議:如果開發(fā)統一軟件的其他設計人員已經如果開發(fā)統一軟件的其他設計人員已經建立了類的協議,或者在所使用的類庫中已有相應的協議建立了類的協議,或者在所使用的類庫中已有相應的協議,則應該使用這些已有的協議。,則應該使用這些已有的協議。l減少消息模式的數目:減
10、少消息模式的數目:如果已有標準的消息協議,涉及人如果已有標準的消息協議,涉及人員應該遵守這些協議。員應該遵守這些協議。如果確需自己建立消息協議,則應該盡量減少消息模式的如果確需自己建立消息協議,則應該盡量減少消息模式的數目,只要可能,就是消息具有一致的模式,以利于讀者數目,只要可能,就是消息具有一致的模式,以利于讀者理解。理解。l避免模糊的定義:避免模糊的定義:一個類的用途應該是有限的,而且應該一個類的用途應該是有限的,而且應該從類名可以較容易得推導出它的用途。從類名可以較容易得推導出它的用途。1011.2 啟發(fā)規(guī)則2. 一般一般-特殊結構的深度應適當特殊結構的深度應適當l應該使類等級中包含的
11、層次數適當。一般說來,在一個中應該使類等級中包含的層次數適當。一般說來,在一個中等規(guī)模等規(guī)模( (大約包含大約包含100100個類個類) )的系統中,類等級層次數應保持的系統中,類等級層次數應保持為為7 72 2。l不應該僅僅從方便編碼的角度出發(fā)隨意創(chuàng)建派生類,應該不應該僅僅從方便編碼的角度出發(fā)隨意創(chuàng)建派生類,應該使一般使一般- -特殊結構與領域知識或常識保持一致。特殊結構與領域知識或常識保持一致。3. 設計簡單的類設計簡單的類經驗表明,如果一個類的定義不超過一頁紙經驗表明,如果一個類的定義不超過一頁紙(或兩屏或兩屏),則這,則這個類比較容易使用。為使類保持簡單,應該做到以下幾點個類比較容易使
12、用。為使類保持簡單,應該做到以下幾點l不要包含過多的屬性不要包含過多的屬性l有明確的定義:為使類的定明確,分配給每個類的任務應有明確的定義:為使類的定明確,分配給每個類的任務應該簡單該簡單l簡化對象之間的合作關系簡化對象之間的合作關系l不要提供太多的服務不要提供太多的服務1111.2 啟發(fā)規(guī)則4. 使用簡單的協議使用簡單的協議一般說來,消息中的參數不要超過一般說來,消息中的參數不要超過3個。個。5. 使用簡單的服務使用簡單的服務通常,類中的服務都很小,可以用僅含一個動詞和一個賓通常,類中的服務都很小,可以用僅含一個動詞和一個賓語的簡單句子描述它的功能。語的簡單句子描述它的功能。6. 把設計變動
13、減至最小把設計變動減至最小理想的設計變動情況理想的設計變動情況1211.3 軟件重用3.1 概述概述1. 重用重用重用也稱為再用或復用,重用也稱為再用或復用,是指同一事物不經修改或稍加改是指同一事物不經修改或稍加改動就多次重復使用動就多次重復使用。軟件中主要指軟件成分重用。軟件中主要指軟件成分重用。2. 軟件成分的重用級別軟件成分的重用級別軟件成分的重用可以進一步劃分成以下軟件成分的重用可以進一步劃分成以下3個級別:個級別:l代碼重用代碼重用l設計結構重用設計結構重用重用某個軟件系統的設計模型重用某個軟件系統的設計模型(即求解即求解域模型域模型)。這個級別的重用有助于把一個應用系統移植到這個級
14、別的重用有助于把一個應用系統移植到完全不同的軟硬件平臺上。完全不同的軟硬件平臺上。l分析結構重用分析結構重用重用某個軟件系統的分析模型重用某個軟件系統的分析模型(即問題即問題域模型域模型)。這類重用特別適用于系統需求未變,但系統體這類重用特別適用于系統需求未變,但系統體結構發(fā)生了根本變化的場合。結構發(fā)生了根本變化的場合。1311.3 軟件重用3. 典型的可重用軟件成分典型的可重用軟件成分主要有以下主要有以下10種:種:l項目計劃項目計劃l成本估計成本估計l體系結構體系結構l需求模型和規(guī)格說明需求模型和規(guī)格說明l設計結構設計結構l源代碼源代碼l用戶文檔和技術文檔用戶文檔和技術文檔l用戶界面用戶界
15、面l數據數據l測試用例測試用例1411.3 軟件重用3.2 類構件類構件1. 可重用軟構件應具備的特點可重用軟構件應具備的特點l模塊獨立性強且可靠性高模塊獨立性強且可靠性高l具有高度可塑性,也就是說,必須提供擴充或修改已有構具有高度可塑性,也就是說,必須提供擴充或修改已有構件的機制,而且所提供的機制必須使用起來非常簡單方便件的機制,而且所提供的機制必須使用起來非常簡單方便l接口清晰、簡明、可靠,而且有詳盡的文檔說明接口清晰、簡明、可靠,而且有詳盡的文檔說明2. 類構件的重用方式類構件的重用方式l實例重用:實例重用:除了用已有的類樣板直接創(chuàng)建該類的實例之外除了用已有的類樣板直接創(chuàng)建該類的實例之外
16、,還可以用幾個簡單的對象作為類的成員創(chuàng)建出一個更復,還可以用幾個簡單的對象作為類的成員創(chuàng)建出一個更復雜的類,這是實例重用的另一種形式。雜的類,這是實例重用的另一種形式。l繼承重用:繼承重用:當已有的類構件不能通過實例重用方式滿足當當已有的類構件不能通過實例重用方式滿足當前系統的需求時,利用繼承機制從已有類派生出符合需要前系統的需求時,利用繼承機制從已有類派生出符合需要的子類,是安全地修改已有的類構件,獲得可在當前系統的子類,是安全地修改已有的類構件,獲得可在當前系統中使用的類構件的有效手段。中使用的類構件的有效手段。1511.3 軟件重用l多態(tài)重用:多態(tài)重用:為提高軟件的可重用性,在設計類構件
17、時應該為提高軟件的可重用性,在設計類構件時應該把注意力集中在下列這些可能妨礙重用的操作上:把注意力集中在下列這些可能妨礙重用的操作上:與表示方法有關的操作與表示方法有關的操作與數據結構、數據大小等因素有關的操作與數據結構、數據大小等因素有關的操作與外部設備有關的操作與外部設備有關的操作實現算法在將來可能會改變的核心操作實現算法在將來可能會改變的核心操作l如果在設計時未采取適當措施,上述這些操作將妨礙類構如果在設計時未采取適當措施,上述這些操作將妨礙類構件的重用。因此,必須把它們從類的一般操作中分離出來件的重用。因此,必須把它們從類的一般操作中分離出來,作為,作為“適配接口適配接口”。l在設計類
18、構件時應該把作為在設計類構件時應該把作為“適配接口適配接口”的操作說明為多的操作說明為多態(tài)操作態(tài)操作(例如,例如,C+語言中的函數語言中的函數),類中其他操作通過調,類中其他操作通過調用適當的多態(tài)操作來完成自己的功能。用適當的多態(tài)操作來完成自己的功能。1611.3 軟件重用l當已有的類構件不能通過實例重用方式在當前系統中重用當已有的類構件不能通過實例重用方式在當前系統中重用時,可以從已有類派生出子類,在子類中只需重新定義某時,可以從已有類派生出子類,在子類中只需重新定義某些多態(tài)操作即可滿足當前系統的需求。些多態(tài)操作即可滿足當前系統的需求。11.3.3 軟件重用的效益軟件重用的效益研究表明,通過
19、積極的軟件重用,軟件產品的質量、開發(fā)研究表明,通過積極的軟件重用,軟件產品的質量、開發(fā)生產率和整體成本都得到改善。生產率和整體成本都得到改善。1711.4 系統分解設計模型設計模型(即求解域的對象模型即求解域的對象模型)與分析模型與分析模型(即問題域即問題域的對象模型的對象模型)一樣,也一樣,也由由5個層次組成個層次組成:lOOAOOA分析階段分析階段 OODOOD設計階段設計階段定義主題定義主題 主題層主題層標識對象標識對象 類和對象層類和對象層標識對象所屬類標識對象所屬類 結構層結構層標識對象的屬性標識對象的屬性 屬性層屬性層標識對象的行為標識對象的行為 服務層服務層 人人機機 交交互互
20、部部件件 主主題題 部部件件 任任務務 管管理理 部部件件 數數據據 管管理理 部部件件 主主題題層層 類類與與對對象象層層 結結構構層層 屬屬性性層層 服服務務層層 l大多系統使用大多系統使用OOD的設計模型在邏輯上都由的設計模型在邏輯上都由4大部分組成大部分組成。這。這4大部分對應于組成目標系統的大部分對應于組成目標系統的4個子系統個子系統1811.4 系統分解l這這5 5個層次一層比一層表示的細節(jié)更多,可以把這個層次一層比一層表示的細節(jié)更多,可以把這5 5個層次個層次想象為整個模型的想象為整個模型的5 5個水平切片。個水平切片。l在不同的軟件系統中,這在不同的軟件系統中,這4個子系統的重
21、要程度和規(guī)??蓚€子系統的重要程度和規(guī)模可能相差很大,規(guī)模過大的應該進一步分解成更小的子系統能相差很大,規(guī)模過大的應該進一步分解成更小的子系統,規(guī)模過小的可以合并成其他子系統中。某些應,規(guī)模過小的可以合并成其他子系統中。某些應 用系統用系統可能僅由可能僅由3個個(甚至少于甚至少于3個個)子系統組成。子系統組成。 4.1 子系統之間的兩種交互方式子系統之間的兩種交互方式l客戶客戶-供應商關系:供應商關系:在這種關系中,作為在這種關系中,作為“客戶客戶”的子系的子系統調用統調用“供應商供應商”的子系統,后者完成某些服務工作并返的子系統,后者完成某些服務工作并返回結果。回結果。使用這種交互方案,作為客
22、戶的子系統必須了解作為供應使用這種交互方案,作為客戶的子系統必須了解作為供應商的子系統的接口,而后者則無須了解前者的接口,因為商的子系統的接口,而后者則無須了解前者的接口,因為,任何交互行為都是由前者驅動的。,任何交互行為都是由前者驅動的。 1911.4 系統分解l平等伙伴關系:平等伙伴關系:在這種關系中,每個子系統都可能調用其他在這種關系中,每個子系統都可能調用其他子系統,每個子系統都必須了解其他子系統的接口。子系統,每個子系統都必須了解其他子系統的接口。l由于各個子系統需要相互了解對方的接口,因此這種組織系由于各個子系統需要相互了解對方的接口,因此這種組織系統的方案比起客戶統的方案比起客戶
23、-供應商方案來,子系統之間的交互更復供應商方案來,子系統之間的交互更復雜,而且這種交互方式還可能存在通信環(huán)路,從而使系統難雜,而且這種交互方式還可能存在通信環(huán)路,從而使系統難于理解,容易發(fā)生不易察覺的設計錯誤。于理解,容易發(fā)生不易察覺的設計錯誤。l單向交互比雙向交互更容易理解,更容易設計和修改。單向交互比雙向交互更容易理解,更容易設計和修改。4.2 組織系統的兩種方案組織系統的兩種方案方案一:層次組織方案一:層次組織l把軟件系統組織成一個層次系統,每層是一個子系統。把軟件系統組織成一個層次系統,每層是一個子系統。l上層在下層的基礎上建立,下層為實現上層功能提供服務。上層在下層的基礎上建立,下層
24、為實現上層功能提供服務。l每一層被包含的對象,彼此間相互獨立,而處于不同層次上每一層被包含的對象,彼此間相互獨立,而處于不同層次上的對象,彼此間往往有關聯。的對象,彼此間往往有關聯。l實際上,在上、下層之間存在客戶實際上,在上、下層之間存在客戶- -供應商關系。供應商關系。l低層子系統提供服務,相當于供應商,上層子系統使用下層低層子系統提供服務,相當于供應商,上層子系統使用下層提供的服務,相當于客戶。提供的服務,相當于客戶。2011.4 系統分解方案二:塊狀組織方案二:塊狀組織l這種組織方案把軟件系統垂直地分解成若干個相對獨立的這種組織方案把軟件系統垂直地分解成若干個相對獨立的、弱耦合的子系統
25、,一個子系統相當于一塊,每塊提供一、弱耦合的子系統,一個子系統相當于一塊,每塊提供一種類型的服務。種類型的服務。利用層次和塊的各種可能的組合,可以成功地由多個子系利用層次和塊的各種可能的組合,可以成功地由多個子系統組成一個完整的軟件系統。當混合使用層次結構和塊狀統組成一個完整的軟件系統。當混合使用層次結構和塊狀組成,而同一個也可以分為若干層。組成,而同一個也可以分為若干層。4.3 4.3 設計系統的拓撲結構設計系統的拓撲結構由子系統組成完整的系統時,典型的拓撲結構有管道型、由子系統組成完整的系統時,典型的拓撲結構有管道型、樹型、星型等。樹型、星型等。設計者應該采用與問題結構相適應的、盡可能簡單
26、的拓撲設計者應該采用與問題結構相適應的、盡可能簡單的拓撲結構,以減少子系統之間的交互數量。結構,以減少子系統之間的交互數量。2111.4 系統分解典型應用系統的組織結構典型應用系統的組織結構2211.5 設計問題域子系統(主題部件)l通過面向對象分析所得出的問題域精確模型,為設計問題通過面向對象分析所得出的問題域精確模型,為設計問題域子系統奠定了良好的基礎,建立了完整的框架。只要可域子系統奠定了良好的基礎,建立了完整的框架。只要可能,就應該保持面向對象分析所建立的問題域結構。能,就應該保持面向對象分析所建立的問題域結構。l通常,面向對象設計僅需從實現角度對問題域模型作一些通常,面向對象設計僅需
27、從實現角度對問題域模型作一些補充或修改,主要是增添、合并或分解類、屬性及服務,補充或修改,主要是增添、合并或分解類、屬性及服務,調整繼承關系等。調整繼承關系等。l當問題域子系統過復雜龐大時,應該把它進一步分解成若當問題域子系統過復雜龐大時,應該把它進一步分解成若干個更小的子系統。干個更小的子系統。 l問題域子系統設計也稱為主題部件設計問題域子系統設計也稱為主題部件設計2311.5 設計問題域子系統(主題部件)5.1 5.1 主體部件(主體部件(PDCPDC)設計)設計l主體部件是主體部件是構造應用軟件的總體模型(構造應用軟件的總體模型(結構結構),),是是標識和標識和定義模塊定義模塊的過程的過
28、程。模塊可以是一個單個的類,也可以是由模塊可以是一個單個的類,也可以是由一些類組合成的子系統。一些類組合成的子系統。l主體部件設計階段主體部件設計階段標識標識在計算機環(huán)境中進行問題解決工作在計算機環(huán)境中進行問題解決工作所需要的概念所需要的概念,并增加了一批需要的類。,并增加了一批需要的類。l主要是可主要是可使應用軟件與系統的外部世界交互的類使應用軟件與系統的外部世界交互的類l此階段的輸出是此階段的輸出是適合應用要求的類適合應用要求的類、類間的關系類間的關系、應用的應用的子系統視圖規(guī)格說明子系統視圖規(guī)格說明。5.1.1 5.1.1 主體部件設計的任務主體部件設計的任務l設計包括設計包括與應用問題
29、直接與應用問題直接有關的所有類和對象有關的所有類和對象。l對對OOAOOA模型中的某些類與對象、結構、屬性、操作進行組模型中的某些類與對象、結構、屬性、操作進行組合與分解。進而合與分解。進而進行改進和增補進行改進和增補l要考慮對時間與空間的折衷、內存管理、開發(fā)人員的變更要考慮對時間與空間的折衷、內存管理、開發(fā)人員的變更、以及類的調整等。、以及類的調整等。242511.5 設計問題域子系統(主題部件)5.1.2 5.1.2 主體部件設計應遵循的原則主體部件設計應遵循的原則l使在子系統的各個高層部件之間的使在子系統的各個高層部件之間的通信量達到最小通信量達到最??;l子系統應當把那些子系統應當把那些
30、成組的類打包,形成高度的內聚成組的類打包,形成高度的內聚;l邏輯功能分組,提供邏輯功能分組,提供一個邏輯功能一個單元一個邏輯功能一個單元,識別并定位,識別并定位問題事件;問題事件;5.1.3 5.1.3 主體部件設計和類設計關系主體部件設計和類設計關系l每每個子系統都可以被當做一個類來實現個子系統都可以被當做一個類來實現,這個類聚集它的,這個類聚集它的部件,提供了一組操作。部件,提供了一組操作。l類和子系統的結構是正交的,類和子系統的結構是正交的,一個單個類的實例可能是不一個單個類的實例可能是不止一個子系統的一部分止一個子系統的一部分。l主題部件設計和類設計這兩個階段是主題部件設計和類設計這兩
31、個階段是相對封閉相對封閉的,又是的,又是相相互連接互連接的。的。2611.5 設計問題域子系統(主題部件)l在面向對象設計過程中,可對面向對象分析得出的問題域在面向對象設計過程中,可對面向對象分析得出的問題域模型做下述修改:模型做下述修改:5.2 調整需求調整需求為了調整對目標系統的需求,通常只需簡單地修改面向對為了調整對目標系統的需求,通常只需簡單地修改面向對象分析結果,然后再把這些修改反映到問題域子系統中。象分析結果,然后再把這些修改反映到問題域子系統中。 5.3 重用已有的類重用已有的類l盡量使用已有的類庫中盡量使用已有的類庫中既存類既存類l在已有類中找出與問題域內某個最相似的類作為被重
32、用類在已有類中找出與問題域內某個最相似的類作為被重用類l從被重用的類派生出問題域類從被重用的類派生出問題域類l簡化對問題域類的定義簡化對問題域類的定義( (從被重用的類繼承的從被重用的類繼承的屬性和服務屬性和服務無須再定義無須再定義) )l修改與問題域類相關的關聯,必要時改為與被重用的類相修改與問題域類相關的關聯,必要時改為與被重用的類相關的關聯關的關聯2711.5 設計問題域子系統(主題部件)5.4 把問題域類組合在一起,把問題域類組合在一起,引入新引入新“父類父類”,分組管理系統,分組管理系統相關類相關類l往往通過增添一個根類而把若干個問題域組合在一起。通過往往通過增添一個根類而把若干個問
33、題域組合在一起。通過引入根類或基類的辦法,還可以為一些具體類建立一個公共引入根類或基類的辦法,還可以為一些具體類建立一個公共的協議。的協議。l在設計時,在設計時,從類庫中引進一個從類庫中引進一個根類根類,做為容器類,把所有與,做為容器類,把所有與問題論域有關的類關聯到一起,問題論域有關的類關聯到一起,建立類的層次建立類的層次。l把同一問題論域的一些類集合起來,存于類庫中。把同一問題論域的一些類集合起來,存于類庫中。5.5 引入新父類捕獲共性,簡化軟件設計和編碼引入新父類捕獲共性,簡化軟件設計和編碼l有時,某些特殊類要求一組類似的服務。有時,某些特殊類要求一組類似的服務。l此時,此時,應加入一個
34、一般化的類和其父類,應加入一個一般化的類和其父類,“一般化的類一般化的類”定定義為所有這些特殊類共用的一組服務名義為所有這些特殊類共用的一組服務名,這些服務都是虛函,這些服務都是虛函數。數。輸入站:輸入站:ATM+柜員終端,可以設計一個一般化類:柜員終端,可以設計一個一般化類:“基本業(yè)務基本業(yè)務”l在特殊類中定義其實現。在特殊類中定義其實現。2811.5 設計問題域子系統(主題部件) 某 OOA 中含 車輛 車牌 顏色 式樣 生產日期 產地 車牌確認 類庫中已有 車輛 OTS 車牌 車牌確認 車輛 車牌 顏色 式樣 生產日期 產地 車牌確認 設計結果: 車輛 OTS 車牌 車牌確認 2911.
35、5 設計問題域子系統(主題部件)5.6 調整繼承層次調整繼承層次l如果面向對象分析模型中包含了多重繼承關系,然而所使用如果面向對象分析模型中包含了多重繼承關系,然而所使用的的程序設計語言程序設計語言卻卻并不支持多重繼承并不支持多重繼承,甚至沒有繼承機制,甚至沒有繼承機制,則必須修改面向對象的結果。則必須修改面向對象的結果。l即使使用支持多重繼承的語言,出于避免屬性或服務命名沖即使使用支持多重繼承的語言,出于避免屬性或服務命名沖突的考慮,也會對繼承關系做一些調整。突的考慮,也會對繼承關系做一些調整。l多繼承模式有兩種:多繼承模式有兩種: 狹義的菱形狹義的菱形 廣義的菱形廣義的菱形l針對單繼承語言
36、的調整針對單繼承語言的調整把把特殊類的對象看做是一個一般類對象所扮演的角色特殊類的對象看做是一個一般類對象所扮演的角色,通,通過實例連接把多繼承的層次結構轉換為單繼承的層次結構過實例連接把多繼承的層次結構轉換為單繼承的層次結構把把多繼承的層次結構平鋪多繼承的層次結構平鋪,成為單繼承的層次結構。在這,成為單繼承的層次結構。在這種情況下,有些種情況下,有些屬性或操作在同層的特殊類中會重復屬性或操作在同層的特殊類中會重復出現出現30窄菱形模式窄菱形模式11.5 設計問題域子系統(主題部件)3111.5 設計問題域子系統(主題部件)32把多重繼承簡化為單一層次的單繼承把多重繼承簡化為單一層次的單繼承1
37、1.5 設計問題域子系統(主題部件)33客運貨運汽車用途汽車客運貨運汽車用途汽車1+客運貨運汽車用途汽車客運貨運汽車用途單一層次單繼承單繼承多繼承平鋪3411.5 設計問題域子系統(主題部件)5.7 改進性能改進性能l提高執(zhí)行效率和速度是系統設計的主要指標之一。有時,提高執(zhí)行效率和速度是系統設計的主要指標之一。有時,必須改變問題論域的結構以提高效率必須改變問題論域的結構以提高效率。l如果類之間經常需要如果類之間經常需要傳送大量消息傳送大量消息,可,可合并相關合并相關的類以減的類以減少消息傳遞引起的速度損失。少消息傳遞引起的速度損失。l增加增加某些屬性某些屬性到原來的類中,或到原來的類中,或增加
38、低層的類增加低層的類,以,以保存暫保存暫時結果時結果,避免每次都要重復計算造成速度損失。,避免每次都要重復計算造成速度損失。5.8 加入較低層的構件加入較低層的構件l在做面向對象在做面向對象分析分析時,時,分析員往往專注于較高層的類和對分析員往往專注于較高層的類和對象,避免考慮太多較低層的實現細節(jié)象,避免考慮太多較低層的實現細節(jié)。l在做面向對象在做面向對象設計時設計時,設計師在找出高層的類和對象時,設計師在找出高層的類和對象時,必須考慮到底需要用到哪些較低層的類和對象必須考慮到底需要用到哪些較低層的類和對象。35ATM系統問題域子系統的結構系統問題域子系統的結構11.5 設計問題域子系統(主題
39、部件)3611.6 設計人機交互子系統l在在 OOA 階段給出了所需的屬性和操作,階段給出了所需的屬性和操作,已經對用戶的界已經對用戶的界面需求做了初步分析,在面向對象設計過程中,應該對目面需求做了初步分析,在面向對象設計過程中,應該對目標系統的人機交互子系統進行相應設計,以確定標系統的人機交互子系統進行相應設計,以確定人機交互人機交互界面的細節(jié)界面的細節(jié),其中包括指定,其中包括指定窗口和報表窗口和報表的形式,設計的形式,設計命令命令層次層次等內容。等內容。根據需求把交互細節(jié)加入到用戶界面設計中根據需求把交互細節(jié)加入到用戶界面設計中,包括人機交互所必需的實際顯示和輸入。,包括人機交互所必需的實
40、際顯示和輸入。l對人機界面的評價在很大程度上由人的主觀因素決定,因對人機界面的評價在很大程度上由人的主觀因素決定,因此,使用原型支持的系統化的設計策略,是成功地設計人此,使用原型支持的系統化的設計策略,是成功地設計人機交互子系統的關鍵。機交互子系統的關鍵。l用戶界面部分設計主要由以下幾個方面組成。用戶界面部分設計主要由以下幾個方面組成。3711.6 設計人機交互子系統6.1 用戶分類用戶分類l按技能層次分類:按技能層次分類: 外行外行初學者初學者熟練者熟練者專家專家l按組織層次分類:按組織層次分類: 行政人員行政人員管理人員管理人員專業(yè)技術人員專業(yè)技術人員其它辦事員其它辦事員l按職能分類:按職
41、能分類: 顧客顧客職員職員6.2 描述人及其任務的腳本描述人及其任務的腳本l對以上定義的每一類用戶,列出對以下問題做出的考慮:對以上定義的每一類用戶,列出對以下問題做出的考慮:什么人什么人、目的目的、特點特點、成功的關鍵因素成功的關鍵因素、熟練程度熟練程度以及以及任任務腳本務腳本。l在在OOATOOLTM 中有一個例子:中有一個例子: 什么人什么人分析員分析員 目的目的要求一個工具來輔助分析工作要求一個工具來輔助分析工作 (擺脫繁重的畫擺脫繁重的畫圖和檢查圖的工作圖和檢查圖的工作)。3811.6 設計人機交互子系統 特點特點年齡:年齡:42歲;教育水平:大學;限制:不要微型歲;教育水平:大學;
42、限制:不要微型打印,小于打印,小于9個點的打印太小。個點的打印太小。 成功的關鍵因素成功的關鍵因素工具應當使分析工作順利進行;工具工具應當使分析工作順利進行;工具不應與分析工作沖突;工具應能捕獲假設和思想,能適時不應與分析工作沖突;工具應能捕獲假設和思想,能適時做出折衷;應能及時給出模型各個部分的文檔,這與給出做出折衷;應能及時給出模型各個部分的文檔,這與給出需求同等重要。需求同等重要。 熟練程度熟練程度專家。專家。 任務腳本任務腳本F 主腳本主腳本:F 檢驗模型檢驗模型: 打印模型及其全部文檔。打印模型及其全部文檔。3911.6 設計人機交互子系統6.3 設計命令層設計命令層l研究現行的人機
43、交互活動的內容和準則研究現行的人機交互活動的內容和準則:這些準則可以是:這些準則可以是非形式的,如非形式的,如“輸入時眼睛不易疲勞輸入時眼睛不易疲勞”,也可以是正式規(guī),也可以是正式規(guī)定的;定的;l建立一個初始的命令層建立一個初始的命令層:可有多種形式,如一系列:可有多種形式,如一系列 菜單菜單、或一個窗口、或一系列圖標、或一個窗口、或一系列圖標.l細化命令層細化命令層:考慮以下幾個問題。:考慮以下幾個問題。 排列命令層次。排列命令層次。把使用最頻繁的操作放在前面把使用最頻繁的操作放在前面;按照按照用戶工作步驟排列用戶工作步驟排列。 通過通過逐步分解逐步分解,找到整體局部模式,以幫助在,找到整體
44、局部模式,以幫助在命令命令層中對操作分塊層中對操作分塊。 根據人們短期記憶的根據人們短期記憶的“72”或或“每次記憶每次記憶3塊每塊塊每塊3項項”的特點,把深度盡量限制在三層之內。的特點,把深度盡量限制在三層之內。 減少操作步驟減少操作步驟:把點取、拖動和鍵盤操作減到最少。:把點取、拖動和鍵盤操作減到最少。4011.6 設計人機交互子系統2. 4 設計詳細的交互設計詳細的交互l用戶界面設計有若干原則,包括:用戶界面設計有若干原則,包括: 一致性一致性:采用一致的術語、一致的步驟和一致的活動。:采用一致的術語、一致的步驟和一致的活動。 操作步驟少:操作步驟少:減少敲鍵和鼠標點取的次數,減少完成某
45、減少敲鍵和鼠標點取的次數,減少完成某件事所需的下拉菜單的距離。件事所需的下拉菜單的距離。 不要不要“啞播放啞播放”:每當用戶等待系統完成一個活動時,:每當用戶等待系統完成一個活動時,要給出一些反饋信息。要給出一些反饋信息。 UndoUndo:在操作出現錯誤時,要恢復或部分恢復原來的狀:在操作出現錯誤時,要恢復或部分恢復原來的狀態(tài)。態(tài)。 減少人腦的記憶負擔減少人腦的記憶負擔:不應在一個窗口使用在另一個窗:不應在一個窗口使用在另一個窗口中記憶或寫下的信息;需要人按特定次序記憶的東西應口中記憶或寫下的信息;需要人按特定次序記憶的東西應當組織得容易記憶。當組織得容易記憶。 學習的時間和效果學習的時間和
46、效果:提供聯機的幫助信息。:提供聯機的幫助信息。 趣味性趣味性:盡量采取圖形界面,符合人類習慣。:盡量采取圖形界面,符合人類習慣。4111.6 設計人機交互子系統2. 5 繼續(xù)做原型繼續(xù)做原型l用戶界面原型是用戶界面設計的重要工作用戶界面原型是用戶界面設計的重要工作。人需要對提交的。人需要對提交的人機交互活動進行體驗、實地操作,并精煉成一致的模式。人機交互活動進行體驗、實地操作,并精煉成一致的模式。l使用快速原型工具或應用構造器,對各種命令方式,如菜單使用快速原型工具或應用構造器,對各種命令方式,如菜單、彈出、填充以及快捷命令,、彈出、填充以及快捷命令,做出原型讓用戶使用做出原型讓用戶使用,通
47、過用通過用戶反饋、修改、演示的迭代戶反饋、修改、演示的迭代,使界面越來越有效使界面越來越有效。2. 6 設計設計 HIC (人機交互人機交互) 類類l窗口需要進一步細化窗口需要進一步細化,通常包括:類窗口、條件窗口、檢查,通常包括:類窗口、條件窗口、檢查窗口、文檔窗口、畫圖窗口、過濾器窗口、模型控制窗口、窗口、文檔窗口、畫圖窗口、過濾器窗口、模型控制窗口、運行策略窗口、模板窗口等。運行策略窗口、模板窗口等。l設計設計HIC類,首先從組織窗口和部件的用戶界面界面的設計類,首先從組織窗口和部件的用戶界面界面的設計開始開始。l每個類包括每個類包括窗口的菜單條窗口的菜單條、下拉菜單下拉菜單、彈出菜單的
48、定義彈出菜單的定義。還。還要定義用于創(chuàng)建菜單、加亮選擇項、引用相應響應的操作。要定義用于創(chuàng)建菜單、加亮選擇項、引用相應響應的操作。4211.6 設計人機交互子系統2. 7 根據圖形用戶界面進行設計根據圖形用戶界面進行設計l圖形用戶界面區(qū)分為圖形用戶界面區(qū)分為字型字型、坐標系統坐標系統和和事件事件。 字型字型是字體、字號、樣式和顏色的組合。是字體、字號、樣式和顏色的組合。 坐標系統坐標系統主要因素有原點主要因素有原點( (基準點基準點) )、顯示分辨率、顯、顯示分辨率、顯示維數等。示維數等。 事件事件則是圖形用戶界面程序的核心,操作將對事件做則是圖形用戶界面程序的核心,操作將對事件做出響應。出響
49、應。4311.7 設計任務管理子系統l任務管理子系統就是將重要的服務設計成任務類任務管理子系統就是將重要的服務設計成任務類l如果兩個對象彼此間不存在交互,或者它們同時接受事件如果兩個對象彼此間不存在交互,或者它們同時接受事件,能夠把若干個非并發(fā)的對象歸并到一條控制線中。,能夠把若干個非并發(fā)的對象歸并到一條控制線中。l所謂控制線,是一條遍及狀態(tài)圖集合的路徑,在這條路徑所謂控制線,是一條遍及狀態(tài)圖集合的路徑,在這條路徑上每次只有一個對象是活動的。在計算機系統中用任務實上每次只有一個對象是活動的。在計算機系統中用任務實現控制線?,F控制線。l任務是進程的別稱,是執(zhí)行一系列活動的一段程序。任務是進程的別
50、稱,是執(zhí)行一系列活動的一段程序。l當系統中有許多并發(fā)行為時,需要依照各個行為的協調和通信當系統中有許多并發(fā)行為時,需要依照各個行為的協調和通信關系,劃分各種任務,以簡化并發(fā)行為的設計和編碼。關系,劃分各種任務,以簡化并發(fā)行為的設計和編碼。l設計任務管理子系統,包括確定各類任務并把任務分配給設計任務管理子系統,包括確定各類任務并把任務分配給適當的硬件或軟件去執(zhí)行。適當的硬件或軟件去執(zhí)行。l常見的任務有事件驅動型任務、時鐘驅動型任務、優(yōu)先任常見的任務有事件驅動型任務、時鐘驅動型任務、優(yōu)先任務、關鍵任務和協調任務等類型。務、關鍵任務和協調任務等類型。4411.7 設計任務管理子系統1.確定事件驅動型
51、任務確定事件驅動型任務l某些某些負責與硬件設備通信負責與硬件設備通信任務是由事件驅動的,這類任務任務是由事件驅動的,這類任務可能主要完成通信工作可能主要完成通信工作。由事件來激發(fā)。由事件來激發(fā)。插卡(任務處于插卡(任務處于睡眠狀態(tài),接受中斷喚醒),睡眠狀態(tài),接受中斷喚醒),事件通常是表明某些數據到事件通常是表明某些數據到達的信號。達的信號。l在系統運行時,這類任務的工作過程如下:在系統運行時,這類任務的工作過程如下:任務處于睡眠狀態(tài)任務處于睡眠狀態(tài)( (不消耗處理器時間不消耗處理器時間) ),等待來自數據,等待來自數據線或其他數據源的中斷;線或其他數據源的中斷;一旦接收到中斷就喚醒了該任務,接
52、受數據并把數據防一旦接收到中斷就喚醒了該任務,接受數據并把數據防如內存緩沖區(qū)或其他目的地,通知需要知道這件事的對如內存緩沖區(qū)或其他目的地,通知需要知道這件事的對象,然后該任務回到睡眠狀態(tài)。象,然后該任務回到睡眠狀態(tài)。4511.7 設計任務管理子系統2. 確定時鐘驅動型任務確定時鐘驅動型任務某些任務某些任務每隔一定時間每隔一定時間間隔就被觸發(fā)以執(zhí)行某些處理(事間隔就被觸發(fā)以執(zhí)行某些處理(事件)。件)。某些人機界面、子系統、任務、處理機或與其它系某些人機界面、子系統、任務、處理機或與其它系統需要統需要周期性周期性的通信,因此時鐘驅動任務應運而生。的通信,因此時鐘驅動任務應運而生。超時超時提示提示這
53、類任務的工作過程如下:這類任務的工作過程如下:l任務設置了喚醒時間后進入睡眠狀態(tài);任務設置了喚醒時間后進入睡眠狀態(tài);l任務睡眠任務睡眠( (不消耗處理器時間不消耗處理器時間) ),等待來自系統的中斷;,等待來自系統的中斷;l一旦接收到這種中斷,任務就被喚醒并做它的工作,通知一旦接收到這種中斷,任務就被喚醒并做它的工作,通知有關的對象,然后該任務于回到睡眠狀態(tài)有關的對象,然后該任務于回到睡眠狀態(tài)。3. 確定優(yōu)先任務確定優(yōu)先任務優(yōu)先任務可以滿足高優(yōu)先級或低優(yōu)先級的處理需求。優(yōu)先任務可以滿足高優(yōu)先級或低優(yōu)先級的處理需求。根據根據處理的優(yōu)先級別來安排各個任務。處理的優(yōu)先級別來安排各個任務。4611.7
54、 設計任務管理子系統4. 確定關鍵任務確定關鍵任務關鍵任務是有關系統成功或失敗的關鍵處理,這類處理通關鍵任務是有關系統成功或失敗的關鍵處理,這類處理通常都有嚴格的可靠性要求。常都有嚴格的可靠性要求。5. 確定協調任務確定協調任務當有三個或更多的任務時,應當增加一個追加任務當有三個或更多的任務時,應當增加一個追加任務(新類(新類,將不同任務中的協調部分封裝起來形成),將不同任務中的協調部分封裝起來形成), ,用它作,用它作為協調任務。為協調任務。 它的行為可以用狀態(tài)轉換矩陣來描述。它的行為可以用狀態(tài)轉換矩陣來描述。結結息息6. 盡量減少任務數盡量減少任務數必須仔細分析和選擇每個確實需要的任務。應
55、該使系統中必須仔細分析和選擇每個確實需要的任務。應該使系統中包含的任務數盡量少。包含的任務數盡量少。4711.7 設計任務管理子系統7. 確定資源需求確定資源需求l使用多處理器或固件,主要是為了滿足高性能的需求。使用多處理器或固件,主要是為了滿足高性能的需求。l設計者必須通過計算系統載荷設計者必須通過計算系統載荷( (即每秒處理的業(yè)務數及處即每秒處理的業(yè)務數及處理一個業(yè)務所花費的時間理一個業(yè)務所花費的時間) ),來估算所需要的,來估算所需要的CPU(CPU(或其他或其他固件固件) )的處理能力。的處理能力。l設計者應該綜合考慮各種因素,以決定哪些子系統用硬件設計者應該綜合考慮各種因素,以決定哪
56、些子系統用硬件實現,哪些子系統用軟件實現。實現,哪些子系統用軟件實現。8. 評審各個任務評審各個任務l對各任務進行評審,確保它能滿足選擇任務的工程標準對各任務進行評審,確保它能滿足選擇任務的工程標準事件驅動?時鐘驅動?優(yōu)先級事件驅動?時鐘驅動?優(yōu)先級/ /關鍵任務?協調者?關鍵任務?協調者?4811.7 設計任務管理子系統9. 定義各個任務定義各個任務定義任務的工作主要包括:定義任務的工作主要包括:它是什么任務它是什么任務、如何協調工作如何協調工作及及如何通信如何通信。(1)(1)它是什么任務它是什么任務為任務命名,并簡要說明這個任務。為任務命名,并簡要說明這個任務。(2)(2)如何協調工作如
57、何協調工作定義各個任務如何協調工作。指出它定義各個任務如何協調工作。指出它是事件驅動還是時鐘驅動。是事件驅動還是時鐘驅動。(3)(3)如何通信如何通信定義各個任務之間如何通信。任務從哪里定義各個任務之間如何通信。任務從哪里取值,結果送往何方。取值,結果送往何方。(4)(4)一個模版一個模版任務的定義如下:任務的定義如下:uName Name ( (任務名任務名) )uDescriptionDescription ( (描述描述) )uPriorityPriority ( (優(yōu)先級優(yōu)先級) )u ServicesincludedServicesincluded ( (包含的操作包含的操作) )、
58、u Communication ViaCommunication Via ( (經由誰通信經由誰通信) )。4911.8 設計數據管理子系統l數據管理子系統是系統存儲或檢索對象的基本設施,它建數據管理子系統是系統存儲或檢索對象的基本設施,它建立在某種數據存儲管理系統之上,并且隔離了數據存儲管立在某種數據存儲管理系統之上,并且隔離了數據存儲管理模式理模式( (文件、關系數據庫或面向對象數據庫文件、關系數據庫或面向對象數據庫) )的影響。的影響。l數據管理部分提供了在數據管理系統中存儲和檢索對象的基本結構,包括對永久性數據的訪問和管理。l它分離了數據管理機構所關心的事項,包括文件、關系型DBMS或
59、面向對象DBMS等。l不同的數據存儲管理模式有不同的特點,適用范圍也不相不同的數據存儲管理模式有不同的特點,適用范圍也不相同,設計者應該根據應用系統的特點選擇適用的模式。同,設計者應該根據應用系統的特點選擇適用的模式。l數據管理方法:數據管理方法:文件管理文件管理、關系數據庫管理關系數據庫管理和和面向對象庫面向對象庫數據管理數據管理。 文件管理文件管理提供基本的文件處理能力。提供基本的文件處理能力。 關系數據庫管理系統關系數據庫管理系統關系數據庫管理系統使用若關系數據庫管理系統使用若干表格來管理數據。干表格來管理數據。5011.8 設計數據管理子系統面向對象數據庫管理系統面向對象數據庫管理系統
60、面向對象的數據庫管理系面向對象的數據庫管理系統以兩種方法實現:一是統以兩種方法實現:一是擴充擴充RDBMSRDBMS,二是,二是擴充擴充OOPLOOPL。擴充擴充RDBMSRDBMS主要對主要對RDBMSRDBMS擴充了擴充了抽象數據類型抽象數據類型和和繼承繼承性性,再加一些一般用途的,再加一些一般用途的操作創(chuàng)建和操縱類與對象操作創(chuàng)建和操縱類與對象擴充擴充OOPLOOPL在面向對象程序設計語言中在面向對象程序設計語言中嵌入了在數據嵌入了在數據庫中長期管理存儲對象庫中長期管理存儲對象的語法和功能的語法和功能。增加對象服務類增加對象服務類(通知保存對象自身、檢索已儲存的對象通知保存對象自身、檢索已
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 化工產品交貨期與質量管理措施
- 制藥企業(yè)原材料質量保證及采購計劃
- 六年級英語教師培訓與發(fā)展計劃
- 2024年秋季新外研版三年級上冊英語課件 Unit 3
- 2024年秋季新外研版三年級上冊英語課件 M2U2
- 非暴力溝通在健康管理中的作用心得體會
- 人教版(新教材)高中生物選擇性必修1課件:4 3 免疫失調
- 高風險職業(yè)肺栓塞預防措施研究
- 醫(yī)院心理咨詢科崗位職責
- 教育公平背景下的學困生幫扶措施
- 微創(chuàng)介入診斷治療管理制度
- 新質生產力促進老年人公共體育服務高質量發(fā)展研究
- 大學生學業(yè)個人規(guī)劃
- 軟件產品售后服務及維護流程指南
- T-ZNZ 248-2024 紅黃壤貧瘠耕地快速培肥技術規(guī)范
- 2024-2025一年級下冊體育教學計劃和教案
- 汽車吊起重吊裝方案
- 2024年度安徽省高校教師資格證之高等教育學題庫附答案(典型題)
- 《建筑施工安全檢查標準》JGJ59-2019
- 2024義務教育《英語課程標準》(2022版)
- 世界水日中國水周主題班會課件
評論
0/150
提交評論