版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件工程Software Engineering(An Introduction)軟件工程7/20/20221J. Yu, 計算機學院軟件工程第6-10章 面向對象設計7/20/20222J. Yu, 計算機學院軟件需求分析與軟件設計之間的關系分析模型 設計模型What?How?7/20/20223J. Yu, 計算機學院分析模型 設計模型在軟件分析模型中的需求信息(數(shù)據(jù)、功能和行為)基礎上,產生軟件系統(tǒng)各個層次上的設計方案7/20/20224J. Yu, 計算機學院分析模型 設計模型用例對象-關 系模型CRC索引卡片屬性、子 系 統(tǒng) 設 計類及對象設計消息設計責任設計分析模型設計模型操作、協(xié)
2、作者對象-行為模型類/對象模型從管理和技術兩個不同角度對設計的認識軟件設計的任務分析模型 設計模型7/20/20226J. Yu, 計算機學院第10章面向對象的設計方法面向對象設計是將面向對象分析所創(chuàng)建的分析模型進一步細化形成軟件設計模型的過程。如果說,分析模型描述了系統(tǒng)需要完成的功能,在設計階段則描述了如何實現(xiàn)分析階段所定義的軟件功能。7/20/20227J. Yu, 計算機學院10.1 面向對象設計的概念面向對象分析的任務是解決系統(tǒng)“做什么”的問題。而在面向對象設計階段則著重完成“如何做”的問題,也就是著重考慮對象的實現(xiàn)細節(jié)。7/20/20228J. Yu, 計算機學院10.1.1 對象、
3、操作和消息在面向對象的設計過程中,數(shù)據(jù)結構和對數(shù)據(jù)結構的操作被封裝到了對象里,因此對象成了面向對象設計的基本單位,對象之間通過消息進行連接。7/20/20229J. Yu, 計算機學院10.2 面向對象設計(OOD)從分析過渡到設計面象對象的設計(OOD)仍然采用面向對象分析所采用的模型,所不同的是它現(xiàn)在更加面向用戶和計算機系統(tǒng),從四個不同的側面繼續(xù)演化OOA階段所生成的分析結果。從分析過渡到設計,分析階段所遵循的一些原則毫無疑問也將被繼承下來,這些原則包括:抽象原則、封裝原則、繼承原則、分類原則、聚合原則、關聯(lián)原則、消息通信原則、粒度控制原則、行為分析原則等。7/20/202210J. Yu
4、, 計算機學院10.2 面向對象設計(OOD)OOD模型與OOA模型之間并無明顯區(qū)別, 只是加進實現(xiàn)考慮面向對象設計繼續(xù)做面向對象分析階段的工作,建立軟件的結構。主要工作分為兩個階段: 高層設計 類設計7/20/202211J. Yu, 計算機學院10.2 Object-Oriented Design 1、高層設計(概要設計)高層設計階段開發(fā)系統(tǒng)的結構,即構造應用軟件的總體模型。高層設計階段標識在計算機環(huán)境中進行問題解決工作所需要的概念,并增加了一批需要的類。這些類包括那些可使應用軟件與系統(tǒng)的外部世界交互的類。此階段的輸出是適合應用要求的類、類間的關系、應用的子系統(tǒng)視圖規(guī)格說明。7/20/20
5、2212J. Yu, 計算機學院10.2 Object-Oriented Design主體部件設計應遵循的原則使在子系統(tǒng)的各個高層部件之間的通信量達到最??;子系統(tǒng)應當把那些成組的類打包,形成高度的內聚;邏輯功能分組,提供一個邏輯功能一個單元,識別并定位問題事件。7/20/202213J. Yu, 計算機學院10.2 Object-Oriented Design 2、類的設計(詳細設計)應用分析過程包括了對問題論域所需的類的模型化。但在最終實現(xiàn)應用時不只有這些類,還需要追加一些類。在類設計的過程中應當做這些工作。7/20/202214J. Yu, 計算機學院10.2 Object-Oriente
6、d Design 2、類的設計(詳細設計)類與具有概念封裝的子系統(tǒng)十分類似。每個子系統(tǒng)都可以被當做一個類來實現(xiàn),這個類聚集它的部件,提供了一組操作。類和子系統(tǒng)的結構是正交的,一個單個類的實例可能是不止一個子系統(tǒng)的一部分。高層設計和類設計這兩個階段是相對封閉的,又是相互連接的。7/20/202215J. Yu, 計算機學院10.2 面向對象的設計方法 面向對象設計主體部件設計(PDC:高層設計)用戶界面部件設計(HIC)任務管理部件設計(TMC)數(shù)據(jù)管理部件設計(DMC) 基于對象的設計方法7/20/202216J. Yu, 計算機學院類的規(guī)格說明從廢棄型開發(fā)既存類的復用漸增式的實現(xiàn)漸增式的測試
7、求精和 維護 測試用例和測試 的開發(fā)實現(xiàn)從既存類演變10.3 類的設計(詳細設計)7/20/202217J. Yu, 計算機學院10.3 類的設計(詳細設計)類的設計與實現(xiàn)類的規(guī)格說明指導對存放現(xiàn)存類的軟件庫進行查找?,F(xiàn)存類提供當前應用所需功能。三種可能利用現(xiàn)存類的方向:現(xiàn)存類的復用從現(xiàn)存類進行演變從廢棄類進行開發(fā) 7/20/202218J. Yu, 計算機學院數(shù)據(jù)管理其它系統(tǒng)文件RDBMSOODBMS設備系統(tǒng)交互界面問題論域人機交互界面 . . . . . . . .窗口報告OOD導出的系統(tǒng)結構7/20/202219J. Yu, 計算機學院一.問題域部分的設計OOA的模型直接放到OOD的問題
8、域部, OOD階段對OOA結果進行改動和增補。根據(jù)需求變化,對OOA產生模型的類與對象、結構、屬性、操作進行組合與分解,增加必要的類、屬性和關系。7/20/202220J. Yu, 計算機學院一.問題域部分的設計對OOA結果加以增補要考慮的因素:重用設計把問題域專用類組合在一起通過增添一般類而建立協(xié)議調整繼承的支持級別改進性能增加低層的類和對象7/20/202221J. Yu, 計算機學院調整繼承的支持級別 如OOA的一般/特殊結構包括多繼承, 在使用只有單繼承或無繼承性的編程語言時,需對OOA的的結果進行修改。一.問題域部分的設計7/20/202222J. Yu, 計算機學院二. 人機交互部
9、分的設計 雖然好的人機交互部分不可能挽救一個功能很差的軟件, 但性能很差的人機交互部分將使一個功能很強的產品變的不可接受!7/20/202223J. Yu, 計算機學院三. 任務管理部分的設計1.為什么要有任務管理部分 系統(tǒng)中有許多并發(fā)行為時,需要按照各個行為的協(xié)調和通信關系,劃分各種任務(進程),簡化并發(fā)行為的設計和編碼。根據(jù)動態(tài)模型分析、定義并發(fā)性;選擇軟件實現(xiàn)的控制方法。7/20/202224J. Yu, 計算機學院2.怎樣設計任務管理部分 任務管理主要包括任務的選擇和調整識別事件驅動任務識別時鐘驅動任務識別優(yōu)先任務和關鍵任務識別協(xié)調者審查每個任務定義每個任務三. 任務管理部分的設計7/
10、20/202225J. Yu, 計算機學院四. 數(shù)據(jù)管理部分的設計 數(shù)據(jù)管理部分提供了數(shù)據(jù)在數(shù)據(jù)管理系統(tǒng)中存儲和檢索對象的基本結構,它分離了數(shù)據(jù)管理方案的影響 (不管該方案是普通文件、關系型數(shù)據(jù)庫、面向對象數(shù)據(jù)庫或其它方式.)7/20/202226J. Yu, 計算機學院2.如何設計數(shù)據(jù)管理部分(1)數(shù)據(jù)存放方法設計采用普通文件數(shù)據(jù)管理采用關系數(shù)據(jù)庫管理采用面向對象數(shù)據(jù)庫管理(2)相應服務的設計為每個需存儲其對象的類增加一個屬性和服務四. 數(shù)據(jù)管理部分的設計7/20/202227J. Yu, 計算機學院結構化方法中軟件設計的基本原理在進行面向對象設計時仍然成立,但是增加了一些與面向對象方法密切
11、相關的新特點,從而具體化為面向對象設計準則。OOD應遵循的原則7/20/202228J. Yu, 計算機學院OOD應遵循的原則準則:1.模塊化2.抽象3.信息隱藏4.弱耦合5.強內聚6.可重用7/20/202229J. Yu, 計算機學院OOD應遵循的原則耦合兩個成分之間的耦合程度或強度,可以由成分之間的信息傳輸?shù)臄?shù)量和復雜性來度量。在一個OOD中,有兩類情況:由消息連接表示的兩個對象之間的交互耦合一般類和特殊類之間的繼承耦合。7/20/202230J. Yu, 計算機學院OOD應遵循的原則耦合交互耦合:低度交互耦合是理想的?;緶蕜t是:(1)把消息連接的復雜性保持到盡可能低的程度。一般來說,
12、如果一個消息連接涉及三個以上的參數(shù),就考慮是否可以把它簡化。當然三個參數(shù)決不是絕對的上限,不過實踐經驗告訴我們,通過過分復雜的消息相連接的對象是緊密耦合的;對其中一個對象作了改動總是要引發(fā)波及到其它對象的“波動效應”。(2)除了降低單個消息連接的復雜性,還應該減少由一個對象發(fā)送和接收的消息的數(shù)目。(3)避免“消息穿越”:對象A簡單把把從P接收的消息直接傳給Q,并不使用此消息中的任何信息,也不直接對它做出反應。這種設計是高度可疑的。7/20/202231J. Yu, 計算機學院OOD應遵循的原則耦合繼承耦合:高度的繼承是理想的。繼承是我們在OOD中力求達到的一種在一般類和特殊類之間的耦合形式一個
13、類通過它所繼承的屬性和服務而與它的一般類耦合。為了在系統(tǒng)中達到高度的繼承耦合,每個特殊類應該真正是其一般類的一個特殊類。它應該設定嚴格定義的職責;同時,這也意味著它不應該有許多無關的、不必要的“水分”。7/20/202232J. Yu, 計算機學院OOD應遵循的原則繼承耦合:如果一個類出現(xiàn)以下兩種情況:(1)一個類明顯地拒絕了它的一般類中的許多屬性和服務,它和它的一般類之間就不是強耦合的。(2)特殊類從它的一般類中繼承了許多屬性,但是完全沒有使用它們。在這樣兩種情況下設計者都應尋找另外的一般特殊結構,使每個特殊類都繼承并使用其一般類中的屬性和服務,使之高耦合。7/20/202233J. Yu,
14、 計算機學院OOD應遵循的原則(四)弱耦合降低交互耦合1.盡量降低消息連接的復雜程度。應該盡量減少消息中包含的參數(shù)個數(shù),降低參數(shù)的復雜程度。2.減少對象發(fā)送(或接收)的消息數(shù)。 提高繼承耦合7/20/202234J. Yu, 計算機學院OOD應遵循的原則(五)強內聚服務內聚類內聚一般-特殊內聚7/20/202235J. Yu, 計算機學院OOD應遵循的原則內聚在OOD中內聚表示一組OOD成分相互關系的緊密程度。存在以下幾種內聚:服務內聚、類內聚、一般-特殊內聚。服務內聚:一個服務應該實現(xiàn)一個并且只實現(xiàn)一個功能。一個服務如果實現(xiàn)多項功能,或者只實現(xiàn)一個功能的部分,則這個服務是不理想。類內聚:屬性
15、和服務應該是高內聚-沒有多余的(無用的)屬性,沒有多余的(無用的)服務,而且全部是描述類的對象責任的。一般-特殊內聚:第三種內聚是一般-特殊內聚。7/20/202236J. Yu, 計算機學院(五)強內聚在面向對象設計中,從三個層次來考察內聚性。1.單個方法的內聚性:方法是指操作的實現(xiàn)過程,一個操作由一個或多個方法實現(xiàn)。對方法的內聚性的評價與結構化設計中的相同,具有高內聚的方法應當只執(zhí)行一個功能。 OOD遵循的原則7/20/202237J. Yu, 計算機學院(五)強內聚2.類的內聚性:設計類的原則是,一個類應該只有一個用途,類中的屬性和操作應該全都是完成該類的任務所必需的,其中不包括無用的屬
16、性和操作。如果某個類有多個用途,通常應該把它分解成多個專用的類。3.層次結構的內聚性:對象之間通過繼承關系而構成的層次結構,特殊類應該確實是對它的一般化類的一種具體化。如果一個派生類摒棄了它基類的許多屬性和服務,那就是一個低內聚的。 OOD遵循的原則7/20/202238J. Yu, 計算機學院OOD應遵循的原則(六)可重用盡量使用已有的類包括開發(fā)環(huán)境提供的類庫,以及以往開發(fā)類似系統(tǒng)是創(chuàng)建的類創(chuàng)建新類時,考慮將來的可重用性7/20/202239J. Yu, 計算機學院第十章 面向對象設計設計用例實現(xiàn)方案設計技術支撐方案設計用戶界面精化設計模型7/20/202240J. Yu, 計算機學院第10
17、章 面向對象設計 面向對象的分析模型主要由頂層架構圖、用例與用例圖、領域概念模型構成;設計模型則包含以包圖表示的軟件體系結構圖、以交互圖表示的用例實現(xiàn)圖、完整精確的類圖、針對復雜對象的狀態(tài)圖和用以描述流程化處理過程的活動圖等。為了完成這些轉換設計人員必須處理好下列問題: (1) 針對分析模型中的用例,設計實現(xiàn)方案,實現(xiàn)方案用UML交互 圖表示 (2)設計技術支撐設施 (3)設計用戶界面 (4)針對分析模型中的領域概念模型以及第(2)、(3)兩步引用的的新類,完整、精確地確定每個類的屬性和操作,并完整地標示類之間的關系。7/20/202241J. Yu, 計算機學院第10章 面向對象設計7/20
18、/202242J. Yu, 計算機學院10.1 設計用例實現(xiàn)方案UML的交互圖(順序圖、協(xié)作圖)適于用例實現(xiàn)方案的表示。設計方法包含三步:(1)提取邊界類、實體類和控制類(2)構造交互圖(3)根據(jù)交互圖精化類圖第10章 面向對象設計7/20/202243J. Yu, 計算機學院第10章 面向對象設計 10.2 設計技術支撐方案技術支撐方案應該為多個用例的軟件實現(xiàn)提供技術服務,所以,它應該成為整個目標軟件系統(tǒng)中全局性的公共技術平臺。數(shù)據(jù)持久存儲服務并行與同步控制服務技術支撐方案與用例實現(xiàn)方案的融合 7/20/202244J. Yu, 計算機學院10.3 設計用戶界面需求分析和軟件設計階段都必須考慮人機交互問題。在需求分析階段要確定人機交互的屬性和外部服務,而在設計階段要給出有關人機交互的所有系統(tǒng)成份,包括用戶如何操作系統(tǒng)、系統(tǒng)如何響應命令和系統(tǒng)顯示信息的報表格式等。用戶界面設計策略與步驟如下: (1)熟悉用戶并對用戶分類 (2)按用戶類別分析用戶的工作流程和習慣 (3)設計命令系統(tǒng)并進行優(yōu)化 (4)設計用戶界面的各種細節(jié) (5)增加用戶界面專用的類與對象 (6)利用快速原型法改進界面設計 第10章 面向對象設計7/20/202245J. Yu, 計算機學院10.4 精化設計模型 對設計模型精化需要考慮以下任務: (1)以頂層架構圖
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學數(shù)字媒體技術(多媒體技術)試題及答案
- 2025年大學動物科學(飼料配方)試題及答案
- 2026年裝修工藝(墻面裝修技術)試題及答案
- 2025年中職建筑材料(建筑材料檢測)試題及答案
- 2025年中職老年人服務與管理(心理慰藉)試題及答案
- 禁毒安全班會課件
- 煙臺消防安全整治工程
- 電氣安全隱患排查整改標準對照表排查電氣隱患請對照標準逐一排查
- 神奇基因介紹
- 2026中國武夷實業(yè)股份有限公司國際事業(yè)部招聘1人備考題庫帶答案詳解
- 水利工程施工監(jiān)理規(guī)范(SL288-2014)用表填表說明及示例
- IATF16949-質量手冊(過程方法無刪減版)
- 妊娠合并膽汁淤積綜合征
- 河南省安陽市滑縣2024-2025學年高二數(shù)學上學期期末考試試題文
- 新疆維吾爾自治區(qū)普通高校學生轉學申請(備案)表
- 內鏡中心年終總結
- 園林苗木容器育苗技術
- 陜西省2023-2024學年高一上學期新高考解讀及選科簡單指導(家長版)課件
- 兒科學熱性驚厥課件
- 《高職應用數(shù)學》(教案)
- 漢堡規(guī)則中英文
評論
0/150
提交評論