©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系TheMcGraw-HillCompanies©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-2TheMcGraw-HillCompanies大綱物件導向技術的基本概念物件導向塑模語言UML基本概念物件導向軟體系統開發流程,包括分析、設計與建構使用者需求塑模方法,包括使用案例模型與領域模型物件導向分析方法,包括使用案例循序圖與類別圖分析物件導向設計方法,包括介面設計與資料設計物件導向系統建構方法,包括繼承、物件連結與介面實作目標導向使用案例方法©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-3TheMcGraw-HillCompanies企業塑模企業塑模(BusinessModeling)是物件導向軟體開發的初期階段,針對使用者需求加以分析,並建立系統的使用案例模型與領域模型。©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-4TheMcGraw-HillCompanies使用者需求-劇院訂票系統某劇院每日進行一場戲劇演出,並開放電話預約訂票服務,訂票人須在開場前2小時取票,逾時則取消訂票資料。需開發的劇院訂票系統最主要的功能為預約訂票及分配訂票人座位。當訂票人來電預約訂票時,客服人員根據預約日期及人數,查詢及分配座位,並記錄訂票代號、訂票人姓名、電話、預約日期、座位號碼及張數。當訂票人來電取消訂票時,客服人員可以檢查訂票代號及訂票資料以取消預約訂票。而當訂票人抵達票亭取票時,票亭人員查詢其預約訂票資料及檢查身分證件,並記錄訂票人已取票。在開場前2小時,票亭人員可以查詢所有逾時未取的訂票資料,直接刪除其訂票資料。©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-5TheMcGraw-HillCompanies使用案例塑模UML表示法提供以多種不同觀點來塑模軟體系統,其中,「使用案例觀點」(UseCaseView)可做為核心來連結其他觀點,並可以使用案例圖做為塑模使用者需求的起始點。使用案例(Usecase)是用來描述某項特定工作,透過使用案例的執行以達成系統所需的功能。行為者(Actor)表示使用者與系統互動時所扮演的角色,一個行為者可以參與多個使用案例的執行。©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-6TheMcGraw-HillCompanies使用案例塑模-劇院訂票系統(初步)©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-7TheMcGraw-HillCompanies使用案例規格樣板(1/2)ID和名稱:每個使用案例必須有唯一的ID和名稱。Description:為使用案例的用途和結果之簡介。Actors:為所有參與的行為者。Assumptions:為應用此使用案例的假設狀況。Constraints:為此使用案例的使用限制。Priority:為此使用案例對於系統功能的重要性。Pre-Conditions:為使用案例執行前必須符合之條件。Post-Conditions:為使用案例執行後必須符合之條件。BasicFlow:為使用案例執行過程中沒有遭遇問題或發生錯誤等例外狀況的基本系列事件(BasicCourseofEvents)。AlternativeFlows:為使用案例執行過程中遭遇問題時的替代系列事件(AlternativeCourseofEvents)。©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-8TheMcGraw-HillCompanies使用案例規格樣板(2/2)ExceptionalFlows:為使用案例執行過程中若發生錯誤等例外狀況的例外系列事件(ExceptionalCourseofEvents)。IncludeUseCases:為所包含的其他使用案例。BusinessRules:為與此使用案例相關的企業規則。SpecialRequirements:為額外的特殊需求,如:非功能性需求。Artifacts:為此使用案例的執行結果產出。UseCaseGlossary:為使用案例所用到的詞彙和說明。©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-9TheMcGraw-HillCompanies使用案例規格樣板-劇院訂票系統©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-10TheMcGraw-HillCompanies使用案例-關係使用案例圖中,有以下幾種關係包含(Include)關係一般化(Generalization)關係擴充(Extend)關係©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-11TheMcGraw-HillCompanies包含關係在使用案例圖中,使用案例可以透過包含關係來含括其他的使用案例。包含關係屬於一種Dependency關係,使用虛線箭號來連結兩個使用案例,並加上一個includestereotype符號指示此為包含關係。©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-12TheMcGraw-HillCompanies一般化關係(1/2)客服人員與票亭人員都可以執行顯示訂位使用案例,因此顯示訂位使用案例必須連結到這兩種行為者,為了簡化此連結關係,可以新增一個稱為工作人員行為者並與顯示訂位使用案例連結,而客服人員與票亭人員行為者可以透過一般化(Generalization)關係繼承工作人員行為者的所有連結關係,執行顯示訂位使用案例。一般化使用三角形箭號的實線連結兩個行為者。©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-13TheMcGraw-HillCompanies一般化關係(2/2)©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-14TheMcGraw-HillCompanies擴充關係在使用案例圖中,使用案例可以透過擴充關係來擴充其他的使用案例。擴充關係屬於一種Dependency關係,使用虛線箭號連結兩個使用案例,並加上extendstereotype符號指示此為擴充關係。©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-15TheMcGraw-HillCompanies使用案例塑模-劇院訂票系統(完整)©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-16TheMcGraw-HillCompanies領域塑模從使用案例塑模中可以找出系統裡重要的實體,以及彼此之間的關係,這些可被UML類別圖中的類別、屬性、連結關係、繼承關係和聚合關係進行塑模,以建立系統的領域模型(DomainModeling)。領域模型中類別圖的操作(Operation)通常不用加以表示,而至物件導向分析階段再進行考慮。©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-17TheMcGraw-HillCompanies領域模型-劇院訂票系統(初步)©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-18TheMcGraw-HillCompanies類別圖基本元素類別連結關係上的數字符號描述每個類別參與某一關係的個數,「*」代表多個,也可用「n」表達。UML可以在連結關係上用虛線連接限制的注解符號說明類別圖中的限制。一般化(Generalized)關係系統設計者可以結合電話訂票和現場購票兩者,產生一般化(Generalized)的訂票父類別,具有兩者的共同特性。抽象類別(AbstractClass),不會產生實例(Instance)物件。例如,訂票類別。©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-19TheMcGraw-HillCompanies領域模型-劇院訂票系統(修正)©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-20TheMcGraw-HillCompanies物件導向分析系統分析是軟體開發過程的重要階段,然而在物件導向的軟體開發中,因為物件導向分析與物件導向設計兩項工作都是使用相同的概念與表示法進行軟體開發,因此這兩個階段常常無法有明確的區分界線。一般對於這兩個階段的區分如下:物件導向分析(Object-OrientedAnalysis)用於分析系統需求,著重於描述真實世界的系統是什麼(What)。物件導向設計(Object-OrientedDesign)則著重於描述所需開發的軟體系統要如何完成(How)。©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-21TheMcGraw-HillCompanies物件分析互動圖是描述物件之間如何互動,因此必須先找出系統中有哪些物件,這部分可從領域模型著手。領域模型描述系統中的類別以及彼此間的關係,可做為建構類別圖的基礎。每個軟體系統的物件必須明確定義所負責的工作並以操作表示。每個物件的負責工作必須具有凝聚力(Cohesion)。當在互動圖中描述物件之間的互動過程以完成使用案例所需求的功能時,應特別注意每個物件的負責工作必須符合内聚性原則,避免讓同個物件負責多個不相關的工作。©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-22TheMcGraw-HillCompanies軟體架構在進行細部的物件導向分析之前,可以先規劃巨觀的軟體架構(SoftwareArchitecture)。軟體架構描述整體系統可以分解為哪些子系統、每個子系統所扮演的角色以及子系統之間的關係。系統設計者可直接應用現有的軟體架構樣式(Pattern)設計軟體系統的架構。樣式是指以往物件導向軟體開發的成功經驗紀錄,包括所遭遇的問題、解決方法、應用範例和影響結果等。©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-23TheMcGraw-HillCompanies分層結構樣式三層式的分層結構如同MVC架構(Model-View-Controller),可以將整個系統分成三個層次的子系統Presentation子系統,負責使用者介面的輸出入與畫面顯示。Application子系統,負責企業邏輯的運算與控制處理。Storage子系統,負責維護資料以及資料庫連結的處理。©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-24TheMcGraw-HillCompanies三層式的軟體架構©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-25TheMcGraw-HillCompanies使用案例實作在物件導向分析階段,將利用互動圖(常使用循序圖)描述物件之間如何互動,以完成使用案例所描述的功能。©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學系3-26TheMcGraw-HillCompanies顯示訂位使用案例的循序圖©2009,李允中教授,國立中央大學資訊工程學系©2009,李允中教授,國立中央大學資訊工程學