第三次團隊做業:軟件設計

 老師,很抱歉上一次做業更改題目沒有及時將消息告知。前端

1、數據庫設計 web

1.1 E-R圖(用Powerdesigner畫CDM)數據庫

1.2 數據字典後端

                    表1-1 用戶表安全

表名架構

webuser(用戶表)數據庫設計

主鍵函數

webuser_id工具

列名測試

數據類型

長度

是否容許爲空

描述

webuser_id

Char

10

不容許

用戶編號,惟一標識用戶的字段,以U開頭

usertype_id

char

10

不容許

用戶類別id,全部註冊用戶默認爲0,以UTY開頭

User_account

varchar

50

不容許

用戶登陸帳號,爲手機

User_pwd

varchar

50

不容許

用戶密碼,能夠爲數字和字母和其餘符號組成,規定長度在6~20之間

user_name

nvarchar

20

容許

用戶暱稱,字符不超過20的任意字符

user_sex

char

2

容許

用戶性別,可爲空

User_tel

char

11

不容許

聯繫用戶的方式,規定爲0-9數字組成

User_icon

varchar

50

容許

用戶頭像

User_point

int

 

不容許

用戶積分,默認初始爲0.00

reg_time

datetime

 

不容許

用戶註冊時間, 默認系統時間

Bank_card

varchar

10

容許

銀行卡號

Balance

char

11

容許

帳戶餘額

Pay_pwd

money

 

容許

支付密碼

Webuser_id

char

10

不容許

用戶編號

                    1-2 用戶類別表

表名

usertype(用戶類別表)

主鍵

usertype_id

列名

數據類型

長度

是否容許爲空

描述

usertype_id

Char

10

不容許

用戶類別id,分爲0,1,全部註冊用戶默認爲0,用戶類別名,0對應‘普通’,1對應‘會員’,以UTY開頭

usertype_name

char

4

不容許

用戶類別名,默認爲普通

                    1-3 商品表

表名

produce(商品表)

主鍵

pro_id

列名

數據類型

長度

是否容許爲空

描述

pro_id

Char

10         

不容許

商品編號,以pro開頭

pro_name

nvarchar

20

不容許

商品名稱,以漢字或者英文字母組成

protype_id

int

 

不容許

商品類別id,有0-9數字組成,表明該商品類別(肉類,蔬菜,海鮮……)

pro_price

money

 

不容許

商品單價

pro_amount

int

 

不容許

商品庫存,默認全部商品庫存爲200

pro_icon

varchar

50

不容許

商品圖片路徑

pro_info

ntext

 

容許

商品簡介(250字內)

pro_disprice

money

 

容許

商品打折價格

collect_num

int

 

容許

商品被收藏次數,默認零

                    1-4 商品類別表

表名

protype(商品類別表)

主鍵

protype_id

列名

數據類型

長度

是否容許爲空

描述

protype_id

Char

10

不容許

商品類別id,有0-9數字組成,表明該商品類別(肉類,蔬菜,海鮮……),以PTY開頭

protype_name

nvarchar

10

不容許

商品類別名(蔬菜,肉類,海鮮,野味……)

                    表1-5 收藏表

表名

collect(收藏表)

主鍵

collect_id

列名

數據類型

長度

是否容許爲空

描述

collect_id

Char

10

不容許

收藏編號,以COL開頭

webuser_id

Char

10

不容許

用戶編號,惟一標識用戶的字段,以U開頭

pro_id

char

10

不容許

商品編號

collect_time

datetime

 

不容許

收藏時間,默認系統時間

                    1-6 評價表

表名

comment(評價表)

主鍵

comment_id

列名

數據類型

長度

是否容許爲空

描述

com_id

Char

10

不容許

用戶評論id ,以COM開頭

order_id

Char

10

不容許

訂單編號,以O開頭

pro_id

char

10

不容許

商品編號,以PRO開頭

com_time

datetime

 

不容許

用戶評價時間,默認系統時間

com_message

ntext

 

不容許

用戶發表評論內容,任意可打印字符

Com_pic

varchar

50

容許

評價圖片

Com_score

Int

 

容許

