第三次团队做业:软件设计

 老师,很抱歉上一次做业更改题目没有及时将消息告知。前端

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 额外的说明

    瀑布模型:最终产品直到最后才实现,前期须要详细的设计,由于没有专业的设计人员和管理人员,因此瀑布模型不适合本团队。

    渐进交付的流程:开发->发布->听取反馈->根据反馈作改进 

    敏捷流程:原则:变化的需求,屡次发布,沟通。

相关文章
相关标签/搜索