根據工程實踐專案進行需求分析和概念原型建模
1 前言
此篇部落格主要是根據最近學習的軟體工程建模方法,對筆者所參與的工程實踐專案,進行建模與分析。主要是需求分析、業務領域建模以及資料建模,最終形成一個完整的概念原型。現在將建模的過程總結如下:
2 工程實踐背景介紹
工程實踐是一個關於留學生資訊管理與分析的平臺。該系統是為使用者提供有關留學服務資訊的雙邊平臺,管理人員定期維護系統,學生可以通過該系統搜尋學校相關資訊,並根據所提供的自身資訊獲得相應的留學建議。留學資訊管理與分析系統可以針對不同使用者,通過多種因素的綜合分析,給出科學的建議,給使用者合適的擇校建議,讓使用者更好的選擇心儀的海外高校。主要是為海外留學的人提供一些指導和推薦作用。
3 用例建模
根據此係統和軟體工程相關原理,我們可以進行用例分析,進行用例建模。首先我們要明確,用例是什麼,基本要素是什麼,抽象層級是什麼,如何進行用例建模。
3.1 用例相關介紹
用例是應用程式開發中的一個關鍵技術,主要用來捕獲系統的高層次(High Level)使用者功能性需求。用例是一個業務過程,經過邏輯整理抽象出來的業務過程。其中業務有三個基本要素:
1 一個用例應該由業務內的某個參與者所觸發
2 用例必須能為特定的參與者完成一個特定的業務任務
3 一個用例必須終止於某個特定參與者,也就是特定參與者明確地或者隱含地得到了業務任務完成的結果。
3.2 用例建模基本步驟
瞭解了什麼是用例,我們必須瞭解用例建模的基本步驟:
1 從需求表述中找出用例,往往是動名詞短語表示的抽象用例;
2 描述用例開始和結束的狀態,用TUCBW和TUCEW表示的高層用例;
3 對用例按照子系統或不同的方面進行分類,描述用例與用例、用例與參與者之間的上下文關係,並畫出用例圖;
4 進- -步逐-分析用例與參與者的詳細互動過程,完成一個兩列的表格將參與者和待開發軟體系統之間從用例開始到用例結束的所有互動步驟都列舉出來擴充套件用例。
3.3 準確提取用例的基本方法
為了準確地提取用例,我們必須遵循一些原則和方法:
1 從需求中尋找業務領域相關的動名詞和動名詞短語,比如做什麼事、什麼事情必須被完成,或者執行某任務等;
2 驗證這些業務領域相關的動名詞和動名詞短語到底是不是用例。驗證業務領域相關的動名詞或動名詞短語是不是用例的標準是滿足四個必要條件:
a必要條件一 :它是不是一個業務過程?
b必要條件二:它是不是由某個參與者觸發開始?
c必要條件三:它是不是顯式地或隱式地終止於某個參與者?
d必要條件四: 它是不是為某個參與者完成了有用的業務工作?
如果以上四個必要條件都滿足的話,那麼該業務領域相關的動名詞或動名詞短語就是一個用例。
3 在需求中識別出參與者、系統或子系統。
參與者會觸發某個用例開始,用例也會顯式地或隱式地終止於某個參與者; .
用例會屬於系統或子系統。
其中四個必要條件尤為重要,是我們能否準確識別用例的關鍵所在。下面根據此原理和方法,針對留學生資訊管理系統進行用例建模。
3.4 開始用例建模
根據工程實踐的背景,我們可以提取出相應的需求:
首先系統分為兩個角色,使用者和管理員,是名詞,因此顯然系統有兩個用例。使用者主要有如下功能:
使用者用例
在進入系統後,使用者可以使用以下功能:
a) 註冊、登入;
b) 瀏覽所感興趣的學校資訊和專業資訊;
c) 提交自己個人情況,獲取系統提供的留學建議;
d) 進入論壇發帖、回帖;
e) 管理個人資訊;
根據上述需求,我們可以找出相應的動名詞,並且結合是否滿足用例的四個必要條件,我們可以提取出用例,用例用下劃線標出,並且基於此,我們可以畫出基於使用者的用例圖:
同樣的,我們可以根據工程實踐背景,抽取出相應的管理員需求:
管理員用例
在登入後,管理員可以使用以下功能:
a)管理學校、專業資訊
b)管理使用者資訊
c)管理論壇資訊
我們根據用例建模的原理,同樣的可以提取出一些動名詞,用下劃線標出。此動名詞即為管理員的相應用例。畫出管理員的用例圖如下:
4 業務領域建模
4.1 業務領域建模基本介紹
業務物件模型(也叫領域模型 domain model)是描述業務用例實現的物件模型。它是對業務角色和業務實體之間應該如何聯絡和協作以執行業務的一種抽象。業務物件模型從業務角色內部的觀點定義了業用例。該模型為產生預期效果確定了業務人員以及他們處理和使用的物件(“業務類和物件”)之間應該具有的靜態和動態關係。它注重業務中承擔的角色及其當前職責。這些模型類的物件組合在一起可以執行所有的業務用例 。
4.2 業務領域建模基本步驟
●第一步,收集應用業務領域的資訊。聚焦在功能需求層面,也考慮其他型別的需求和資料;
●第二步,頭腦風暴。列出重要的應用業務領域概念,給出這些概念的屬性,以及這些概念之間的關係;
●第三步, 給這些應用業務領域概念分類。分別列出哪些是類、哪些屬性和屬性值、以及列出類之間的繼承關係、聚合關係和關聯關係。
●第四步, 將結果用UML類圖畫出來。
4.3 結合自己工程實踐分析
1collect application domain information
根據兩種不同的使用者,我們該工程要實現的是
(1)使用者登入之後輸入不同的條件,可以產生符合輸入條件的留學資訊和專業資訊
(2)根據使用者的個人材料,系統可以給使用者推薦一些學校以參考
(3)使用者和管理員有自己的個人中心,可以進行相應的管理
(4)使用者可以在相應的學校論壇模組進行發帖、收藏,管理員可以進行帖子的管理、刪除等等。
2brainstorming
(1)列出重要的應用程式域概念:
資訊檢索:根據資訊進行學校和專業的篩選
推薦演算法:後臺演算法模組
使用者管理:使用者中心管理,管理使用者的相應操作
後臺管理:管理員模組,進行系統的相應管理
論壇:論壇管理,發帖、刪帖、收藏
(2)列出他們的屬性
-使用者:使用者ID,賬號,密碼,註冊時間等 -管理員:ID,密碼,許可權,登入時間,登入IP等 -學校:ID,中英校名,地區,QS排名,介紹等 -專業:ID,名稱,專業熱度,介紹等 -文章:ID,作者,釋出時間,熱度,關鍵詞,內容,留言等
(3)他們之間的關係
-管理員管理使用者,使用者搜尋學校和專業資訊,使用者提供自己的材料,系統給出相應的建議,使用者進行發帖、評論收藏,管理員進行管理違反社群的帖子
3.classifying the domain concepts into
根據上述,我們將分為5個類別:1 使用者 2 管理員 3 學校 4 專業 5 文章
4.document result using UML class design
5 資料建模
資料建模其實就是在之前的步驟上引入關聯類進行分析,關聯關係是業務資料建模的關鍵。
我們經過上述分析發現,使用者在根據相應的條件進行查詢時,結果可能是比較複雜的,返回的可能不是單一的結果,可能是匹配多個學校,多個專業,甚至包含特定論壇內容的結果,因此我們有必要設計一箇中間結果類,用於匹配多種條件的資訊。這就是所謂的中間關聯類,我們設計一個這樣的關聯類,在表中其實表現為外來鍵關聯。與學校、專業和論壇為聚合關係。經過這樣設計之後的資料模型如下:
相應的表設計如下:
A)使用者資訊表
使用者資訊表存放所有使用者的賬號和密碼等重要資訊,用於使用者的註冊和登入。其他資訊則與論壇或其他個人資訊關聯,包括性別、頭像、成績、意向學校或收藏等,可為空,後續進行詳細設計。使用攔截器,未登入不能訪問論壇與院校詳情。
Id |
賬號 |
密碼 |
暱稱 |
註冊時間 |
其他…… |
B)管理員資訊表
後臺管理人員的資訊。
Id |
賬號 |
密碼 |
登入時間 |
登入ip |
C)學校資訊表
學校資訊表主要記錄學校的一些關鍵資訊如名稱、專業設定等。其他例如錄取率、申請材料等在其他資訊中進行詳細設計。
Id |
中英校名 |
國家地區 |
QS排名 |
學校介紹 |
專業設定 |
其他…… |
D)專業資訊表
專業資訊表包括全球主流專業的詳細資訊。後續進行詳細設計以增強資訊檢索能力。
Id |
名稱 |
學校排名 |
詳細資訊…… |
E)文章資訊表
論壇的首要的功能是實現文章的釋出與留言,文章資訊表中的熱度包括瀏覽量、點贊數和轉發數,留言列表將採用單獨的表進行對映。
Id |
作者 |
釋出時間 |
熱度 |
關鍵詞 |
文章內容 |
留言列表 |
F)中間結果表
主要是起到快取的作用,引入中間關聯表。
Id |
學校ID |
專業ID |
詳細資訊…… |
6 概念原型以及工作過程
概念是人對能代表某種事物或發展過程的特點及意義所形成的思維結論,概念原型是一種虛擬化的、理想化的軟體產品形式。也就是說,概念原型 = 用例 + 資料模型。
因此基於以上分析和建模,我們就可以總結出此專案的概念原型,同時對此概念模型的工作過程進行分析。
留學資訊管理與分析系統概念模型分為兩個用例圖和六個資料模型:
用例分為使用者用例圖、管理員用例圖;
資料模型分為使用者、管理員、學校、專業、文章和中間結果。
整個概念模型的工作過程為:
使用者這個用例向系統輸入條件和資料,系統進行分析和篩選為專業、學校和文章幾種資訊,學校和專業為聚合關係,文章和其他幾類為多對多關係,專業學校文章中有個中間結果進行組合,系統進行處理之後,把中間結果轉化為最終結果返回給使用者,使用者收到了滿意的結果,這就是一次業務過程。
管理員這個用例登入之後,進入屬於自己的介面,管理員進行增刪改查等操作之後,系統進行處理這些資料,進行更新學校、專業、文章等表結構,並把操作之後的結果返回給管理員,完成了一次業務過程。
比如說使用者搜尋新加坡國立大學軟體工程專業,系統搜尋資料庫之後進行資料處理,把精準的資訊返回給頁面,例如新加坡國立大學的介紹,Qs排名,專業排名,評價,以及有關方面的論壇介紹等等,如果使用者輸入的個人資訊足夠多,那麼系統還可以智慧推薦;
再比如管理員登入系統之後,可以進行學校資訊的更新,專業的更新,對不符合的論壇或者使用者進行刪除操作等。
7 總結
此部落格主要根據軟體工程的概念原型建模原理,對工程實踐專案進行了用例建模、業務領域建模和資料建模,最後總結出概念原型以及工作過程。
8 參考資料
1 ppt from Dr.David Kung University of Texas Arlington May 2010
2https://www.cnblogs.com/jundiy/category/194488.html