評價等級分數

Com_seq

Int

 

不容許

評價序號,以區分是首次評價仍是追加評價

                    1-7 收貨地址表

表名

useraddress(收貨地址表)

主鍵

Address_id

列名

數據類型

長度

是否容許爲空

描述

address_id

Char

10

不容許

收貨地址編號,惟一標識用戶的收貨地址字段,以add開頭

webuser_id

char

10

不容許

用戶編號,惟一標識用戶的字段

address

nvarchar

100

不容許

收貨地址,由任意可打印字符組成

                    1-8 訂單表

表名

orders(訂單表)

主鍵

order_id

列名

數據類型

長度

是否容許爲空

描述

order_id

Char

10

不容許

訂單編號

webuser_id

char

10

不容許

用戶編號,惟一識用戶的字段

order_time

datetime

10

不容許

訂單時間,默認系統時間

order_sum

money

 

不容許

訂單總價

address_id

char

10

不容許

收貨地址編號,惟一標識用戶的收貨地址字段,規定長度爲11位數字

order_state

char

6

不容許

五個字符串常量:「待付款」、「待配送」、「待收貨」、「待評價」、「已評價」

del_money

money

 

容許

配送費

del_id

char

10

容許

配送員編號

del_time

datetime

 

容許

配送時間

rec_time

datetime

 

容許

送達時間

                    1-9 訂單明細表

表名

orderinfo(訂單明細表)

主鍵

Order_id,produce_id

列名

數據類型

長度

是否容許爲空

描述

produce_id

char

10

不容許

商品編號

order_id

Char

10

不容許

訂單編號

order_amount

int

 

不容許

所訂購的商品數量

return_goods

Boolean

 

不容許

判別用戶是否申請退貨

refund

boolean

 

不容許

判別用戶是否申請退款

                    1-10 配送員表

表名

deliveryman

主鍵

delivery_id

列名

數據類型

長度

是否容許爲空

描述

del_id

Char

10

不容許

配送員編號,以del開頭

del_name

varchar

10

容許

配送員姓名

del_tel

char

11

容許

配送員聯繫電話

del_wage

money

 

容許

配送員工資

del_pwd

varchar

50

不容許

配送員密碼

del_account

varchar

50

不容許

配送員帳號

del_point

int

 

容許

配送員信用評分

                     1-11 售後表

表名

Sale_back

主鍵

Saler_idPro_idOrder_id

列名

數據類型

長度

是否容許爲空

描述

Saler_id

Char

10

不容許

商家編號

Pro_id

Char

10

不容許

商品編號

Order_id

Char

10

不容許

訂單編號

Deal_time

datetime

 

不容許

處理時間

Refund_money

money

 

不容許

退款金額

                     表1-12 商家回覆表

表名

Saler_reply

主鍵

Com_id,saler_id

列名

數據類型

長度

是否容許爲空

描述

Com_id

Char

10

不容許

用戶評價編號

Saler_id

char

10

不容許

商家編號

Reply_time

datetime

 

容許

回覆時間

Reply_context

varchar

200

容許

回覆內容

                     表1-13 商家表

表名

Saler

主鍵

Saler_id

列名

數據類型

長度

是否容許爲空

描述

Saler_id

Char

10

不容許

商家編號,以s開頭

Saler_pwd

varchar

20

容許

登陸密碼

Saler_account

varchar

50

容許

商家登陸帳號

 1.3 安全性

  (1)  角色:數據庫管理員(商家)、顧客、遊客、配送員

  (2)  用戶:數據庫管理員、顧客、遊客、配送員

  (3)  登陸名:saler、customer、visitor、deliveryman

  (4)  用戶密碼:使用PWDENCRYPT()加密存放。

1.4 存儲過程設計

序號

過程名

功能

入口參數

權限

1      

proc_WebUserInsert

 

實現用戶註冊,將用戶密碼通過MD5加密後存入數據庫。

 

用戶帳號,密碼,用戶名,性別,聯繫電話

管理員、顧客

2      

proc_WebUserSelectLogin

 

用戶登陸,使用PWDCOMPARE函數比對輸入的密碼與數據庫中通過加密的是否一致。

 

