軟件工程理論與實踐 課件 7面向對象分析與設計_第1頁
軟件工程理論與實踐 課件 7面向對象分析與設計_第2頁
軟件工程理論與實踐 課件 7面向對象分析與設計_第3頁
軟件工程理論與實踐 課件 7面向對象分析與設計_第4頁
軟件工程理論與實踐 課件 7面向對象分析與設計_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

XXXXXX大學軟件工程SOFTWARE

ENGINEERING教師:XXXXX2024教學目標:(1)了解面向對象分析與設計的基本概念;(2)掌握面向對象的用例建模、靜態(tài)建模和動態(tài)建模過程;(3)理解面向對象的系統(tǒng)設計和對象設計;(4)能夠對小型軟件系統(tǒng)進行用例圖、類圖和順序圖設計。第7章面向對象分析與設計7.1面向對象分析面向對象分析是指利用面向對象的概念和方法為軟件需求建造模型,使用需求逐步精確化、一致化、完全化的分析過程。面向對象分析過程。這個階段主要是建立用例模型、對象類靜態(tài)模型和對象類動態(tài)模型。7.2用例建模7.2.1用例建模過程1.確定系統(tǒng)的范圍和邊界2.確定系統(tǒng)的參與者3.確定系統(tǒng)的用例4.確定用例之間的關系5.建立用例圖并定義用例圖的層次結構6.用例描述7.2.2用例圖設計用例圖(usecasediagram)是表示一個系統(tǒng)中用例與參與者之間關系的圖。它描述了系統(tǒng)中相關的用戶和系統(tǒng)對不同用戶提供的功能和服務。1.參與者參與者也稱為角色。參與者示例。在用例圖中,參與者有兩種表示方法。參與者的圖標表示法是一個小人圖形,圖標下方顯示參與者的名稱。參與者還可以使用帶有<<actor>>構造型的類符號,也就是一個矩形來表示。一般情況下,習慣用圖標表示法來代表人,用類符號表示法來表示事物。2.用例在用例圖中,用例用一個包含名稱的橢圓形來表示。用例示例。其中用例的名稱可以顯示在橢圓內部或橢圓下方。3.關系(1)參與者間的泛化關系(2)參與者與用例的關聯關系(3)用例間的泛化關系(4)用例間的包含關系(5)用例間的擴展關系7.2.3用例建模實例1.情境說明機票預訂系統(tǒng)是某航空公司推出的一款網上訂票系統(tǒng)。未實名認證的用戶只能查詢航班信息;已實名認證的用戶登錄后還可以預訂機票、退訂機票和查看訂單。系統(tǒng)管理員可以管理用戶信息和航班信息。用戶在登錄時如果忘記密碼,可以通過郵箱找回密碼。2.確定參與者在了解系統(tǒng)使用場景后,首先分析需求確定系統(tǒng)中的參與者。根據分析系統(tǒng)的情境說明可以得出,系統(tǒng)主要有兩類參與者,分別是用戶與管理員。其中用戶包括普通用戶和注冊用戶,表示為參與者的泛化關系。因為用戶一定屬于二者其中之一,所以用戶應該是一個抽象參與者。確定參與者。3.確定用例分析出系統(tǒng)的參與者之后,就可以通過分析每個參與者是如何使用系統(tǒng)確定系統(tǒng)中的用例。在機票預訂系統(tǒng)中,普通用戶可以進行實名認證和查詢航班信息;注冊用戶可以登錄系統(tǒng)、查詢航班信息、預訂機票、退訂機票和查看訂單;管理員可以登錄系統(tǒng)、管理用戶信息和管理航班信息。確定用例。4.確定用例之間的關系在確定完所有用例之后,需要具體考慮每個用例的工作流程從而添加用例之間的依賴關系。在機票預訂系統(tǒng)中,用戶在預訂機票時需要先查詢相關的航班信息,因此預訂機票用例與查詢航班信息用例之間可以建立包含關系。如果用戶在登錄時忘記密碼,可以使用找回密碼功能,由于這一關系是有條件的,所以二者構成擴展關系。為保證對用例的粒度控制在同一個量級上,可以將管理用戶信息與管理航班信息都

