ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:31.46KB ,
资源ID:7470326      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7470326.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件项目详细设计模板.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件项目详细设计模板.docx

1、软件项目详细设计模板研发生产中心文档编号版本A1密级商密A项目名称Xx系统项目来源QR-RD-022(Ver1.2) XXX系统详细设计说明书(内部资料 请勿外传)编 写:日 期:检 查:日 期:审 核:日 期:批 准:日 期:XX公司版权所有 不得复制文档变更记录序号变更(+/-)说明作者版本号日期批准121. 引言 41.1 编写目的和范围 41.2 术语表 41.3 参考资料 41.4 使用的文字处理和绘图工具 42.1 常量 52.2 变量 52.3 数据结构 53. 模块设计 53.1 用例图 53.2 功能设计说明 53.2.1 模块1 53.2.2 模块2 64. 接口设计 74

2、.1 内部接口 74.2 外部接口 74.2.1 接口说明 74.2.2 调用方式 85. 数据库设计 86. 系统安全保密设计 86.1 说明 86.2 设计 86.2.1 数据传输部分 86.2.2 IP过滤分部 86.2.3 身份验证部分 87. 系统性能设计 98. 系统出错处理 91. 引言1.1 编写目的和范围说明写这份详细设计说明书的目的。本详细设计说明书编写的目的是说明程序模块的设计考虑,包括程序描述、输入/输出、算法和流程逻辑等,为软件编程和系统维护提供基础。本说明书的预期读者为系统设计人员、软件开发人员、软件测试人员和项目评审人员。1.2 术语表定义系统或产品中涉及的重要术

3、语,为读者在阅读文档时提供必要的参考信息。序号术语或缩略语说明性定义1PMProject Manager,项目经理21.3 参考资料列出有关资料的名称、作者、文件编号或版本等。参考资料包括:a需求说明书、架构设计说明书等;b本项目的其他已发表的文件;c引用文件、资料、软件开发标准等。 资料名称作者文件编号、版本资料存放地点1.4 使用的文字处理和绘图工具文字处理软件:word office绘图工具: Visio2. 全局数据结构说明本章说明本程序系统中使用的全局数据常量、变量和数据结构。2.1 常量static String SERVER_ADDRESS 服务器地址boolean loginF

4、lag 登录状态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 输入数据变量名类型说明userNameString用户名(必填)passwordString密码(必填)STOPSPLASHint开场动画标志位SPLAS

5、HTIMElong消息发送延迟时间LOGINBUTTONint 登录按钮是否能够点击标志位3.2.1.4 输出数据字段说明code结果,0表示失败,1表示成功,2表示该养殖场地不存在,3表示该Rfid已存在userName用户名PassWord密码userRoleld用户权限,1代表系统用户,2 代表人事部,3代表育苗场,4代表生产部,5代表加工厂,6 代表市场部,7代表捕捞管理员 表现形式为:code=13.2.1.5 流程图3.2.1.6 源程序文件说明3.2.1.7 函数说明对密码进行MD5加密:md5(密码)将用户的账号密码暂时保存等下次登录时可以不用再次输入:saveUserInfo

6、(Activity名,用户名,密码)3.2.1.8 限制条件必须在有网的条件下能使用登录功能。3.2.2 人员管理3.2.2.1 设计图3.2.2.2 功能描述通过手持设备扫描员工的RFID号,并在员工工号的输入框手动输入员工工号,并将两条数据上传到服务器中的数据库。将员工工号与RFID号相互绑定。3.2.2.3 输入数据变量名属性说明numberstring 员工的员工号(必填)rfidstring员工的RFID号(必填)如:E200在检测数据的有效性是像是判断数据是否为空,当向服务器发送消息时服务器会对数据进行有效性检测,显示判断员工的员工号是否存在,员工的RFID号是否已被其他工作人员应

7、将绑定。这些数据的获取离不开具有RFID扫描功能的手持设备,对员工的RFID卡进行扫描获取RFID号。才实现此功能3.2.2.4 输出数据变量名属性说明numberstring 员工的员工号rfidstring员工的RFID号flagint 数据存储状态的标志位3.2.2.5 业务算法和流程3.2.2.6 数据设计给出本程序中的局部数据结构说明,包括数据结构名称,功能说明,具体数据结构说明(定义、注释设计、取值)等。相关数据库表,数据存储设计(具体说明需要以文件方式保存的数据文件名、数据存储格式、数据项及属性等。)3.2.2.7 源程序文件说明package import import imp