用戶帳號,密碼

管理員、顧客

3      

proc_ProduceSelect

 

分類瀏覽商品,顯示排序後的結果

商品類別編號,排序字段,排序類別

管理員、顧客

4      

proc_ProdeuceNameSelect

 

搜索商品名字

關鍵字

管理員、顧客

5      

proc_ProduceIdSelect

 

查看商品詳情

商品編號

管理員、顧客

6      

proc_OrdersInsert

 

生成訂單

用戶編號,商品編號列表,商品數量列表,收貨地址編號

管理員、顧客

7      

proc_OrdersInfoInsert

 

生成訂單明細

訂單編號,商品編號,商品數量

管理員、顧客

8      

proc_OrdersInfoOrderIdSelect

 

查看某個訂單

訂單編號

管理員、顧客

9      

proc_OrdersStateSelect

 

查看用戶的訂單列表

用戶編號,訂單狀態

管理員、顧客

10    

proc_OrderStateUpdatePay

 

付款操做

訂單編號,用戶編號

管理員、顧客

11    

proc_OrderStateUpdateReceive

 

收貨操做,用戶對某個訂單進行收貨

訂單編號

管理員、顧客

12    

proc_OrderStateUpdateComment

 

評價商品操做

商品編號,訂單編號,評價內容

管理員、顧客

13    

proc_CollectInsert

 

收藏商品

商品編號,用戶編號

管理員、顧客

14    

proc_WebuserUpdate

 

修改用戶信息

用戶名,性別,聯繫電話,用戶編號

管理員、顧客

15    

proc_WebuserSelect

 

查看用戶信息

用戶帳號

管理員、顧客

16    

proc_AddressForWebuserIdSelect

 

用戶查看本人的收貨地址

用戶編號

管理員、顧客

17    

proc_AddressIdSelect

 

查看收貨地址信息

地址編號,用戶編號

管理員、顧客

18    

proc_AddressInsert

 

添加收貨地址

用戶編號,地址信息

管理員、顧客

19    

proc_AddressUpdate

 

修改地址內容

地址編號,地址信息

管理員、顧客

20    

proc_AddressDelete

 

刪除收貨地址

地址編號

管理員、顧客

21    

proc_WebuserAccountMoneyUpdate

 

用戶充值

用戶編號,充值金額

管理員、顧客

22    

proc_showProduceSaleOfStage

 

統計某個時間段的每一個商品銷售量,顯示商品編號,開始時間,結束時間,銷售數量

開始時間,銷售時間

管理員、顧客

23    

proc_showProduceSaleAll

 

統計每一個商品總銷售量,顯示商品編號,商品名稱,銷售數量

管理員、顧客

24    

proc_showUserOrderNumOfStage

 

統計某個時間段每一個用戶訂單狀況,顯示用戶編號,用戶時間,訂單數量,開始時間,結束時間,付款總金額

開始時間,結束時間

管理員

25    

proc_showUserOrderNum

 

統計每一個用戶訂單狀況,顯示用戶編號,用戶名稱,訂單數量,付款總金額,平均每單付款金額

管理員

26    

proc_OrderStateSelectForDelivery

配送員查找「待配送」狀態的訂單

管理員、配送員

27    

proc_OrderStateUpdateDelivery

配送員接單,將配送編號插入訂單表中,更新配送時間爲當前時間

配送員編號,訂單編號

管理員、配送員

1.5 觸發器設計

序號

觸發器名

功能

類型

做用表

1      

tri_orderinfoInsert_UpdateOrders

                             

插入訂單明細時,更新訂單總金額

Insert

Orderinfo(訂單明細表)

2      

tri_orderinfoInsert_UpdateProduce

 

插入訂單明細時,更新商品庫存

insert

Orderinfo(訂單明細表)

3      

tri_produceUpdate            

 

更新商品庫存,檢查商品庫存是否小於20,小於20的提醒商家進貨

update

Produce(商品表)

4      

tri_ordersUpdate1

 

修改訂單時,統計用戶不是待付款狀態的訂單數量,修改用戶級別

update

Orders(訂單 表)

5      