定義為抽象用例,并分別創(chuàng)建其非抽象的子用例。將以上關系添加到用例圖中,形成最終的用例圖。機票預訂系統(tǒng)用例圖。5.用例描述用例描述的內容可以使用UML中定義的格式,也可以根據項目實際情況選擇其它格式。下面以機票預訂系統(tǒng)的“機票預訂”用例為例,給出一個用例描述的格式和內容作為參考,在實際建模過程中可以靈活使用。7.3靜態(tài)建模7.3.1靜態(tài)建模過程1.確定類與對象(1)找出候選的類與對象(2)篩選出正確的類與對象2.確定屬性(1)分析(2)選擇3.確定關聯(1)初步確定關聯(2)篩選(3)完善關聯4.優(yōu)化模型7.3.2類圖設計類圖(classdiagram)是顯示一組類、接口以及它們之間關系的圖。一個類圖主要通過系統(tǒng)中的類以及各個類之間的關系來描述系統(tǒng)的靜態(tài)結構。1.類2.接口接口是一個被命名的操作集合,用于描述類或組件的一個服務。接口不同于任何類或類型,它不描述任何結構,因此不包含任何屬性;也不描述任何實現,因此不包含任何實現操作的方法。像類一樣,接口可以有一些操作。接口中沒有對自身內部結構的描述,因此,接口沒有私有特性,它的所有內容都是公共的。接口代表了一份契約,實現接口的類必須縷履行這份契約。3.關系(1)關聯關系(2)泛化關系(3)依賴關系(4)實現關系7.3.3靜態(tài)建模實例1.確定類2.添加類的屬性與操作3.確定類圖中的關系7.4動態(tài)建模7.4.1順序圖設計1.對象與生命線2.激活3.消息7.4.2活動圖設計1.動作2.開始與終止3.控制流4.判斷節(jié)點5.合并節(jié)點6.分叉節(jié)點與結合節(jié)點7.泳道7.4.3動態(tài)建模實例(1)確定交互對象創(chuàng)建順序圖的第一步就是要明確參與對象?!暗卿洝庇美挠脩糇鳛閰⑴c者,是交互過程的發(fā)起者。如果機票預訂系統(tǒng)采用MVC模式進行設計,參與交互過程的對象還包括用戶界面、邏輯層和數據庫。確定交互對象。(2)添加消息在確定了參與交互的對象之后,就要在對象之間添加消息的傳遞。用戶首先在界面填寫表單并確認,用戶界面將用戶填寫的表單數據發(fā)送給邏輯層,邏輯層向數據庫發(fā)送請求來檢查用戶數據的合法性,接收到合法的返回消息后,邏輯層再向界面發(fā)送消息顯示出登錄結果。按照分析的交互過程,向順序圖中添加消息,創(chuàng)建出完整的順序圖。登錄用例順序圖。2.以某機票預訂系統(tǒng)的預訂機票用例為例,展示活動圖的設計過程。(1)確定泳道首先確定參與的對象,即確定活動圖中的泳道,通過分析,預訂機票用例共有選擇航班、確認信息、提示無票、提交、更新機票信息、產生機票訂單等動作。泳道說明了活動的執(zhí)行者,因此,以上動作可以分為用戶和系統(tǒng)兩個泳道。繪制泳道。(2)按邏輯順序完成活動圖在確定泳道后,梳理預訂機票的業(yè)務流程。用戶首先選擇航班,如果所選航班已無票,則系統(tǒng)返回提示信息,用戶可以重新選擇航班;如果所選航班有票,則系統(tǒng)請求用戶確認訂票信息,此時用戶可以取消訂票,也可以確認訂票信息后進行提交,用戶提交后系統(tǒng)將更新機票信息并同時生成機票訂單,然后結束預訂機票流程。7.5面向對象設計7.5.1系統(tǒng)設計1.問題域子系統(tǒng)設計(1)調整需求。如果需求發(fā)生了變化或是分析人員在理解軟件需求上還不完整,需要簡單修改面向對象分析的結果,再把這些修改反映到問題域子系統(tǒng)中。(2)重用已有類。軟件設計時,要考慮如何將已有的類增加到問題域部分中。因此,需要在已有類中找到能被問題域重用的類,然后由重用的類派生出問題域的類,再添加定義問題域的類,最后修改與問題域類相關的關聯。(3)組合問題域類。先分析查找一個能把問題域類組合在一起的類,作為根類,把所有與問題域有關的類關聯到一起,建立類的層次結構。把同一問題域的一些類集合起來存放到類庫中,起到概括每一個類及對象的作用。(4)調整繼承關系。面向對象分析模型中包括多重繼承,而設計語言一般不支持多重繼承,必須對面向對象分析的結果做修改,把多重繼承轉換為單繼承。2.人機交互子系統(tǒng)設計人機交互部分是面向對象設計模型的外圍組成部分之一。在面向對象分析過程中,已經對用戶界面需求做了初步分析。在面向對象設計過程中,則應該對系統(tǒng)的人機交互子系統(tǒng)進行詳細設計,以確定人機交互的細節(jié)。人機交互設計的質量,將直接影響用戶對軟件產品的評價。3.任務管理子系統(tǒng)設計任務是進程的別稱,是執(zhí)行一系列活動的一段程序。當系統(tǒng)中有許多并發(fā)行為時,需要依照各個行為的協調和通信關系劃分各種任務,以簡化并發(fā)行為的設計和編碼。任務管理的一項重要內容是確定哪些是必須同時進行的任務,哪些是相互排斥的任務。設計人員根據以上任務,最后設計出任務管理子系統(tǒng)。4.數據管理子系統(tǒng)設計數據管理子系統(tǒng)為面向對象設計模型提供了在特定的數據庫管理系統(tǒng)之上,存儲或檢索對象的基本結構。設計數據管理子系統(tǒng)的目的是將目標軟件系統(tǒng)中依賴平臺開發(fā)的數據存取部分與其他功能分離。7.5.2對象設計1.對象描述對象是類的一個實例,對象的設計描述可以采用以下兩種形式之一。(1)協議描述通過定義對象可以接收到的每個消息和當對象接收到消息后完成的相關操作來建立對象的接口。協議描述是一組消息和對消息的注釋。(2)實現描述描述由傳送給對象的消息所蘊含的每個操作的實現細節(jié),包括對象名字的定義和類的引用、關于描述對象的屬性的數據結構的定義及操作過程的細節(jié)。2.設計類中的服務(1)確定類中應有的服務需要綜合考慮設計模型才能確定類中應有的服務。(2)設計實現服務的方法設計實現服務首先應設計實現服務的算法,考慮算法的復雜度,如何使算法容易理解、容易實現并容易修改。其次是選擇數據結構,要選擇能方便、有效地實現算法的數據結構。最后定義類的內部操作,可能需要添加一些用來存放中間結果的類。3.設計類的關聯在應用系統(tǒng)中,使用關聯有兩種可能的方式,即只需單向遍歷的單向關聯和需要雙向遍歷的雙向關聯。4.鏈屬性的實現鏈屬性的實現要根據具體情況分別處理。如果是一對一關聯,鏈屬性可作為其中一個對象

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論