面向對象的系統分析課件_第1頁
面向對象的系統分析課件_第2頁
面向對象的系統分析課件_第3頁
面向對象的系統分析課件_第4頁
面向對象的系統分析課件_第5頁
已閱讀5頁,還剩143頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第10章面向對象的系統分析OOA任務:以面向對象的觀點和方法描述系統或產品,以使它符合面向對象軟件工程的特點。系統分析的原則:①信息域建模;②描述模塊的功能;③表示模塊行為;第10章面向對象的系統分析OOA任務:以面向對象的觀點和方1④劃分模塊,取得更多的細節;⑤早期模型表示本質,后期模型提供細節。OOA的過程:①和用戶交互②標識類(定義屬性和操作)③規定類層次④確定對象之間關系⑤為對象行為建模④劃分模塊,取得更多的細節;210.1領域分析10.2OOA分析的屬過程和部件10.3OOA過程10.4對象行為模型10.1領域分析310.1領域分析目的:為了既滿足現行系統開發的需求,又能滿足將來同類系統的開發。OOA分析級別:①事務級(企業級):為整個企業建立模型,定義特定事務領域的對象模型;②領域級:為一個特定應用領域建立模型,定義該應用領域的對象模型。③應用級:為一個應用的特定用戶需求建立模型。10.1領域分析目的:為了既滿足現行系統開發的需求,410.1.1再使用和領域分析1)面向對象技術是由再使用庫支持的;2)再使用庫將使快速開發低成本、高可靠性的產品;3)建立再使用庫須進行領域分析。10.1.1再使用和領域分析1)面向對象技術是由再使用庫支510.1.2領域分析過程1)領域分析的任務①標識出應用領域中的公共需求;②面向對象的領域分析:公共對象,類等再使用部件。2)領域分析的過程⑴對于要分析的領域抽取:OO項:規范、設計、支持類非OO項:計劃、標準10.1.2領域分析過程1)領域分析的任務6⑵歸類這些項成為范疇,定義范疇特征,分類方式和項的命名約定(即確定組織方式);⑶收集有代表性的應用(提取實際的或概念上的對象);⑷分析每個應用步驟(含有已有范疇的項)①標識可再使用對象(侯選)②指明可再使用原因③對侯選再使用對象進行整修④估計在本領域中該對象應用的百分比⑵歸類這些項成為范疇,定義范疇特征,分7⑤命名該對象,用CM進行管理⑥估計再使用對象集合的應用百分比⑦為這些對象開發分析模型3)領域分析的利益使用非常高百分比的再使用部件,構造本領域的軟件,低成本,高質量和快速進入市場。⑤命名該對象,用CM進行管理810.2OOA分析的屬過程和部件10.2.1一般分析過程10.2.2屬部件(用于OOA)10.2OOA分析的屬過程和部件10.2.1一般分析過程910.2.1一般分析過程*獲取客戶需求*標識使用案例*建立需求模型(CRC)*選擇類和對象*標識對象屬性和操作*組織類的層次*建立對象關系模型*建立對象行為模型*審查分析模型10.2.1一般分析過程*獲取客戶需求1010.2.2屬部件(用于OOA)靜態部件:表明了對象的特征動態部件:控制、定時和事件處理1)類的靜態視圖:表示系統中存在的對象2)屬性靜態視圖:表示對象的屬性3)關系的靜態視圖:確定對象之間關系,相互操作和消息格式設計。4)行為動態視圖:規定操作的時間序列10.2.2屬部件(用于OOA)靜態部件:表明了對象的特115)通訊的動態視圖:發送消息的時間序列6)控制和定時的動態視圖:描述引起狀態變化事件的本質與定時。這些部件構成了分析模型。5)通訊的動態視圖:發送消息的時間序列1210.3OOA過程10.3.1使用案例10.3.2類—責任—協作者模型10.3.3定義結構和層次10.3.4定義系統和子系統10.3.5對象聯系模型10.3OOA過程10.3.1使用案例1310.3.1使用案例描述目標系統的一種使用情況。1)角色2)使用案例作用3)使用案例圖示4)使用案例描述(事件流方法)10.3.1使用案例描述目標系統的一種使用情況141)角色和系統通訊并外部于系統的任何事物(人、設備)。特點:①一個角色代表一類外部實體②僅起一個作用主要角色:直接并經常和系統相互作用。次要角色:支持系統,使主要角色起作用。1)角色和系統通訊并外部于系統的任何事物(人152)使用案例作用描述了角色與系統的相互作用方式。①角色執行的主要任務②角色輸入系統的數據③角色得自系統的信息例:房屋安全系統角色:房主、傳感器、控制板房主使用案例:(相互作用方式)2)使用案例作用描述了角色與系統的相互作用方16*設置和修改口令*查詢安全部位狀態*查詢傳感器狀態*按緊急按鈕*激活與停止系統*設置和修改口令173)使用案例圖示⑴圖例::角色