tri_orderStateUpdate2

 

付款修改訂單狀態時,修改用戶餘額

update

Orders(訂單表)

6      

tri_commentInsert

 

插入評價記錄時,修改訂單狀態

insert

Comment(評價表)

7      

tri_collectInsert

 

插入收藏記錄時,統計商品收藏次數,修改collect_num值

Insert

Collect(收藏表)

8      

tri_recommand_produce

 

每次用戶下單成功後,推薦該用戶購買數量最多的同類別商品

update

Orders(訂單表)

9      

tri_orderStateUpdate3

 

修改訂單狀態爲待評價時,更新配送員的工資

Update

Orders(訂單表)

2、典型用戶和典型場景 

2.1 典型用戶列表

                                    表2-1 

典型用戶

特色

上班族

工做繁忙,生活節奏快。

大學生

大學生在寢室偶爾會煮一些東西吃,但量的大小不定,而寢室也沒法處理超市買回來的食材,購菜系統裏包裝精良的現成菜品是不二選擇。

配送員

如何快速接單,高效配送。

供應商

供應菜品

網站管理員

擁有管理該網站的權限,能夠對全部用戶和微博進行操做。

網站破壞者

入侵網站、盜竊他人帳號等威脅人羣。

2.2 典型用戶和典型場景

                                           表2-2 

名字

 胡一統

用戶性別

 男

用戶屬性

 上班族

動機、目的、困難

動機:喜好作飯,但因爲工做太忙,天天的午餐晚飯都靠着外賣來解決。想要買菜作飯但時間不容許。

困難:如何把蔬菜配合工做時間合適的時間送貨上門。

典型場景

 下單購菜,與配送員交接

                                          表2-3

名字

 王文

用戶性別

 女

用戶屬性

 大學生

 動機、目的、困難

 動機:突發奇想在寢室煮火鍋,但懶得去超市購買菜品。

困難:因爲需求的菜品量大,對配送員仍是提供點都是須要時間的。且用戶不須要太過精確的對接時間,須要提早下單,而且在一個時間段以內送到便可。

 典型場景

 提早下單,預計送達。預計送達的先後一小時內與配送員對接。

                                          表2-4

名字

吳所謂

用戶性別

用戶屬性

配送員

動機、目的、困難

動機:每一筆訂單按千米數,菜品重量,送達時間等計費

困難: 如何在規定時間送達菜品,如何高效接單。

典型場景

接單,配送

                                          表2-5

名字

 陳恩

用戶性別

 女

用戶屬性

 供應商

動機、目的、困難

動機:面面交易沒法知足全部人的需求,新的方式能夠賣出更多蔬菜,同時也知足了更多人的需求,和網站的合做互利雙贏。

困難:須要對菜品作進一步處理,浪費人力和時間。有時菜品供不該求。

典型場景

 查看用戶訂單並經過訂單準備須要處理的蔬菜,在規定時間內處理完成。

                                          表2-6

名字

趙端

用戶性別

用戶偏好

維護網站的安全、正常運行。管理網站的信息安全和信息合法。

動機、目的、困難

動機:做爲管理員,維持網站運行的秩序。

困難:目前仍須要提防有惡意用戶攻擊網站、竊取用戶隱私數據。

典型場景

網站管理端

                                           表2-7

名字

Black

用戶性別

用戶偏好

以入侵別人的網站,獲取到網站管理員權限爲樂。

動機、目的、困難

動機:入侵網站、炫耀本身的技術。

困難:網站的安全意識高,網站存在的漏洞少。

典型場景

忘記密碼、用戶登陸。

3、軟件原型設計 

3.1 用戶

3.2 商家

3.3 配送員

4、功能模塊設計

 4.1 用戶:

  4.1.1 註冊:Void CustomerZhuce();註冊帳號,能夠經過手機或者郵箱進行註冊。

  4.1.2 登陸:Void CustomerDenglu();利用帳號密碼登陸,或者手機驗證碼登陸。

  4.1.3 修改用戶信息:Void CustomerXiugai();能夠修改用戶的收貨地址、暱稱、姓名等等

  4.1.4 找回密碼:Void CustomerFindPassword();能夠經過郵箱找回、經過手機找回或者經過客服申述找回

  4.1.5 用戶點評:Void Dianping();用戶對已經收到的菜進行評價。

  4.1.6 下單:Void Xiadan();用戶經過在網頁瀏覽到的商品添加入購物車,而後最後在結算的時候向商家付款,從而生成訂單。

  4.1.7 查看訂單:Void CustomerSelectOrder();用過查看本身下的單的信息

