团队博客5
智慧商业信息管理平台
详细设计说明书
编 写: |
张欢龙 |
日 期: |
2016/09/06 |
检 查: |
杜永超 |
日 期: |
2016/09/06 |
审 核: |
张晨健 郭昊 |
日 期: |
2016/09/06 |
1. 引言
1.1 编 写目的和范围
本详细设计说明书编写的目的是说明程序模块的设计考虑,包括程序描述、输入/输出、算法和流程逻辑等,为软件编程和系统维护提供基础。本说明书的预期读者为系统设计人员、软件开发人员、软件测试人员和项目评审人员。
1.2 术语表
序号 |
术语或缩略语 |
说明性定义 |
1 |
PM |
Project Manager 项目经理 |
2 |
|
|
1.3 参考资料
资料名称 |
作者 |
文件编号、版本 |
资料存放地点 |
《在线人脸考勤系统》 |
王令 |
V1.0 |
|
Opencv示例程序 |
佚名 |
|
|
1.4 使用的文字处理和绘图工具
- 文字处理软件:Office Word
- 绘图工具:Rose
- 开发工具:VS2010、Eclipse
- 图片处理工具:PhotoShop
1.5 常量
文件夹功能介绍:
- controller文件夹:存放各种辅助类的方法函数:例如连接数据库的辅助类、人脸识别的辅助类、对应数据库表的辅助类
- ExcelQuicker文件夹:存放将数据导出到Excel表格的相关类。
- Model文件夹:存放EF框架下自动生成的数据库模型。
- Resource文件夹:存放人脸识别训练库和人脸识别相关的Opencv的xml文件。
- View文件夹:存放界面相关的页面文件、层叠样式表和JS文件
1.6 变量
本程序系统使用的全局变量及其初始值如下所示:
- String checkbypc = "网页考勤"
- int time = 1 定义考勤的时间间隔
- int btime = 8 定义开始考勤的时间(hour)
- int etime = 9 定义结束考勤的时间(hour)
- int bminute = 1 定义开始考勤的时间(minute)
- int eminute = 45 定义结束考勤的时间(minute)
- string bleave = "待审核" 定义请假审核状态
- string eleave = "同意" 同意申请
- string noleave = "驳回" 不同意申请
2. 模块设计
2.1 用例图
2.2 功能设计说明
2.2.1 模块1 脸识别模块
人脸识别模块可以分为以下三个子模块:人脸识别登录、人脸采集、VIP识别
2.2.1.1 子模块1 人脸识别登录
2.2.1.1.1 功能描述
用户登录时调用摄像头采集人脸图形,通过与数据库中的数据对比识别出相应的用户信息,登录到用户的个人信息管理界面。
2.2.1.1.2 输入数据
用户在摄像头前点击登录界面上的拍照按钮,完成人脸采集,跳转到相应的系统界面。如果当点击拍照按钮后界面下方出现“人脸采集失败”的提示,需调整姿势,保证采集到完整标准的人脸图像。
2.2.1.1.3 输出数据
登录完成后,用户ID、权限和用户名将会以session的形式存储起来,以方便后面调用。
2.2.1.2 子模块2 人脸采集
2.2.1.2.1 功能描述
用户登录后调用摄像头采集人脸图像,将采集到的人脸图像添加到人脸训练库,提高人脸识别的准确度。
2.2.1.2.2 输入数据
用户在摄像头前点击登录界面上的拍照按钮,完成人脸采集,跳转到相应的系统界面。如果当点击拍照按钮后界面下方出现“人脸采集失败”的提示,需调整姿势,保证采集到完整标准的人脸图像。
2.2.1.2.3 输出数据
人脸训练库中增加相应的人脸图片和用户的相关信息。
2.2.1.3 子模块3 VIP识别
2.2.1.3.1 功能描述
消费者访问商铺时,通过摄像头录像,识别出视频中的VIP用户,并通过大数据分析项促销员的手机端推送相关的来访提醒,实现更加精确化和根据针对性的个性化服务。
2.2.1.3.2 输入数据
商铺内的摄像头获取的视频流。
2.2.1.3.3 输出数据
数据库内增加相应的消费者的来访记录。
2.2.2 模块2 消费数据分析
消费数据分析模块可以分为三个子模块:个性化信息推送、消费分析、报表导出
2.2.2.1 子模块1 个性化信息推送
2.2.2.1.1 功能描述
服务器端向促销员的服务终端推送某位消费者此次可能的消费商品清单。
2.2.2.1.2 输入数据
服务员的点击事件
2.2.2.1.3 输出数据
消费者可能的购物清单
2.2.2.2 子模块2 消费分析
2.2.2.2.1 功能描述
通过分析以往的消费者的消费数据和消费习惯,得出可能的消费商品清单,
2.2.2.2.2 输入数据
用户ID
2.2.2.2.3 输出数据
消费者可能的购物清单
2.2.2.3 子模块3 报表导出
2.2.2.3.1 功能描述
消费者访问网页,将自己的消费情况分析导出到EXCEl表格。
2.2.2.3.2 输入数据
用户ID
2.2.2.3.3 输出数据
Excel表格
3. 接口设计
3.1 内部接口
服务器连接地址:
服务函数:
dongtai() 获取消费者的来访记录的接口
Allinfrom() 获取消费者可能的购物清单
3.2 外部接口
无
3.2.1 接口说明
本系统目前运行在局域网环境中,故应将锁链设备接入局域网,并配置好IP才能运行。
3.2.2 调用方式
例如:内部接口调用:
例:
/**
*通过WebService调用,店铺的消费者来访记录
*/
String resultq=null;
Message message=new Message();
Bundle data=new Bundle();
WebService userInfo=new WebService("dongtai");
resultq=userInfo.getsoapobject();
4. 数据库设计
详见[智慧商业数据库设计说明书],主要的数据库表结构入下图所示:
(1)用户信息 tb_personinfo
列名 |
数据类型 |
可否为空 |
说明 |
ID |
int |
NOT NULL |
用户ID(主键) |
name |
varchar(50) |
NULL |
用户姓名 |
password |
varchar(50) |
NULL |
用户登陆密码 |
sex |
varchar(10) |
NULL |
用户性别 |
identitycard |
varchar(20) |
NOT NULL |
用户身份证号即登陆用户名 |
birthday |
varchar(50) |
NULL |
用户生日 |
nativeplace |
varchar(50) |
NOT NULL |
用户籍贯 |
phone |
varchar(20) |
NOT NULL |
用户电话 |
|
varchar(50) |
NOT NULL |
用户电子邮箱 |
picture |
varchar(50) |
NOT NULL |
用户人脸图片 |
power |
varchar(5) |
NOT NULL |
用户类型 |
(2)客户入店记录 cheakinfo
列名 |
数据类型 |
可否为空 |
说明 |
ID |
int |
NOT NULL |
记录ID(主键) |
time |
datetime |
NULL |
时间 |
PersonID |
int |
NOT NULL |
客户Id |
(3)客户消费记录表 shopping
列名 |
数据类型 |
可否为空 |
说明 |
ID |
int |
NOT NULL |
记录ID |
PersonID |
Int |
NOT NULL |
客户ID |
type |
varchar(30) |
NULL |
客户购买商品类型 |
Name |
varchar(50) |
NULL |
客户购买商品名称 |
Date |
datatime |
Null |
消费时间 |
Money |
Varchar(10) |
NULL |
消费金额 |
5. 系统安全保密设计
5.1 说明
网站为防止非法用户窃取用户信息.,故将用户信息进行MD5加密处理,同时为了防止通过浏览器的后退操作,进行非法操作,采用session的方式验证用户合法性。
6. 系统性能设计
为提高系统系能,我们在界面设计时将图片裁剪加工,大大提高了网站的响应速度。同时我们优化后台的算法,避免了重复和不必要的方法调用。
7. 系统出错处理
为了增强界面的友好性,我们对发生异常的情况,增加了提示界面,示意图如下所示:
错误提示界面