這個作業屬於哪個課程 | https://edu.cnblogs.com/campus/gdgy/2021Softwarecodedevelopmenttechnology |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/gdgy/2021Softwarecodedevelopmenttechnology/homework/11968 |
這個作業的目標 | 1. 幫助我們更好地掌握軟件規格說明的寫法 |
2. 幫助我們更好地掌握領域驅動設計分析運用 | |
3. 幫助我們更好地掌握UML建模語言 | |
4. 幫助我們更好地掌握Github使用 | |
5. 幫助我們找出自身不足,便於更好地提升和改進 |
-------------------------------------------------------------------------------------------------------------------------------------------------
個人信息
學號 | 姓名 | 班級 | 別名 |
---|---|---|---|
3118005169 | 鄭政 | 軟件工程五班 | Ching |
-------------------------------------------------------------------------------------------------------------------------------------------------
領域驅動設計--Domain Driven Design
1. 領域驅動研發過程
領域驅動設計關心業務中的領域划分和領域建模,開發過程以領域模型為出發點,領域模型對應的是業務實體,在程序中表現為類、聚會根和值對象,關注業務語義的顯性化表達,而非存儲和數據之間的關系。
2. 本案例分析建模過程
(1)尋找概念類:服務項目、自由職業者、客戶、普通用戶、時間表、審計日志
(2)添加關聯:
(3)添加屬性:
(4)制作領域模型
-------------------------------------------------------------------------------------------------------------------------------------------------
需求規格說明書
1. 問題定義
1.1 項目名稱:出租服務管理系統
1.2 問題概述:
一家公司提供服務出租,公司自身有一些員工,另外還有很多自由職業者作為服務商存在。公司目前使用Excel工作表來管理他們的客戶(自由職業者),時間表等。Excel解決方案無法很好地進行擴展。它無法應對多用戶使用的場景,也不提供安全和審計日志。因此他們決定構建一個新的基於Web的解決方案,通過出租服務管理系統實現公司出租服務相關信息的管理以及提供公司信息的安全性。
1.3 系統需求:
(1)數據需求:
序號 | 輸入數據 | 數據存儲 | 輸出數據 |
---|---|---|---|
(1) | 自由職業者信息 | 自由職業者信息 | 審計日志 |
(2) | 普通客戶信息 | 普通客戶信息 | |
(3) | 時間表 | 時間表 | |
(4) | 項目信息 | 項目信息 |
(2)功能性需求:能對自由職業者信息、普通客戶信息、項目信息以及時間表進行接受處理並產生審計信息,隨時更新自由職業者信息和普通用戶信息以及時間表,能夠搜索自由職業者分類、搜索項目分類、搜索客戶分類以及維護合同中自由職業者的時間表。
(3)技術需求:
序號 | 需求 |
---|---|
(1) | 自由職業者信息、普通用戶信息、項目信息、時間表必須隨時更新。 |
(2) | 主存要有至少30T存儲空間的數據庫存儲自由職業者信息、普通用戶信息、項目信息、時間表 |
(3) | 通過限制用戶權限,只有擁有權限的特定用戶才能訪問系統內的相關數據信息以保證存儲信息的不外泄 |
(4) | 信息量速率為2.1Mb/s~5.2Mb/s |
2. 分析建模
2.1 數據流圖
(1)首層數據流圖
(2)2層數據流圖
(3)3層數據流圖
2.2 實體聯系模型
(1)實體及屬性
實體 | 屬性 |
---|---|
自由職業者 | 自由職業者編號、自由職業者姓名、自由職業者電話、自由職業者類型、自由職業者地址 |
時間表 | 時間表編號,自由職業者編號,時間表時間 |
普通客戶 | 普通客戶編號,普通客戶姓名,普通客戶電話,普通客戶類型、普通客戶地址 |
項目 | 項目編號,項目內容,項目時間,項目類型 |
(2)實體間聯系
a)一個自由職業者對應一個時間表,一個時間表對應一個自由職業者,因此自由職業者和時間表之間存在一對一關系。
b)一個自由職業者對應多個項目,一個項目對應多個自由職業者,因此自由職業者和項目之間存在多對多關系。
c)一個普通客戶對應多個項目,一個項目對應多個普通客戶,因此普通客戶和項目之間存在多對多關系。
d)一個項目對應多個時間表,一個時間表對應多個項目。因此項目和時間表之間存在多對多關系。
(3)實體聯系圖
2.3 用例模型
(1)用例圖
(2)用例描述
描述項 | 說明 |
---|---|
用例名稱 | 出租服務管理系統 |
用例描述 | 系統管理員負責處理相關信息的添加、刪除、修改和查詢,審計員可以到處審計日志進行審計 |
參與者 | 系統管理員、審計員 |
前置條件 | 系統管理員輸入自由職業者信息、項目信息、普通客戶信息、時間表 |
后置條件 | 審計日志信息發生變動且時間達到一個星期 |
基本操作流程 | 系統管理員輸入自由職業者信息、項目信息、普通客戶信息、時間表,出租服務管理系統對輸入信息進行處理並將處理后的信息進行存儲和產生審計日志供審計員查看 |
2.4 數據字典
(1)數據項
數據項 | 名字 | 別名 | 簡述 | 定義 | 位置 |
---|---|---|---|---|---|
(1) | 自由職業者編號 | 服務商編號 | 用於識別自由職業者特有的代碼 | 自由職業者編號=1{數字}3 | 自由職業者信息、審計日志、時間表、項目信息 |
(2) | 普通客戶編號 | 用於識別普通客戶特有的代碼 | 普通客戶編號=1{數字}3 | 普通用戶信息、審計日志、項目信息 | |
(3) | 時間表編號 | 用於識別時間表特有的代碼 | 時間表編號=1{數字}3 | 時間表信息 | |
(4) | 項目編號 | 用於識別項目特有的代碼 | 項目編號=1{數字}3 | 項目信息、審計日志 | |
(5) | 自由職業者姓名 | 服務商姓名 | 自由職業者特有的名稱 | 自由職業者姓名=1{英文字母}6 | 自由職業者信息、時間表 |
(6) | 普通客戶姓名 | 普通客戶特有的名稱 | 普通客戶姓名=1{英文字母}6 | 普通用戶信息、項目信息 | |
(7) | 項目時間 | 項目建立的時間 | 項目時間=4{數字}4+1{漢字字符年}1+1{數字}2+1{漢字字符月}1 | 項目信息 | |
(8) | 項目內容 | 項目的詳細描述 | 項目內容=2{漢字字符}30 | 項目信息、審計日志 | |
(9) | 自由職業者類型 | 服務商類型 | 自由職業者特有的類別 | 自由職業者類型=[A級\B級] | 自由職業者信息 |
(10) | 普通用戶類型 | 普通用戶特有的類別 | 普通用戶類型=[會員\非會員] | 普通用戶信息 | |
(11) | 項目類型 | 項目特有的類別 | 項目類型=[緊急\一般] | 項目信息 | |
(12) | 時間表時間 | 時間表對應自由職業者的時間 | 時間表時間=4{數字}4+1{漢字字符年}1+1{數字}2+1{漢字字符月}1 | 時間表信息 | |
(13) | 自由職業者電話 | 服務商電話 | 自由職業者特有的聯系號碼 | 自由職業者電話=11{數字}11 | 自由職業者信息 |
(14) | 自由職業者地址 | 服務商地址 | 自由職業者特有的居住位置 | 自由職業者地址=2{中文字符}30 | 自由職業者信息 |
(15) | 普通用戶電話 | 普通用戶特有的聯系號碼 | 普通用戶電話=11{數字}11 | 普通用戶信息 | |
(16) | 普通用戶地址 | 普通用戶特有的居住位置 | 普通用戶地址=2{中文字符}30 | 普通用戶信息 |
(2)數據流:
數據流 | 名字 | 別名 | 簡述 | 定義 | 位置 |
---|---|---|---|---|---|
(1) | 自由職業者信息 | 服務商信息 | 自由職業者特有的個人資料 | 自由職業者信息=自由職業者編號+自由職業者姓名+自由職業者電話+自由職業者地址+自由職業者類別 | 數據庫、從計算機輸入 |
(2) | 普通用戶信息 | 普通用戶特有的個人資料 | 普通用戶信息=普通用戶編號+普通用戶姓名+普通用戶電話+普通用戶地址+普通用戶類別 | 數據庫、從計算機輸入 | |
(3) | 時間表 | 自由職業者對應的特有的個人時間安排表 | 時間表=自由職業者編號+時間表編號+時間表時間 | 數據庫、從計算機輸入 | |
(4) | 項目信息 | 項目特有的資料信息 | 項目信息=項目編號+項目內容+項目時間+項目類別 | 數據庫、從計算機輸入 | |
(5) | 審計日志 | 出租服務審計信息報表 | 審計日志=自由職業者編號+普通用戶編號+項目編號+項目內容 | 從打印機輸出 |
(3)數據存儲:
數據存儲 | 名字 | 別名 | 簡述 | 定義 | 更新頻率 |
---|---|---|---|---|---|
(1) | 自由職業者信息 | 服務商信息 | 自由職業者特有的個人資料 | 自由職業者信息=自由職業者編號+自由職業者姓名+自由職業者電話+自由職業者地址+自由職業者類別 | 隨時 |
(2) | 普通用戶信息 | 普通用戶特有的個人資料 | 普通用戶信息=普通用戶編號+普通用戶姓名+普通用戶電話+普通用戶地址+普通用戶類別 | 隨時 | |
(3) | 時間表 | 自由職業者對應的特有的個人時間安排表 | 時間表=自由職業者編號+時間表編號+時間表時間 | 隨時 | |
(4) | 項目信息 | 項目特有的資料信息 | 項目信息=項目編號+項目內容+項目時間+項目類別 | 隨時 |
2.5 對象模型
(1)類圖
3. 總體設計
3.1 系統流程圖
3.2 物理元素清單
(1)硬件
·計算機一台
·打印機一台
·顯示器一台
(2)軟件
·兩個程序
√程序1:更新自由職業者信息,更新普通用戶信息,更新項目信息、更新時間表
√程序2:讀取數據庫信息,產生審計日志
·一個數據庫
出租服務數據庫:自由職業者信息、普通用戶信息、項目信息、時間表
3.3 軟件設計
(1)HIPO圖
(2)數據庫邏輯結構
序號 | 記錄 | 主碼 | 外碼 | 碼 |
---|---|---|---|---|
(1) | 自由職業者 | 自由職業者編號 | 自由職業者編號,自由職業者姓名,自由職業者電話,自由職業者地址,自由職業者類別 | |
(2) | 普通用戶 | 普通用戶編號 | 普通用戶編號,普通用戶姓名,普通用戶電話,普通用戶地址,普通用戶類別 | |
(3) | 項目 | 項目編號 | 自由職業者編號,普通用戶編號 | 項目編號,項目內容,項目時間,項目類別,自由職業者編號,普通用戶編號 |
(4) | 時間表 | 時間表編號 | 自由職業者編號 | 時間表編號,時間表時間,自由職業者編號 |
-------------------------------------------------------------------------------------------------------------------------------------------------
項目時間安排
(1)項目時間安排表
所屬流程 | 步驟 | 預計完成時間 | 預計開始時間 | 預計結束時間 | 矯正后完成時間 | 校正后結束時間 |
---|---|---|---|---|---|---|
需求分析 | 需求分析 | 10個工作日 | 2021/4/23 | 2021/5/3 | 6個工作日 | 2021/4/29 |
總體設計 | 框架設計完成 | 3個工作日 | 2021/5/4 | 2021/5/7 | 3個工作日 | 2021/5/2 |
總體設計 | 單元模塊設計完成 | 5個工作日 | 2021/5/8 | 2021/5/13 | 5個工作日 | 2021/5/7 |
實現 | 接口設計實現 | 5個工作日 | 2021/5/14 | 2021/5/19 | 5個工作日 | 2021/5/12 |
實現 | 自由職業者信息管理模塊完成 | 10個工作日 | 2021/5/20 | 2021/5/30 | 8個工作日 | 2021/5/20 |
實現 | 普通客戶信息管理模塊完成 | 10個工作日 | 2021/5/31 | 2021/6/9 | 6個工作日 | 2021/5/26 |
實現 | 項目信息管理模塊完成 | 10個工作日 | 2021/6/10 | 2021/6/20 | 6個工作日 | 2021/5/31 |
實現 | 時間表管理模塊完成 | 10個工作日 | 2021/6/21 | 2021/6/30 | 6個工作日 | 2021/6/6 |
實現 | 打印審計日志模塊完成 | 5個工作日 | 2021/7/1 | 2021/7/6 | 5個工作日 | 2021/6/11 |
測試 | 集成測試完成 | 3個工作日 | 2021/7/7 | 2021/7/10 | 3個工作日 | 2021/6/14 |
測試 | 系統測試完成 | 3個工作日 | 2021/7/11 | 2021/7/14 | 3個工作日 | 2021/6/17 |
測試 | 測試總結完成 | 1個工作日 | 2021/7/15 | 2021/7/16 | 1個工作日 | 2021/6/18 |
測試 | 測試完成 | 0個工作日 | 2021/7/16 | 2021/7/16 | 0個工作日 | 2021/6/18 |
交付 | 驗收測試完成 | 3個工作日 | 2021/7/17 | 2021/7/20 | 3個工作日 | 2021/6/21 |
(2)矯正計算方法
需求分析時間按60%時間計算,接口和單元模塊設計約定等於預計時間,根據模塊之間功能相似性,在完成自由職業者信息模塊后可以縮減普通用戶信息管理、項目信息管理和時間表管理模塊80%時間,打印模塊則近似看成等於預計時間,測試時間根據系統復雜度約等於預計時間。
-------------------------------------------------------------------------------------------------------------------------------------------------
Github地址
https://github.com/Chingzz99/ServiceSystem
-------------------------------------------------------------------------------------------------------------------------------------------------
Github--Issue截圖
-------------------------------------------------------------------------------------------------------------------------------------------------