1引言
1.1编写目的
编写本报告是为了保证项目团队按时保质地完成项目目标,便于项目团队成员更好地了解项目情况,使项目工作开展的各个过程合理有序,因此本报告确定各个项目模块的开发情况和主要的负责人,供各项目模块的负责人阅读,做到及时协调,按步有序进行项目的开发,减少开发中的不必要损失。
本报告预期的读者是设计人员、开发人员、项目管理人员、测试人员和用户。
1.2项目背景
小卖部信息管理系统面向管理员和顾客,实现了库存管理,商品信息管理,顾客信息管理,购物车管理和订单管理等。
1.3定义
SQL(Structured Query Language)结构化查询语言。SQL 语言的主要功能就是同各种数据库建立联系,进行沟通。PHP开发平台。
1.4参考资料
(1) 钱乐秋等,《软件工程》,清华大学出版社;
(2) 张害藩,《软件工程导论》(第四版),清华大学出版社;
(3) 王珊等,《数据库原理及设计》,清华大学出版社;
(4) 赵池龙等,《软件工程实践教程》,电子工业出版社。
2系统范围描述
2.1系统目标
实体小卖部,是传统手工作业方式,在库存,商品信息管理,销售记录管理等方面存在诸多不利于管理的地方, 不能有效地集中信息,失去了潜在的商机。
开发小卖部信息管理系统以促进管理体制和管理手段改进,改善决策发放和决策依据的管理信息系统是很有必要的。这对于在信息服务中心创造价值,促进资源共享和信息集成,减员增效,提供管理水平都有很大的帮助。
2.2软硬件配置
运行环境:Windows
数据库:MYSQL
硬件条件:服务器sun工作站,终端为pc机
2.3系统功能
1、小卖部管理员的功能:
(1) 订单信息管理
(2) 进货信息管理
(3) 库存信息管理
(4) 顾客信息管理
(5) 收支结算
2、顾客的功能:
(1) 商品查询
(2) 历史订单查询
(3) 退货申请
2.4限制与约束
a.系统的运行寿命的最小值:2年
b.进行系统方案选择比较的时间:1周
c.经费来源:**小卖部
d.运行环境:Windows
e.数据库:MYSQL
f.硬件条件:服务器sun工作站,终端为pc机
g.系统投入使用的最晚时间:2个月
3系统设计描述
3.1数据结构
综合可行性研究和需求分析,得出小卖部信息管理系统的实体类、边界类和控制类。
(1)小卖部信息管理系统的实体类有小卖部管理员、顾客、商品、进货记录、购物车记录、库存记录、订单记录,下图为小卖部信息管理系统实体类图:
图 1 小卖部信息管理系统实体类图
(2)小卖部信息管理系统边界类分为前台边界类和后台边界类。前台边界类包括:顾客登录界面类、顾客注册界面类、商品浏览界面类、商品详情查看界面类、购物车界面类和我的订单界面类;后台包括管理员登陆界面类、进货管理界面类、订单管理界面类、库存管理界面类、顾客信息管理界面类。
图 2 小卖部信息管理系统前台边界类图
图 3 小卖部信息管理系统后台边界类图
(3)小卖部信息管理系统控制类有按钮类、菜单类和链接类。
图 4 小卖部信息管理系统控制类图
3.2过程描述
小卖部信息管理系统分为管理员模块和顾客模块,有订单管理,进货管理,库存管理,购物车管理、查询商品等用例,为更形象的表现各用例的实现过程,建立以下时序图:
(1)顾客登录后可以进行查询商品操作,操作时序图如下:
图 5查询商品时序图
(2)顾客登录后可以将选中的商品加入购物车,操作时序图如下:
图 6加入购物车时序图
(3)顾客登录后可以进入购物车界面提交购物车记录,操作时序图如下:
图 7提交购物车时序图
3.3软件体系结构
(1)组件图
根据类图创建的小卖部信息管理系统组件图包括:进货管理、库存管理、订单管理、购物车管理、顾客信息管理,其组件图如下:
图8 小卖部信息管理系统组件图
(2)配置图
小卖部信息管理系统处理器及其设备之间的连接,以及处理器到处理器的布置,如下图:
图 9 小卖部信息管理系统配置图
3.4输出报表描述
小卖部信息管理系统中输出的报表有订单表、历史订单表、库存表、进货表。
(1)顾客可以查看自己的待处理订单,报表输出如下:
图 18 待处理订单报表图
(2)顾客可以查看自己的历史订单,报表输出如下:
图 19 历史订单报表图
(3)管理员可以查看库存明细,报表输出如下:
图 20 库存报表图
(4)管理员可以查看进货记录明细,报表输出如下:
图 21 进货记录报表图
3.5图形用户接口界面
小卖部信息管理系统分为管理员模块和顾客模块,各个模块图形用户接口界面如下:
(1)小卖部信息管理系统面向的用户有管理员和顾客,下面为登录界面,用户输入自己的用户名和密码后进入系统。
图 21 管理员登录界面图
图 22 顾客登录界面图
(2)顾客登录后可以进入首页浏览各类商品:
图 23 商品浏览界面图
(3)顾客可以管理购物车、提交订单,界面如下图:
图 24 购物车管理界面图
(4)管理员登录后可以进行进货信息管理,界面如下图:
图 25 进货信息管理界面图
(5)管理员可以进行库存管理,界面如下图:
图 26 库存信息管理界面图
(6)新用户注册界面如下图:
图 27 新顾客注册界面图
4各模块描述
4.1顾客类详细设计
4.1.1属性设计
顾客类包含学生的各种信息,如姓名、电话号、宿舍号等,详细的格式设计见下表:
表 1 顾客类属性设计表
名称 |
说明 |
可见性 |
长度 |
类型 |
描述 |
真实姓名 |
顾客姓名 |
私有 |
10 |
nchar |
顾客信息 |
电话号 |
顾客电话 |
私有 |
11 |
numeric |
顾客信息 |
宿舍号 |
顾客宿舍号 |
私有 |
10 |
nchar |
顾客信息 |
4.1.2方法设计
顾客类的方法有顾客登录,商品查询,历史订单查询,退货申请,详细的格式设计见下表:
表2顾客类方法设计表
名称 |
描述 |
参数个数 |
参数名称 |
返回值类型 |
参数类型 |
性质 |
登录 |
顾客登录 |
2 |
登录名、密码 |
VOID |
nchar、int |
public |
商品查询 |
商品查询 |
1 |
商品ID |
VOID |
INT |
public |
历史订单查询 |
历史订单查询 |
1 |
订单ID |
VOID |
INT |
public |
退货申请 |
退货申请 |
1 |
订单ID |
VOID |
INT |
public |
4.2管理员类详细设计
4.2.1属性设计
管理员类包含管理员的各种信息,如管理员ID、管理员密码等:
表 3 管理员类属性设计表
名称 |
说明 |
可见性 |
长度 |
类型 |
描述 |
管理员ID |
管理员ID |
私有 |
10 |
nchar |
管理员的一个唯一标志 |
密码 |
管理员密码 |
私有 |
10 |
nchar |
用于管理员登录 |
4.2.2方法设计
管理员类的方法有管理员登录,订单信息管理、进货信息管理、库存信息管理、顾客信息管理、收支结算等,详细的格式设计见下表:
表 4 管理员类方法设计表
名称 |
描述 |
参数个数 |
参数名称 |
返回值类型 |
参数类型 |
性质 |
登录 |
管理员登录 |
2 |
管理员ID、登录密码 |
void |
INT、NCHAR |
PUBLIC |
订单信息管理 |
管理员对订单管理 |
1 |
订单ID |
void |
INT |
PUBLIC |
进货信息管理 |
管理员对进货管理 |
1 |
进货记录ID |
void |
INT |
PUBLIC |
库存信息管理 |
管理员对库存管理 |
1 |
库存记录ID |
VOID |
INT |
PUBLIC |
顾客信息管理 |
对顾客信息管理 |
1 |
顾客信息ID |
VOID |
INT |
PUBLIC |
4.3订单记录类详细设计
4.3.1属性设计
订单记录类包含了订单记录的各种信息,如订单ID,顾客ID、商品名、商品数量、商品总价、交易日期等,详细的格式设计见下表:
表 5 订单记录类属性设计表
名称 |
说明 |
可见性 |
长度 |
类型 |
描述 |
订单ID |
订单的号码 |
私有 |
200 |
nchar |
订单信息 |
顾客ID |
顾客的号码 |
私有 |
100 |
nchar |
顾客信息 |
商品名 |
商品的名称 |
私有 |
10 |
nchar |
商品信息 |
商品数量 |
商品的数量 |
私有 |
10 |
int |
订单信息 |
商品总价 |
商品的总价 |
私有 |
10 |
float |
订单信息 |
交易日期 |
订单的交易日期 |
私有 |
100 |
nchar |
订单信息 |
4.3.2方法设计
订单记录类的方法有生成订单,查询订单、订单退货、处理订单等,详细的格式设计见下表:
表 6 订单记录类方法设计表
名称 |
描述 |
参数个数 |
参数名称 |
返回值类型 |
参数类型 |
性质 |
生成订单 |
顾客生成订单 |
1 |
订单ID |
VOID |
NCHAR |
PUBLIC |
查询订单 |
顾客进行订单查询 |
1 |
订单ID |
VOID |
NCHAR |
PUBLIC |
订单退货 |
顾客对订单退货 |
1 |
订单ID |
VOID |
NCHAR |
PUBLIC |
处理订单 |
顾客、管理员对订单进行处理 |
1 |
订单ID |
VOID |
NCHAR |
PUBLIC |
4.4进货记录类详细设计
4.4.1属性设计
进货记录类包含了进货记录的各种信息,如进货记录ID,商品名、商品编号、进货数量、进货价格、进货商姓名、进货日期等,详细的格式设计见下表:
表 7 进货记录类属性设计表
名称 |
说明 |
可见性 |
长度 |
类型 |
描述 |
进货记录ID |
进货记录的ID |
私有 |
10 |
nchar |
进货记录信息 |
商品名 |
商品的名称 |
私有 |
10 |
nchar |
进货记录中商品的信息 |
商品编号 |
商品的编号 |
私有 |
100 |
nchar |
进货记录中商品的编号 |
进货数量 |
进货的数量 |
私有 |
10 |
int |
进货记录中每种货物的数量 |
进货价格 |
进货的单价 |
私有 |
10 |
float |
进货记录中每种货物的单价 |
进货商姓名 |
供货商的名称 |
私有 |
10 |
nchar |
供货商的名称 |
进货日期 |
进货的日期 |
私有 |
100 |
nchar |
进货的日期 |
4.4.2方法设计
进货记录类的方法有生成记录,查询记录、删除记录、修改记录等,详细的格式设计见下表:
表 8 进货记录类方法设计表
名称 |
描述 |
参数个数 |
参数名称 |
返回值类型 |
参数类型 |
性质 |
生成记录 |
进货后生成记录 |
1 |
进货记录ID |
VOID |
NCHAR |
PUBLIC |
查询记录 |
查询进货记录 |
1 |
进货记录ID |
VOID |
NCHAR |
PUBLIC |
删除记录 |
删除进货记录 |
1 |
进货记录ID |
VOID |
NCHAR |
PUBLIC |
修改记录 |
修改进货记录 |
1 |
进货记录ID |
VOID |
NCHAR |
PUBLIC |
4.5库存记录类详细设计
4.5.1属性设计
库存记录类包含了库存记录的各种信息,如库存记录ID,商品名、商品编号、库存数量、进货价格、销售价格、警报数量等,详细的格式设计见下表:
表 9 库存记录类属性设计表
名称 |
说明 |
可见性 |
长度 |
类型 |
描述 |
库存记录ID |
库存记录的ID |
私有 |
10 |
nchar |
库存的信息 |
商品名 |
商品的名称 |
私有 |
100 |
nchar |
商品的信息 |
商品编号 |
商品的编号 |
私有 |
100 |
nchar |
商品的信息 |
库存数量 |
现有的库存数量 |
私有 |
100 |
int |
库存的信息 |
进货价格 |
货物的进货价格 |
私有 |
10 |
nchar |
商品的信息 |
销售价格 |
货物的销售价格 |
私有 |
10 |
nchar |
商品的信息 |
警报数量 |
库存的警报数量 |
私有 |
10 |
int |
库存的信息 |
4.5.2方法设计
库存记录类的方法有库存预警,销量查询、新建库存、删除库存、查询库存等,详细的格式设计见下表:
表 10 库存记录类方法设计表
名称 |
描述 |
参数个数 |
参数名称 |
返回值类型 |
参数类型 |
性质 |
库存预警 |
通过警报数量进行库存预警 |
1 |
警报数量 |
VOID |
INT |
PUBLIC |
销量查询 |
对销量的查询 |
1 |
库存记录ID |
VOID |
INT |
PUBLIC |
新建库存 |
新建库存记录 |
1 |
库存记录ID |
VOID |
INT |
PUBLIC |
删除库存 |
删除库存记录 |
1 |
库存记录ID |
VOID |
INT |
PUBLIC |
查询库存 |
查询库存记录 |
1 |
库存记录ID |
VOID |
INT |
PUBLIC |
4.6购物车记录类详细设计
4.6.1属性设计
购物车记录类包含了购物车记录的各种信息,如购物ID,顾客ID、商品名、商品编号、商品数量、商品总价、交易日期等,详细的格式设计见下表:
表 11 购物车记录类属性设计表
名称 |
说明 |
可见性 |
长度 |
类型 |
描述 |
订单ID |
订单的号码 |
私有 |
200 |
nchar |
订单信息 |
顾客ID |
顾客的号码 |
私有 |
100 |
nchar |
顾客信息 |
商品名 |
商品的名称 |
私有 |
10 |
nchar |
商品信息 |
商品编号 |
商品的号码 |
私有 |
100 |
nchar |
商品的信息 |
商品数量 |
商品的数量 |
私有 |
10 |
int |
订单信息 |
商品总价 |
商品的总价 |
私有 |
10 |
float |
订单信息 |
交易日期 |
订单的交易日期 |
私有 |
100 |
nchar |
订单信息 |
4.6.2方法设计
购物车记录类的方法有删除购物车,提交订单、添加购物车等,详细的格式设计见下表:
表 12 订单记录类方法设计表
名称 |
描述 |
参数个数 |
参数名称 |
返回值类型 |
参数类型 |
性质 |
删除购物车 |
顾客删除购物车 |
1 |
购物ID |
VOID |
NCHAR |
PUBLIC |
提交订单 |
顾客进行订单提交 |
1 |
订单ID |
VOID |
NCHAR |
PUBLIC |
添加购物车 |
顾客添加购物车 |
1 |
购物ID |
VOID |
NCHAR |
PUBLIC |
5数据库设计
5.1概念设计
小卖部信息管理系统中涉及的实体类有:小卖部管理员、顾客、商品、进货记录、购物车记录、库存记录、订单记录,详细的类的属性和方法见下图:
(1)小卖部管理员这个类的属性有管理员ID和密码,类的方法有登录、订单信息管理、进货信息管理、库存信息管理、顾客信息管理和收支结算。
图 28 小卖部管理员类图
小卖部管理员类与其他类间关系:广义上小卖部管理员管理着其他所有类:顾客、商品、进货记录、购物车记录、库存记录、订单记录。具体关系如下表:
表 13 小卖部管理员类和其他类间关系表
|
顾客信息记录 |
库存记录 |
进货记录 |
订单记录 |
小卖部管理员 |
一对多的关系 |
一对多的关系 |
一对多的关系 |
一对多的关系 |
解释 |
一个管理员可以管理多个顾客信息记录,一条记录只能有一个由管理员负责。 |
一个管理员可以管理多个库存记录,一条记录只能有一个由管理员负责。 |
一个管理员可以管理多个进货记录,一条记录只能有一个由管理员负责。 |
一个管理员可以管理多个订单记录,一条记录只能有一个由管理员负责。 |
(2)教师类的属性有用户名、姓名、密码和工号。
图 29 顾客类图
教师类可以录入成绩和查询信息,所以与成绩表、教学质量评价表和课程表有对应关系。
表 14 教师类和其他类间关系表
|
管理员 |
教学质量评价表 |
课程表 |
成绩表 |
学生 |
教师 |
多对多的关系 |
一对一的关系 |
多对多的关系 |
多对多的关系 |
多对多的关系 |
解释 |
一个教师可以被多个管理员管理,一个管理员可以管理多个教师。 |
一个教师智能查看自己的教学质量评价表,一个教学质量评价表由本教师查看。 |
一个教师可以查看多个课程表,一个课程表可以由多个教师查看。 |
一个教师可以录入多个成绩表,一个成绩表可以由多个教师录入。 |
一个教师可以查看多个学生的信息,一个学生的信息可以由多个教师查看。 |
(3)学生类的属性有学号、密码、姓名和班级,方法有查询成绩、查询课表和进行教学质量评价。
图 30 订单记录类图
表 15 学生类和其他类间关系表
|
教师 |
管理员 |
教学质量评价表 |
课程表 |
成绩表 |
学生 |
多对多的关系 |
多对多的关系 |
一对一的关系 |
多对多的关系 |
一对一的关系 |
解释 |
一个学生的信息可以被多个教师查看,一个教师可以查看多个学生信息。 |
一个管理员可以管理多个学生,一个学生可以由多个管理员管理。 |
一个学生完成一个教学质量评价表,一个教学质量评价表由一个学生完成。 |
一个学生可以查看多个课程表,一个课程表可以由多个学生查看。 |
一个学生拥有一个成绩表,一个成绩表只属于这个学生。 |
(4)课程类属性有课程号和课程名称。
图 31 进货记录类图
表 16 课程表类和其他类间关系表
|
教师 |
管理员 |
教学质量评价表 |
学生 |
成绩表 |
课程表 |
多对多的关系 |
多对多的关系 |
一对多的关系 |
多对多的关系 |
一对一的关系 |
解释 |
一个教师可以查看多个课程表,一个课程表可以由多个教师查看。 |
一个管理员可以管理多个课程表,一个课程表可以由多个管理员管理。 |
多个学生学习同一张课程表,对同一门课程有多个评价,所以一个课程表对应多个教学质量评价。 |
一个学生可以查看多个课程表,一个课程表可以由多个学生查看。 |
一个课程表对应一个成绩表。 |
(5)教学质量评价类有评价等级、学号和课程号三个属性。
图 32 库存记录类图
表 17 成绩表类和其他类间关系表
|
教师 |
管理员 |
课程表 |
学生 |
成绩表 |
教学质量评价表 |
一对一的关系 |
多对多的关系 |
多对一的关系 |
多对多的关系 |
一对一的关系 |
解释 |
一个教师智能查看自己的教学质量评价表,一个教学质量评价表由本教师查看。 |
一个管理员可以查看多个教学质量评价表,一个教学质量评价表可以由多个管理员查看。 |
多个学生学习同一张课程表,对同一门课程有多个评价,所以多个教学质量评价对应一个课程表。 |
一个学生可以查看多个课程表,一个课程表可以由多个学生查看。 |
一个课程表对应一个成绩表。 |
(6)成绩类图有属性:记录号、课程号、学期号、学号和成绩。
图 33 购物车记录类图
表 18 成绩表类和其他类间关系表
|
教师 |
管理员 |
课程表 |
学生 |
教学质量评价表 |
成绩表 |
多对多的关系 |
多对多的关系 |
一对一的关系 |
一对一的关系 |
一对一的关系 |
解释 |
一个教师可以录入多个成绩表,一个成绩表可以由多个教师录入。 |
一个管理员可以管理多个成绩表,一个成绩表可以由多个管理员管理。 |
一个课程表对应一个成绩表。 |
一个学生拥有一个成绩表,一个成绩表只属于这个学生。 |
一个课程表对应一个成绩表。 |
5.2逻辑设计
本节描述数据库中关系表、主外键及各表的联系。对于小卖部信息管理系统,要实现的
功能有订单信息管理、进货信息管理、库存信息管理、顾客信息管理、商品查询、历史订单查询、退货申请;还有管理员可以对部分信息进行修改和删除操作。所以所涉及的表有7个分别为AsiInfo表、顾客信息表、库存表、购物车表、订单表、入库信息表、供货商信息表,以下分别对各个表进行详细解释。
(1)AsiInfo表保存小卖部管理员的信息,管理员的属性有姓名和密码。数据库中建立数据表如下:
图 34 AsiInfo表展示图
表间关系:
v admin表与feedback表有联系,且是1对多的关系,一个管理员可以进行多条留言。
v admin表与teach表有联系,为多对多的关系,一个管理员可以录入多门课程,一 门课程也可以由多个管理员来管理。
(2)顾客信息表反映的是顾客的信息,顾客的属性有顾客ID、密码、姓名、电话号码、顾客楼号、层号、宿舍号和屋号。数据库中建立数据表如下:
图 35 顾客信息表展示图
表间关系:
v course表与evaluate表是多对多的关系,表面上是学生对教师进行教学质量评价,实质是通过选择课程来通过对教学这门课程的教师进行评价。一门课程对应多个学生学习,因此有多个评价;一个学生学习多门课程,所以课程与评价是多对多的关系。
v course表与sreport表是1对多的关系,一门课程有多个成绩记录,即一门课程被多个学生学习,有多条成绩记录;一个记录只有一门课程成绩,所以课程与成绩记录是1对多的关系。
v course表与teach表是多对多的关系,一门课程可以由多个管理员来管理,一个管理员也可对多个课程进行管理。
(3)入库信息表是记录商品入库信息所需。管理员录入进货信息时,就会在入库信息表里插入一条记录,并且可以修改或删除入库信息。数据库中建立数据表如下:
图 36 入库信息表展示图
表间关系:
v evaluate表与student表是多对多的关系,一个评价对应多个学生,一个学生可进行多个评价。
(4)库存表是记录库存商品信息所需。管理员录入库存信息时,就会在库存表里插入一条记录,并且可以修改或删除入库信息;当处理一条订单时,库存表中的相应记录会扣除订单中对应的销售数目;当录入一条进货记录时,库存表中的相应记录会增加入库记录中对应的入库数目。数据库中建立数据表如下:
图 37 库存表展示图
表间关系:
v feedback表与admin表是1对多的关系,一个反馈对应一个管理员,一个管理员可进行多条反馈。
(5)购物车表是记录购物车信息所需。顾客每添加一次购物车,就会在购物车表里插入一条记录,在提交订单之前,可以删除购物车记录。数据库中建立数据表如下:
图 38 购物车表展示图
表间关系:
v sreport表与student表是1对多的关系,一条成绩记录对应一个学生,一个学生有多条成绩记录,因为学生学习多门课程。
v sreport表与term表是1对多的关系,一条成绩记录对应一个学期,一个学期有多条成绩记录,因为一个学期里有多门成绩。
(6)订单表是记录订单信息所需。顾客提交一次订单,就会在订单表里插入一条记录,
在管理员处理订单之前,顾客可以申请退货更新订单表有无退货字段状态;管理员可以处理订单,更新订单表处理状态字段。数据库中建立数据表如下:
图 39 订单表展示图
v student表和evaluate表是多对多的关系,一个学生可以进行多个教学质量评价,一个教学质量评价也由多个学生评价。
(7)供货商表是记录供货商信息所需。供货商表属性包括供货商姓名和供货商电话。数据库中建立数据表如下:
图 40 供货商表展示图
v student表和evaluate表是多对多的关系,一个学生可以进行多个教学质量评价,一个教学质量评价也由多个学生评价。
6.备注及附录
6.1系统维护:
系统维护就是为了保证系统中的各个要素随着环境的变化始终处于最新的、正确的工作状态。
系统维护的内容可以分为以下几类:
1) 系统应用程序维护;
2) 数据维护;
3) 代码维护;
4) 硬件设备维护。
6.2系统改进方向
由于是第一次组合完成开发系统,对业务知识不是非常熟悉,经验不足,本系统中存在着许多不足之处,如帮助功能还不完善等。希望在实际的应用中,根据需要再逐步增加一些新功能,以使系统更加完善。对系统的安全性、完整性控制也进一步加强,确保系统中数据的完整、正确。
6.3系统特点
1 、本系统为全中文界面,功能全,易操作,价格合理。可灵活设置模块中的字体显示属性。
2 、用户可自由地设置系统中的各类相关参数和各种项目代码。
3 、系统中具有强大的工作站权限、操作员权限、密码管理等功能模块,确保系统运行安全。
4 、强大的查询和报表功能。
5 、系统结构严谨、性能稳定、使用方便。
6 、速度快。
7 、投资少。
8 、学习容易。不具计算机经验的管理人员和业务操作员只要具有业务管理的基本知识即可在较短的时间内掌握;系统采用图形界面和向导式操作,本着“功能越复杂,操作越简单”的原则设计,易学易用。
9 、维护简单,系统运行后几乎不需要专业系统管理员维护,减少开支。