软件项目详细设计文档模板
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
scan=(Button)findViewById(R.id.scan_rfid);
MyListener listener =newMyListener(this);
saveMessage.setOnClickListener(listener);
scan.se源自文库OnClickListener(listener);// datareceive = getIntent().getExtras();
}
else{
Toast.makeText(getApplicationContext(),R.string.scan_rfid_fail, Toast.LENGTH_SHORT).show();
}
break;
caseR.id.save_message_employee://保存员工信息按钮到数据库,保存成功之后清空editText
3.2.2.7
packagecom.blueocean.BlueOceanSource.ui;
importandroid.app.Activity;
importandroid.content.Context;
importandroid.os.Bundle;
importandroid.text.TextUtils;
importcom.blueocean.BlueOceanSource.service.UploadService;
importcom.blueocean.BlueOceanSource.utility.RfidScan;//引入RFID扫描的开发包
/**
* Created by zhouxingguo on 2015/7/15.
}else{
Toast.makeText(getApplicationContext(), R.string.employee_rfid_number_not_null, Toast.LENGTH_LONG).show();
}
break;
}
}
}
RunnablenetworkTask=newRunnable() {
importcn.pda.hf.Util;
importcom.blueocean.BlueOceanSource.R;
importcom.blueocean.BlueOceanSource.entity.BlueOceanEmployee;
importcom.blueocean.BlueOceanSource.service.BlueOceanEmployeeService;
2.
本章说明本程序系统中使用的全局数据常量、变量和数据结构。
2.1
static String SERVER_ADDRESS服务器地址
boolean loginFlag登录状态
2.2
BlueUserInfo 用户账户结构体
2.3
包括数据结构名称,功能说明,具体数据结构说明(定义、注释、取值)等。
3.
3.1
// inputRfid.setText(rfidget);
// }
}
private classMyListenerimplementsView.OnClickListener {
privateContextcontext;
publicMyListener(Context context) {
this.context= context;
3.2.1.8
必须在有网的条件下能使用登录功能。
3.2.2
3.2.2.1
3.2.2.2
通过手持设备扫描员工的RFID号,并在员工工号的输入框手动输入员工工号,并将两条数据上传到服务器中的数据库。将员工工号与RFID号相互绑定。
3.2.2.3
变量名
属性
说明
number
string
员工的员工号(必填)
rfid
inputNumber= (EditText) findViewById(R.id.input_employee_number);
inputRfid= (TextView) findViewById(R.id.input_employee_rfid);
saveMessage= (Button) findViewById(R.id.save_message_employee);
本详细设计说明书编写的目的是说明程序模块的设计考虑,包括程序描述、输入/输出、算法和流程逻辑等,为软件编程和系统维护提供基础。本说明书的预期读者为系统设计人员、软件开发人员、软件测试人员和项目评审人员。
1.2
定义系统或产品中涉及的重要术语,为读者在阅读文档时提供必要的参考信息。
序号
术语或缩略语
说明性定义
privateStringnumber;//获取得到的卡号、编号
privateStringrfid;//获取得到的RFID
privateRfidScanrfidScan;
privateStringrfidget;
@Override
public voidonCreate(Bundle savedInstanceState) {
importandroid.util.Log;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.TextView;
importandroid.widget.Toast;
rfid=inputRfid.getText().toString().trim();
BlueOceanEmployeeService employeeService =newBlueOceanEmployeeService(context);
BlueOceanEmployee boe =newBlueOceanEmployee();
3.2.2.4
变量名
属性
说明
number
string
员工的员工号
rfid
string
员工的RFID号
flag
int
数据存储状态的标志位
3.2.2.5
3.2.2.6
给出本程序中的局部数据结构说明,包括数据结构名称,功能说明,具体数据结构说明(定义、注释设计、取值)等。相关数据库表,数据存储设计(具体说明需要以文件方式保存的数据文件名、数据存储格式、数据项及属性等。)
1
PM
Project Manager,项目经理
2
1.3
列出有关资料的名称、作者、文件编号或版本等。参考资料包括:
a.需求说明书、架构设计说明书等;
b.本项目的其他已发表的文件;
c.引用文件、资料、软件开发标准等。
资料名称
作者
文件编号、版本
资料存放地点
1.4
文字处理软件:wordoffice
绘图工具:Visio
intflag =0;//0表示保存到本地数据库, 1表示本地数据库数据待删除
boe.setFlag(flag);
boe.setNumber(number);
boe.setRfid(rfid);
employeeService.insert(boe);
inputNumber.setText("");
inputRfid.setText("");
用户权限,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名,用户名,密码)
}
@Override
public voidonClick(View view) {
switch(view.getId()) {
caseR.id.scan_rfid:
rfidScan=newRfidScan();
rfidget=rfidScan.scan();
if(rfidget!=null){
inputRfid.setText(rfidget);
研发生产中心
文档编号
版本
A1
密级
商密A
项目名称
Xx系统
项目来源
QR-RD-022(Ver1.2)
XXX系统
详细设计说明书
(内部资料请勿外传)
编写:
日期:
检查:
日期:
审核:
日期:
批准:
日期:
XX公司
版权所有不得复制
文档变更记录
序号
变更(+/-)说明
作者
版本号
日期
批准
1
2
1.
1.1
说明写这份详细设计说明书的目的。
}
};
}
3.2.2.8
大扫描RFID就成功时发出提示音:Util.initSoundPool(activity名称);
程序的主体:init();
开启数据上传线程:networkTask
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_employee);
Util.initSoundPool(this);
init();//获取RFID号和员工工号并保存到本地数据库
}
//初始化控件
private voidinit() {
密码(必填)
STOPSPLASH
int
开场动画标志位
SPLASHTIME
long
消息发送延迟时间
LOGINBUTTON
int
登录按钮是否能够点击标志位
3.2.1.4
字段
说明
code
结果,0表示失败,1表示成功,2表示该养殖场地不存在,3表示该Rfid已存在
userName
用户名
PassWord
密码
userRoleld
@Override
public voidrun() {
//TODO
// 在这里进行 http request.网络请求相关操作
UploadService uploadService =newUploadService();
uploadService.upload(getApplicationContext());
Toast.makeText(getApplicationContext(), R.string.bind_success, Toast.LENGTH_LONG).show();
//开辟一个新线程上传数据
newThread(networkTask).start();
Toast.makeText(getApplicationContext(), R.string.save_success_toast, Toast.LENGTH_LONG).show();
//要保证输入的信息不能全部为空
if(!TextUtils.isEmpty(inputNumber.getText()) && !TextUtils.isEmpty(inputRfid.getText())) {
number=inputNumber.getText().toString().trim();
*/
public classEmployeeActivityextendsActivity {
privateButtonscan;
privateButtonsaveMessage;//保存员工信息
privateEditTextinputNumber;//员工编号、卡号
privateTextViewinputRfid;//员工RFID信息
string
员工的RFID号(必填)如:E2005032530B0187144085E3
在检测数据的有效性是像是判断数据是否为空,当向服务器发送消息时服务器会对数据进行有效性检测,显示判断员工的员工号是否存在,员工的RFID号是否已被其他工作人员应将绑定。
这些数据的获取离不开具有RFID扫描功能的手持设备,对员工的RFID卡进行扫描获取RFID号。才实现此功能
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
// dataflag=datareceive.getInt("dataflag");
// //0代表从主界面跳转,1代表从扫描接口跳转
// if(dataflag==0){
// inputRfid.setText("请扫描员工卡号");
// }else if(dataflag==1){
// rfidget = datareceive.getString("rfid");//0代表从员工录入跳转,1代表从快递跳转
MyListener listener =newMyListener(this);
saveMessage.setOnClickListener(listener);
scan.se源自文库OnClickListener(listener);// datareceive = getIntent().getExtras();
}
else{
Toast.makeText(getApplicationContext(),R.string.scan_rfid_fail, Toast.LENGTH_SHORT).show();
}
break;
caseR.id.save_message_employee://保存员工信息按钮到数据库,保存成功之后清空editText
3.2.2.7
packagecom.blueocean.BlueOceanSource.ui;
importandroid.app.Activity;
importandroid.content.Context;
importandroid.os.Bundle;
importandroid.text.TextUtils;
importcom.blueocean.BlueOceanSource.service.UploadService;
importcom.blueocean.BlueOceanSource.utility.RfidScan;//引入RFID扫描的开发包
/**
* Created by zhouxingguo on 2015/7/15.
}else{
Toast.makeText(getApplicationContext(), R.string.employee_rfid_number_not_null, Toast.LENGTH_LONG).show();
}
break;
}
}
}
RunnablenetworkTask=newRunnable() {
importcn.pda.hf.Util;
importcom.blueocean.BlueOceanSource.R;
importcom.blueocean.BlueOceanSource.entity.BlueOceanEmployee;
importcom.blueocean.BlueOceanSource.service.BlueOceanEmployeeService;
2.
本章说明本程序系统中使用的全局数据常量、变量和数据结构。
2.1
static String SERVER_ADDRESS服务器地址
boolean loginFlag登录状态
2.2
BlueUserInfo 用户账户结构体
2.3
包括数据结构名称,功能说明,具体数据结构说明(定义、注释、取值)等。
3.
3.1
// inputRfid.setText(rfidget);
// }
}
private classMyListenerimplementsView.OnClickListener {
privateContextcontext;
publicMyListener(Context context) {
this.context= context;
3.2.1.8
必须在有网的条件下能使用登录功能。
3.2.2
3.2.2.1
3.2.2.2
通过手持设备扫描员工的RFID号,并在员工工号的输入框手动输入员工工号,并将两条数据上传到服务器中的数据库。将员工工号与RFID号相互绑定。
3.2.2.3
变量名
属性
说明
number
string
员工的员工号(必填)
rfid
inputNumber= (EditText) findViewById(R.id.input_employee_number);
inputRfid= (TextView) findViewById(R.id.input_employee_rfid);
saveMessage= (Button) findViewById(R.id.save_message_employee);
本详细设计说明书编写的目的是说明程序模块的设计考虑,包括程序描述、输入/输出、算法和流程逻辑等,为软件编程和系统维护提供基础。本说明书的预期读者为系统设计人员、软件开发人员、软件测试人员和项目评审人员。
1.2
定义系统或产品中涉及的重要术语,为读者在阅读文档时提供必要的参考信息。
序号
术语或缩略语
说明性定义
privateStringnumber;//获取得到的卡号、编号
privateStringrfid;//获取得到的RFID
privateRfidScanrfidScan;
privateStringrfidget;
@Override
public voidonCreate(Bundle savedInstanceState) {
importandroid.util.Log;
importandroid.view.View;
importandroid.widget.Button;
importandroid.widget.EditText;
importandroid.widget.TextView;
importandroid.widget.Toast;
rfid=inputRfid.getText().toString().trim();
BlueOceanEmployeeService employeeService =newBlueOceanEmployeeService(context);
BlueOceanEmployee boe =newBlueOceanEmployee();
3.2.2.4
变量名
属性
说明
number
string
员工的员工号
rfid
string
员工的RFID号
flag
int
数据存储状态的标志位
3.2.2.5
3.2.2.6
给出本程序中的局部数据结构说明,包括数据结构名称,功能说明,具体数据结构说明(定义、注释设计、取值)等。相关数据库表,数据存储设计(具体说明需要以文件方式保存的数据文件名、数据存储格式、数据项及属性等。)
1
PM
Project Manager,项目经理
2
1.3
列出有关资料的名称、作者、文件编号或版本等。参考资料包括:
a.需求说明书、架构设计说明书等;
b.本项目的其他已发表的文件;
c.引用文件、资料、软件开发标准等。
资料名称
作者
文件编号、版本
资料存放地点
1.4
文字处理软件:wordoffice
绘图工具:Visio
intflag =0;//0表示保存到本地数据库, 1表示本地数据库数据待删除
boe.setFlag(flag);
boe.setNumber(number);
boe.setRfid(rfid);
employeeService.insert(boe);
inputNumber.setText("");
inputRfid.setText("");
用户权限,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名,用户名,密码)
}
@Override
public voidonClick(View view) {
switch(view.getId()) {
caseR.id.scan_rfid:
rfidScan=newRfidScan();
rfidget=rfidScan.scan();
if(rfidget!=null){
inputRfid.setText(rfidget);
研发生产中心
文档编号
版本
A1
密级
商密A
项目名称
Xx系统
项目来源
QR-RD-022(Ver1.2)
XXX系统
详细设计说明书
(内部资料请勿外传)
编写:
日期:
检查:
日期:
审核:
日期:
批准:
日期:
XX公司
版权所有不得复制
文档变更记录
序号
变更(+/-)说明
作者
版本号
日期
批准
1
2
1.
1.1
说明写这份详细设计说明书的目的。
}
};
}
3.2.2.8
大扫描RFID就成功时发出提示音:Util.initSoundPool(activity名称);
程序的主体:init();
开启数据上传线程:networkTask
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_employee);
Util.initSoundPool(this);
init();//获取RFID号和员工工号并保存到本地数据库
}
//初始化控件
private voidinit() {
密码(必填)
STOPSPLASH
int
开场动画标志位
SPLASHTIME
long
消息发送延迟时间
LOGINBUTTON
int
登录按钮是否能够点击标志位
3.2.1.4
字段
说明
code
结果,0表示失败,1表示成功,2表示该养殖场地不存在,3表示该Rfid已存在
userName
用户名
PassWord
密码
userRoleld
@Override
public voidrun() {
//TODO
// 在这里进行 http request.网络请求相关操作
UploadService uploadService =newUploadService();
uploadService.upload(getApplicationContext());
Toast.makeText(getApplicationContext(), R.string.bind_success, Toast.LENGTH_LONG).show();
//开辟一个新线程上传数据
newThread(networkTask).start();
Toast.makeText(getApplicationContext(), R.string.save_success_toast, Toast.LENGTH_LONG).show();
//要保证输入的信息不能全部为空
if(!TextUtils.isEmpty(inputNumber.getText()) && !TextUtils.isEmpty(inputRfid.getText())) {
number=inputNumber.getText().toString().trim();
*/
public classEmployeeActivityextendsActivity {
privateButtonscan;
privateButtonsaveMessage;//保存员工信息
privateEditTextinputNumber;//员工编号、卡号
privateTextViewinputRfid;//员工RFID信息
string
员工的RFID号(必填)如:E2005032530B0187144085E3
在检测数据的有效性是像是判断数据是否为空,当向服务器发送消息时服务器会对数据进行有效性检测,显示判断员工的员工号是否存在,员工的RFID号是否已被其他工作人员应将绑定。
这些数据的获取离不开具有RFID扫描功能的手持设备,对员工的RFID卡进行扫描获取RFID号。才实现此功能
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
// dataflag=datareceive.getInt("dataflag");
// //0代表从主界面跳转,1代表从扫描接口跳转
// if(dataflag==0){
// inputRfid.setText("请扫描员工卡号");
// }else if(dataflag==1){
// rfidget = datareceive.getString("rfid");//0代表从员工录入跳转,1代表从快递跳转