:通訊:使用或擴展⑵表示關系:①通訊關系:角色與案例之間②使用關系:案例與案例之間,把公用功能孤立出來,形成被使用案例(再使用)3)使用案例圖示⑴圖例:18③擴展關系:案例與案例間,表明了特殊性和深入內容。⑶例:處理口令應急處理停止系統查詢傳感器查詢安全狀態激活系統房主圖10.2房主使用案例③擴展關系:案例與案例間,表明了特處理口令應急處理停止系統19處理口令應急處理停止系統查詢傳感器查詢安全狀態激活系統房主驗證口令圖10.3使用關系的框圖處理口令應急處理停止系統查詢傳感器查詢安全狀態激活系統房主驗20客戶取款展擴使用提前取款驗證口令圖10.4使用擴展關系的框圖客戶取款展使提前取款驗證口令圖10.4使用擴展214)使用案例描述(事件流方法)⑴格式:使用案例名稱簡要說明:前提條件:執行案例的前提條件主要事件流:案例正常流程其它事件流:案例非正常流程錯誤事件流:出錯事件事后條件:事件后的結果⑵例:P2224)使用案例描述(事件流方法)⑴格式:使用案例名稱22使用案例名稱:激活系統簡要說明:房主使用控制面板激活系統前提條件:系統準備號,準備好指示燈亮.主要事件流A0:

(1)房主使用數字鍵輸入4位數字口令,該口令和系統內存儲的口令比較,若正確,控制面板等待下一個命令;否則執行事件流A1.(2)房主選擇stay或away命令激活系統.Stay激活房間周邊傳感器;away激活所有的傳感器.(3)若激活成功,紅色指示燈亮;否則執行事件流E1.(4)結束使用案例.使用案例名稱:激活系統23其他事件流A1:

(1)控制面板響鈴一次.(2)系統復位.(3)執行事件流A0.錯誤事件流E1:

(1)控制面板顯示系統出錯.(2)結束使用案例.其他事件流A1:2410.3.2類—責任—協作者模型類—責任—協作者模型:用于描述用戶的需求,標出對象和類。構成:CRC卡片,頂部:類名,中左部:責任,中右部:協作者。1)類2)責任3)協作者10.3.2類—責任—協作者模型類—責任—協作者模型:用于251)類⑴確定:使用選擇特征①持有信息②有需要的服務③多個屬性④具有公共屬性(對所有對象)⑤公共操作(對所有對象實例)⑥產生需要信息1)類⑴確定:使用選擇特征26⑵類型:如設備(外部實體),相互作用類(學生成績)⑶特征:如有形的、原子的、并發的…⑷CRC卡片:

類名:

類的類型:(如設備、性質、作用、事件…)

類的特征:(如有形、原子的、并發的…)責任:協作:圖10.5CRC卡片⑵類型:如設備(外部實體),相互作用類(學生成績)272)責任:

