一個抽獎專案的需求分析與概念模型
阿新 • • 發佈:2020-12-13
[toc]
## 一、需求分析
一個抽獎專案,它可主要分為普通參與抽獎的使用者,抽獎活動的釋出者,管理者。
### 1、使用者需求:
- 註冊/登陸賬戶
- 搜尋/檢視抽獎活動
- 參與抽獎
- 檢視已參與的抽獎
- 接收獎品
### 2、釋出者需求:
- 編寫抽獎內容
- 釋出抽獎活動
- 管理已釋出的抽獎活動
- 動態修改抽獎活動屬性
- 檢視中獎使用者
- 傳送獎品
### 3、管理者
- 在職能範圍內,管理所有的抽獎活動,包括禁止,限制,刪除等
- 在職能範圍內,管理所有的釋出者,對其行為進行監督
- (超級管理者)管理所有的管理者,分配職能等
## 二、用例建模
根據需求分析的結果,大致可分為以下幾種用例情況:
- 抽獎使用者
- 註冊/登陸
- 參與抽獎
- 領獎
- 管理個人資訊
![](https://img2020.cnblogs.com/blog/2164457/202012/2164457-20201206173603088-1234505288.png)
- 獎項釋出者
- 編輯抽獎
- 釋出抽獎
- 管理抽獎資訊
- 傳送獎品
![](https://img2020.cnblogs.com/blog/2164457/202012/2164457-20201206174429909-1456140696.png)
- 管理員
- 管理所有抽獎
- 管理髮布者
![](https://img2020.cnblogs.com/blog/2164457/202012/2164457-20201206175055929-754722216.png)
## 三、業務領域建模
業務領域建模是開發團隊用於獲取業務領域知識的過程。因為軟體工程師往往需要工作在不同的業務領域或者不同專案中,他們需要業務領域知識來開發軟體系統。軟體工程師往往來自不同的專業背景,這可能會影響他們對業務領域的認知。因此業務領域建模有助於開發團隊獲取業務領域知識形成統一的業務認知。
### 1、業務領域建模的過程
- 第一步,收集應用業務領域的資訊。聚焦在功能需求層面,也考慮其他型別的需求和資料;
- 第二步,頭腦風暴。列出重要的應用業務領域概念,給出這些概念的屬性,以及這些概念之間的關係;
- 第三步,給這些應用業務領域概念分類。分別列出哪些是類、哪些屬性和屬性值、以及列出類之間的繼承關係、聚合關係和關聯關係。
- 第四步,將結果用 UML 類圖畫出來。
### 2、抽獎專案UML類圖
![](https://img2020.cnblogs.com/blog/2164457/202012/2164457-20201213140821662-1922891111.png)
## 四、資料模型
### 1、資料表
####(1)使用者資訊
| 欄位 | 型別 | 說明 |
| :------: | :-----: | :----: |
| id | INTEGER | 主鍵 |
| name | VARCHAR | 姓名 |
| password | VARCHAR | 密碼 |
| gender | VARCHAR | 性別 |
| group | INTEGER | 使用者組 |
使用者資訊表主要存放所有使用者的使用者名稱和密碼,用於驗證登入,使用者型別號用於區分不同角色,如普通使用者,釋出者,管理員等,主鍵為使用者編號。
#### (2)抽獎活動
| 欄位 | 型別 | 說明 |
| :----------: | :-----: | :--------: |
| id | INTEGER | 主鍵 |
| name | VARCHAR | 姓名 |
| publisher_id | INTEGER | 釋出者的id |
| style_id | INTEGER | 抽獎型別號 |
| desc | VARCHAR | 內容描述 |
| times | INTEGER | 抽獎次數 |
| times_limit | INTEGER | 次數限制 |
| pub_date | DATE | 釋出日期 |
| time_expr | DATE | 到期時限 |
抽獎活動表主要存放所有釋出的抽獎活動資訊,釋出者編號為使用者資訊表中的使用者編號,抽獎型別號代表不同的抽獎方式,主鍵為活動編號。
#### (3)使用者—抽獎
| 欄位 | 型別 | 說明 |
| :----------: | :-----: | :----------: |
| user_id | INTEGER | 使用者id |
| lottery_id | INTEGER | 活動id |
| times_remain | INTEGER | 剩餘抽獎次數 |
使用者/抽獎活動表儲存使用者參加抽獎的記錄,是一張中間表,主鍵為使用者編號,抽獎活動編號。
#### (4)獎品
| 欄位 | 型別 | 說明 |
| :--------: | :-----: | :------: |
| id | INTEGER | 主鍵 |
| name | VARCHAR | 獎品名 |
| nums | INTEGER | 獎品個數 |
| rank | INTEGER | 獎品等級 |
| lottery_id | INTEGER | 活動id |
獎品表主要存放各抽獎活動對應獎品的資訊,獎品編號為主鍵。
#### (5)使用者—獎品
| 欄位 | 型別 | 說明 |
| :-------: | :-----: | :----: |
| id | INTEGER | 主鍵 |
| user_id | INTEGER | 使用者id |
| reward_id | INTEGER | 獎品id |
使用者/獎品表用來記錄使用者中獎記錄,中獎資訊編號是主鍵。
### 2、邏輯模型
![](https://img2020.cnblogs.com/blog/2164457/202012/2164457-20201213151459439-894493734.png)
## 四、概念原型
> 概念是人對能代表某種事物或發展過程的特點及意義所形成的思維結論。
概念原型是一種虛擬的、理想化的軟體產品形式。
![](https://img2020.cnblogs.com/blog/2164457/202012/2164457-20201213145319751-371178943.png)
所以抽獎專案概念原型如下:
- 使用者,註冊並登陸賬號,瀏覽抽獎活動,可按型別搜尋並選擇活動,檢視剩餘抽獎次數,如果大於0,可選擇參加,等待結果,期間可檢視所參加的活動。等到獎品開獎,可以檢視是否得獎,若得獎,會受到獎品。
- 活動釋出者,可以選擇抽獎型別,設定獎品及數量,等級;可設定到期時間,總的抽獎次數等等。在抽獎過程中,其可以動態修改抽獎活動的屬性。等到開獎,檢視中獎使用者,併發送獎品。
- 管理者,可按職能分,可監管抽獎活動,和管理髮布者。
- 超級管理者,只有一個,可安排不同職能的管理者,可管理和維護所有內容。
**參考連結** https://gitee.com/mengning997/se/tree/ma
**參考連結** https://gitee.com/mengning997/se/tree/ma