這個博客是結合上課所學進行所用。在學習完成之后,決定對我的工程實踐項目進行建模,最終形成概念模型
1. 概述
最近學習了需求分析和建模方法,趁熱打鐵,針對自己的項目進行用例建模,業務領域建模和數據建模,最終形成概念原型。
這個項目是使用爬蟲來爬取知乎網數據的一個項目,下面,我們按照流程,一步步的對系統進行建模
2. 用例建模
什么是用例?
用例(Use Case)的核心概念中首先它是一個業務過程(business process),經過邏輯整理抽象出來的一個業務過程,這是用例的實質。什么是業務過程?在待開發軟件所處的業務領域內完成特定業務任務(business task)的一系列活動就是業務過程。
2.1 需求描述
我們抽取出項目中的核心需求
- 用戶能夠查看爬取的知乎網數據
- 用戶能夠根據需要主動獲取知乎網數據
- 用戶能夠查詢爬取到本地的數據
2.2 需求分析
根據准確提取用戶的基本方法:
- 系統:爬蟲系統
- 參與者:用戶
- 用例
- 查看數據
- 獲取數據
- 查詢數據
2.3用例建模
2.4 總結
如此我們的用例圖就畫完了。最后總結一下:
•第一步,從需求表述中找出用例,往往是動名詞短語表示的抽象用例;
•第二步,描述用例開始和結束的狀態,用TUCBW和TUCEW表示的高層用例;
•第三步,對用例按照子系統或不同的方面進行分類,描述用例與用例、用例與參與者之間的上下文關系,並畫出用例圖;
3.業務領域建模
什么是業務領域建模?
• 業務領域建模是開發團隊用於獲取業務領域知識的過程。因為軟件工程師往往需要工作在不同的業務領域或者不同項目中,他們需要業務領域知識來開發軟件系統。軟件工程師往往來自不同的專業背景,這可能會影響他們對業務領域的認知。因此業務領域建模有助於開發團隊獲取業務領域知識形成統一的業務認知。
• 開發團隊獲取業務領域知識的過程一般包括收集業務領域相關信息、執行團隊頭腦風暴、對業務領域相關的知識概念進行分類,最后用UML類圖將業務領域知識圖形化展示。
3.1 頭腦風暴
團隊成員聚在一起執行頭腦風暴從收集的應用業務領域的信息中按規則識別業務領域相關的概念,並分別列出。
• • 名詞和名詞短語(nouns / noun phrases);
• • “Y 的 X”(X of Y)表達方法,比如汽車的顏色;
• • 及物動詞(transitive verbs);
• • 形容詞(adjectives);
• • 數量詞(numeric);
• • 所有關系的表達方法(possession expressions),比如具有、擁有等;
• • 構成關系的表達方法(constituents / “part of" expressions);
• • 包含關系的表達方法(containment / containing expressions);
• • ”X 是一種/類 Y“(X is a Y)表達方法,比如汽車是一種車輛;
我們繼續分析:
- 用戶能夠查看爬取的知乎網數據
- 用戶能夠根據需要主動獲取知乎網數據
- 用戶能夠查詢爬取到本地的數據
我們提取關鍵字:
名詞:用戶、數據
動詞:爬取、查詢
3.2概念分類
經過頭腦風暴按照識別規則將業務領域內的信息提取出來之后,我們需要進一步對這些信息進行面向對象分析,將其歸類為類、屬性,以及類之間的關系。
•• 名詞和名詞短語(nouns / noun phrases)可能是類或者屬性;
• • “Y 的 X”(X of Y)表達方法,可能X是Y的屬性,也可能X是關聯關系中的一個參與者,比如中國科學技術大學的小王同學;
• • 及物動詞(transitive verbs)往往意味着關聯關系;
• • 形容詞(adjectives)一般是屬性值;
• • 數量詞(numeric)往往意味着屬性或者屬性值;
• • 所有關系的表達方法(possession expressions)很可能是聚合關系,也可能是屬性;
• • 構成關系的表達方法(constituents / “part of" expressions)一般是聚合關系;
• • 包含關系的表達方法(containment / containing expressions)一般表示關聯關系或者聚合關系;
• • ”X 是一種/類 Y“(X is a Y)表達方法一般是繼承關系;
我們繼續分析:
名詞:用戶、數據
動詞:爬取、查詢
我們可以為用戶建立一個UI類進行交互,數據可以通過一個數據類表達出來,爬取和查詢屬於方法,基於此,我們給出UML類圖
3.3 具體UML類圖
3.4 總結
•第一步,收集應用業務領域的信息。聚焦在功能需求層面,也考慮其他類型的需求和資料;這個在用例建模的時候已經給出
• 第二步,頭腦風暴。列出重要的應用業務領域概念,給出這些概念的屬性,以及這些概念之間的關系;
• 第三步,給這些應用業務領域概念分類。分別列出哪些是類、哪些屬性和屬性值、以及列出類之間的繼承關系、聚合關系和關聯關系。
• 第四步,將結果用 UML 類圖畫出來。
4. 數據模型建模
什么是數據模型?
數據建模指的是對現實世界各類數據的抽象組織,確定數據庫需管轄的范圍、數據的組織形式等直至轉化成現實的數據庫。 將經過系統分析后抽象出來的概念模型轉化為物理模型后,建立數據庫實體以及各實體之間關系的過程(實體一般是表)。
4.1 分析
根據用例建模和業務領域建模,我們發現項目的關鍵部分在於對數據的操作和存取。
於是我們可以對具體的數據進行建模,包括數據內容,數據存取時間等
4.2 數據模型
數據表:
序號 | 說明 | 名稱 | 類型 | 長度 | 主鍵 |
---|---|---|---|---|---|
1 | 編號 | _id | Int | 32 | Y |
2 | 作者名 | author_name | string | 不限 | N |
3 | 評論數 | comment_count | Int | 32 | N |
4 | 點贊數目 | veteup_count | Int | 32 | N |
5 | 內容 | content | string | 不限 | N |
6 | 摘要 | excerpt | string | 不限 | N |
7 | 問題id | question_id | string | 不限 | N |
8 | 創建時間 | Create_time | data | 不限 | N |
5.概念原型
概念是人對能代表某種事物或發展過程的特點及意義所形成的思維結論。
概念原型是一種虛擬的、理想化的軟件產品形式。
5.1 概念原型的工作過程
以這個項目來舉例,用戶登陸系統,可以選擇爬取新的數據,也可以查看上一次的數據,可以通過搜索查詢或爬取數據。
總結
這是根據課上學到的東西進行項目進行建模,最終形成概念模型。因為才疏學淺,可能有疏忽和不足之處,請多多包涵