認識概念建模
概念建模因其能快速識別,並保持一致,從而節省時間,增強分析能力。
建模的的意義
- 模型幫助我們按照實際情況或者按照我們所需要的樣式對系統進行可視化
- 模型允許我們詳細說明系統的結構或行爲
- 模型給出了一個指導我們構造系統的模板
- 模型對我們做出的決策進行文檔化
模型成熟度級別
- 第0層:沒有標準,模型存在於開發者的頭腦中
- 第1層:文本表達,簡單的文檔,跟口頭表述差不多隻是記錄下來了
- 第2層:文本和圖,圖示無標準,著作者會有自己的註解
- 第3層:模型和圖,用建模語言描述的圖來表達模型,用自然語言加以輔助。有建模語言,如用UML/OPM/OPD 表達模型 ,可理解性,穿越性更高,因爲大家基於同一標準
- 第4層:精確的模型,可直接映射到編程語言
- 第5層:只有模型,此時的模型是對系統的完備,一致,詳細和精確的描述,它足以完成全部代碼生成的工作,生成的代碼無需改動即可運行
運用概念建模
- 功能:爲什麼要構建這個系統(意圖)
- 結構:這個系統由什麼構成
- 行爲:這個系統會發生什麼變化
認識OPM
- 是一套概念建模語言和方法
- 目的是將面向對象的圖表和麪向過程的圖表綜合到一套方法中,更方便對系統架構進行描述
- 簡單易學
- 面向對象的建模,對於需求的驗證是滯後的,在完成一個階段的建模之後,需要拿需求場景進行驗證來進一步完善模型。但OPM不是,OPM是以功能作爲種子觸發開始建模的
- OPM能夠更好的體現層次建模
OPM核心概念
- OO對象是唯一的,過程被稱爲操作,服務,或者方法
- OPM中系統級的過程也是一等公民,跟對象同樣重要,甚至更重要
- 系統是一個提供能的對象
- 人工系統的功能是指其爲受益者提供頂層價值的過程
OPM原理:過程變換對象狀態
從功能開始
- 發現受益者相關的過程和對象
過程鏈接
- 過程鏈接:將一個對象與一個過程聯繫起來,以明確系統動態行爲特徵的連接
- 結構鏈接:將一個對象與另一個對象,或一個過程與另一個過程聯繫起來,已明確系統的靜態結構特徵
過程鏈接又分爲兩種:
- 支持鏈接
- 變換鏈接
支持對象
儘管功能和操作對象很重要,但即使在最抽象級別,它們也不能提供系統的全貌。除了受益者,支持系統實現的對象也應該進行描述。包括你人類對象和非人類對象;人類對象稱之爲主體,非人類對象稱爲手段。
動態鏈接
- 系統的動態特性
- 事件鏈接
- 條件鏈接
- 布爾對象
- OR 和 XOR
系統結構特性
結構關係是系統中兩個對象或兩個過程(至少持續一段時間)之間的聯繫,鏈接或關聯。結構鏈接是一個結構關係的圖形表達。
參數化結構
參數化約束
組成關係
由......組成(一個資源訪問請求由一個請求和一個響應組成)
表徵關係
結構關係中唯一同時允許對象鏈接過程和過程鏈接對象的關係。其他的三種都只能是(對象與對象,過程與過程)
- 對象-屬性
- 對象-操作
- 過程-屬性
- 過程-操作
繼承與實例
- 繼承是一種基本的結構關係,介於一個一般事務和多個特殊事務之間。繼承可以發生在對象和對象之上,也可以過程和過程之上
- 實例是指相同的結構,相同功能和相同行爲的類集合中的真實事務(類是實例的模板)
控制複雜度
新系統,產品或項目的生命週期的同步,是需求分析和概念設計。如果分析和設計的成果看起來過分複雜,就有可能對其蔚來的觀衆接受分析和設計的結果行成阻力,可能對後續階段產品開發成功的可能性帶來不利的影響。
- 當一個OPD由於過多的數量和細節變得難以理解時,應該創建一個新的OPD(按照人類的理解,一張建議不要超過7~9個元素)
- 對象過程圖可以在任何級別的複雜度上進行建模,對帶狀態的對象或過程運用放大和展開的細節分機制
- 按抽象層次進行分解
- 完備性與簡潔性的權衡
- 狀態顯示與狀態隱藏
- 放大和縮小
- 放大是細化操作,通常用於過程
- 展開與摺疊
- 聚合展開:顯示整體中的部分
- 展示展開:表現主體的特徵
- 泛化展開:隱藏一般事務的特殊化
- 分類展開:實例摺疊,隱藏類的實例
- 展開方式
- 圖內展開
- 新圖展開
- 視圖創建
命名簡潔:動詞作過程,名詞做對象