4.2 商家:

  4.2.1 登陸:Void MerchantZhuce();利用帳號密碼登陸,或者手機驗證碼登陸。

  4.2.2 註冊:Void MerchantDenglu();註冊帳號,能夠經過手機或者郵箱進行註冊。

  4.2.3 訂單管理:Void ManagerSelectOrder ();查看訂單的狀態,並對訂單進行一些相應的管理,如退單等。

  4.2.4 統計功能:Void SumFunction();統計近期菜品的銷量及銷量總額。

  4.2.5 回覆評價:Void Reply();在線回覆用戶的評價。

  4.2.6 添加/刪除/修改商品:Void AddGoods();添加商品

              Void DeleteGoods();刪除商品

              Void ChangeGoods();修改商品的信息 

4.3 配送員:

  4.3.1 登陸:Void DelivererZhuce();利用帳號密碼登陸,或者手機驗證碼登陸。

  4.3.2 註冊:Void DelivererDenglu();註冊帳號,能夠經過手機或者郵箱進行註冊。

  4.3.3 查看配送單:Void DelivererSelectOrder ();配送員能夠查看本身所需配送的訂單信息。

  4.3.4 查看工資:Void SelectSalary();配送員能夠查看本身的工資。

5、代碼管理和開發流程 

5.1 日期規劃表

5.2 代碼管理

  -    版本控制系統Git,代碼託管採用Github倉庫,可採用可視化工具:桌面版Github。

  -    Branch分支:採用B/S架構,前端在browser分支開發,後端在server分支開發,先後端的成員均在本身的分支開發後融合(merge)到browser、server分支,而後講  browser、server分支融合到master分支。

5.3 開發流程

  5.3.1 軟件團隊模式:

    業餘劇團模式,每一個人挑選角色,開發過程當中發展爲功能團隊模式

  5.3.2開發流程:

    主體爲敏捷流程,但密度稍有下降,以周爲單位,必定程度上接近漸進交付的流程

  5.3.3 敏捷流程:

    第一步:Product Backlog 肯定待實現的需求和待解決的問題(Backlog),產品負責人主導你們對於這個Backlog進行增/刪/改工做。考慮到並非職業的開發團隊,而是學生實踐項目,每一項工做的時間估計單位爲「周」。

    第二步:Sprint Backlog 分解需求或者問題,分解爲以「周」爲單位的任務,由團隊成員認領任務。任務並非Master一人制定的,而是由團隊成員共同商討出方案。團隊成員能主導任務的估計和分配。

    第三步:Sprint 團隊成員在單位時間(周)獨立開發,期間不受其它被更改的需求的干擾。但這種獨立並非絕對的,Master須要溝通全部成員的意見。須要注意的是必須保證團隊成員集中注意力開發。

以周爲單位的Scrum Meeting 中每一個成員彙報進度,不論是未解決的問題仍是新產生的問題,每一個成員均可以提出見解和解決思路。結合每週的工做量,用圖表展現整個項目的進度,有利於團隊成員調整節奏和進度。

    第四步:獲得軟件的一個增量版本,結合代碼管理,此時能夠融合不一樣分支,根據現有的功能的實現構建新的版本,發佈,團隊成員使用結合測試,在此基礎上又進一步計劃增量的新功能和改進。

  5.3.4 額外的說明

    瀑布模型:最終產品直到最後才實現,前期須要詳細的設計,由於沒有專業的設計人員和管理人員,因此瀑布模型不適合本團隊。

    漸進交付的流程:開發->發佈->聽取反饋->根據反饋作改進 

    敏捷流程:原則:變化的需求,屢次發佈,溝通。

相關文章
相關標籤/搜索