面向對象建模.ppt_第1頁
面向對象建模.ppt_第2頁
面向對象建模.ppt_第3頁
面向對象建模.ppt_第4頁
面向對象建模.ppt_第5頁
已閱讀5頁,還剩90頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

需求工程的總體流程 1 需求分析的根本任務 1 1建立分析模型 模型 模型是對事物的抽象 幫助人們在創(chuàng)建一個事物之前可以有更好的理解 集中關注問題的計算特性 數(shù)據(jù) 功能 規(guī)則等等 它是對系統(tǒng)進行思考和推理的一種方式 建模的目標是建立系統(tǒng)的一個表示 這個表示以精確一致的方式描述系統(tǒng) 使得系統(tǒng)的使用更加容易 建模方法抽象分解投影 1 1建立分析模型 抽象 Abstraction 一方面要求人們只關注重要的信息 忽略次要的內(nèi)容通過強調(diào)本質的特征 就減少了問題的復雜性另一方面也要求人們將認知保留在適當?shù)膶哟?屏蔽更深層次的細節(jié)在問題的各元素之間推斷出更廣泛和更普遍的關系 幫助人們尋找解決方案分解 Decomposition Partitioning 分而治之 將單個復雜和難以理解的問題分解成多個相對更容易的子問題 并掌握各子問題之間的聯(lián)系分解的方案往往還能提供問題的解決思路投影 Projection 多視點方法 1 1建立分析模型 三種模型 1 1建立分析模型 模型 模型語言與表示法 2常用需求分析技術 結構化技術數(shù)據(jù)建模實體關系圖EntityRelationshipDiagram過程建模數(shù)據(jù)流圖DataFlowDiagram上下文圖ContextDiagram微規(guī)格說明Mini Specification數(shù)據(jù)字典DataDictionary行為建模狀態(tài) 轉換 圖 矩陣State Transition Diagram Matrix過程 數(shù)據(jù)關系建模功能實體矩陣Function EntityMatrix信息工程方法功能分解圖FunctionDecompositionDiagram過程依賴圖ProcessDependencyDiagram 面向對象技術UML用例圖Use CaseDiagram類圖ClassDiagram交互圖 順序圖 通信圖 Interaction Sequence Communication Diagram活動圖ActivityDiagram對象約束語言ObjectConstraintLanguage狀態(tài)圖StateChartDiagram 3 需求分析方法 結構化分析 3 需求分析方法 面向對象分析 第14章 面向對象建模 潘婭panya023 主要內(nèi)容 面向對象分析對象模型用例模型行為模型對象約束語言OCL面向對象建模 1 面向對象分析 現(xiàn)實世界的復雜模型 復雜總是簡單部分的組合簡單部分又是更簡單部分的組合簡單組成復雜的過程存在層次性每個最小簡單部分獨立負責完成一系列相關任務相比較而言 每個組合內(nèi)部各部分的關系比其內(nèi)部與外部的關系都更緊密各個部分通過一致的接口進行組合 即一個部分對其它部分的所知僅僅是接口 1 面向對象分析 映射現(xiàn)實模型的面向對象思想 任何系統(tǒng)都是能夠完成一系列相關目標和任務的對象對象完成一個任務時會請求一系列其他對象幫助其完成一些子目標其他對象為了完成其任務又會請求將子目標更細分為子子目標 并請求其他對象幫助完成子目標的分解和責任分擔一直進行直到最后產(chǎn)生的子部分可以映射到計算實體計算實體 對象層次關系 聚合 組合 繼承 關聯(lián)組合接口 一個對象暴露的接口 1 面向對象分析 面向對象建模 面向對象建模 一種用于辨識系統(tǒng)環(huán)境中的對象及這些對象之間關系的技術OMT JamesRumbaugh Booch方法 GradyBooch UMLOOSE IvarJacobson Coad YourdonShlaer MellorFusion Threeamigos UML的三位主要奠基人 被稱為 三友 threeamigos UnifiedG Booch布奇Booch方法J Rumbaugh蘭博OMT方法I Jacobson雅格布森OOSE Jacobson Booch Jacobson Rumbaugh 1 面向對象分析 UML 1 面向對象分析 UML UML對象模型ObjectModel DomainModel 用例模型UseCaseModel行為模型BehaviorModel狀態(tài)機模型對象約束語言OCL UML的構成圖 UML基本構造塊 UML基本構造塊 事物 關系 圖 結構事物 行為事物 分組事物 輔助事物 關聯(lián)關系 依賴關系 泛化關系 實現(xiàn)關系 靜態(tài)圖 動態(tài)圖 用例圖 類圖 對象圖 組件圖 配置圖 時序圖 協(xié)作圖 狀態(tài)圖 活動圖 用例 類 接口 協(xié)作 主動類 組件 節(jié)點 狀態(tài)機 交互機 包 注釋 UML的 4 1 視圖 UML的 4 1 視圖 UML的 4 1 視圖 UML對軟件開發(fā)過程的支持 主要內(nèi)容 面向對象分析對象模型組成元素重要概念領域模型用例模型行為模型對象約束語言OCL面向對象建模 2 1對象模型組成元素 對象 對象對象是指在一個應用當中具有明確角色的獨立可確認的實體每個對象都要包含標識唯一的標識自己 引用狀態(tài)對象的特征描述 包括對象的屬性和屬性的取值行為對象在其狀態(tài)發(fā)生改變或者接收到外界消息時所采取的行動 2 1對象模型組成元素 對象 常見的事物都可以是對象和系統(tǒng)存在交互的外部實體 例如人 設備 其他的軟件系統(tǒng)等 問題域中存在的事物 例如報表 信息展示 信號等 在系統(tǒng)的上下文環(huán)境中發(fā)生的事件 例如一次外部控制行為 一次資源變化等 人們在與系統(tǒng)的交互之中所扮演的角色 例如系統(tǒng)管理人員 用戶管理人員 普通用戶等 和應用相關的組織單位 例如分公司 部門 團隊 小組等 問題域中問題發(fā)生的地點 例如車間 辦公室等 事物組合的結構關系 例如部分與整體的關系等 2 1對象模型組成元素 對象 但是也有事物不是對象無法界定的事物純粹的值純粹的行為 2 1對象模型組成元素 對象 一個對象維護其自身的狀態(tài)需要對外公開一些方法 行使其職能也要對外公開一些方法 這些方法組合起來定義了該對象允許外界訪問的方法 或者說限定了外界可以期望的表現(xiàn) 它們是對象需要對外界履行的協(xié)議 Protocol 一個對象的整體協(xié)議可能會分為多個內(nèi)聚的邏輯行為組 劃分后的每一個邏輯行為組就描述了對象的一個獨立職責 體現(xiàn)了對象的一個獨立角色對象職責職責是指對象持有 維護特定知識并基于知識行使固定職能的能力如果一個對象擁有多個行為組 就意味著該對象擁有多個不同的職責 需要扮演多個不同的角色 理想的單一職責對象應該僅僅扮演一個角色 2 1對象模型組成元素 鏈接 鏈接對象之間的物理或業(yè)務聯(lián)系鏈接通常是單向的 當然也有雙向的鏈接存在如果一個對象a存在指向b的鏈接 那就意味著a擁有對b的假設 關于b的行為和行為效果的假設 也就是說 b需要滿足a的某些行為期望 2 1對象模型組成元素 鏈接 導航和可見性由a指向b的鏈接除了包含假設和期望因素之外 還意味著a能夠在鏈接的指引下 正確的找到并將消息發(fā)送給b 即a可以導航到b由a指向b的鏈接使得b對a可見 或者說a擁有b的可見性 Visibility a獲取b的可見性的途徑有以下幾種 b是全局對象 它對系統(tǒng)內(nèi)的所有其他對象都是可見的 b是a的一部分 b是被a創(chuàng)建的 b的引用被作為消息的一部分傳遞給了a 2 1對象模型組成元素 類 類類是共享相同屬性和行為的對象的集合 它為屬于該類的所有對象提供統(tǒng)一的抽象描述和生成模板抽象描述稱為接口 Interface 定義了類所含對象對外的 其他類和對象 的統(tǒng)一協(xié)議生成模板稱為實現(xiàn) Implementation 說明了類所含對象的生成機制和行為模式 2 1對象模型組成元素 類 類的分類類產(chǎn)生的關鍵是進行正確的分類人們認識和處理具體事物時總會有意識或無意識的對它們進行歸類數(shù)據(jù)驅動 Data Driven 將具有相同屬性的對象歸為一類產(chǎn)生自哲學上傳統(tǒng)的經(jīng)典分類理論 ClassicalCategorizationTheory 所有具有一個給定特性或共同特性集的實體組成一個類職責驅動 Responsibility Driven 會依據(jù)事物的相似性而不是完全的相同性來進行事物的分類產(chǎn)生自哲學上的概念聚類 ConceptualClustering 使用概念描述而不是指定的特征來描述類別和事物 在進行事物分類時它會考慮概念之間的相似性 并將事物歸入和其概念最為相似的類別 2 1對象模型組成元素 類 抽象抽象是指在事物的眾多特征當中只注意那些和目標密切相關的特征 同時忽略那些不相關的特征 進而找出事物的本質和共性抽象是人們在理解事物時常用的手段對象就是對現(xiàn)實世界事物的抽象結果 它表達了系統(tǒng)所需要的現(xiàn)實世界事物特征 拋棄了那些系統(tǒng)不需要的特征 類則是對象集的抽象結果 它忽略了具體某個對象在特定時間和空間的細節(jié)狀態(tài) 從對象集的全局出發(fā) 在一個更高的邏輯層次上 描述了對象集的共性 2 1對象模型組成元素 類 封裝封裝是指盡可能隱藏構造單位內(nèi)部的實現(xiàn)細節(jié) 只通過有限的對外接口保持對外聯(lián)系的一種軟件構造策略絕不是簡單的將屬性和行為放置在一起 2 1對象模型組成元素 關聯(lián) 關聯(lián)指出了類之間的某種語義聯(lián)系關聯(lián)是類對其對象實例之間的無數(shù)潛在關系的描述 2 1對象模型組成元素 關聯(lián) 2 2對象模型重要概念 繼承 如果一個類A繼承了對象B 那么A就自然具有B的全部屬性和服務 同時A也會擁有一些自己特有的屬性和服務 這些特有部分是B所不具備的結構繼承和語義繼承 2 2對象模型重要概念 繼承 2 2對象模型重要概念 多態(tài) 廣義多態(tài)一個對象在相似情景下表現(xiàn)出多個不同形態(tài) 或者多個對象在同一情景中表現(xiàn)出相同形態(tài)的現(xiàn)象一個對象在相似情景下表現(xiàn)出不同的形態(tài)重載 Overloading 依據(jù)參數(shù)或返回值的不同為協(xié)議定義不同的版本 每一個版本都可以表現(xiàn)出自己獨特的行為泛型 Generality 使用同一個通用的實現(xiàn)處理不同的數(shù)據(jù)類型 然后根據(jù)數(shù)據(jù)類型的不同表現(xiàn)出不同的行為狹義多態(tài)多個對象在同一情景中表現(xiàn)出相同形態(tài)的現(xiàn)象 2 3領域模型 類大多是概念類 ConceptClass 是一個能夠代表現(xiàn)實世界事物的概念概念類之間存在指明語義聯(lián)系的關聯(lián) 這些關聯(lián)通常不標記方向 也不標記關聯(lián)端的可見性概念類會顯式的描述自己的一些重要屬性 但不是全部的詳細屬性 而且概念類的屬性通常沒有類型的約束概念類不顯式的標記類的行為 即概念類不包含明確的方法 2 3領域模型 Contained in Stocked in Records sale of Paid by Hosues Captured on 1 1 0 1 1 1 1 1 1 1 1 1 主要內(nèi)容 面向對象分析對象模型用例模型行為模型對象約束語言OCL面向對象建模 3 用例模型 用例模型就是以用例為基本單位建立的一個系統(tǒng)功能展示模型 它是系統(tǒng)所有用例的集合 以統(tǒng)一 圖形化方式展示系統(tǒng)的功能和行為特性用例是獲取和組織用戶需求的手段基本元素用例 UseCase 參與者 Actor 關系 Relationship 系統(tǒng)邊界 SystemBoundary 3 用例模型 BaseUseCase ExtendingUseCase SpecializedUseCase GeneralUseCase BaseUseCase IncludedUseCase Communication 3 用例模型 主要內(nèi)容 面向對象分析對象模型用例模型行為模型對象約束語言OCL面向對象建模 4 行為模型 行為模型交互圖 InteractionDiagram 順序圖 SequenceDiagram 通信圖 CommunicationDiagram 交互概述圖 InteractionOverviewDiagram 時間圖 TimingDiagram 活動圖 ActivityDiagram 狀態(tài)圖 StateDiagram 4 行為模型 交互圖 交互圖以一組對象為中心的交互描述技術描述在特定上下文環(huán)境中一組對象的交互行為互圖通常描述的是單個用例的典型場景交互圖中的每一個交互都描述了環(huán)境中的對象為了實現(xiàn)某個目標而執(zhí)行的一系列消息交換順序圖和通信圖是最常用的交互圖交互圖中出現(xiàn)的對象應該在領域模型中有相應的對象存在 4 行為模型 交互圖 順序圖 4 行為模型 交互圖 通信圖消息 sequence expression messagemessage attribute name argument return value sequence expression label iteration expression iteration expression iteration clause condition clause 4 行為模型 交互圖 系統(tǒng)順序圖將整個系統(tǒng)看作一個黑箱的對象 強調(diào)外部參與者和系統(tǒng)的交互行為 重點展示系統(tǒng)級事件 4 行為模型 活動圖 活動圖借鑒了多種BPM后建立的行為圖以 流 控制流和數(shù)據(jù)流 處理為側重點描述系統(tǒng)的行為通常以組織的整體業(yè)務流程為描述對象的 4 行為模型 活動圖 示例 4 行為模型 狀態(tài)圖 狀態(tài)圖以狀態(tài)機理論為基礎建立的對系統(tǒng)行為的描述手段狀態(tài)機是以 狀態(tài) 概念為基礎解釋系統(tǒng)行為的一種技術有限狀態(tài)機FSM FiniteStateMachine 是用于建模的最簡單的狀態(tài)機在FSM技術基礎之上 發(fā)展出了多種分支技術 UML的狀態(tài)圖SD StateDiagram 也是其中之一 主要用于描述重要而且復雜的對象的所有行為這個對象的行為通常要涉及很多 甚至大部分 的用例 4 行為模型 狀態(tài)圖 狀態(tài)機理論狀態(tài)機理論認為 系統(tǒng)總是處于一定的狀態(tài)之中 而且 在某一時刻 系統(tǒng)只能處于一種狀態(tài)之中 系統(tǒng)在任何一個狀態(tài)中都是穩(wěn)定的 如果沒有外部事件觸發(fā) 系統(tǒng)會一直持續(xù)維持該狀態(tài) 如果發(fā)生有效的觸發(fā)事件 系統(tǒng)將會響應事件 從一種狀態(tài)轉移到唯一的另一種狀態(tài) 如果能夠羅列出系統(tǒng)所有可能的狀態(tài) 并發(fā)現(xiàn)所有有效的外部事件 那么就能夠從狀態(tài)轉移的角度完整的表達系統(tǒng)的所有行為 4 行為模型 狀態(tài)圖 簡單示例 Ready ctr 0 Stop normal 狀態(tài) 觸發(fā) 行為 開始狀態(tài) 轉換 結束狀態(tài) Done 監(jiān)護條件 事件 主要內(nèi)容 面向對象分析對象模型用例模型行為模型對象約束語言OCL面向對象建模 5 對象約束語言OCL OCL并不是UML中單獨的一個模型 而是被應用在其他的模型當中 豐富其他模型的語義OCL是一種無副作用的規(guī)約語言以表達式的方式定義對其他模型元素的約束約束和限制其他模型元素的行為和狀態(tài)變化不會修改任何其他模型元素的表述OCL不是一種編程語言 OCL的首要定位是建模語言 因此它在保證一定表達能力的前提下 注重于語言的簡潔性和抽象性它無法被用來描述程序的控制邏輯和工作流程 它的表達式定義也無法在程序中得到直接的執(zhí)行 61 5 對象約束語言OCL 示例 Flight Airplane 62 5 對象約束語言OCL 示例 contextFlightinv type cargoimpliesairplane type cargoinv type passengerimpliesairplane type passenger 5 對象約束語言OCL examples 5 對象約束語言OCL examples 5 對象約束語言OCL 構成類型表達式保留關鍵字 5 對象約束語言OCL 主要應用不變量不變量是可以對UML類元施加的約束類元需要保持它的表達式取值在指定的時間范圍內(nèi)或者指定的條件下始終為 真 最常見的是用來約束類的屬性或者類的方法 4 對象約束語言OCL 前置條件和后置條件前置條件要求類元在執(zhí)行操作之前必須保證前置條件的表達式為真后置條件要求類元在操作執(zhí)行完成之后必須保證后置條件的表達式為真 LoyaltyAccount points Integer earn i Integer burn i Integer isEmpty Boolean points 0 points points pre i classinvariant postconditionforburnoperation result points 0 points iandi 0 preconditionforburnoperation points points pre i i 0 5 對象約束語言OCL 監(jiān)護條件監(jiān)護條件是對狀態(tài)機模型中狀態(tài)轉移施加的約束在狀態(tài)機到達轉移點時 監(jiān)護條件的表達式需要根據(jù)實際狀態(tài)進行評估 并只有在表達式實際取值為 真 的情況下才進行轉移 主要內(nèi)容 面向對象分析對象模型用例模型行為模型對象約束語言OCL面向對象建模技術路線領域模型建模行為模型建模CRC方法 6 1面向對象建模技術路線 1 從用例描述中識別出對象和類 2 分析用例的描述信息 添加類的屬性和類之間的關聯(lián) 3 從用例描述中識別系統(tǒng)行為 4 將系統(tǒng)行為分配給類 5 綜合考慮類的屬性與行為 細化類的職責 建立完全的對象模型 6 1面向對象建模技術路線 面向對象分析的結果 建立領域模型建立行為模型 6 2領域模型建模 建立領域模型發(fā)現(xiàn)對象和類概念類分類列表名詞分析行為分析建立類之間的關聯(lián)添加類的重要屬性 6 2領域模型建模 發(fā)現(xiàn)對象和類 如果候選對象既維持一定的狀態(tài) 又依據(jù)狀態(tài)表現(xiàn)一定的行為 那么它就應該是一個獨立存在的對象如果候選對象只有狀態(tài)沒有行為 那么就要分析它的狀態(tài)是否是系統(tǒng)需要的數(shù)據(jù) 如果系統(tǒng)需要它的狀態(tài)數(shù)據(jù) 那么該候選對象就應該作為其他對象的屬性出現(xiàn)在最終的領域模型當中 否則 該候選對象應該被擯棄如果候選對象只有行為沒有狀態(tài) 那么往往意味著需求信息的遺漏需要注意實體關系建模思想帶來的誤區(qū) 6 2領域模型建模 發(fā)現(xiàn)對象和類 概念類分類列表這種方法事先給出一個概念類的分類列表 從中發(fā)現(xiàn)對象 6 2領域模型建模 發(fā)現(xiàn)對象和類 概念類分類列表示例 6 2領域模型建模 發(fā)現(xiàn)對象和類 名詞分析從文本描述中識別出有關的名詞和名詞短語 然后從中發(fā)現(xiàn)對象 6 2領域模型建模 發(fā)現(xiàn)對象和類 行為分析從需求描述中搜尋動詞 識別出系統(tǒng)行為 然后從中發(fā)現(xiàn)對象 6 2領域模型建模 建立類之間的關聯(lián) 保證類之間協(xié)作所必需的可見性適當使用問題域內(nèi)的關聯(lián) 增強領域模型的可理解性要適可而止不要在關聯(lián)的識別上花費太多的時間識別概念類比識別關聯(lián)更加重要避免顯示冗余和導出的關聯(lián) 6 2領域模型建模 建立類之間的關聯(lián) 示例 6 2領域模型建模 添加類的重要屬性 實現(xiàn)類協(xié)作時必要的信息 是協(xié)作的條件 輸入 結果或者過程記錄使用用戶的描述方式 不進行類型和約束的嚴格定義 6 3行為模型建模 建立行為模型建立系統(tǒng)順序圖在需要時建立詳細的交互圖建立用例的狀態(tài)圖或者重要類的狀態(tài)圖建立活動圖為系統(tǒng)行為添加契約說明 6 3行為模型建模 建立交互圖 確定交互圖的上下文環(huán)境上下文環(huán)境的前置條件和后置條件應該被分配給交互圖中的相應行為找出參與交互的對象交互圖中的參與對象 和對象之間的關聯(lián) 應該和領域模型中的知識保持一致 根據(jù)發(fā)現(xiàn)的對象 和關聯(lián) 建立交互圖框架添加消息 描述交互行為考慮和系統(tǒng)相關的 系統(tǒng)內(nèi)的 系統(tǒng)與外部對象之間的 交互行為 忽略那些與系統(tǒng)無關的 外部對象之間的 交互行為 如果建立的是系統(tǒng)順序圖 那么系統(tǒng)內(nèi)的行為也可以被忽略 進行消息標識 特化圖示等詳細信息的描述 將交互圖的信息補充完整 6 3行為模型建模 建立交互圖 6 3行為模型建模 建立狀態(tài)圖 確定上下文環(huán)境搞清楚狀態(tài)的主體常見的狀態(tài)主體有 類 用例 多個用例和整個系統(tǒng)識別狀態(tài) 標記初始狀態(tài)和結束狀態(tài)可能會不存在確定的初始狀態(tài)和結束狀態(tài)建立狀態(tài)轉換補充詳細信息 完善狀態(tài)圖 6 3行為模型建模 建立狀態(tài)圖 6 3行為模型建模 建立活動圖 確定活動圖的上下文環(huán)境界定業(yè)務流程的處理界限分析業(yè)務流程中的主要處理步驟分析業(yè)務流程中的主要數(shù)據(jù)流進行職責分配 將業(yè)務流程的處理步驟劃分到不同的泳道 并將處理步驟和數(shù)據(jù)流的傳遞組織起來 建立活動圖添加活動圖的詳細信息 完善活動圖描述 6 3行為模型建模 建立活動圖 6 3行為模型建模 添加契約說明 不需要為所有的系統(tǒng)行為都定義操作契約 可以有選擇的為其中的一部分系統(tǒng)行為定義操作契約涉及到很多狀態(tài)變化的復雜行為因果關系比較微妙的模糊行為可以從下面幾個角度進行約束的發(fā)現(xiàn)工作 不變量 系統(tǒng)行為中所涉及的敏感狀態(tài) 這些狀態(tài)的改變往往會產(chǎn)生廣泛的連鎖反應不可改變的屬性 不可改變的關聯(lián)關系前置條件 行為發(fā)生和順利完成所需要的系統(tǒng)的狀態(tài)條件合法的參數(shù)有效的狀態(tài)對象的存在狀態(tài) 對象的屬性取值 有效的關聯(lián)關系后置條件 行為順利完成之后引起的系統(tǒng)狀態(tài)改變有效狀態(tài)的改變對象的存在狀態(tài) 對象的

溫馨提示

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

評論

0/150

提交評論