指類的屬性及其操作。分配責任的指導原則:⑴系統的智能應均勻分布:內聚改善,修改容易。①責任表太長,表示不均勻,分裂成新類②責任抽象級別應相同.例Control-panel責任:讀入口令和顯示字符2)責任:指類的屬性及其操作。28⑵每個責任盡量具有一般性,位于類層次頂層,便于應用多態性⑶信息與其相關責任駐在同一類中—封裝性⑷單一對象的信息與行為局部于單一類中,不應跨多個類⑸適當情況下,類間共享責任:通過繼承一個公共超類⑵每個責任盡量具有一般性,位于類層次頂層,便于應用多態性293)協作者類能和其它對象協作完成其責任。⑴定義:一個對象向另一對象發消息,則發生了協作。接收消息的對象稱為協作者。⑵Control-panel對象的責任:確定傳感器狀態,為取得傳感器信息,必須有傳感器協作。3)協作者類能和其它對象協作完成其責任。3010.3.3定義結構和層次1)概化和特化關系進一步討論2)整體—部分關系的進一步討論10.3.3定義結構和層次1)概化和特化關系進一步討論311)概化和特化關系進一步討論⑴需要該模型原因①緊密地聯系于面向對象程序設計中的繼承;②將類似的類聯系起來,簡化問題域的描述;③該模型有效地描述了問題域中特定對象關系;④方便了通訊與理解問題域1)概化和特化關系進一步討論⑴需要該模型原因32⑵概化和特化的情況①多層次特化;學生碩士研究生研究生博士研究生多層概化/特化例子圖⑵概化和特化的情況學生碩士研究生研究生博士研究生多層概化/33②多路繼承人員教師學生學生教師圖10.7多路繼承②多路繼承人員教師學生學生教師圖10.7多路繼承34⑶建立模型方式①自頂向下特化:由超類特化成子類ⅰ增加子類的屬性和操作ⅱ轉載某些屬性或操作②自底向上概化:將公共屬性與操作置于超類之中⑷超類的例化問題①超類為無對象類:當子類中所有子類的并集等于超類集合⑶建立模型方式35②超類為有對象類:當子類中所有子類的并集是超類集合的子集例:對于人員的模型,如果需要工人等對象,則需從人員類中例化。⑸模型讀方式從下向上讀為…是一個…或…是一種…例:教師是一種人員②超類為有對象類:當子類中所有子類362)整體—部分關系的進一步討論⑴需要該模型的原因①準確描述客觀(問題域)世界中某些對象之間關系②對復雜問題抽象的強有力工具一個復雜的系統由許多復雜對象組成,而復雜對象是由簡單對象組成。③通訊問題域工具2)整體—部分關系的進一步討論⑴需要該模型的原因37⑵整體—部分關系的種類①部件與零件:例控制面板與鍵盤、屏幕等。控制面板鍵盤顯示屏指示燈△△△111112圖10.8控制面板的組成⑵整體—部分關系的種類控制面板鍵盤顯示屏指示燈△△△11138②容器與包含物:辦公室與桌子、書架等辦公室桌子△1-n1書架△1圖10.9整體—部分關系的約束電話文件柜△1△1121②容器與包含物:辦公室與桌子、書架等辦公室桌子△139③群體與成員:職業學會與其成員、IFAC與其成員⑶關系約束與表達方式①用三角形表示整體部分關系,尖指向整體側;②整體側數字表示零件、成員個數;部分數字表示整體個數;③約束值:單個數或數對0~n,1~n。③群體與成員:職業學會與其成員、IFAC40⑷復雜對象的行為①表明了高級行為②由低級部分的行為構成③例:控制面板應有行為ⅰ接收命令,由鍵盤實現ⅱ顯示狀態,由顯示屏實現⑸程序框架⑷復雜對象的行為41classclass_A{publicclass_A();~class_A();private:class_B*the_class_B[5];class_C*the_class_C[4];……}Class_AClass_CClass_B△△1154classclass_AClass_AClass_CCla42classclass_Bclassclass_C{{public:public:class_B();class_B();~class_C();~class_C();……}}classclass_B4310.3.4定義系統和子系統1)子系統2)子系統內含3)子系統的圖示4)復雜系統的主題表示10.3.4定義系統和子系統1)子系統441)子系統一些類相互作用,完成一組緊密相關的責任。2)子系統內含①子系統的責任:完成的功能②子系統的契約:接口規定③子系統的協作者:與其它子系統關系1)子系統一些類相互作用,完成一組緊密相關的453)子系統的圖示⑴對于復雜結構的抽象表示(見圖10.12)⑵表示方式:矩形,其內注明結構名字4)復雜系統的主題表示1.控制面板4.傳感器3.傳感器事件5.聲音警報2.系統圖10.13OOA模型中的主題參考圖3)子系統的圖示⑴對于復雜結構的抽象表示(見圖1046控制面板顯示區鍵盤指示燈報文顯示圖顯示功能鍵數字鍵LCD顯示△△△△△△△△1.控制面板主題參考圖10.12主題參數控制面板顯示區鍵盤指示燈報文顯示圖顯示功能鍵數字鍵LCD顯4710.3.5對象聯系模型對象聯系:表示對象間的關系⑴一個對象知道另一種對象⑵一個對象知道多少個另一種對象⑶一個對象的存在必須有多少對應的對象存在⑷與E_R圖的區別①E_R圖僅表示數量的對應②對象聯系除表示數量的對應外加相互作用10.3.5對象聯系模型對象聯系:表示對象間的關481)相互作用類型的對象聯系(單向作用)代碼框架class系統{public:系統();~系統();private:控制面板*控制面板地址…}控制面板系統含有1)相互作用類型的對象聯系(單向作用)代碼框架控制面板系統49class控制面板{public:控制面板();~控制面板();…}class控制面板502)事務類型的相互聯系(雙向聯系)實現上:一個對象中應有指向另一對象的指針①參與者——事務模板例如:學生——注冊約束基數的意義:一個學生可注冊0次或多次,而一個注冊只能由一個學生進行②事務——地方模板表示事務發生的地方,例:繳費與繳費地方③參與者——地方模板例如:學生與學院2)事務類型的相互聯系(雙向聯系)實現上:一個對象中應有指向51出納窗口繳注冊費0-n1學生注冊0-n1學生學院10-n圖10.15參與者—事務模板圖10.16地方—事務模板圖10.18參與者--地方模板繳注冊費注冊費細目1-n1圖10.19事務—事務細目模板出納窗口繳注冊費0-n1學生注冊0-52注冊費項目注冊費細目0-n1實驗費體檢費保險費學費T3—保險費T3--學費T2--實驗費T2--學費T1—保險費T1-學費事務細目項目圖10.20項目—事務細目模板注冊費項目注冊費細目0-n1實驗費體53④事務——事務細目模板例:注冊費與注冊費細節⑤項目——事務細目模板例:注冊費項目與注冊費細目(每項目的交費者)⑥對等聯系:聯系同一類中不同的對象學生學生m-n1學生學生m-n1④事務——事務細目模板學生學生m-n1學生學543)雙向多對多聯系課程學生1-n0-n課程學生1-n0-n學生課程學期11變換成成績3)雙向多對多聯系課程學生1-n0-n課程學生1-n55原因:學期和成績既不屬于學生又不屬于課程①若歸入學生類,則求每門課程平均分困難;②若歸入課程類,則求每個學生的平均分困難。以上這些關系可構成OOA的對象關系模型。原因:學期和成績既不屬于學生又不5610.4對象行為模型10.4.1對象的服務10.4.2對象行為表示10.4對象行為模型10.4.1對象的服務5710.4.1對象的服務1)業務政策和過程2)服務類型3)發現和標識服務10.4.1對象的服務1)業務政策和過程581)業務政策和過程①業務政策:某項業務活動的原則性規定例如:研究生在修滿32學分后可開始論文工作②業務過程:是業務政策的具體地形式化的描述例如:學分≧32∧修課必修課③業務政策和過程是確定服務的基礎1)業務政策和過程①業務政策:某項業務活動的原則性592)服務類型⑴基本服務①生成對象與取消對象(構造與折構函數)生成對象時,通常屬性值為空(除非構造函數設定值)②設定與取得操作(SET和GET)為對象設定屬性值或取得屬性值③增加或消去聯系把一個對象聯接到另一個對象上或者反之2)服務類型⑴基本服務60足球隊排球隊學生體育隊屬性服務王平張林李林趙立體育隊成員屬性服務圖10.22增加和消去聯系服務例子(a)ADD(學生體育隊=“足球隊”,體育隊成員=“王平”)足球隊排球隊學生體育隊屬性服務王平張林李林趙立體61足球隊排球隊王平張林李林趙立體育隊成員屬性服務體育隊成員屬性服務圖10.22增加和消去聯系服務例子(b)REMOVE(學生體育隊=“排球隊”,體育隊成員=“張林”)足球隊排球隊王平張林李林趙立體育隊成員體育隊成員圖162④搜索查詢一個對象操作對于數據存貯在關系庫中的實現方式:首先生成一個對象,發查詢消息給該對象,然后由其方法查詢數據庫,取得值后,再設置對象的屬性值。⑵問題域的特定報務對汽車租賃系統中的問題:例1汽車類的問題,計算里程和費用:計算里程:里程=結束里程-起始里程計算費用:費用=價格/公里×里程④搜索查詢一個對象操作63汽車起始里程結束里程返還日期計算里程計算費用查返還日報表統計超期車輛例2:報表類的問題,統計超期車輛服務汽車起始里程結束里程返還日期計算里程計算費用查返還日報表統計643)發現和標識服務⑴由事件標識服務:對象能生成事件或識別事件,識別事件的對象提供服務。考察激活系統案例的事件(有下劃線的句子),對控制板可發現下列操作:①接收口令②接收命令③比較口令④點亮指示燈⑤響鈴⑥顯示出錯報文3)發現和標識服務⑴由事件標識服務:對象能生成事件或識別65使用案例名稱:激活系統簡要說明:房主使用控制面板激活系統前提條件:系統準備號,準備好指示燈亮.主要事件流A0:

(1)房主使用數字鍵輸入4位數字口令,該口令和系統內存儲的口令比較,若正確,控制面板等待下一個命令;否則執行事件流A1.(2)房主選擇stay或away命令激活系統.Stay激活房間周邊傳感器;away激活所有的傳感器.(3)若激活成功,紅色指示燈亮;否則執行事件流E1.(4)結束使用案例.使用案例名稱:激活系統66其他事件流A1:

(1)控制面板響鈴一次.(2)系統復位.(3)執行事件流A0.錯誤事件流E1:

(1)控制面板顯示系統出錯.(2)結束使用案例.其他事件流A1:67⑵由類狀態標識服務:對于教師類有職稱,所以應有提職的服務。⑶由消息標識服務:接收消息的類,提供所需服務。⑷確定服務細節,發現新服務:對于比較口令,控制面板不存貯口令,因此需類系統協作,所以系統類應有查口令操作,發現了新服務。⑵由類狀態標識服務:對于教師類有職稱,所以應有提職的服務6810.4.2對象行為表示1)序列圖2)狀態躍遷圖10.4.2對象行為表示1)序列圖691)序列圖表示使用案例中對象間相互作用的時序關系。矩形:對象或類:角色:表示時間,對象生命周期:消息,可有名字和輸入/出參數+1)序列圖表示使用案例中對象間相互作用的時序70控制板系統傳感器房主系統準備好1.輸入口令2.讀口令3.驗證口令4.請求響鈴5.準備好激活/停止系統6.選擇stay/away7.請求激活/停止8.激活/停止傳感器9.請求紅燈亮10.接收下個命令圖10.24激活系統的序列圖控制板系統傳感器房主系統準備好1.輸入口令2.讀口令3.712)狀態--躍遷圖⑴狀態——躍遷圖:表示類的狀態(屬性值)以及引起狀態變化的事件或操作。⑵為依賴于時間的部件(類)建模例如:ATM機,控制面板(安全屋)⑶UML的狀態——躍遷圖①圖符矩形:表示狀態。頂部:狀態名;底部:可執行活動:表示開始狀態,:結束狀態.:弧表示躍遷,標號表示事件操作2)狀態--躍遷圖⑴狀態——躍遷圖:表示類的狀態(屬性值)72②例:控制板對象的狀態——躍遷圖空閑DO:接收命令比較Entry:比較口令選擇DO:接收命令重入DO:輸入口令口令不正確口令正確開機關機圖10.25控制板對象的狀態——躍遷圖激活成功②例:控制板對象的狀態——躍遷圖空閑比較選擇重入輸入口令口73⑷對象的操作①進入操作:進入一個狀態首先執行的操作,不可中斷。entry:操作名②退出操作:退出一個狀態前執行的操作,不可中斷。exit:操作名③活動:某一狀態下的操作,可中斷。Do:活動名⑷對象的操作74第10章面向對象的系統分析OOA任務:以面向對象的觀點和方法描述系統或產品,以使它符合面向對象軟件工程的特點。系統分析的原則:①信息域建模;②描述模塊的功能;③表示模塊行為;第10章面向對象的系統分析OOA任務:以面向對象的觀點和方75④劃分模塊,取得更多的細節;⑤早期模型表示本質,后期模型提供細節。OOA的過程:①和用戶交互②標識類(定義屬性和操作)③規定類層次④確定對象之間關系⑤為對象行為建模④劃分模塊,取得更多的細節;7610.1領域分析10.2OOA分析的屬過程和部件10.3OOA過程10.4對象行為模型10.1領域分析7710.1領域分析目的:為了既滿足現行系統開發的需求,又能滿足將來同類系統的開發。OOA分析級別:①事務級(企業級):為整個企業建立模型,定義特定事務領域的對象模型;②領域級:為一個特定應用領域建立模型,定義該應用領域的對象模型。③應用級:為一個應用的特定用戶需求建立模型。10.1領域分析目的:為了既滿足現行系統開發的需求,7810.1.1再使用和領域分析1)面向對象技術是由再使用庫支持的;2)再使用庫將使快速開發低成本、高可靠性的產品;3)建立再使用庫須進行領域分析。10.1.1再使用和領域分析1)面向對象技術是由再使用庫支7910.1.2領域分析過程1)領域分析的任務①標識出應用領域中的公共需求;②面向對象的領域分析:公共對象,類等再使用部件。2)領域分析的過程⑴對于要分析的領域抽取:OO項:規范、設計、支持類非OO項:計劃、標準10.1.2領域分析過程1)領域分析的任務80⑵歸類這些項成為范疇,定義范疇特征,分類方式和項的命名約定(即確定組織方式);⑶收集有代表性的應用(提取實際的或概念上的對象);⑷分析每個應用步驟(含有已有范疇的項)①標識可再使用對象(侯選)②指明可再使用原因③對侯選再使用對象進行整修④估計在本領域中該對象應用的百分比⑵歸類這些項成為范疇,定義范疇特征,分81⑤命名該對象,用CM進行管理⑥估計再使用對象集合的應用百分比⑦為這些對象開發分析模型3)領域分析的利益使用非常高百分比的再使用部件,構造本領域的軟件,低成本,高質量和快速進入市場。⑤命名該對象,用CM進行管理8210.2OOA分析的屬過程和部件10.2.1一般分析過程10.2.2屬部件(用于OOA)10.2OOA分析的屬過程和部件10.2.1一般分析過程8310.2.1一般分析過程*獲取客戶需求*標識使用案例*建立需求模型(CRC)*選擇類和對象*標識對象屬性和操作*組織類的層次*建立對象關系模型*建立對象行為模型*審查分析模型10.2.1一般分析過程*獲取客戶需求8410.2.2屬部件(用于OOA)靜態部件:表明了對象的特征動態部件:控制、定時和事件處理1)類的靜態視圖:表示系統中存在的對象2)屬性靜態視圖:表示對象的屬性3)關系的靜態視圖:確定對象之間關系,相互操作和消息格式設計。4)行為動態視圖:規定操作的時間序列10.2.2屬部件(用于OOA)靜態部件:表明了對象的特855)通訊的動態視圖:發送消息的時間序列6)控制和定時的動態視圖:描述引起狀態變化事件的本質與定時。這些部件構成了分析模型。5)通訊的動態視圖:發送消息的時間序列8610.3OOA過程10.3.1使用案例10.3.2類—責任—協作者模型10.3.3定義結構和層次10.3.4定義系統和子系統10.3.5對象聯系模型10.3OOA過程10.3.1使用案例8710.3.1使用案例描述目標系統的一種使用情況。1)角色2)使用案例作用3)使用案例圖示4)使用案例描述(事件流方法)10.3.1使用案例描述目標系統的一種使用情況881)角色和系統通訊并外部于系統的任何事物(人、設備)。特點:①一個角色代表一類外部實體②僅起一個作用主要角色:直接并經常和系統相互作用。次要角色:支持系統,使主要角色起作用。1)角色和系統通訊并外部于系統的任何事物(人892)使用案例作用描述了角色與系統的相互作用方式。①角色執行的主要任務②角色輸入系統的數據③角色得自系統的信息例:房屋安全系統角色:房主、傳感器、控制板房主使用案例:(相互作用方式)2)使用案例作用描述了角色與系統的相互作用方90*設置和修改口令*查詢安全部位狀態*查詢傳感器狀態*按緊急按鈕*激活與停止系統*設置和修改口令913)使用案例圖示⑴圖例::角色

