




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第九課面向對象分析與設計方法第九課面向對象分析與設計方法1方法學和面向對象方法論1.方法論是指思考和做事的策略、步驟、方向和行動面向對象方法論的概念在1987年由Booch首先提出2.目前面向對象方法論有50多種,主要有:Booch模型;Rumbaugh的OMT模型;Jacobson的OOSE模型;Martin的OOAD模型;Shlaer的OOSA模型;Coad的面向對象方法論;Martin的面向對象方法論等等。3.目前人們在努力統一各種面向對象方法論,統一的結果是產生了統一模型語言——UML。UML本身不是方法,但是UML提供了能夠描述所有面向對象方法的符號工具和語義工具。方法學和面向對象方法論1.方法論是指思考和做事的策略、步驟、2面向對象程序設計的一般過程面向對象程序設計的一般過程3面向對象程序設計的一般方法描述問題域提出解決方案實施解決方案建立面向對象的領域模型確定面向對象的實現模型構造、測試和發布面向對象程序OOAOODOOP重點考慮什么事必須完成,而不是如何完成。決定問題如何來解決。面向對象程序設計的一般方法描述問題域提出解決方案實施解決方案4本課使用的例子一個文件分割、合并器能夠分割和合并文件能夠增加和刪除文件能夠展示和提取文件本課使用的例子一個文件分割、合并器5領域模型OMT方法Coad對象方法Jacobson用例驅動方法領域模型OMT方法6領域模型(Coad方法)確定目的確定對象和模式(行為、數據)建立對象責任(行為、數據、功能)定義服務場景模型部件問題域(PD)人機交互(HI)數據管理(DM)系統交互(SI)領域模型(Coad方法)確定目的確定對象和模式建立對象責任定7領域模型(OMT方法)1.什么是對象模型對象模型描述了客觀世界實體以及實體彼此間的關系,是問題域的靜態數據結構表示,以對象圖形式表示。2.什么是動態模型動態模型表示瞬時的、行為化的系統的“控制”性質,規定了類型模型中實體的合法變化序列,即對象的動態行為,以狀態圖形式表示。3.什么是功能模型功能模型用來描述系統中對象功能,表達數據的流動、轉換情形,以數據流程圖、用例圖形式表示。領域模型(OMT方法)1.什么是對象模型8領域模型(Jacobson用例方法)用例(usecase)是指行為相關的事務(transaction)序列,該序列由用戶在與系統交互中執行。每一個用例就是一個使用系統的方式,當用戶給定一個輸入,就執行一個用例的實例,并引發執行屬于該用例的一個事務。確定用例模型,用例由使用者、實例和作用三個部分描述使用用例模型構造需求模型需求模型包括領域對象模型、界面描述使用用例和需求模型建立分析模型,分析模型用于劃分出接口對象、實體對象、控制對象,以及由這些對象組成的子系統領域模型(Jacobson用例方法)用例(usecase9建立領域模型的一般方法領域模型的內涵:問題域有什么問題域做什么問題域需要我們提供什么功能領域模型建立的一般步驟:1.跟蹤、記錄所有的實體,輸出一個實體的詞匯表2.統一類型、實體命名方法和規則3.描述單個類型,輸出不完全的類圖4.確定類型之間的關系,輸出完整的類圖(問題域的靜態結構)5.描述狀態、時序、流程(問題域的動態結構)6.建立用例,用于描述功能7.提取界面并展示給用戶8.迭代上述過程建立領域模型的一般方法領域模型的內涵:10描述實體類型文件集合文件描述實體類型文件11描述類型之間的靜態關系關聯關系普通關聯遞歸關聯限定關聯或關聯有序關聯關聯類三元關聯聚合關系繼承關系依賴關系描述類型之間的靜態關系關聯關系12文件和集合文件的關系在問題域中的模型主要用于呈現給用戶以及對問題的理解,可以是不精確的,可能與最后的實現模型有一定的區別文件和集合文件的關系在問題域中的模型主要用于呈現給用戶以及對13描述實體類型的動態關系可以用活動、狀態序列等描述類型之間的動態關系描述實體類型的動態關系可以用活動、狀態14建立用例用例用于以下目的:確定系統功能,達成與用戶的共識在分析、設計、開發人員之間取得一致提供系統設計、實現中類、對象等的設計依據為系統測試打下基礎用例由以下幾個部分構成:角色實例實例的操作關系(時序、調用、合并)角色-實例的描述建立用例用例用于以下目的:15用例圖用例圖16小結(領域模型)對問題域的分析輸出了以下成果1.確定了問題域中有哪些實體類型以及它們之間的關系2.確定了問題域中這些實體類型的動態結構3.確定了需要實現的功能如果使用UML工具,將形成1 .類圖2.活動圖3.用例圖小結(領域模型)對問題域的分析輸出了以下成果17實現模型(OMT方法)1.確定體系結構將系統劃分成子系統確定問題域中一致的繼承分配子系統的處理器和任務選擇一個方法管理數據存儲確定全局資源以及訪問方式確定系統的控制流處理邊界條件2.確定對象結構合并問題域三個模型來獲得類的操作(服務)設計算法實現操作優化對數據的訪問路徑調整類結構,增加繼承、抽象和泛化確定類關系(作用關系)將類和關系封裝在子系統或者模塊中3輸出結果更加詳細的對象模型、動態模型、功能模型實現模型(OMT方法)1.確定體系結構18實現模型(Coad方法)人機交互問題域數據管理任務管理類與對象層主題層結構層屬性層服務層主題層:模塊、包、命名空間的劃分類與對象層:確定有哪些類結構層:確定類、對象之間的關系(通用-特定;整體-部分)屬性層:確定類的屬性,以及屬性的封裝機制服務層:確定類的接口實現模型(Coad方法)人機問題域數據任務類與對象層主題層結19實現模型(用例方法)用例方法將該階段稱為構造階段,構造階段的成果包含了:1.構塊模型,構塊模型的設計集中考慮可跟蹤性、實現環境2.交互作用圖,交互作用、事件與激勵、均一化3.確定對象內部行為(狀態圖)4.實現和測試實現模型(用例方法)用例方法將該階段稱為構造階段,構造階段的20建立實現模型的一般方法實現模型的內涵:1.實現模型中有哪些類,每個類有哪些接口2.實現模型中這些類是怎樣組織的3.對于每一項功能,實現模型中類的動態調用過程是怎樣的4.類、接口、功能以怎樣的方式呈現給用戶建立實現模型的一般步驟:1.擴展問題模型確定對象類以及對象類的領域(類圖)2.尋找可重用的設計模式3.根據問題模型確定類的狀態空間和行為接口(類圖)4.根據問題模型確定類的組織方式(類圖/對象圖/包圖/配置圖)5.確定類的工作流、控制流(細化的活動圖、序列圖等)6.迭代上述過程建立實現模型的一般方法實現模型的內涵:21確定類的領域一個標準的面向對象系統的類包括四個領域1.應用領域——包含了對于應用本身有價值的類事件管理類事件識別類2.商業領域——包含了對于行業有價值的類關系類角色類屬性類3.結構領域——包含了對于體系結構有價值的類人機界面類數據操作類機器通信類4.基礎領域——包含了實現應用、商業、結構的語言相關的類語義類結構類基礎類可重用性:基礎領域>結構領域>商業領域>應用領域確定類的領域一個標準的面向對象系統的類包括四個領域可重用性22確定類的領域應用領域類文件集合類(SetFile)商業領域類文件類(File)文件流類(FileStreamOpt)文件合并分割類(FileCutMerge)結構領域類系統主窗口MainWindow集合文件瀏覽窗口FilesBrowseWindow文件詳細信息查看窗口FileInfoWindow命令按鈕/工具欄CommandButton/CommandToolBar基礎領域類字符串/整數/布爾String/Integer/Boolean日期時間DateTime哈希表Hash枚舉Iterator確定類的領域應用領域類23確定類的狀態空間和行為接口類的狀態空間是指類的屬性以及屬性的約束條件類的行為接口是指類暴露的方法或者服務在復雜的類設計中,類的狀態空間和行為接口應通過對不變式、前置條件和后置條件的設計作為依據類的不變式、前置條件和后置條件可以作為系統單元測試的主要依據例如在設計時刻應確保FileStreamOpt的行為接口ExtractStream前置條件是存在一個File(file1)對象,后置條件是存在一個File(file2)對象和一個FileStreamOpt(stream1)對象,且Size(file1)=size(file2)+size(stream1)為不變式確定類的狀態空間和行為接口類的狀態空間是指類的屬性以及屬性的24類的狀態空間和行為類的狀態空間和行為25確定類的組織方式類的組織方式往往和實現的語言有關,類可以有以下幾種組織方式,類的組織設計應以問題域的類圖為依據:1.通用-特化(繼承關系)2.抽象-實例(接口、抽象類、模板)3.聚集(成員)4.關聯(單向或者雙向的引用)5.依賴(函數參數、友元)確定類的組織方式類的組織方式往往和實現的語言有關,類可以有以26確定類的組織方式確定類的組織方式27確定類的工作流根據用例細化問題域的狀態圖、活動圖等,詳細描述對于用例的每一個實例,確定系統對象調用流程確定類的工作流根據用例細化問題域的狀態圖、活動圖等,詳細描28小結(實現模型)建立實現模型將輸出以下結果:確定了系統所有實現的類、類的接口、不變式確定了類之間的組織關系每一個功能的實現細節如果使用UML,將形成以下內容類圖、對象圖、包圖協作圖、活動圖、配置圖細化的用例圖小結(實現模型)建立實現模型將輸出以下結果:29第九課面向對象分析與設計方法第九課面向對象分析與設計方法30方法學和面向對象方法論1.方法論是指思考和做事的策略、步驟、方向和行動面向對象方法論的概念在1987年由Booch首先提出2.目前面向對象方法論有50多種,主要有:Booch模型;Rumbaugh的OMT模型;Jacobson的OOSE模型;Martin的OOAD模型;Shlaer的OOSA模型;Coad的面向對象方法論;Martin的面向對象方法論等等。3.目前人們在努力統一各種面向對象方法論,統一的結果是產生了統一模型語言——UML。UML本身不是方法,但是UML提供了能夠描述所有面向對象方法的符號工具和語義工具。方法學和面向對象方法論1.方法論是指思考和做事的策略、步驟、31面向對象程序設計的一般過程面向對象程序設計的一般過程32面向對象程序設計的一般方法描述問題域提出解決方案實施解決方案建立面向對象的領域模型確定面向對象的實現模型構造、測試和發布面向對象程序OOAOODOOP重點考慮什么事必須完成,而不是如何完成。決定問題如何來解決。面向對象程序設計的一般方法描述問題域提出解決方案實施解決方案33本課使用的例子一個文件分割、合并器能夠分割和合并文件能夠增加和刪除文件能夠展示和提取文件本課使用的例子一個文件分割、合并器34領域模型OMT方法Coad對象方法Jacobson用例驅動方法領域模型OMT方法35領域模型(Coad方法)確定目的確定對象和模式(行為、數據)建立對象責任(行為、數據、功能)定義服務場景模型部件問題域(PD)人機交互(HI)數據管理(DM)系統交互(SI)領域模型(Coad方法)確定目的確定對象和模式建立對象責任定36領域模型(OMT方法)1.什么是對象模型對象模型描述了客觀世界實體以及實體彼此間的關系,是問題域的靜態數據結構表示,以對象圖形式表示。2.什么是動態模型動態模型表示瞬時的、行為化的系統的“控制”性質,規定了類型模型中實體的合法變化序列,即對象的動態行為,以狀態圖形式表示。3.什么是功能模型功能模型用來描述系統中對象功能,表達數據的流動、轉換情形,以數據流程圖、用例圖形式表示。領域模型(OMT方法)1.什么是對象模型37領域模型(Jacobson用例方法)用例(usecase)是指行為相關的事務(transaction)序列,該序列由用戶在與系統交互中執行。每一個用例就是一個使用系統的方式,當用戶給定一個輸入,就執行一個用例的實例,并引發執行屬于該用例的一個事務。確定用例模型,用例由使用者、實例和作用三個部分描述使用用例模型構造需求模型需求模型包括領域對象模型、界面描述使用用例和需求模型建立分析模型,分析模型用于劃分出接口對象、實體對象、控制對象,以及由這些對象組成的子系統領域模型(Jacobson用例方法)用例(usecase38建立領域模型的一般方法領域模型的內涵:問題域有什么問題域做什么問題域需要我們提供什么功能領域模型建立的一般步驟:1.跟蹤、記錄所有的實體,輸出一個實體的詞匯表2.統一類型、實體命名方法和規則3.描述單個類型,輸出不完全的類圖4.確定類型之間的關系,輸出完整的類圖(問題域的靜態結構)5.描述狀態、時序、流程(問題域的動態結構)6.建立用例,用于描述功能7.提取界面并展示給用戶8.迭代上述過程建立領域模型的一般方法領域模型的內涵:39描述實體類型文件集合文件描述實體類型文件40描述類型之間的靜態關系關聯關系普通關聯遞歸關聯限定關聯或關聯有序關聯關聯類三元關聯聚合關系繼承關系依賴關系描述類型之間的靜態關系關聯關系41文件和集合文件的關系在問題域中的模型主要用于呈現給用戶以及對問題的理解,可以是不精確的,可能與最后的實現模型有一定的區別文件和集合文件的關系在問題域中的模型主要用于呈現給用戶以及對42描述實體類型的動態關系可以用活動、狀態序列等描述類型之間的動態關系描述實體類型的動態關系可以用活動、狀態43建立用例用例用于以下目的:確定系統功能,達成與用戶的共識在分析、設計、開發人員之間取得一致提供系統設計、實現中類、對象等的設計依據為系統測試打下基礎用例由以下幾個部分構成:角色實例實例的操作關系(時序、調用、合并)角色-實例的描述建立用例用例用于以下目的:44用例圖用例圖45小結(領域模型)對問題域的分析輸出了以下成果1.確定了問題域中有哪些實體類型以及它們之間的關系2.確定了問題域中這些實體類型的動態結構3.確定了需要實現的功能如果使用UML工具,將形成1 .類圖2.活動圖3.用例圖小結(領域模型)對問題域的分析輸出了以下成果46實現模型(OMT方法)1.確定體系結構將系統劃分成子系統確定問題域中一致的繼承分配子系統的處理器和任務選擇一個方法管理數據存儲確定全局資源以及訪問方式確定系統的控制流處理邊界條件2.確定對象結構合并問題域三個模型來獲得類的操作(服務)設計算法實現操作優化對數據的訪問路徑調整類結構,增加繼承、抽象和泛化確定類關系(作用關系)將類和關系封裝在子系統或者模塊中3輸出結果更加詳細的對象模型、動態模型、功能模型實現模型(OMT方法)1.確定體系結構47實現模型(Coad方法)人機交互問題域數據管理任務管理類與對象層主題層結構層屬性層服務層主題層:模塊、包、命名空間的劃分類與對象層:確定有哪些類結構層:確定類、對象之間的關系(通用-特定;整體-部分)屬性層:確定類的屬性,以及屬性的封裝機制服務層:確定類的接口實現模型(Coad方法)人機問題域數據任務類與對象層主題層結48實現模型(用例方法)用例方法將該階段稱為構造階段,構造階段的成果包含了:1.構塊模型,構塊模型的設計集中考慮可跟蹤性、實現環境2.交互作用圖,交互作用、事件與激勵、均一化3.確定對象內部行為(狀態圖)4.實現和測試實現模型(用例方法)用例方法將該階段稱為構造階段,構造階段的49建立實現模型的一般方法實現模型的內涵:1.實現模型中有哪些類,每個類有哪些接口2.實現模型中這些類是怎樣組織的3.對于每一項功能,實現模型中類的動態調用過程是怎樣的4.類、接口、功能以怎樣的方式呈現給用戶建立實現模型的一般步驟:1.擴展問題模型確定對象類以及對象類的領域(類圖)2.尋找可重用的設計模式3.根據問題模型確定類的狀態空間和行為接口(類圖)4.根據問題模型確定類的組織方式(類圖/對象圖/包圖/配置圖)5.確定類的工作流、控制流(細化的活動圖、序列圖等)6.迭代上述過程建立實現模型的一般方法實現模型的內涵:50確定類的領域一個標準的面向對象系統的類包括四個領域1.應用領域——包含了對于應用本身有價值的類事件管理類事件識別類2.商業領域——包含了對于行業有價值的類關系類角色類屬性類3.結構領域——包含了對于體系結構有價值的類人機界面類數據操作類機器通信類4.基礎領域——包含了實現應用、商業、結構的語言相關的類語義類結構類基礎類可重用性:基礎領域>結構領域>商業領域>應用領域確定類的領域一個標準的面向對象系統的類包括四個領域可重用性51確定類的領域應用領域類文件集合類(SetFile)商業領域類文件類(File)文件流類(FileStreamOpt)文件合并分割類(FileCutMerge)結構領域類系統主窗口MainWindow集合文件瀏覽窗口FilesBrowseWindow文件詳細信息查看窗口FileInfoWindow命令按鈕/工具欄CommandButton/CommandToolBar基礎領域類字符串/整數/布
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金屬衛生器具的納米技術應用研究考核試卷
- 金屬絲繩的應用領域考核試卷
- 空手道場地布置與道服管理考核試卷
- 美容保健與按摩技術考核試卷
- 2024年建筑用木料及加工木材組件項目投資申請報告代可行性研究報告
- 開源項目代碼貢獻者激勵機制與績效評估協議
- 質押擔保補充協議(專利權)
- 跨境電商股權收益互換及市場拓展協議
- 信息安全技術中的網絡協議分析試題及答案
- 生物有機肥生產技術許可與產品檢測合同
- 《陸上風電場工程概算定額》NBT 31010-2019
- 光伏系統調試方案
- 徠卡v lux4中文說明書大約工作時間和可拍攝圖像數量
- 單基因遺傳病的分子生物學檢驗-醫學院課件
- Unit2+Extended+Reading+Beethoven-+a+remarkable+life課件【核心素養提升+備課精講精研】 牛津譯林版(2020)選擇性必修第一冊
- GB/T 28730-2012固體生物質燃料樣品制備方法
- 太陽能光伏儲能技術課件
- 威尼斯畫派課件
- 心肌病-PPT課件
- 五年級期中考試家長會課件39846
- 培養基模擬灌裝方案
評論
0/150
提交評論