
| 研发生产中心 | 文档编号 | 版本 | A1 | 密级 | 商密A | |
| 项目名称 | Xx系统 | |||||
| 项目来源 | ||||||
XXX系统
详细设计说明书
(内部资料 请勿外传)
| 编 写: | 日 期: | ||
| 检 查: | 日 期: | ||
| 审 核: | 日 期: | ||
| 批 准: | 日 期: |
版权所有 不得复制
文档变更记录
| 序号 | 变更(+/-)说明 | 作者 | 版本号 | 日期 | 批准 |
| 1 | |||||
| 2 | |||||
1.1 编写目的和范围
说明写这份详细设计说明书的目的。
本详细设计说明书编写的目的是说明程序模块的设计考虑,包括程序描述、输入/输出、算法和流程逻辑等,为软件编程和系统维护提供基础。本说明书的预期读者为系统设计人员、软件开发人员、软件测试人员和项目评审人员。
1.2 术语表
定义系统或产品中涉及的重要术语,为读者在阅读文档时提供必要的参考信息。
| 序号 | 术语或缩略语 | 说明性定义 |
| 1 | PM | Project Manager,项目经理 |
| 2 | ||
列出有关资料的名称、作者、文件编号或版本等。参考资料包括:
a.需求说明书、架构设计说明书等;
b.本项目的其他已发表的文件;
c.引用文件、资料、软件开发标准等。
| 资料名称 | 作者 | 文件编号、版本 | 资料存放地点 |
文字处理软件:word office
绘图工具: Visio
2. 全局数据结构说明
本章说明本程序系统中使用的全局数据常量、变量和数据结构。
2.1 常量
static String SERVER_ADDRESS 服务器地址
boolean loginFlag 登录状态
2.2 变量
BlueUserInfo?用户账户结构体
2.3 数据结构
包括数据结构名称,功能说明,具体数据结构说明(定义、注释、取值)等。
3. 模块设计
3.1 用例图
3.2 功能设计说明
3.2.1 登录模块
模块1主要分为以下几个子模块:子模块1、子模块2和子模块N。
3.2.1.1 设计图
3.2.1.2 功能描述
此模块的主要功能是登录验证功能,保证程序的安全性问题。用户需要验证用户和密码是否正确才能进行下一部操作。
3.2.1.3 输入数据
| 变量名 | 类型 | 说明 |
| userName | String | 用户名(必填) |
| password | String | 密码(必填) |
| STOPSPLASH | int | 开场动画标志位 |
| SPLASHTIME | long | 消息发送延迟时间 |
| LOGINBUTTON | int | 登录按钮是否能够点击标志位 |
| 字段 | 说明 |
| code | 结果,0表示失败,1表示成功,2表示该养殖场地不存在,3表示该Rfid已存在 |
| userName | 用户名 |
| PassWord | 密码 |
| userRoleld | 用户权限,1代表系统用户,2 代表人事部,3代表育苗场,4代表生产部,5代表加工厂,6 代表市场部,7代表捕捞管理员 |
code=1
3.2.1.5 流程图
3.2.1.6 源程序文件说明
3.2.1.7 函数说明
对密码进行MD5加密:md5(密码)
将用户的账号密码暂时保存等下次登录时可以不用再次输入:saveUserInfo(Activity名,用户名,密码)
3.2.1.8 条件
必须在有网的条件下能使用登录功能。
3.2.2 人员管理
3.2.2.1 设计图
3.2.2.2 功能描述
通过手持设备扫描员工的RFID号,并在员工工号的输入框手动输入员工工号,并将两条数据上传到服务器中的数据库。将员工工号与RFID号相互绑定。
3.2.2.3 输入数据
| 变量名 | 属性 | 说明 |
| number | string | 员工的员工号(必填) |
| rfid | string | 员工的RFID号(必填)如: |
这些数据的获取离不开具有RFID扫描功能的手持设备,对员工的RFID卡进行扫描获取RFID号。才实现此功能
3.2.2.4 输出数据
| 变量名 | 属性 | 说明 |
| number | string | 员工的员工号 |
| rfid | string | 员工的RFID号 |
| flag | int | 数据存储状态的标志位 |
3.2.2.6 数据设计
给出本程序中的局部数据结构说明,包括数据结构名称,功能说明,具体数据结构说明(定义、注释设计、取值)等。相关数据库表,数据存储设计(具体说明需要以文件方式保存的数据文件名、数据存储格式、数据项及属性等。)
3.2.2.7 源程序文件说明
package import import import import import import import import import import import import import import import import */
public class EmployeeActivity extends Activity {
private Button scan;
private Button saveMessage;etExtras();
how();
}
break;
case 保存员工信息按钮到数据库,保存成功之后清空editText
oString().trim();
rfid = ().toString().trim();
BlueOceanEmployeeService employeeService = new BlueOceanEmployeeService(context);
BlueOceanEmployee boe = new BlueOceanEmployee();
int flag = 0;how();
tart();
(getApplicationContext(), .show();
} else {
(getApplicationContext(), .show();
}
break;
}
}
}
Runnable networkTask = new Runnable() {
@Override
public void run() {
络请求相关操作
UploadService uploadService = new UploadService();
(getApplicationContext());
}
};
}
3.2.2.8 函数说明
大扫描RFID就成功时发出提示音:(activity名称);
程序的主体:init();
开启数据上传线程:networkTask
3.2.2.9 条件
要实现此功能必须要具备可以扫描RFID功能的手持设备,不然无法扫描员工的RFID号。
3.2.3 池塘管理
3.2.3.1 设计图
3.2.3.2 功能描述
此模块主要实现的功能是扫描池塘的RFID,并手动输入池塘编号,并将其保存到本地数据库。并等到有网的条件下,将此条信息上传到服务器端的数据库。实现池塘RFID号与池塘编号的绑定。
3.2.3.3 输入数据
| 变量名 | 属性 | 说明 |
| number | string | 池塘编号(必填)如:育苗池1 |
| rfid | string | 池塘的RFID号(必填) : |
这些数据的获取离不开具有RFID扫描功能的手持设备,对池塘的RFID卡进行扫描获取RFID号。才实现此功能
3.2.3.4 输出数据
| 变量名 | 属性 | 说明 |
| number | string | 池塘编号 |
| rfid | string | 池塘的RFID号 |
| flag | Int | 数据存储标志位 |
3.2.3.6 数据设计
给出本程序中的局部数据结构说明,包括数据结构名称,功能说明,具体数据结构说明(定义、注释设计、取值)等。相关数据库表,数据存储设计(具体说明需要以文件方式保存的数据文件名、数据存储格式、数据项及属性等。)
3.2.3.7 源程序文件说明
package import import import import import import import import import import import import import import import import /**
* Created by zhouxingguo on 2015/7/15.
*/
public class PondActivity extends Activity {
private Button scanPond;how();
}
break;
case 保存员工信息按钮到数据库,保存成功之后清空editText
oString().trim();
rfid = ().toString().trim();
BlueOceanPondService pondService = new BlueOceanPondService(context);
BlueOceanPond boe = new BlueOceanPond();
int flag = 0;how();
tart();
}
else{
(getApplicationContext(), .show();
}
break;
}
}
}
Runnable networkTask = new Runnable() {
@Override
public void run() {
络请求相关操作
UploadService uploadService = new UploadService();
;
}
};
}
3.2.3.8 函数说明
当扫描RFID就成功时发出提示音:(activity名称);
程序的主体:init();
开启数据上传线程:networkTask
3.2.3.9 条件
要实现此功能必须要具备可以扫描RFID功能的手持设备,不然无法扫描员工的RFID号。
3.2.4 育苗管理
3.2.4.1 设计图
3.2.4.2 功能描述
本功能主要是对员工对育苗池的操作进行记录,显示扫描员工RFID、池塘RFID。还要扫描海产品的批次二维码,当员工对池塘进行操作时,需要记录操作类型,并且记录池塘的温度。经这些信息记录到本地数据库。
3.2.4.3 输入数据
| 变量名 | 属性 | 说明 |
| rfidgetUser | string | 员工的RFID (必填) 如: |
| rfidgetPool | string | 池塘的RFID号(必填) 如: |
| Batch | String | 批次二维码(必填) =18FC90BE5B8124AF983421D29BFC4352 |
| getEvenType | String | 操作类型(必填) ,包括:喂食、换水、测温、入池、投放 |
| temp | String | 温度(非必填)如:10℃ |
| time | String |
这些数据的获取离不开具有RFID扫描功能及二维码扫描的手持设备,对池塘的RFID卡进行扫描并获取RFID号并且对池塘上的产品批次二维码进行扫描,获取产品批次二维码。
3.2.4.4 输出数据
| 变量名 | 属性 | 说明 |
| rfidgetUser | string | 员工的RFID |
| rfidgetPool | string | 池塘的RFID号 |
| Data | String | 批次二维码,如: |
| getEvenType | String | 操作类型 |
| temp | String | 温度:10 |
| flag | int | 数据存储标志位 |
3.2.4.6 数据设计
给出本程序中的局部数据结构说明,包括数据结构名称,功能说明,具体数据结构说明(定义、注释设计、取值)等。相关数据库表,数据存储设计(具体说明需要以文件方式保存的数据文件名、数据存储格式、数据项及属性等。)
3.2.4.7 源程序文件说明
package import import import import import import import import import import import import import import import import import import import import import import import import import import import import /**保苗阶段activity
* Created by zhouxingguo on 2015/7/15.
*/
public class YouthActivity extends Activity {
private Button scanUser;etString("data");
("acc_data",data);
(1, 0);
(data);
}
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
(savedInstanceState);
setContentView
(this);
init_spinner();
init();
/*
* 开启二维码扫描线程
* */
try {
scanThread = new ScanThread(mHandler);
} catch (Exception e) {
(getApplicationContext(), "serialport init fail", 0).show();
return;
}
();
receive = new FunkeyListener();
how();
}
break;
case
rfidScanPool=new RfidScan();
rfidgetPool=();
if(rfidgetPool!=null){
(rfidgetPool);
}
else{
(getApplicationContext(), .show();
}
break;
case
();
break;
case 保存员工信息按钮到数据库,保存成功之后清空editText
oString().trim();
rfidPool=().toString().trim();
int flag = 0;oString().trim();
(flag);
(rfidUser);
(rfidPool);
(time);
(type);
if(type==4){
("0");
}else{
(batch);
}
(temp);
(boe);
("");
("");
("");
("");
tart();
(getApplicationContext(), .show();
} else {
(getApplicationContext(), .show();
}
break;
}
}
}
Runnable networkTask = new Runnable() {
@Override
public void run() {
络请求相关操作
UploadService uploadService = new UploadService();
;
}
};
@Override
protected void onDestroy() {
if (scanThread != null) {
();
scanThread .close();
}
unregisterReceiver(receive);
();
}
}
3.2.4.8 函数说明
当扫描RFID就成功时发出提示音:(activity名称);
程序的主体:init();
开启数据上传线程:networkTask
3.2.4.9 条件
条件是,必须使用具有RFID和二维码扫描功能的手持设备才能完成此功能。
3.2.5 加工包装
3.2.5.1 设计图
3.2.5.2 功能描述
此模块的主要功能是扫描员工的RFID号,并显示到屏幕上去。工作人员选择产品类型,扫描产品二维码,一次可以扫描多个产品,并将数据保存到本地数据库。
3.2.5.3 输入数据
| 变量名 | 属性 | 说明 |
| rfidget | string | 员工的RFID (必填) 如: |
| QRCode | String | 产品二维码(必填) =18FC90BE5B8124AF983421D29BFC4352 |
| getProductType | String | 产品类型(必填) ,包括:冻海参、淡海参、盐海参、鲜活海参、盐渍海参 、及时海参 |
| Time | String | 操作时间。如 |
这些数据的获取离不开具有RFID扫描功能及二维码扫描的手持设备,对池塘的RFID卡进行扫描并获取RFID号并且对池塘上的产品批次二维码进行扫描,获取产品批次二维码。
3.2.5.4 输出数据
| 变量名 | 属性 | 说明 |
| rfidget | string | 员工的RFID 如: |
| QRCode | String | 产品二维码 =18FC90BE5B8124AF983421D29BFC4352 |
| getProductType | String | 产品类型 ,包括:冻海参、淡海参、盐海参、鲜活海参、盐渍海参 、及时海参 |
| Time | String | 操作时间。如 |
| flag | Int | 数据存储状态标志位。如:1 |
3.2.5.6 数据设计
给出本程序中的局部数据结构说明,包括数据结构名称,功能说明,具体数据结构说明(定义、注释设计、取值)等。相关数据库表,数据存储设计(具体说明需要以文件方式保存的数据文件名、数据存储格式、数据项及属性等。)
3.2.5.7 源程序文件说明
给出本程序的各源程序文件的说明,包括源程序文件名称及其所在目录,功能说明,包含的前导文件及函数名称等。
3.2.5.8 函数说明
当扫描RFID就成功时发出提示音:(activity名称);
程序的主体:init();
开启数据上传线程:networkTask
为下拉菜单添加选项:init_spinner()
将扫描多个二维码:sortAndadd(BlueOceanProduct类型的数组,String类型的二维码值),返回值为含有不同产品二维码值的List 3.2.5.9 条件 条件是,用户具有是由此功能的权限和使用具有RFID和二维码扫描功能的手持设备才能完成此功能。 3.2.6 物流管理 3.2.6.1 设计图 3.2.6.2 功能描述 本功能的主要功能是将一批货物的二维码与快递公司、快递单号绑定到一块,并记录当前操作的员工RFID。用户扫描产品二维码就可以知道产品的运输途径。 简要描述子模块1的业务功能。 3.2.6.3 输入数据 =18FC90BE5B8124AF983421D29BFC4352 =18FC90BE5B8124AF983421D29BFC4352 3.2.6.6 数据设计 给出本程序中的局部数据结构说明,包括数据结构名称,功能说明,具体数据结构说明(定义、注释设计、取值)等。相关数据库表,数据存储设计(具体说明需要以文件方式保存的数据文件名、数据存储格式、数据项及属性等。) 3.2.6.7 源程序文件说明 给出本程序的各源程序文件的说明,包括源程序文件名称及其所在目录,功能说明,包含的前导文件及函数名称等。 3.2.6.8 函数说明 当扫描RFID就成功时发出提示音:(activity名称); 程序的主体:init(); 开启数据上传线程:networkTask 为下拉菜单添加选项:init_spinner() 3.2.7 数据管理 模块1主要分为以下几个子模块:子模块1、子模块2和子模块N。 3.2.7.1 设计图 数据分类选择界面 本地数据显示界面 3.2.7.2 功能描述 将本地的数据库保存的信息以可视化的界面显示出来,便于用户查询。 3.2.7.3 输入数据 详细描述用户输入的数据(包括任何输入设备)以及这些数据的有效性检验规则。 详细描述从物理模型中的哪些表获取数据以及获取这些数据的条件。 3.2.7.4 输出数据 详细描述子功能1所产生的数据以及这些数据的表现形式。 3.2.7.4.1 业务算法和流程 从业务角度详细描述根据输入数据产生输出数据的业务算法和流程。 3.2.7.5 数据设计 给出本程序中的局部数据结构说明,包括数据结构名称,功能说明,具体数据结构说明(定义、注释设计、取值)等。相关数据库表,数据存储设计(具体说明需要以文件方式保存的数据文件名、数据存储格式、数据项及属性等。) 3.2.7.6 源程序文件说明 给出本程序的各源程序文件的说明,包括源程序文件名称及其所在目录,功能说明,包含的前导文件及函数名称等。 3.2.7.6.1 函数说明 删除数据deleteData() 重写onResume方法onResume(){ 3.2.8 设置 3.2.8.1 设计图 网络服务器设置页面 3.2.8.2 功能描述 显示当前网络服务器地址,并可以变更服务器地址。 3.2.8.3 输入数据 设置流程图 3.2.8.6 函数说明 创建指定文件名的文件:("文件名.txt"); 读取指定文件名的文件:("文件名.txt");返回网络地址。 4. 接口设计 4.1 内部接口 4.2 外部接口 4.2.1 接口说明 例如:xx子系统通过xx从xx子系统取得xx等,相关标准,调用示例,可根据需要增加章节描述接口。 4.2.2 调用方式 例如:内部接口调用: 例: /** *通过用户服务号码取得该客户认证密码等信息,如果该客户存在返回为0,其他情况参考错误编码 */ public RUserInfo getUserInfo (String userNo); 5. 数据库设计 详见[xxx数据库设计说明书] 如果数据库设计内容比较少,则直接在此处描述。 6. 系统安全保密设计 6.1 说明 例如:由于存在与外部系统的接口,所以需要考虑访问安全的问题. 6.2 设计 例如:分为数据传输部分,IP过滤部分,身份验证部分.[章节可补充] 6.2.1 数据传输部分 例如:在部分数据传递的时候,考虑以https协议,需要在部署的时候作相关处理. 6.2.2 IP过滤分部 例如:可在系统前端通过Filter实现,该Filter实现对该地址访问的IP过滤作用.可信任IP地址通过xml文件进行配置. 6.2.3 身份验证部分 例如:对信任的用户,颁发身份验证码,通过该标识进行身份识别. 7. 系统性能设计 8. 系统出错处理 例如:为了在系统出现异常情况下给用户以明确的提示,可采用两种方式予以提示: 1.使用Javascript的alert()函数直接提示,这主要在输入或修改的情况下使用; 2.使用统一的错误界面提示,该界面对应于页面。错误界面样式如下图所示: 错误提示界面
3.2.6.4 输出数据变量名 属性 说明 rfidStr string 员工的RFID (必填) 如: QRCode String 产品二维码(必填) BarCode String 物流快单号 getCompany String 物流公司(必填) ,包括:顺丰、Emse Time String 操作时间。如
3.2.6.5 业务算法和流程变量名 属性 说明 rfidStr string 员工的RFID 。 如: QRCode String 产品二维。如: BarCode String 物流快单号,如: 88 getCompany String 物流公司,包括:顺丰、EMS、申通快递、圆通快递、中通快递、韵达快递、百世汇通等。 Time String 操作时间。如 Flag Int 数据存储标志位,如:1
3.2.8.4 输出数据变量名 属性 说明 addressStr String 服务器网络地址(必填)如:
3.2.8.5 业务算法和流程变量名 属性 说明 addressStr String 服务器网络地址如:
