1、概念
(1) 領域模型(又稱概念模型、領域物件模型、分析物件模型)是對領域內的概念類或現實世界中物件的視覺化表示分析方法
a. 專注於分析問題領域本身
b. 發掘重要的業務領域概念
c. 建立業務領域概念之間的關係
(2)領域模型是描述業務用例實現的物件模型
a. 是對業務角色和業務實體之間應該如何聯絡和協作以執行業務的一種抽象
b. 從業務角色內部的觀點定義了業務用例
c. 為產生預期結果確定了業務人員以及他們處理和使用的物件之間應該具有的靜態和動態關係
d. 注重業務中承擔的角色及其當前職責
2、分析內容
(1)模型(model)
模型通常由兩部分組成:
a. 元素(element)
b. 關係(relationship):指的是元素間的關係
(2)領域建模(domain modeling)
用領域建模分析的主要是:
a. 尋找業務物件(business object)
b. 恰當建立這些物件間的關係
1、工程實踐題目:
智慧型合約的工具調研
2、專案需求:
對目前流行的智慧型合約領域的分析、測試、驗證等相關工具或者框架展開調研,主要內容包括工具型別、可檢測到的漏洞種類、工具開發語言、存在的不足及改進方法,選取其中兩個工具進行完善,開發乙個系統進行以上內容的整合。
主要分為以下四個步驟進行完成。
第一步是收集應用領域資訊。首先需要關注系統所處理主要業務的功能需求,還要將其他非功能性需求和使用者的需求。
在我的工程實踐專案中,功能性需求包括:
(1)查詢某個工具的相關資訊;
(2)比較系統中所包含的任意兩個智慧型合約工具;
(3)對於使用者指定的智慧型合約,能夠使用不同的工具進行執行、分析並給出結果。
非功能性需求包括:
可用性、可靠性、系統效能以及其他擴充套件非功能性需求(包括物理、安全、實施、維護等)
2、brainstorming
第二步需要充分發揮主觀能動性,可分為三個小步驟進行:
(1)列出重要的應用程式域概念
(2)列出它們的屬性
(3)列出它們之間的關係
根據第一步列出的所有功能性需求和非功能性需求,可得出如下的幾個類:
(1)智慧型合約工具:
屬性:工具id,工具型別,可檢測到的漏洞型別,開發語言,開發時間,開發團隊,其他詳細資訊等。
(2)安全漏洞:
屬性:漏洞id,漏洞型別,可造成的後果等
(3)查詢比較資訊:
b. 屬性:查詢功能id,工具id,漏洞id等。
(4)分析合約:
a. 功能:對使用者上傳的智慧型合約能夠展開分析,並且給出分析結果。
b. 屬性:分析合約id,合約id,合約型別,漏洞id,分析結果等。
(5)使用者:
屬性:使用者id,使用者名稱,密碼,使用者許可權等。
(6)管理員:
屬性:管理員id,管理員名,密碼,使用者許可權等。
3、classifying the domain concepts
第三步將領域概念分為:
(1)類
(2)屬性/屬性值
(3)關係:association, inheritance, aggregation
根據第二步的分析, 我們可以抽象抽六個類:智慧型合約工具類、安全漏洞類、查詢比較資訊類、分析合約類、使用者類、管理員類。
4、document result using uml class diagram
因此工程實踐專案的業務類圖如下所示:
業務領域建模Domain Modeling
每個業務都有乙個對應的業務模型,這個業務模型設計的時候,完全不需要考慮任何軟體設計的思想,比如物件的抽象 繼承 儲存 效能,等。我們是從業務本身出發,分析業務邊界範圍內的各種業務概念,以及業務概念之間的關係,通常我們可以使用乙個業務模型的圖來表達這些業務概念以及業務概念之間的關係。那麼如何得到乙個業...
業務領域建模Domain Modeling
以您的工程實踐專案為例,在深入理解需求的基礎上進行業務領域建模domain modeling 最終畫出業務類圖,並說明業務類圖中每乙個類 屬性 方法的 對於有關聯類association class的情況要進一步給出關聯式資料庫的模型。記住 我們是對業務建模,不是對系統建模!我的工程實踐題目改成了 ...
業務領域建模Domain Modeling
我的工程實踐業務是設計和實現乙個搜尋引擎,並在此基礎上搭建乙個食譜查詢服務。1 找出業務中用到的類 食譜 食材 食材處理步驟 食譜爬蟲 請求分發處理器 分詞器 相似度衡量器 計算詞向量相似度 食譜queryer web服務請求者 使用者 系統管理員 2 建立類和類之間的聯絡 類與類之間的關係通常包括...