根據工程實踐項目進行需求分析和概念原型建模


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 結合自己工程實踐分析


1 collect application domain information

根據兩種不同的用戶,我們該工程要實現的是

(1)用戶登錄之后輸入不同的條件,可以產生符合輸入條件的留學信息和專業信息

(2)根據用戶的個人材料,系統可以給用戶推薦一些學校以參考

(3)用戶和管理員有自己的個人中心,可以進行相應的管理

(4)用戶可以在相應的學校論壇模塊進行發帖、收藏,管理員可以進行帖子的管理、刪除等等。

2 brainstorming

(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

 

https://www.cnblogs.com/jundiy/category/194488.html

https://www.cnblogs.com/zpfbuaa/p/5962613.html

https://blog.csdn.net/u012785382/article/details/60586842

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM