最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

软件项目详细设计文档

来源:动视网 责编:小OO 时间:2025-09-28 08:26:35
文档

软件项目详细设计文档

研发生产中心文档编号版本A1密级商密A项目名称Xx系统项目来源QR-RD-022XXX系统详细设计说明书(内部资料请勿外传)编写:日期:检查:日期:审核:日期:批准:日期:XX公司版权所有不得复制文档变更记录序号变更(+/-)说明作者版本号日期批准121.引言1.1编写目的和范围说明写这份详细设计说明书的目的。本详细设计说明书编写的目的是说明程序模块的设计考虑,包括程序描述、输入/输出、算法和流程逻辑等,为软件编程和系统维护提供基础。本说明书的预期读者为系统设计人员、软件开发人员、软件测试人员
推荐度:
导读研发生产中心文档编号版本A1密级商密A项目名称Xx系统项目来源QR-RD-022XXX系统详细设计说明书(内部资料请勿外传)编写:日期:检查:日期:审核:日期:批准:日期:XX公司版权所有不得复制文档变更记录序号变更(+/-)说明作者版本号日期批准121.引言1.1编写目的和范围说明写这份详细设计说明书的目的。本详细设计说明书编写的目的是说明程序模块的设计考虑,包括程序描述、输入/输出、算法和流程逻辑等,为软件编程和系统维护提供基础。本说明书的预期读者为系统设计人员、软件开发人员、软件测试人员

研发生产中心文档编号版本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.使用统一的错误界面提示,该界面对应于页面。错误界面样式如下图所示:

错误提示界面

文档

软件项目详细设计文档

研发生产中心文档编号版本A1密级商密A项目名称Xx系统项目来源QR-RD-022XXX系统详细设计说明书(内部资料请勿外传)编写:日期:检查:日期:审核:日期:批准:日期:XX公司版权所有不得复制文档变更记录序号变更(+/-)说明作者版本号日期批准121.引言1.1编写目的和范围说明写这份详细设计说明书的目的。本详细设计说明书编写的目的是说明程序模块的设计考虑,包括程序描述、输入/输出、算法和流程逻辑等,为软件编程和系统维护提供基础。本说明书的预期读者为系统设计人员、软件开发人员、软件测试人员
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top