8、ort animport import import import import import import import import import import import import /引入RFID扫描的开发包/* * Created by zhouxingguo on 2015/7/15. */public class EmployeeActivity extends Activity private Button scan; private Button saveMessage;/保存员工信息 private EditText inputNumber;/员工编号、卡号 priva

9、te TextView inputRfid;/员工RFID信息 private String number;/获取得到的卡号、编号 private String rfid;/获取得到的RFID private RfidScan rfidScan; private String rfidget; Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_employee); Util.initSoundP

10、ool(this); init();/获取RFID号和员工工号并保存到本地数据库 /初始化控件 private void init() inputNumber = (EditText) findViewById(R.id.input_employee_number); inputRfid = (TextView) findViewById(R.id.input_employee_rfid); saveMessage = (Button) findViewById(R.id.save_message_employee); scan=(Button)findViewById(R.id.scan_r

11、fid); MyListener listener = new MyListener(this); saveMessage.setOnClickListener(listener); scan.setOnClickListener(listener);/ datareceive = getIntent().getExtras();/ dataflag=datareceive.getInt(dataflag);/ /0代表从主界面跳转,1代表从扫描接口跳转/ if(dataflag=0)/ inputRfid.setText(请扫描员工卡号);/ else if(dataflag=1)/ rfi

12、dget = datareceive.getString(rfid);/0代表从员工录入跳转,1代表从快递跳转/ inputRfid.setText(rfidget);/ private class MyListener implements View.OnClickListener private Context context; public MyListener(Context context) this.context = context; Override public void onClick(View view) switch (view.getId() case R.id.sc

13、an_rfid: rfidScan=new RfidScan(); rfidget=rfidScan.scan(); if(rfidget!=null) inputRfid.setText(rfidget); else Toast.makeText(getApplicationContext(),R.string.scan_rfid_fail, Toast.LENGTH_SHORT).show(); break; case R.id.save_message_employee:/保存员工信息按钮到数据库,保存成功之后清空editText /要保证输入的信息不能全部为空 if (!TextUti

14、ls.isEmpty(inputNumber.getText() & !TextUtils.isEmpty(inputRfid.getText() number = inputNumber.getText().toString().trim(); rfid = inputRfid.getText().toString().trim(); BlueOceanEmployeeService employeeService = new BlueOceanEmployeeService(context); BlueOceanEmployee boe = new BlueOceanEmployee();

15、 int flag = 0;/0表示保存到本地数据库, 1表示本地数据库数据待删除 boe.setFlag(flag); boe.setNumber(number); boe.setRfid(rfid); employeeService.insert(boe); inputNumber.setText(); inputRfid.setText(); Toast.makeText(getApplicationContext(), R.string.bind_success, Toast.LENGTH_LONG).show(); /开辟一个新线程上传数据 new Thread(networkTas

16、k).start(); Toast.makeText(getApplicationContext(), R.string.save_success_toast, Toast.LENGTH_LONG).show(); else Toast.makeText(getApplicationContext(), R.string.employee_rfid_number_not_null, Toast.LENGTH_LONG).show(); break; Runnable networkTask = new Runnable() Override public void run() / TODO /

17、 在这里进行 http request.网络请求相关操作 UploadService uploadService = new UploadService(); uploadService.upload(getApplicationContext(); ;3.2.2.8 函数说明大扫描RFID就成功时发出提示音:Util.initSoundPool(activity名称);程序的主体:init();开启数据上传线程:networkTask 3.2.2.9 限制条件要实现此功能必须要具备可以扫描RFID功能的手持设备,不然无法扫描员工的RFID号。3.2.3 池塘管理3.2.3.1 设计图3.2.

18、3.2 功能描述此模块主要实现的功能是扫描池塘的RFID,并手动输入池塘编号,并将其保存到本地数据库。并等到有网的条件下,将此条信息上传到服务器端的数据库。实现池塘RFID号与池塘编号的绑定。3.2.3.3 输入数据变量名属性说明numberstring 池塘编号(必填)如:育苗池1rfidstring池塘的RFID号(必填) :在检测数据有效性时,需要检测数据是否为空。这些数据的获取离不开具有RFID扫描功能的手持设备,对池塘的RFID卡进行扫描获取RFID号。才实现此功能3.2.3.4 输出数据变量名属性说明numberstring 池塘编号rfidstring池塘的RFID号flagIn

19、t数据存储标志位3.2.3.5 业务算法和流程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

20、 on 2015/7/15. */public class PondActivity extends Activity private Button scanPond;/点击扫描池塘 private Button bindPond;/绑定池塘编号和RFID信息 private EditText pondNumber;/池塘编号、卡号 private TextView pondRfid;/池塘RFID信息 private String number;/获取得到的卡号、编号 private String rfid;/获取得到的RFID private RfidScan rfidScan; priv

21、ate String rfidget; Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_pond); Util.initSoundPool(this); init(); /初始化控件 private void init() pondNumber = (EditText) findViewById(R.id.input_pond_number); pondRfid = (TextView) fi

22、ndViewById(R.id.input_pond_rfid); scanPond=(Button)findViewById(R.id.scan_pond_rfid); bindPond = (Button) findViewById(R.id.bind_pond); MyListener listener = new MyListener(this); scanPond.setOnClickListener(listener); bindPond.setOnClickListener(listener); private class MyListener implements View.O

23、nClickListener private Context context; public MyListener(Context context) this.context = context; Override public void onClick(View view) Log.d(aa,进入点击); switch (view.getId() case R.id.scan_pond_rfid: rfidScan=new RfidScan(); rfidget=rfidScan.scan(); if(rfidget!=null) pondRfid.setText(rfidget); els

24、e Toast.makeText(getApplicationContext(),R.string.scan_rfid_fail, Toast.LENGTH_SHORT).show(); break; case R.id.bind_pond:/保存员工信息按钮到数据库,保存成功之后清空editText /要保证输入的信息不能全部为空 if (!TextUtils.isEmpty(pondNumber.getText() & !TextUtils.isEmpty(pondRfid.getText() number = pondNumber.getText().toString().trim();

25、 rfid = pondRfid.getText().toString().trim(); BlueOceanPondService pondService = new BlueOceanPondService(context); BlueOceanPond boe = new BlueOceanPond(); int flag = 0;/0表示保存到本地数据库, 1表示本地数据库数据待删除 boe.setFlag(flag); boe.setNumber(number); boe.setRfid(rfid); pondService.insert(boe); pondNumber.setTe

26、xt(); pondRfid.setText(); Toast.makeText(getApplicationContext(), R.string.bind_success, Toast.LENGTH_LONG).show(); /开辟一个新线程上传数据 new Thread(networkTask).start(); else Toast.makeText(getApplicationContext(), R.string.pond_rfid_number_not_null, Toast.LENGTH_LONG).show(); break; Runnable networkTask =

27、new Runnable() Override public void run() / TODO / 在这里进行 http request.网络请求相关操作 UploadService uploadService = new UploadService(); uploadService.upload(PondActivity.this); ;3.2.3.8 函数说明当扫描RFID就成功时发出提示音:Util.initSoundPool(activity名称);程序的主体:init();开启数据上传线程:networkTask 3.2.3.9 限制条件要实现此功能必须要具备可以扫描RFID功能的

28、手持设备,不然无法扫描员工的RFID号。3.2.4 育苗管理3.2.4.1 设计图3.2.4.2 功能描述本功能主要是对员工对育苗池的操作进行记录,显示扫描员工RFID、池塘RFID。还要扫描海产品的批次二维码,当员工对池塘进行操作时,需要记录操作类型,并且记录池塘的温度。经这些信息记录到本地数据库。3.2.4.3 输入数据变量名属性说明rfidgetUserstring 员工的RFID (必填) 如:rfidgetPoolstring池塘的RFID号(必填) 如:BatchString批次二维码(必填) com/show.html?id=18FC90BE5B8124AF983421D29BFC4352getEvenTypeString操作类型(必填) ,包括:喂食、换水、测温、入池、投放tempString 温度(非必填)如:10timeString 在检测数据有效性时,需要检测rfidgetUser与rfidgetPool两个输入变量是否为空。这些数据的获取离不开具有RFID扫描功能及二维码扫描的手持设备,对池塘的RFID卡进行扫描并获取RFID号并且对池塘上的产品批次二维码进行扫描,获取产品批次二维码。3.2.4.4 输出数据变量名属性说明rfidgetUserst

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1