视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
软件项目详细设计文档
2025-09-28 08:26:35 责编:小OO
文档

研发生产中心文档编号版本A1密级商密A

项目名称Xx系统

项目来源
QR-RD-022 

XXX系统

详细设计说明书

(内部资料  请勿外传)

编    写:

日 期:

检    查:

日 期:

审    核:

日 期:

批    准:

日 期:

XX公司

版权所有  不得复制

文档变更记录

序号变更(+/-)说明

作者版本号日期批准
1
2
1. 引言

1.1 编写目的和范围

说明写这份详细设计说明书的目的。

本详细设计说明书编写的目的是说明程序模块的设计考虑,包括程序描述、输入/输出、算法和流程逻辑等,为软件编程和系统维护提供基础。本说明书的预期读者为系统设计人员、软件开发人员、软件测试人员和项目评审人员。

1.2 术语表

定义系统或产品中涉及的重要术语,为读者在阅读文档时提供必要的参考信息。

序号术语或缩略语说明性定义
1PMProject Manager,项目经理
2
1.3 参考资料

列出有关资料的名称、作者、文件编号或版本等。参考资料包括:

a.需求说明书、架构设计说明书等;

b.本项目的其他已发表的文件;

c.引用文件、资料、软件开发标准等。 

资料名称作者文件编号、版本资料存放地点
1.4 使用的文字处理和绘图工具

文字处理软件: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密码(必填)
STOPSPLASHint

开场动画标志位

SPLASHTIMElong

消息发送延迟时间

LOGINBUTTONint 

登录按钮是否能够点击标志位

3.2.1.4 输出数据

字段说明
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卡进行扫描获取RFID号。才实现此功能

3.2.2.4 输出数据

变量名属性说明
number

string 

员工的员工号

rfid

string员工的RFID号
flagint 

数据存储状态的标志位

3.2.2.5 业务算法和流程

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号
flagInt

数据存储标志位
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 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 输入数据

变量名属性说明
rfidgetUserstring 

员工的RFID (必填) 如:

rfidgetPoolstring池塘的RFID号(必填) 如:

Batch

String

批次二维码(必填) 

=18FC90BE5B8124AF983421D29BFC4352

getEvenTypeString操作类型(必填) ,包括:喂食、换水、测温、入池、投放

temp

String 温度(非必填)如:10℃

timeString 
在检测数据有效性时,需要检测rfidgetUser与rfidgetPool两个输入变量是否为空。

这些数据的获取离不开具有RFID扫描功能及二维码扫描的手持设备,对池塘的RFID卡进行扫描并获取RFID号并且对池塘上的产品批次二维码进行扫描,获取产品批次二维码。

3.2.4.4 输出数据

变量名属性说明
rfidgetUserstring 

员工的RFID 

rfidgetPoolstring池塘的RFID号
DataString

批次二维码,如:

getEvenTypeString操作类型
temp

String温度:10
flag

int数据存储标志位
3.2.4.5 业务算法和流程

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 输入数据

变量名属性说明
rfidgetstring 

员工的RFID (必填) 如:

QRCodeString

产品二维码(必填) 

=18FC90BE5B8124AF983421D29BFC4352

getProductType

String产品类型(必填) ,包括:冻海参、淡海参、盐海参、鲜活海参、盐渍海参 、及时海参

TimeString 操作时间。如

在检测数据有效性时,需要检测rfidgetUser与rfidgetPool两个输入变量是否为空。

这些数据的获取离不开具有RFID扫描功能及二维码扫描的手持设备,对池塘的RFID卡进行扫描并获取RFID号并且对池塘上的产品批次二维码进行扫描,获取产品批次二维码。

3.2.5.4 输出数据

变量名属性说明
rfidgetstring 

员工的RFID  如:

QRCodeString

产品二维码 =18FC90BE5B8124AF983421D29BFC4352

getProductType

String产品类型 ,包括:冻海参、淡海参、盐海参、鲜活海参、盐渍海参 、及时海参

TimeString 操作时间。如

flag

Int

数据存储状态标志位。如:1

3.2.5.5 业务算法和流程

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 输入数据

变量名属性说明
rfidStrstring 

员工的RFID (必填) 如:

QRCodeString

产品二维码(必填) 

=18FC90BE5B8124AF983421D29BFC4352

BarCode

String物流快单号
getCompanyString物流公司(必填) ,包括:顺丰、Emse

TimeString 操作时间。如

3.2.6.4 输出数据

变量名属性说明
rfidStrstring 

员工的RFID 。 如:

QRCodeString

产品二维。如:         

=18FC90BE5B8124AF983421D29BFC4352

BarCode

String物流快单号,如: 88

getCompanyString物流公司,包括:顺丰、EMS、申通快递、圆通快递、中通快递、韵达快递、百世汇通等。

TimeString 操作时间。如

Flag

Int 

数据存储标志位,如:1

3.2.6.5 业务算法和流程

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 输入数据

变量名属性说明
addressStrString 

服务器网络地址(必填)如:

3.2.8.4 输出数据

变量名属性说明
addressStrString 

服务器网络地址如:

3.2.8.5 业务算法和流程

设置流程图

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.使用统一的错误界面提示,该界面对应于页面。错误界面样式如下图所示:

错误提示界面下载本文

显示全文
专题