:通訊:使用或擴展⑵表示關系:①通訊關系:角色與案例之間②使用關系:案例與案例之間,把公用功能孤立出來,形成被使用案例(再使用)3)使用案例圖示⑴圖例:92③擴展關系:案例與案例間,表明了特殊性和深入內容。⑶例:處理口令應急處理停止系統查詢傳感器查詢安全狀態激活系統房主圖10.2房主使用案例③擴展關系:案例與案例間,表明了特處理口令應急處理停止系統93處理口令應急處理停止系統查詢傳感器查詢安全狀態激活系統房主驗證口令圖10.3使用關系的框圖處理口令應急處理停止系統查詢傳感器查詢安全狀態激活系統房主驗94客戶取款展擴使用提前取款驗證口令圖10.4使用擴展關系的框圖客戶取款展使提前取款驗證口令圖10.4使用擴展954)使用案例描述(事件流方法)⑴格式:使用案例名稱簡要說明:前提條件:執行案例的前提條件主要事件流:案例正常流程其它事件流:案例非正常流程錯誤事件流:出錯事件事后條件:事件后的結果⑵例:P2224)使用案例描述(事件流方法)⑴格式:使用案例名稱96使用案例名稱:激活系統簡要說明:房主使用控制面板激活系統前提條件:系統準備號,準備好指示燈亮.主要事件流A0:

(1)房主使用數字鍵輸入4位數字口令,該口令和系統內存儲的口令比較,若正確,控制面板等待下一個命令;否則執行事件流A1.(2)房主選擇stay或away命令激活系統.Stay激活房間周邊傳感器;away激活所有的傳感器.(3)若激活成功,紅色指示燈亮;否則執行事件流E1.(4)結束使用案例.使用案例名稱:激活系統97其他事件流A1:

(1)控制面板響鈴一次.(2)系統復位.(3)執行事件流A0.錯誤事件流E1:

(1)控制面板顯示系統出錯.(2)結束使用案例.其他事件流A1:9810.3.2類—責任—協作者模型類—責任—協作者模型:用于描述用戶的需求,標出對象和類。構成:CRC卡片,頂部:類名,中左部:責任,中右部:協作者。1)類2)責任3)協作者10.3.2類—責任—協作者模型類—責任—協作者模型:用于991)類⑴確定:使用選擇特征①持有信息②有需要的服務③多個屬性④具有公共屬性(對所有對象)⑤公共操作(對所有對象實例)⑥產生需要信息1)類⑴確定:使用選擇特征100⑵類型:如設備(外部實體),相互作用類(學生成績)⑶特征:如有形的、原子的、并發的…⑷CRC卡片:

類名:

類的類型:(如設備、性質、作用、事件…)

類的特征:(如有形、原子的、并發的…)責任:協作:圖10.5CRC卡片⑵類型:如設備(外部實體),相互作用類(學生成績)1012)責任:

指類的屬性及其操作。分配責任的指導原則:⑴系統的智能應均勻分布:內聚改善,修改容易。①責任表太長,表示不均勻,分裂成新類②責任抽象級別應相同.例Control-panel責任:讀入口令和顯示字符2)責任:指類的屬性及其操作。102⑵每個責任盡量具有一般性,位于類層次頂層,便于應用多態性⑶信息與其相關責任駐在同一類中—封裝性⑷單一對象的信息與行為局部于單一類中,不應跨多個類⑸適當情況下,類間共享責任:通過繼承一個公共超類⑵每個責任盡量具有一般性,位于類層次頂層,便于應用多態性1033)協作者類能和其它對象協作完成其責任。⑴定義:一個對象向另一對象發消息,則發生了協作。接收消息的對象稱為協作者。⑵Control-panel對象的責任:確定傳感器狀態,為取得傳感器信息,必須有傳感器協作。3)協作者類能和其它對象協作完成其責任。10410.3.3定義結構和層次1)概化和特化關系進一步討論2)整體—部分關系的進一步討論10.3.3定義結構和層次1)概化和特化關系進一步討論1051)概化和特化關系進一步討論⑴需要該模型原因①緊密地聯系于面向對象程序設計中的繼承;②將類似的類聯系起來,簡化問題域的描述;③該模型有效地描述了問題域中特定對象關系;④方便了通訊與理解問題域1)概化和特化關系進一步討論⑴需要該模型原因106⑵概化和特化的情況①多層次特化;學生碩士研究生研究生博士研究生多層概化/特化例子圖⑵概化和特化的情況學生碩士研究生研究生博士研究生多層概化/107②多路繼承人員教師學生學生教師圖10.7多路繼承②多路繼承人員教師學生學生教師圖10.7多路繼承108⑶建立模型方式①自頂向下特化:由超類特化成子類ⅰ增加子類的屬性和操作ⅱ轉載某些屬性或操作②自底向上概化:將公共屬性與操作置于超類之中⑷超類的例化問題①超類為無對象類:當子類中所有子類的并集等于超類集合⑶建立模型方式109②超類為有對象類:當子類中所有子類的并集是超類集合的子集例:對于人員的模型,如果需要工人等對象,則需從人員類中例化。⑸模型讀方式從下向上讀為…是一個…或…是一種…例:教師是一種人員②超類為有對象類:當子類中所有子類1102)整體—部分關系的進一步討論⑴需要該模型的原因①準確描述客觀(問題域)世界中某些對象之間關系②對復雜問題抽象的強有力工具一個復雜的系統由許多復雜對象組成,而復雜對象是由簡單對象組成。③通訊問題域工具2)整體—部分關系的進一步討論⑴需要該模型的原因111⑵整體—部分關系的種類①部件與零件:例控制面板與鍵盤、屏幕等。控制面板鍵盤顯示屏指示燈△△△111112圖10.8控制面板的組成⑵整體—部分關系的種類控制面板鍵盤顯示屏指示燈△△△111112②容器與包含物:辦公室與桌子、書架等辦公室桌子△1-n1書架△1圖10.9整體—部分關系的約束電話文件柜△1△1121②容器與包含物:辦公室與桌子、書架等辦公室桌子△1113③群體與成員:職業學會與其成員、IFAC與其成員⑶關系約束與表達方式①用三角形表示整體部分關系,尖指向整體側;②整體側數字表示零件、成員個數;部分數字表示整體個數;③約束值:單個數或數對0~n,1~n。③群體與成員:職業學會與其成員、IFAC114⑷復雜對象的行為①表明了高級行為②由低級部分的行為構成③例:控制面板應有行為ⅰ接收命令,由鍵盤實現ⅱ顯示狀態,由顯示屏實現⑸程序框架⑷復雜對象的行為115classclass_A{publicclass_A();~class_A();private:class_B*the_class_B[5];class_C*the_class_C[4];……}Class_AClass_CClass_B△△1154classclass_AClass_AClass_CCla116classclass_Bclassclass_C{{public:public:class_B();class_B();~class_C();~class_C();……}}classclass_B11710.3.4定義系統和子系統1)子系統2)子系統內含3)子系統的圖示4)復雜系統的主題表示10.3.4定義系統和子系統1)子系統1181)子系統一些類相互作用,完成一組緊密相關的責任。2)子系統內含①子系統的責任:完成的功能②子系統的契約:接口規定③子系統的協作者:與其它子系統關系1)子系統一些類相互作用,完成一組緊密相關的1193)子系統的圖示⑴對于復雜結構的抽象表示(見圖10.12)⑵表示方式:矩形,其內注明結構名字4)復雜系統的主題表示1.控制面板4.傳感器3.傳感器事件5.聲音警報2.系統圖10.13OOA模型中的主題參考圖3)子系統的圖示⑴對于復雜結構的抽象表示(見圖10120控制面板顯示區鍵盤指示燈報文顯示圖顯示功能鍵數字鍵LCD顯示△△△△△△△△1.控制面板主題參考圖10.12主題參數控制面板顯示區鍵盤指示燈報文顯示圖顯示功能鍵數字鍵LCD顯12110.3.5對象聯系模型對象聯系:表示對象間的關系⑴一個對象知道另一種對象⑵一個對象知道多少個另一種對象⑶一個對象的存在必須有多少對應的對象存在⑷與E_R圖的區別①E_R圖僅表示數量的對應②對象聯系除表示數量的對應外加相互作用10.3.5對象聯系模型對象聯系:表示對象間的關1221)相互作用類型的對象聯系(單向作用)代碼框架class系統{public:系統();~系統();private:控制面板*控制面板地址…}控制面板系統含有1)相互作用類型的對象聯系(單向作用)代碼框架控制面板系統123class控制面板{public:控制面板();~控制面板();…}class控制面板1242)事務類型的相互聯系(雙向聯系)實現上:一個對象中應有指向另一對象的指針①參與者——事務模板例如:學生——注冊約束基數的意義:一個學生可注冊0次或多次,而一個注冊只能由一個學生進行②事務——地方模板表示事務發生的地方,例:繳費與繳費地方③參與者——地方模板例如:學生與學院2)事務類型的相互聯系(雙向聯系)實現上:一個對象中應有指向125出納窗口繳注冊費0-n1學生注冊0-n1學生學院10-n圖10.15參與者—事務模板圖10.16地方—事務模板圖10.18參與者--地方模板繳注冊費注冊費細目1-n1圖10.19事務—事務細目模板出納窗口繳注冊費0-n1學生注冊0-126注冊費項目注冊費細目0-n1實驗費體檢費保險費學費T3—保險費T3--學費T2--實驗費T2--學費T1—保險費T1-學費事務細目項目圖10.20項目—事務細目模板注冊費項目注冊費細目0-n1實驗費體127④事務——事務細目模板例:注冊費與注冊費細節⑤項目——事務細目模板例:注冊費項目與注冊費細目(每項目的交費者)⑥對等聯系:聯系同一類中不同的對象學生學生m-n1學生學生m-n1④事務——事務細目模板學生學生m-n1學生學1283)雙向多對多聯系課程學生1-n0-n課程學生1-n0-n學生課程學期11變換成成績3)雙向多對多聯系課程學生1-n0-n課程學生1-n129原因:學期和成績既不屬于學生又不屬于課程①若歸入學生類,則求每門課程平均分困難;②若歸入課程類,則求每個學生的平均分困難。以上這些關系可構成OOA的對象關系模型。原因:學期和成績既不屬于學生又不13010.4對象行為模型10.4.1對象的服務10.4.2對象行為表示10.4對象行為模型10.4.1對象的服務13110.4.1對象的服務1)業務政策和過程2)服務類型3)發現和標識服務10.4.1對象的服務1)業務政策和過程1321)業務政策和過程①業務政策:某項業務活動的原則性規定例如:研究生在修滿32學分后可開始論文工作②業務過程:是業務政策的具體地形式化的描述例如:學分≧32∧修課必修課③業務政策和過程是確定服務的基礎1)業務政策和過程①業務政策:某項業務活動的原則性1332)服務類型⑴基本服務①生成對象與取消對象(構造與折構函數)生成對象時,通常屬性值為空(除非構造函數設定值)②設定與取得操作(SET和GET)為對象設定屬性值或取得屬性值③增加或消去聯系把一個對象聯接到另一個對象上或者反之2)服務類型⑴基本服務134足球隊排球隊學生體育隊屬性服務王平張林李林趙立體育隊成員屬性服務圖10.22增加和消去聯系服務例子(a)ADD(學生

溫馨提示

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

評論

0/150

提交評論