精华内容
下载资源
问答
  • 关于时间的设计说明
    万次阅读
    2018-12-29 09:46:48

    简述

    软件项目的设计说明书是软件开发测试中重要的环节,一份好的设计说明不仅可以为系统设计、开发、测试提供指导,还可以收获研发领导、甲方、技术合作交流人员的信任。

    设计模板

    封面
    包含系统项目名、版本、时间等
    目录

    1. 引言
      1.1 背景
      项目来源、意义等
      1.2 文档阅读者
      领导–指导软件开发;项目负责人–指导、讨论;设计人员–为系统设计作参考;开发人员–为开发作参考;测试人员–为测试作参考;项目其它相关人员–了解软件功能。
      1.3 撰写日期与版本
      修改日期、版本号、变更内容简述
      1.4 文档约定
      简称、全称、英文名、含义
    2. 综合描述
      2.1 产品状况
      2.2 运行环境
      软、硬件环境等
      2.3 外部接口
      硬件–网口、串口等;软件–通信协议、数据库类型、函数库、操作系统等
    3. 软件设计说明
      3.1 总体框架(也可单独成一个大章节)
      各类图表,如系统图、架构图、UML类图、时序图、输入输出接口流图等
      3.2 子模块的设计
      3.2.1 模块功能
      3.2.2 模块结构
      结构组成图
      3.2.3 输入输出
      3.2.4 处理流程
      3.2.5 异常处理
      3.2.6 界面原型
      以上子模块选择性填充即可,不需要全部罗列
    4. 需求的可追踪性
    5. 注释/附件

    结尾

    这个设计模板个人还不是非常满意,欢迎有经验的项目管理人员留言指导。

    更多相关内容
  • 详细设计说明

    万次阅读 多人点赞 2019-06-22 23:08:06
    本详细设计说明书是针对电子科大校园地图(UESTC Campus Map)小程序的项目编写。目的是对该项目进行详细设计,在概要设计的基础上进一步明确系统结构,详细地介绍系统的各个模块,为进行后面的实现和测试做准备。...

    F.1 引言

    F.1.1  编写目的

          本详细设计说明书是针对电子科大校园地图(UESTC Campus Map)小程序的项目编写。目的是对该项目进行详细设计,在概要设计的基础上进一步明确系统结构,详细地介绍系统的各个模块,为进行后面的实现和测试做准备。本详细设计说明书的预期读者为本项目小组的成员以及对该小程序感兴趣,在以后想对系统进行拓展和维护的人员。

    F.1.2  背景

    说明:

    a、待开发软件系统的名称:电子科大校园地图小程序(UESTC Campus Map)

    b、本项目的任务提出者:金成哲,陆冠臣,罗子建

               本项目的开发者:金成哲,陆冠臣,罗子建

               本项目的用户:在校学生,教师,校园游客

               本项目的计算中心:微信小程序

    F.1.3  定义

    (1) MVC Model View Controller ,是模型 ( model )-视图 ( view )-控

    制器(Controller)的缩写。

    (2) CURD 代表创建( Create )、更新 Update )、读取 Retrieve

    和删除( Delete )操作。

      (3)    UCM 是 UESTC Campus Map 的简称。

     

     

    F.1.4  参考资料

    (1)《软件工程》(第三版)·钱乐秋等编著·清华大学出版社

    (2)《设计模式之禅》)《设计模式之禅》(第二版)·秦小波著·机械工业出版社(第二版)·秦小波著·机械工业出版社

    (3)《玩转DjangoDjango 2.0》·黄永祥著·清华大学出版社》·黄永祥著·清华大学出版社

    (4)《数据库要求说明书》

    (5)《数据库设计说明书》

    (6)微信小程序开发文档

    F.2 程序系统的结构

    整体架构:整体架构设计演示如下:

                                           

     

    名称

    标识符

    说明

    客户端

    Client

    客户系统提供本地服务

    服务端

    Server

    向客户端提供资源,保存客户端数据

    数据库系统

    Database

    存储客户端资源及相关信息

    本地操作系统

    Local operating system

    客户端提供交互界面的服务

    电子科技大学统一身份认证系统

    Authentication system

    电子科技大学学生认证系统,提供学生认证平台

    微信服务器

    Wechat  server

    提供UCM的应用生态服务

    微信小程序后台管理系统

    Miniprogram admin system

    小程序开发者管理小程序的版本更新及用户数据分析

     

    客户端:采用 MVC 软件架构设计,框图演示如下

     

                   

     

    模型(即数据表):

    名称

    标记符

    说明

    标记点表

    Location

    记录校园地图的地点描述以及具体地理位置

    功能表

    Function

    记录标记点的功能信息以及标签分类

    轮播图表

    RollingImage

    记录某标记点的轮播图片

    讨论表

    Discussion

    记录用户发布讨论的内容信息

    评论表

    Comment

    记录用户参与评论的信息

    用户表

    User

    记录用户登录账户以及学生认证等基本信息

     

    控制:

    名称

    标记符

    说明

    网络请求

    Internet request

    提供连接服务,响应界面

    存储处理

    Storage Processing

    根据存储请求,将相关数据存储到对应数据表

    数据清洗

    Data cleaning

    根据内置算法设计,对数据表的数据进行再处理

     

    视图:

    名称

    标记符

    说明

    地图界面

    Map

    根据不同校区的需要,提供地图的功能介绍

    讨论界面

    Discussion

    给用户提供论坛讨论的服务,针对不同标记点发布讨论内容

    功能界面

    Function

    给对应标记点提供不同的功能介绍

    认证界面

    Authentication

    为区分不同用户,利用电子科大校园信息门户的平台,本小程序设计了一个校园身份认证的系统

    历史关注界面

    Historical Concerning

    为方便用户查看以前参与的讨论与功能的建设,故提供历史关注的服务

    轮播图界面

    Rolling Image

    为丰富用户对该标记点的认知与理解,提供对该标记点的轮播图展示服务

    登录界面

    login

    用户首次登录小程序

    服务端:

                                         

     

    名称

    标记符

    说明

    日志系统

    Logging System

    自动记录流式数据,各进程,异常信息

    网络模块

    Network module

    提供连接服务

    控制模块

    Controling module

    根据服务请求,进行不同模块的控制

    数据库操作模块

    Database operation module

    写入,查询,修改或删除数据库的信息

    F.3 网络模块

    F.3.1  程序描述

    网络模块主要是客户端对服务器的网络请求功能的模块化实现,整个客户端采用规范化的统一格式对服务器进行网络请求。主要是为了更好的鲁棒性以及可读性。

    F.3.2  功能

    功能范例:

     

    功能

    输入

    输出

    格式/请求

    校园身份认证

    openid、学号、密码

    codemsg

    identity

    json/POST

    微信登录

    code

    encryptedData

    iv

    code、msg、uid

    uNickName、uavaUrl:

    json/POST

    发布功能

    uid

    functionCode

    locationID

    code

    msg

    uid

    identity

    datatype

    data:[

    {functionID

    functioncontent

    functiondescription

    locationID

    locationdescription

    locationLatitude  

    locationLongitude}]

    json/POST

    发布讨论

    uid

    discussionCode

    locationID

    code

    msg

    uid

    identity

    datatype

    data:[

    discussionID  

    presenttime

    locationID

    locationLatitude

    locationLongitude

    ]

    json/POST

    评论他人

    uid

    uidor

    discussionID

    commentCode

    locationID

    code

    msg

    datatype

    commentID

    json/POST

    获取发布历史

    identity

    uid

    dataType

    code

    msg

    uid

    identity:

    dataType

    data:[

    discussionID

    discussionContent:                

    locationID

    locationLatitude

    locationLongitude

    imgUrls:[

    "https:********",          

    ]    

    ]    

    json/POST

    获取讨论列表

    locationID

    uid

    code

    msg

    dataType

    data:[

    {

    discussionID

    discussionCode

    discussioncontent:

    uNickName

    uavaUrl

    imgUrls:[]

    presenttime

    locationID

    locationLatitude

    locationLongitude

    comment:[

    {commentID

    commentcontent

    uNickName

    uorNickName}]}]

    json/POST

    获取功能列表

    uid

    locationID

    dataType

    code

    msg

    data:[{

    functionID:

    functionCode

    functioncontent

    functiondesription:

    locationID

    locationLatitud

    locationLongitude:

    }]

    json/POST

    获取轮播图

    uid

    string

    dataType

    code

    msg

    imgUrls:[

    "https://123.png",

    "https://124.png",]

    json/POST

    获取所有标记点

    uid

    dataType:

    code

    msg

    locationID:[]

    json/POST

    删除

    dataType

    uid

    dataType

    uid

    code

    msg:

    json/POST

    F.3.3  性能

    运行

    模块组合

    响应时间(ms)

    校园身份认证

    网络模块、数据库模块

    1000

    微信登录

    登录模块、数据库模块、网络模块

    500

    发布功能

    功能模块、数据库模块、网络模块

    200

     

    发布讨论

    数据库模块、讨论模块

    1000

    评论他人

    数据库模块、讨论模块、评论模块、网络模块

    200

     

    获取发布历史

    数据库模块、讨论模块、评论模块、功能模块、网络模块

    1000

    获取讨论列表

    数据库模块、讨论模块、评论模块、网络模块

    1000

     

    获取功能列表

    功能模块、网络模块、数据库模块

    300

    获取轮播图

    轮播图模块、数据库模块、网络模块

    1000+

    获取所有标记点

    数据库模块、网络模块、标记点模块

    200

    删除

    所有模块

    100

     

    添加标记点

    数据库模块、网络模块、标记点模块

    200

     

    F.3.4  输入项

    输入输出等参考功能F.3.2;

    安全保密:对请求数据进行签名,防止非法请求和重放攻击,同时,对用户敏感数据进行加密;

    F.3.5  输出项

    输入输出等参考功能F.3.2;

    安全保密:对请求数据进行签名,防止非法请求和重放攻击,同时,对用户敏感数据进行加密;

    F.3.6  算法

    1. API接口防止重放攻击和第三方滥用攻击算法:

    算法示例:

    字段名

    类型

    含义

    必填

    备注

    a

    text

    请求的字段

    True

     

    b

    text

    请求字段

    True

     

    appKey

    text

    客户端应用标识

    True

    一段唯一标识客户端的字符串

    salt

    text

    随机数(建议使用UUID)

    True

     

    timestamp

    long

    Unix时间戳(精确到秒)

    True

     

    sign

    text

    sha256签名

    True

    计算方法:sha256(a+b+appKey+salt+timestamp+密钥)

    例如:

    a:"123",

    b:"地图",

    appKey:"57673e9f4b774dd9a739ee668e38c0a1",

    salt:"66785bb6-2df8-5e7e-a51b-cb7d257738e5",

    timestamp:"1560761282",

    密钥:"651d-4bbf-350f-b477-fe1b",

    客户端利用sha256计算签名:

    sha256(123地图57673e9f4b774dd9a739ee668e38c0a166785bb6-2df8-5e7e-a51b-cb7d257738e51560761282651d-4bbf-350f-b477-fe1b)

    结果:423cb7cf98d7e11c4efa3ce042e4e4546ae342a565a460fd8443f814258d63b3

     

    服务器流程说明:

    服务器接收到数据后,首先验证appKey是否合法,然后从数据库中获取该appKey对应的密钥,然后再获取当前服务器的时间戳,计算t = 服务器时间戳-timestamp,若t>60,则是一条重放消息,若小于60,则开始验证签名,即服务器利用相同的算法计算请求的sha256,对比是否相同,若相同,则做下一步操作,否则这是一条非法请求,直接响应错误信息。

    F.3.7  流程逻辑

                                  

    F.3.8  接口
    用图的形式说明本程序所隶属的上一层模块及隶属于本程序的下一模块、参数赋值和调用方式,说明与本程序具有直接关系之数据结构(数据库、数据文卷)。

    F.3.9  存储分配

        无特别要求

    软件

    存储分配

    备注

    客户端

    内存:500KB(<=2MB),本地存储:10MB

    微信限制

    服务器

    内存:50-100MB,

    硬盘:50GB

    适当情况下可以扩容,采用分布式集群的方式运行服务端

    数据库

    内存:1GB;

    硬盘:50GB

    适当情况下可扩容

     

    F.3.10  注释设计

    1.单行注释(single-line)://注释内容

      一次只能注释一行,一般是简单注释,用来简短描述某个变量或属性,程序块。

    2.块注释(block):/*注释内容*/

     为了进行多行简单注释,一般不使用。

    3.文档注释:/**注释内容 */

     /**

     * projectName: xxx

     * fileName: xxx

     * packageName: xxxx

     * date: 2019年6月18日下午12:28:39

     * copyright(c) 2019-2020 xxx

     */

    4.类注释

    类注释(Class)主要用来声明该类用来做什么,以及创建者、创建日期版本、包名等一些信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @className: user

     * @packageName: user

     * @description: 这是用户类

     * @data: 2019-06-28 12:20

     **/

    5.方法注释

    方法注释(Methods)主要用来声明该类的作用、入参、返回值、异常等信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @methodsName: addUser

     * @description: 添加用户

     * @param:  xxxx

     * @return: String

     * @throws: IOException

     **/

    F.3.11  限制条件

    必须在连接互联网的情况下才能使用本模块,否则将提示网络异常信息。

    F.3.12  测试计划

    需要结合其它模块才能测试,此处不做说明。

    F.3.13  尚未解决的问题

    接口字段的模糊混淆处理,所以还是存在非法用户进行恶意发送脏请求的可能。

     

    F.4 日志模块

    F.4.1  程序描述

    小程序日志系统

    F.4.2  功能

    提供日志记录功能,为系统错误和恢复提供保障。

    F.4.3  性能

    日志信息分类

    (1)等级由低到高:debug<info<warn<Error<Fatal;

    (2)区别:

    debug :级别最低,可以随意的使用于任何觉得有利于在调试时更详细的了解系统运行状态的东东;

    info : 重要,输出信息:用来反馈系统的当前状态给最终用户的;

    warn:可修复,系统可继续运行下去;

    Error: 可修复性,但无法确定系统会正常的工作下去;

    Fatal: 相当严重,可以肯定这种错误已经无法修复,并且如果系统继续运行下去的话后果严重。

    F.4.4  输入项

         日志输入针对不同的日志类别有所区别。

    F.3.5  输出项

    1. 日志文档
    2. 文档格式

    log.error(“[接口名或操作名] [Some Error Msg] happens. [params] [Probably Because]. [Probably need to do].”);

    log.error(String.format(“[接口名或操作名] [Some Error Msg] happens. [%s]. [Probably Because]. [Probably need to do].”, params));

    log.error(“[Some Error Msg] happens to 错误参数或内容 when [in some condition]. [Probably Because]. [Probably need to do].”);

    log.error(String.format(“[Some Error Msg] happens to %s when [in some condition]. [Probably Because]. [Probably need to do].”, parameters));

    [Probably Reason]. [Probably need to do]. 在某些情况下可以省略; 在一些重要接口和场景下最好能说明一下。

    每一条错误日志都是独立的,尽可能完整、具体、直接说明何种场景下发生了什么错误,由什么原因导致,要采用什么措施或步骤。

    F.3.6  算法

    日志分析方法:

    1.特征字符分析(Signature-based)

         在日志中查找已知的漏洞特征,去发现黑客攻击行为, 是最简单的方法。

    2.访问频率分析(Frequency analysis)

    在黑客攻击过程中,需要对系统进行各种特定的访问,这些访问与正常用户访问有很大差别, 每种攻击行为都有不同的特征。

    通过对大量用户访问数据的挖掘,可以发现这些异常访问行为。

     

    日志检测方法:

    1.漏洞扫描检测:

    黑客使用漏洞扫描器对 Web 应用进行扫描,可以用匹配 User-Agent 特征的方式进行检测。如果自定义扫描器的 User-Agent,这个方法的效果可能会不好。但可匹配扫描器扫描的行为,

    ·访问目标离散

    ·来源地址相对固定

    ·访问结果大多数失败

    根据这些特征对 Web 访问日志进行分析,即可提取出来可疑的扫描行为。

    2.暴力破解检测:

    暴力破解密码的特征是:

    ·相对固定的来源地址

    ·对登录URL短时间内高频率发起请求

    ·与漏洞扫描的区别主要是目标 URL 固定。

    3.webshell 检测

    如果黑客发现系统漏洞,并且利用漏洞获得上传权限,会向系统 上传 webshell。webshell 是一种后门程序,此程序由脚本语言编写, 可以在 Web 服务器上运行,攻击者可以通过网页执行系统命令,读写 系统文件。从访问行为的角度看,webshell 通常:

    ·只有攻击者访问

    ·来源地址相对固定

    ·访问时间相对集中

    ·无内嵌其他页面

    通过这些特征即可提取出可疑文件,再通过人工确认的方式,检测出 webshell。

    F.3.7  流程逻辑

    日志产出 ——>采集——>储存——>分析——>储存——>可视化

    F.3.8  接口

    结构设计:

                                          

     

     

    日志工作流:

                                           

    F.3.9  存储分配

    文件

    存储

    备注

    log

    2GB

    每天24:00进行当天日志归档

    F.3.10  注释设计

    1. 单行注释(single-line)://注释内容

      一次只能注释一行,一般是简单注释,用来简短描述某个变量或属性,程序块。

    2.块注释(block):/*注释内容*/

     为了进行多行简单注释,一般不使用。

    3.文档注释:/**注释内容 */

     /**

     * projectName: xxx

     * fileName: xxx

     * packageName: xxxx

     * date: 2019年6月18日下午12:28:39

     * copyright(c) 2019-2020 xxx

     */

    4.类注释

    类注释(Class)主要用来声明该类用来做什么,以及创建者、创建日期版本、包名等一些信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @className: user

     * @packageName: user

     * @description: 这是用户类

     * @data: 2019-06-28 12:20

     **/

    5.方法注释

    方法注释(Methods)主要用来声明该类的作用、入参、返回值、异常等信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @methodsName: addUser

     * @description: 添加用户

     * @param:  xxxx

     * @return: String

     * @throws: IOException

     **/

    F.3.11  限制条件

    无特别要求

    F.3.12  测试计划

       结合其它模块进行测试

    F.3.13  尚未解决的问题

       日志自动化分析工具的集成

     

    F.5    数据库操作模块

    F.5.1  程序描述

       数据库操作的封装模块

    F.5.2  功能

       对数据库的增删查改进行功能封装,提供统一的接口

    F.5.3  性能

    功能操作

    模块组合

    资源占用时间(ms)

    校园身份认证

    网络模块、数据库模块

     

    20

    微信登录

    登录模块、数据库模块、网络模块

     

    20

    发布功能

    功能模块、数据库模块、网络模块

     

    20

    发布讨论

    数据库模块、讨论模块

     

    100

    评论他人

    数据库模块、讨论模块、评论模块、网络模块

     

    20

    获取发布历史

    数据库模块、讨论模块、评论模块、功能模块、网络模块

     

    100

    获取讨论列表

    数据库模块、讨论模块、评论模块、网络模块

     

    100

    获取功能列表

    功能模块、网络模块、数据库模块

     

    50

    获取轮播图

    轮播图模块、数据库模块、网络模块

     

    20

    获取所有标记点

    数据库模块、网络模块、标记点模块

     

    20

    删除

    所有模块

     

    50

    添加标记点

    数据库模块、网络模块、标记点模块

     

    20

     

    F.5.4  输入项

    F.5.5  输出项

    操作反馈

    F.5.6  算法

    多表查询算法:

    一、交叉连接

      交叉连接即笛卡儿乘积,是指两个关系中所有元组的任意组合。一般情况下,交叉查询是没有实际意义的。

    例如:如果希望得到学生表和选课表两个关系模式的乘积,查询语句为:

          SELECT *

          FROM学生表CROSS JOIN选课表

    二、内连接

      内连接是一种最常用的连接类型。内连接查询实际上是一种任意条件的查询。使用内连接时,如果两个表的相关字段满足连接条件,就从这两个表中提取数据并组合成新的记录,也就是在内连接查询中,只有满足条件的元组才能出现在结果关系中。

    例如:要查询每个已经选课的学生的情况,查询语句为

    SELECT*

    FROM学生表INNER JOIN选课表ON学生表.学号=选课表.学号

    分类:

    1)等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。

    2)不等连接:在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。

    3)自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。

    三、自然连接

      如果在一个连接查询中,涉及到的两个表都是同一个表,这种查询就称为自连接查询。同一张表在FROM字句中多次出现,为了区别该表的每一次出现,需要为表定义一个别名。自连接是一种特殊的内连接,它是指相互连接的表在物理上为同一张表,但可以在逻辑上分为两张表。

     例如:要求检索出学号为20210的学生的同班同学的信息,查询语句为

     SELECT学生表.*

     FROM学生表JOIN学生表AS学生表1ON学生表.班级=学生表1.班级

     WHERE学生表1.学号='20210'

     

    四、外连接

      内连接的查询结果都是满足连接条件的元组。但有时我们也希望输出那些不满足连接条件的元组信息。比如,我们想知道每个学生的选课情况,包括已经选课的学生(这部分学生的学号在学生表中有,在选课表中也有,是满足连接条件的),也包括没有选课的学生(这部分学生的学号在学生表中有,但在选课表中没有,不满足连接条件),这时就需要使用外连接。外连接是只限制一张表中的数据必须满足连接条件,而另一张表中的数据可以不满足连接条件的连接方式。

    3种外连接:

    1)左外连接(LEFTOUTER JOIN)

      如果在连接查询中,连接管子左端的表中所有的元组都列出来,并且能在右端的表中找到匹配的元组,那么连接成功。如果在右端的表中,没能找到匹配的元组,那么对应的元组是空值(NULL)。这时,查询语句使用关键字LEFT OUTERJOIN,也就是说,左外连接的含义是限制连接关键字右端的表中的数据必须满足连接条件,而不关左端的表中的数据是否满足连接条件,均输出左端表中的内容。

      例如:要查询所有学生的选课情况,包括已经选课的和还没有选课的学生,查询语句为

      SELECT学生表.学号,姓名,班级,课程号,成绩

      FROM学生表LEFT OUTER JOIN选课表ON学生表.学号=选课表.学号

    左外连接查询中左端表中的所有元组的信息都得到了保留。

    2)右外连接(RIGHTOUTERJOIN)

      右外连接与左外连接类似,只是右端表中的所有元组都列出,限制左端表的数据必须满足连接条件,而不管右端表中的数据是否满足连接条件,均输出表中的内容。

      例如:同上例内容,查询语句为

      SELECT学生表.学号,姓名,班级,课程号,成绩

      FROM学生表RIGHTOUTERJOIN选课表ON学生表.学号=选课表.学号

    右外连接查询中右端表中的所有元组的信息都得到了保留。

    3)全外连接(FULL OUTER JOIN)

      全外连接查询的特点是左、右两端表中的元组都输出,如果没能找到匹配的元组,就使用NULL来代替。

      例如:同左外连接例子内容,查询语句为

      SELECT学生表.学号,姓名,班级,课程号,成绩

      FROM学生表FULL OUTER JOIN选课表ON学生表.学号=选课表.学号

    F.5.7  流程逻辑

    F.5.8  接口

    F.5.9  存储分配

    模块

    存储

    备注

    数据库

    内存:1GB

    硬盘:50GB

    必要可扩容

     

    F.5.10  注释设计

    1. 单行注释(single-line)://注释内容

      一次只能注释一行,一般是简单注释,用来简短描述某个变量或属性,程序块。

    2.块注释(block):/*注释内容*/

     为了进行多行简单注释,一般不使用。

    3.文档注释:/**注释内容 */

     /**

     * projectName: xxx

     * fileName: xxx

     * packageName: xxxx

     * date: 2019年6月18日下午12:28:39

     * copyright(c) 2019-2020 xxx

     */

    4.类注释

    类注释(Class)主要用来声明该类用来做什么,以及创建者、创建日期版本、包名等一些信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @className: user

     * @packageName: user

     * @description: 这是用户类

     * @data: 2019-06-28 12:20

     **/

    5.方法注释

    方法注释(Methods)主要用来声明该类的作用、入参、返回值、异常等信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @methodsName: addUser

     * @description: 添加用户

     * @param:  xxxx

     * @return: String

     * @throws: IOException

     **/

    F.5.11  限制条件

      数据库不在本地的需要访问网络

    F.5.12  测试计划

     

     

     

    测试名称

    值说明

    输入方式

    写入数据库

    1.每个数据表的测试数据应包括:输入完整,不完整,字段非法等情况

    2.多表插入,单表插入

    自动输入

    查询数据库

    单表查询,多表查询

    自动输入

    从数据库删除

    自动输入

    F.5.13  尚未解决的问题

      大数据量下的数据库的分库分表操作

     

    F.6 讨论模块

    F.6.1  程序描述

        对用户讨论功能的封装,提供统一接口。

    F.6.2  功能

        将讨论功能进行封装,负责与底层数据库交互,提供统一的添加,修改和删除接口。

    F.6.3  性能

    功能

    模块组合

    延时(ms)

    发布讨论

    数据库模块、讨论模块

    网络:1000

    数据库:100

    获取讨论列表

    数据库模块、讨论模块、评论模块、网络模块

    网络:1000

    数据库:100

     

    F.6.4  输入项

    操作

    输入

    输出

    格式

     

    发布讨论

    uid

    discussionCode

    locationID

    code

    msg

    uid

    identity

    datatype

    data:[

    discussionID  

    presenttime

    locationID

    locationLatitude

    locationLongitude

    ]

    json/POST

     

    获取讨论列表

    locationID

    uid

    code

    msg

    dataType

    data:[

    {

    discussionID

    discussionCode

    discussioncontent:

    uNickName

    uavaUrl

    imgUrls:[]

    presenttime

    locationID

    locationLatitude

    locationLongitude:

    comment:[

    {commentID

    commentcontent

    uNickName

    uorNickName}]}]

    json/POST

           

    F.6.5  输出项

    F.6.4  输入项

    F.6.6  算法

    F.6.7  流程逻辑

    (1)发布

     

    (2)获取

    F.6.8  接口

    F.6.9  存储分配

    软件

    存储分配

    备注

    客户端

    内存:500KB(<=2MB),本地存储:10MB

    微信限制

    数据库

    内存:1GB;

    硬盘:50GB

    适当情况下可扩容

     

    F.6.10  注释设计

    1. 单行注释(single-line)://注释内容

      一次只能注释一行,一般是简单注释,用来简短描述某个变量或属性,程序块。

    2.块注释(block):/*注释内容*/

     为了进行多行简单注释,一般不使用。

    3.文档注释:/**注释内容 */

     /**

     * projectName: xxx

     * fileName: xxx

     * packageName: xxxx

     * date: 2019年6月18日下午12:28:39

     * copyright(c) 2019-2020 xxx

     */

    4.类注释

    类注释(Class)主要用来声明该类用来做什么,以及创建者、创建日期版本、包名等一些信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @className: user

     * @packageName: user

     * @description: 这是用户类

     * @data: 2019-06-28 12:20

     **/

    5.方法注释

    方法注释(Methods)主要用来声明该类的作用、入参、返回值、异常等信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @methodsName: addUser

     * @description: 添加用户

     * @param:  xxxx

     * @return: String

     * @throws: IOException

     **/

    F.6.11  限制条件

    F.6.12  测试计划

    结合评论模块、网络模块、数据库模块进行测试

    F.6.13  尚未解决的问题

     

    F.7 评论模块

    F.7.1  程序描述

    评论模块主要是对校园论坛讨论的评论模块,通过发布评论,用户可以在线参与标记点的讨论建设。评论模块,提供一个评论收集与显示的界面。

    F.7.2  功能

    用户在评论界面,根据界面信息的渲染,对某些标记点的相关讨论评论进行展示。其逻辑为用户对某特定标记点发出评论列表的请求,向讨论表获取对应的评论列表,然后得到对应信息更新到界面中去。

    如果用户想要发布某些评论,发出发布评论请求,将评论更新到评论表中。

    功能

    输入

    输出

    格式/请求

    评论他人

    uid

    uidor

    discussionID

    commentCode

    locationID

    code

    msg

    datatype

    commentID

    json/POST

     

    F.7.3  性能

     

    运行

    精度

    响应时间(ms)

    评论某人

    数据库的写入与查询,精度较高

    200

     

     

     

    F.7.4  输入项

    输入输出等参考功能F.7.2;

    安全保密:对请求数据进行签名,防止非法请求和重放攻击,同时,对用户敏感数据进行加密;

    F.7.5  输出项

    输入输出等参考功能F.7.2;

    安全保密:对请求数据进行签名,防止非法请求和重放攻击,同时,对用户敏感数据进行加密;

    F.7.6  算法

    F.7.7  流程逻辑

    F.7.8  接口

    F.7.9  存储分配

    软件

    存储分配

    备注

    客户端

    内存:500KB(<=2MB),本地存储:10MB

    微信限制

    数据库

    内存:1GB;

    硬盘:50GB

    适当情况下可扩容

     

    F.7.10  注释设计

    1. 单行注释(single-line)://注释内容

      一次只能注释一行,一般是简单注释,用来简短描述某个变量或属性,程序块。

    2.块注释(block):/*注释内容*/

     为了进行多行简单注释,一般不使用。

    3.文档注释:/**注释内容 */

     /**

     * projectName: xxx

     * fileName: xxx

     * packageName: xxxx

     * date: 2019年6月18日下午12:28:39

     * copyright(c) 2019-2020 xxx

     */

    4.类注释

    类注释(Class)主要用来声明该类用来做什么,以及创建者、创建日期版本、包名等一些信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @className: user

     * @packageName: user

     * @description: 这是用户类

     * @data: 2019-06-28 12:20

     **/

    5.方法注释

    方法注释(Methods)主要用来声明该类的作用、入参、返回值、异常等信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @methodsName: addUser

     * @description: 添加用户

     * @param:  xxxx

     * @return: String

     * @throws: IOException

     **/

    F.7.11  限制条件

    评论界面类似微信朋友圈的风格,但是只有评论内容的显示,对评论内容的文字长度也有部分限制。

    F.7.12  测试计划

    结合讨论模块,网络模块一起测试,这里不做解释。

    F.7.13  尚未解决的问题

     

    F.8 功能模块

    F.8.1  程序描述

    功能模块主要是对校园固定标记点进行功能信息的采集与标签化的模块,通过发布功能系统,采集用户对标记点的功能模块化介绍,以及标签的集成处理,得到对应的功能介绍。

    F.8.2  功能

    用户在功能界面,根据界面信息的渲染,对某些标记点的功能信息进行展示。其逻辑为用户对某特定标记点发出功能列表的请求,向功能表获取对应的功能列表,然后得到对应信息更新到标记点表中。

    如果用户想要发布某些功能信息,发出发布功能请求,将功能描述更新到功能表中。

    功能

    输入

    输出

    格式/请求

    获取功能列表

    uid

    locationID

    dataType

    code

    msg

    data:[{

    functionID:

    functionCode

    functioncontent

    functiondesription:

    locationID

    locationLatitud

    locationLongitude

    }]

    json/POST

    发布功能

    uid

    functionCode

    locationID

    code

    msg

    uid

    identity

    datatype

    data:[

    {functionID

    functioncontent

    functiondescription

    locationID

    locationdescription

    locationLatitude  

    locationLongitude}]

    json/POST

    F.8.3  性能

    运行

    精度

    响应时间(ms)

    发布功能

    根据对应的数据项多少,其性能可能略有些区别

    200

     

    得到功能列表

    数据库的表项查询精度较高,查询速度响应较快

    20

    F.8.4  输入项

    输入输出等参考功能F.8.2;

    安全保密:对请求数据进行签名,防止非法请求和重放攻击,同时,对用户敏感数据进行加密;

    F.8.5  输出项

    输入输出等参考功能F.8.2;

    安全保密:对请求数据进行签名,防止非法请求和重放攻击,同时,对用户敏感数据进行加密;

    F.8.6  算法

    F.8.7  流程逻辑

    F.8.8  接口

    F.8.9  存储分配

     

    软件

    存储分配

    备注

    客户端

    内存:500KB(<=2MB),本地存储:10MB

    微信限制

    数据库

    内存:1GB;

    硬盘:50GB

    适当情况下可扩容

     

    F.8.10  注释设计

    1. 单行注释(single-line)://注释内容

      一次只能注释一行,一般是简单注释,用来简短描述某个变量或属性,程序块。

    2.块注释(block):/*注释内容*/

     为了进行多行简单注释,一般不使用。

    3.文档注释:/**注释内容 */

     /**

     * projectName: xxx

     * fileName: xxx

     * packageName: xxxx

     * date: 2019年6月18日下午12:28:39

     * copyright(c) 2019-2020 xxx

     */

    4.类注释

    类注释(Class)主要用来声明该类用来做什么,以及创建者、创建日期版本、包名等一些信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @className: user

     * @packageName: user

     * @description: 这是用户类

     * @data: 2019-06-28 12:20

     **/

    5.方法注释

    方法注释(Methods)主要用来声明该类的作用、入参、返回值、异常等信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @methodsName: addUser

     * @description: 添加用户

     * @param:  xxxx

     * @return: String

     * @throws: IOException

     **/

    F.8.11  限制条件

          无

    F.8.12  测试计划

    结合网络模块、数据库模块进行测试

    F.8.13  尚未解决的问题

     

    F.9 标记点模块

    F.9.1  程序描述

    标记点模块主要负责针对电子科技大学校园地图界面上出现的标记点进行管理。

    F.9.2  功能

    地图界面的展示的所有标记点就是标记点模块的功能,用户自动产生查询所有标记点的请求,标记点模块根据特定语句查询标记点表中的所有标记信息,并根据界面显示需要,渲染出对应的标记点状态信息。

    功能

    输入

    输出

    格式、请求

    获取所有标记点

    uid

    dataType:

    code

    msg

    locationID:[]

    json/POST

    F.9.3  性能

    运行

    精度

    响应时间(ms)

    标记点管理

    数据库的表项查询精度较高,查询速度响应较快

    20

     

    F.9.4  输入项

    输入输出等参考功能F.9.2;

    安全保密:对请求数据进行签名,防止非法请求和重放攻击,同时,对用户敏感数据进行加密;

    F.9.5  输出项

    输入输出等参考功能F.9.2;

    安全保密:对请求数据进行签名,防止非法请求和重放攻击,同时,对用户敏感数据进行加密;

    F.9.6  算法

    F.9.7  流程逻辑

     

     

    F.9.8  接口

    F.9.9  存储分配

    软件

    存储分配

    备注

    客户端

    内存:500KB(<=2MB),本地存储:10MB

    微信限制

    数据库

    内存:1GB;

    硬盘:50GB

    适当情况下可扩容

    F.9.10  注释设计

    1. 单行注释(single-line)://注释内容

      一次只能注释一行,一般是简单注释,用来简短描述某个变量或属性,程序块。

    2.块注释(block):/*注释内容*/

     为了进行多行简单注释,一般不使用。

    3.文档注释:/**注释内容 */

     /**

     * projectName: xxx

     * fileName: xxx

     * packageName: xxxx

     * date: 2019年6月18日下午12:28:39

     * copyright(c) 2019-2020 xxx

     */

    4.类注释

    类注释(Class)主要用来声明该类用来做什么,以及创建者、创建日期版本、包名等一些信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @className: user

     * @packageName: user

     * @description: 这是用户类

     * @data: 2019-06-28 12:20

     **/

    5.方法注释

    方法注释(Methods)主要用来声明该类的作用、入参、返回值、异常等信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @methodsName: addUser

     * @description: 添加用户

     * @param:  xxxx

     * @return: String

     * @throws: IOException

     **/

    F.9.11  限制条件

    对于合理的标记点,后台管理系统必须要有初步审查的过程,管理员手动编辑标记点的合法性,普通用户无法主动更新及添加合法标记点。

    F.9.12  测试计划

    测试名称

    值说明

    输入方式

    写入数据库

    1.每个数据表的测试数据应包括:输入完整,不完整,字段非法等情况

    2.多表插入,单表插入

    自动输入

    查询数据库的所有标记点

    多表查询

    自动输入

    从数据库删除非法标记点

    自动输入

    F.9.13  尚未解决的问题

    用户无法根据实际需要添加更多标记点,后台管理员系统需要手动编辑合法标记点,提供用户固定的标记点信息推送。

     

     

     

     

     

    F.10 微信授权模块

    F.10.1  程序描述

    微信授权模块主要是请求微信用户的授权,以及得到用户微信基本信息。基于微信平台,对用户进行授权请求,根据登录凭证校验请求对用户进行校验。根据用户校验的自定义登录态,写入用户信息表中。

    F.10.2  功能

    用户在微信授权界面,根据微信系统的载入提示,根据启用协议的凭证验证请求结果对该小程序的启用结果进行永久存储,对得到授权的用户信息写入用户信息表。

    功能

    输入

    输出

    格式/请求

    微信登录

    code

    encryptedData

    iv

    codemsguid

    uNickNameuavaUrl:

    json/POST

    F.10.3  性能

    运行

    精度

    响应时间(ms)

    微信授权

    基于微信平台的认证,对用户的凭证请求做出正确的响应

    500

     

    F.10.4  输入项

    输入输出等参考功能F.10.2;

    安全保密:对请求数据进行签名,防止非法请求和重放攻击,同时,对用户敏感数据进行加密;

    F.10.5  输出项

    输入输出等参考功能F.10.2;

    安全保密:对请求数据进行签名,防止非法请求和重放攻击,同时,对用户敏感数据进行加密;

    F.10.6  算法

    数据签名校验方法

        为了确保开放接口返回用户数据的安全性,微信会对明文数据进行签名。开发者可以根据业务需要对数据包进行签名校验,确保数据的完整性。

        通过调用接口(如 wx.getUserInfo)获取数据时,接口会同时返回 rawData、signature,其中 signature = sha1( rawData + session_key )

    开发者将 signature、rawData 发送到开发者服务器进行校验。服务器利用用户对应的 session_key 使用相同的算法计算出签名 signature2 ,比对 signature 与 signature2 即可校验数据的完整性。

    如 wx.getUserInfo的数据校验:

    接口返回的rawData:

     

    {

      "nickName": "Band",

      "gender": 1,

      "language": "zh_CN",

      "city": "Guangzhou",

      "province": "Guangdong",

      "country": "CN",

    "avatarUrl":"http://wx.qlogo.cn/mmopen/vi_32/1vZvI39NWFQ9XM4LtQpFrQJ1xlgZxx3w7bQxKARol6503Iuswjjn6nIGBiaycAjAtpujxyzYsrztuuICqIM5ibXQ/0"

    }

    用户的 session-key:

    HyVFkGl5F5OQWJZZaNzBBg==

    用于签名的字符串为:

     

    {"nickName":"Band","gender":1,"language":"zh_CN","city":"Guangzhou","province":"Guangdong","country":"CN","avatarUrl":"http://wx.qlogo.cn/mmopen/vi_32/1vZvI39NWFQ9XM4LtQpFrQJ1xlgZxx3w7bQxKARol6503Iuswjjn6nIGBiaycAjAtpujxyzYsrztuuICqIM5ibXQ/0"}HyVFkGl5F5OQWJZZaNzBBg==

    使用sha1得到的结果为

      75e81ceda165f4ffa64f4068af58c64b8f54b88c

    加密数据解密算法:

        接口如果涉及敏感数据(如wx.getUserInfo当中的 openId 和 unionId),接口的明文内容将不包含这些敏感数据。如需要获取敏感数据,需要对接口返回的加密数据(encryptedData) 进行对称解密。 解密算法如下:

    (1)对称解密使用的算法为 AES-128-CBC,数据采用PKCS#7填充。

    (2)对称解密的目标密文为 Base64_Decode(encryptedData)。

    (3)对称解密秘钥 aeskey = Base64_Decode(session_key), aeskey 是    16字节。

    (4)对称解密算法初始向量 为Base64_Decode(iv),其中iv由数据接口返 回。

    F.10.7  流程逻辑

     

    F.10.8  接口

    F.10.9  存储分配

    软件

    存储分配

    备注

    客户端

    内存:500KB(<=2MB),本地存储:10MB

    微信限制

    数据库

    内存:1GB;

    硬盘:50GB

    适当情况下可扩容

    F.10.10  注释设计

    1.单行注释(single-line)://注释内容

      一次只能注释一行,一般是简单注释,用来简短描述某个变量或属性,程序块。

    2.块注释(block):/*注释内容*/

     为了进行多行简单注释,一般不使用。

    3.文档注释:/**注释内容 */

     /**

     * projectName: xxx

     * fileName: xxx

     * packageName: xxxx

     * date: 2019年6月18日下午12:28:39

     * copyright(c) 2019-2020 xxx

     */

    4.类注释

    类注释(Class)主要用来声明该类用来做什么,以及创建者、创建日期版本、包名等一些信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @className: user

     * @packageName: user

     * @description: 这是用户类

     * @data: 2019-06-28 12:20

     **/

    5.方法注释

    方法注释(Methods)主要用来声明该类的作用、入参、返回值、异常等信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @methodsName: addUser

     * @description: 添加用户

     * @param:  xxxx

     * @return: String

     * @throws: IOException

     **/

    F.10.11  限制条件

    如需获取用户头像、昵称等信息,会弹出登录弹窗引导用户授权,开发者在交互设计上兼容弹窗,避免出现多个弹窗叠加、重复提示等不好的体验。

    F.10.12  测试计划

    测试名称

    值说明

    输入方式

    请求微信服务器(服务器网络模块)

    客户端从微信获取的code

      和加密数据

    自动输入

    F.10.13  尚未解决的问题

          无

     

     

    F.11 校园身份认证模块

    F.11.1  程序描述

    校园身份认证模块主要是对校园用户的身份进行认证,基于电子科技大学信息门户平台,对学生以及教职工进行认证,根据认证结果对用户提供对应服务。根据实际用户身份的认证状态,写入用户信息表中。

    F.11.2  功能

         用户在校园身份认证界面,提供对应正确的学号以及密码,小程序的认证模块基于电子科大的信息门户系统,对其输入身份信息进行验证,根据认证结果对用户提供对应的服务,并将其认证结果写进用户信息表。

     

    功能

    输入

    输出

    格式/请求

    校园身份认证

    openid、学号、密码

    code、msg

    identity

    json/POST

    F.11.3  性能

    运行

    精度

    响应时间(ms)

    校园身份认证

    基于电子科大信息门户的认证精度,对正确的学号及密码能够正确认证

    1000

     

    F.11.4  输入项

    输入输出等参考功能F.11.2;

    安全保密:对请求数据进行签名,防止非法请求和重放攻击,同时,对用户敏感数据进行加密;

    F.11.5  输出项

    输入输出等参考功能F.11.2;

    安全保密:对请求数据进行签名,防止非法请求和重放攻击,同时,对用户敏感数据进行加密;

    F.11.6  算法

    用户密码加密算法采用AES对称加密,加密流程如下:

    解密流程(encryptedData 为加密数据):

    (1)对称解密使用的算法为 AES-128-CBC,数据采用PKCS#7填充。

    (2)对称解密的目标密文为 Base64_Decode(encryptedData)。

    (3)对称解密秘钥 aeskey = Base64_Decode(session_key), aeskey 是    16字节。

    (4)对称解密算法初始向量 为Base64_Decode(iv),其中iv由数据接口返 回。

    F.11.7  流程逻辑

                          

    F.11.8  接口

    F.11.9  存储分配

    软件

    存储分配

    备注

    客户端

    内存:500KB(<=2MB),本地存储:10MB

    微信限制

    数据库

    内存:1GB;

    硬盘:50GB

    适当情况下可扩容

    F.11.10  注释设计

    1.单行注释(single-line)://注释内容

      一次只能注释一行,一般是简单注释,用来简短描述某个变量或属性,程序块。

    2.块注释(block):/*注释内容*/

     为了进行多行简单注释,一般不使用。

    3.文档注释:/**注释内容 */

     /**

     * projectName: xxx

     * fileName: xxx

     * packageName: xxxx

     * date: 2019年6月18日下午12:28:39

     * copyright(c) 2019-2020 xxx

     */

    4.类注释

    类注释(Class)主要用来声明该类用来做什么,以及创建者、创建日期版本、包名等一些信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @className: user

     * @packageName: user

     * @description: 这是用户类

     * @data: 2019-06-28 12:20

     **/

    5.方法注释

    方法注释(Methods)主要用来声明该类的作用、入参、返回值、异常等信息:

    /**

     * @version: V1.0

     * @author: Lulusimili

     * @methodsName: addUser

     * @description: 添加用户

     * @param:  xxxx

     * @return: String

     * @throws: IOException

     **/

    F.11.11  限制条件

    需要根据电子科技大学信息门户验证系统保持一致,如果电子科技大学信息门户验证界面有部分更新(如多次输入后,可能需要用户输入图片验证码),小程序的校园身份认证模块也要及时更新。

    F.11.12  测试计划

    测试名称

    输入项

    输入方式

    结果

    说明

    请求电子科技大学信息门户验证平台

    学号或工号,密码

    手动输入

    验证成功

    多次请求电子科技大学信息门户验证平台

    学号或工号,密码,验证码

    手动输入

    验证成功

    多次输入错误,强制输入图片验证码

    F.11.13  尚未解决的问题

       无

     

     

    展开全文
  • 并输出《软件概要设计说明书》。搞清楚“总体实现方案” 详细设计阶段:对概要设计的进一步细化,一般由各部分的担当人员依据概要设计分别完成,然后在集成,是具体的实现细节。是“程序”的蓝图,确定每个模块采用...

    1 软件设计的整体流程:

    • 软件需求分析阶段:输出了《软件需求规格说明书》,不涉及具体实现方法。用户能看得明白,开发人员也可据此进行下面的工作,搞清楚“要解决什么问题”。
    • 概要设计阶段:确定软件系统的总体布局,各个子模块的功能和模块间的关系,与外部系统的关系,选择的技术路线。有一些研究与论证性的内容。并输出《软件概要设计说明书》。搞清楚“总体实现方案”
    • 详细设计阶段:对概要设计的进一步细化,一般由各部分的担当人员依据概要设计分别完成,然后在集成,是具体的实现细节。是“程序”的蓝图,确定每个模块采用的算法、数据结构、接口的实现、属性、参数。并输出《软件详细设计说明书》。搞清楚“每个模块怎么做”

    2 需求分析

    2.1 我们为什么需要《软件需求规格说明书》 ?

    如果需求的编写只是为了解释说明软件实现的功能,那么良好的编码结构,代码注释就可以很好的实现软件的功能说明,程序员可以将编写需求的时间节约下来进行更多功能的实现; 可是,这样的情况可能更多适用于中小型项目,或者互联网项目,因为这样的项目需求不复杂,并且需求变化很快,所以研发的效率非常重要。然而,针对大型软件项目或者功能比较复杂的系统,软件研发可能是多人协作的成果,所以在信息传递过程中, 我们只有提前考虑好软件需求的内容,才能正确评估开发软件所需要的时间,成本的要素,从而更好的管理项目。

    2.2 《软件需求规格说明书》的一般结构

    • 正文的第一章内容是1.概述,包含
      1.1.编写目的;1.2.术语与定义;1.3.参考资料;三个部分
    • 第二章要给出该项目的标准和规范,在文档的后续内容编写中以及项目开发过程中必须遵照这个标准和规范进行。
    • 第三章应该说明该项目的相关假设、限制和一些依赖条件,在后续系统部署的过程中可以有参考意义。
    • 第四章“功能规格”是重点,重点介绍这个系统的角色,界面设计思路,系统的功能视图和功能点清单,以及系统的需求用例。这个内容必须详细描述,这样才能对后续的开发和测试提供指导意义。
    • 第五章“非功能规格”要对项目的性能、安全、数据的备份恢复等内容解释解释说明,一个项目除了功能完整之外,还要考虑性能、安全等相应的要求。
    • 第六章“附录”,是对软件需求规格说明书的一些补充说明文档,其中的“软件需求跟踪矩阵”是重点,这份文档是对后续需求的完善程度进行了严格的控制。

    3 概要设计

    3.1 《概要设计说明书》的一般结构:

    • 总述:需求或目标(讲一下事情的起源)、环境、局限;
    • 总体设计:从全局的角度说一下 组织结构、功能、处理流程、有哪些模块、模块间的关系,运行环境等。(输出图:系统结构图,系统流程图,数据流程图,推荐在线画图工具https://www.processon.com/
    • 外部接口:总体说明外部用户、软、硬件接口(可用资源);
    • 模块设计:每个模块“做什么”、简要说明“怎么做”(输入、输出、处理逻辑、与其它模块或系统的接口),处在什么逻辑位置、物理位置。

     

    模块设计,可以写以下内容:
       1、模块描述:说明哪些模块实现了哪些功能;
       2、模块层次结构:可以使用某个视角的软件框架图来表达;
       3、模块间的关系:模块间依赖关系的描述,通信机制描述;
       4、模块的核心接口:说明模块传递的信息、信息的结构;
       5、处理方式设计:说一些满足功能和性能的算法;
    
    • 数据结构:逻辑结构、物理结构。
    • 容灾设计:出错信息、出错处理。(可选)
    • 监控设计:运行模块组合、控制、时间。(可选)
    • 用户界面设计:(可选)。
    • 安全设计:(可选)。
    • 其它设计:(可选)。
    • 制定规范(附录): 设计原则,代码规范、接口规约、命名规则。

    3.2 概要设计需要注意的地方

    • 用来评价总体设计的可行性。
    • 用来检查设计的模块是否完整,保证每一个功能都有对应的模块来实现。
    • 用来评估开发工作量、指导开发计划(在不写详细设计的情况下)。
    • 概要设计阶段过于重视业务流程是个误区.
    • 概要设计阶段过于重视细节实现是个误区.

    4 详细设计

    4.1 《详细设计说明书》的一般结构:

    参考如何撰写软件详细设计内容?

    • 引言,包含:
      编写目的,背景,参考资料,术语定义及说明

    • 设计概述,包含:任务和目标,需求概述,运行环境概述, 条件与限制,详细设计方法和工具

    • 系统详细需求分析,包含:详细需求分析,详细系统运行环境及限制条件分析接口需求分析

    • 总体方案确认,包含: 系统总体结构确认, 系统详细界面划分

    • 系统详细设计,包含: 系统结构设计及子系统划分,系统功能模块详细设计(采用HIPO图进行功能分解与模块描述,,用IPO或结构图描述各模块的组成结构、算法、模块间的接口关系,以及需求、功能和模块三者之间的交叉参照关系。), 系统界面详细设计

     

    每个模块的描述说明可参照以下格式:
    
    **模块编号:**
    
    **模块名称:**
    
    **输入:**
    
    **处理:**
    
    **算法描述:**
    
    **输出:**
    
    • 数据库系统设计

    4.2 详细设计需要注意的地方

    如果有或者有必要,特别是大型的软件系统,详细设计阶段划分系统功能模块或子系统。

    5 概要设计和详细设计的区别

    5.1 概要设计阶段:

    在这个阶段,设计者会大致考虑并照顾模块的内部实现,但不过多纠缠于此。主要集中于划分模块、分配任务、定义调用关系。模块间的接口与传参在这个阶段要定得十分细致明确,应编写严谨的数据字典,避免后续设计产生不解或误解。概要设计一般不是一次就能做到位,而是反复地进行结构调整。典型的调整是合并功能重复的模块,或者进一步分解出可以复用的模块。在概要设计阶段,应最大限度地提取可以重用的模块,建立合理的结构体系,节省后续环节的工作量。
    概要设计文档最重要的部分是分层数据流图、结构图、数据字典以及相应的文字说明等。以概要设计文档为依据,各个模块的详细设计就可以并行展开了。

    5.2 详细设计阶段

    在这个阶段,各个模块可以分给不同的人去并行设计。在详细设计阶段,设计者的工作对象是一个模块,根据概要设计赋予的局部任务和对外接口,设计并表达出模块的算法、流程、状态转换等内容。这里要注意,如果发现有结构调整(如分解出子模块等)的必要,必须返回到概要设计阶段,将调整反应到概要设计文档中,而不能就地解决,不打招呼。
    详细设计文档最重要的部分是模块的流程图、状态图、局部变量及相应的文字说明等。


    本文转载自:
    作者:安东尼_Anthony
    链接:https://www.jianshu.com/p/a52fe78962f0

    展开全文
  • 一、软件需求说明书 1引言 2 1.1编写目的 2 1.2背景 2 1.3定义 2 1.4参考资料 2 2任务概述 2 2.1目标 2 2.2用户的特点 3 2.3假定和约束 3 3需求规定 3 3.1对功能的规定 3 3.2对性能的规定 3 3.2.1精度 ...

    转自:https://www.cnblogs.com/peizhe123/p/5511505.html

    一、软件需求说明书
    1引言 2
    1.1编写目的 2
    1.2背景 2
    1.3定义 2
    1.4参考资料 2
    2任务概述 2
    2.1目标 2
    2.2用户的特点 3
    2.3假定和约束 3
    3需求规定 3
    3.1对功能的规定 3
    3.2对性能的规定 3
    3.2.1精度 3
    3.2.2时间特性要求 3
    3.2.3灵活性 4
    3.3输人输出要求 4
    3.4数据管理能力要求 4
    3.5故障处理要求 4
    3.6其他专门要求 5
    4运行环境规定 5
    4.1设备 5
    4.2支持软件 5
    4.3接口 5
    4.4控制 5
     
    软件需求说明书的编写提示
    1引言
    1.1编写目的
    说明编写这份软件需求说明书的目的,指出预期的读者。
    1.2背景
    说明:
    a. 待开发的软件系统的名称;
    b. 本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;
    c. 该软件系统同其他系统或其他机构的基本的相互来往关系。 
    1.3定义
    列出本文件中用到的专门术语的定义和外文首字母组词的原词组。
    1.4参考资料
    列出用得着的参考资料,如:
    a. 本项目的经核准的计划任务书或合同、上级机关的批文;
    b. 属于本项目的其他已发表的文件;
    c. 本文件中各处引用的文件、资料、包括所要用到的软件开发标准。 列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。
    2任务概述
    2.1目标
    叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。解释被开发软件与其他有关软件之间的关系。如果本软件产品是一项独立的软件,而且全部内容自含,则说明这一点。如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。|
    2.2用户的特点
    列出本软件的最终用户的特点,充分说明操作人员、维护人员的教育水平和技术专长,以及本软件的预期使甩频度。这些是软件设计工作的重要约束
    2.3假定和约束
    列出进行本软件开发工作的假定和约束,例如经费限制、开发期限等。
    3需求规定 
    3.1对功能的规定
    用列表的方式(例如IPO表即输入、处理、输出表的形式),逐项定量和定性地叙述对软件所提出的功能要求,说明输入什么量、经怎样的处理、得到什么输出,说明软件应支持的终端数和应支持的并行操作的用户数。
    3.2对性能的规定
    3.2.1精度
    说明对该软件的输入、输出数据精度的要求,可能包括传输过程中的精度。
    3.2.2时间特性要求
    说明对于该软件的时间特性要求,如对:
    a. 响应时间;
    b. 更新处理时间;
    c. 数据的转换和传送时间;
    d. 解题时间;等的要求。
    3.2.3灵活性
    说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变化的适应能力,如:
    a. 操作方式上的变化;
    b. 运行环境的变化;
    c. 同其他软件的接口的变化;
    d. 精度和有效时限的变化;
    e. 计划的变化或改进。
    对于为了提供这些灵活性而进行的专门设计的部分应该加以标明。
    3.3输人输出要求
    解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。
    3.4数据管理能力要求
    说明需要管理的文卷和记录的个数、表和文卷的大小规模,要按可预见的增长对数据及其分量的存储要求作出估算。
    3.5故障处理要求
    列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。
    3.6其他专门要求
    如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性的特殊要求等。
    4运行环境规定
    4.1设备
    列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能,包括:
    a. 处理器型号及内存容量;
    b. 外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量;
    c. 输入及输出设备的型号和数量,联机或脱机;
    d. 数据通信设备的型号和数量;
    e. 功能键及其他专用硬件
    4.2支持软件
    列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。
    4.3接口
    说明该软件同其他软件之间的接口、数据通信协议等。
    4.4控制
    说明控制该软件的运行的方法和控制信号,并说明这些控制信号的来源。


     
    二、概要设计说明书
    1引言 2
    1.1编写目的 2
    1.2背景 2
    1.3定义 2
    1.4参考资料 2
    2总体设计 2
    2.1需求规定 2
    2.2运行环境 2
    2.3基本设计概念和处理流程 3
    2.4结构 3
    2.5功能器求与程序的关系 3
    2.6人工处理过程 3
    2.7尚未问决的问题 3
    3接口设计 3
    3.1用户接口 3
    3.2外部接口 3
    3.3内部接口 4
    4运行设计 4
    4.1运行模块组合 4
    4.2运行控制 4
    4.3运行时间 4
    5系统数据结构设计 4
    5.1逻辑结构设计要点 4
    5.2物理结构设计要点 4
    5.3数据结构与程序的关系 4
    6系统出错处理设计 5
    6.1出错信息 5
    6.2补救措施 5
    6.3系统维护设计 5
     
    概要设计说明书
    1引言
    1.1编写目的
    说明编写这份概要设计说明书的目的,指出预期的读者。
    1.2背景
    说明:
    a. 待开发软件系统的名称;
    b. 列出此项目的任务提出者、开发者、用户以及将运行该软件的计算站(中心)。
    1.3定义
    列出本文件中用到的专门术语的定义和外文首字母组词的原词组。
    1.4参考资料
    列出有关的参考文件,如:
    a. 本项目的经核准的计划任务书或合同,上级机关的批文;
    b. 属于本项目的其他已发表文件;
    c. 本文件中各处引用的文件、资料,包括所要用到的软件开发标准。列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。
    2总体设计
    2.1需求规定
    说明对本系统的主要的输入输出项目、处理的功能性能要求,详细的说明可参见附录C。
    2.2运行环境
    简要地说明对本系统的运行环境(包括硬件环境和支持环境)的规定,详细说明参见附录C。
    2.3基本设计概念和处理流程
    说明本系统的基本设计概念和处理流程,尽量使用图表的形式。
    2.4结构
    用一览表及框图的形式说明本系统的系统元素(各层模块、子程序、公用程序等)的划分,扼要说明每个系统元素的标识符和功能,分层次地给出各元素之间的控制与被控制关系.
    2.5功能器求与程序的关系
    本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:
     程序1 程序2 …… 程序n
    功能需求1 √   
    功能需求2  √  
    ……    
    功能需求n  √  √
    2.6人工处理过程
    说明在本软件系统的工作过程中不得不包含的人工处理过程(如果有的话)。
    2.7尚未问决的问题
    说明在概要设计过程中尚未解决而设计者认为在系统完成之前必须解决的各个问题。
    3接口设计
    3.1用户接口
    说明将向用户提供的命令和它们的语法结构,以及软件的回答信息。
    3.2外部接口
    说明本系统同外界的所有接口的安排包括软件与硬件之间的接口、本系统与各支持软件之间的接口关系。
    3.3内部接口
    说明本系统之内的各个系统元素之间的接口的安排。
    4运行设计
    4.1运行模块组合
    说明对系统施加不同的外界运行控制时所引起的各种不同的运行模块组合,说明每种运行所历经的内部模块和支持软件。
    4.2运行控制
    说明每一种外界的运行控制的方式方法和操作步骤。
    4.3运行时间
    说明每种运行模块组合将占用各种资源的时间。
    5系统数据结构设计
    5.1逻辑结构设计要点
    给出本系统内所使用的每个数据结构的名称、标识符以及它们之中每个数据项、记录、文卷和系的标识、定义、长度及它们之间的层次的或表格的相互关系。
    5.2物理结构设计要点
    给出本系统内所使用的每个数据结构中的每个数据项的存储要求,访问方法、存取单位、存取的物理关系(索引、设备、存储区域)、设计考虑和保密条件。
    5.3数据结构与程序的关系
    说明各个数据结构与访问这些数据结构的形式:
    6系统出错处理设计
    6.1出错信息
    用一览表的方式说朗每种可能的出错或故障情况出现时,系统输出信息的形式、含意及处理方法。
    6.2补救措施
    说明故障出现后可能采取的变通措施,包括:
    a. 后备技术说明准备采用的后备技术,当原始系统数据万一丢失时启用的副本的建立和启动的技术,例如周期性地把磁盘信息记录到磁带上去就是对于磁盘媒体的一种后备技术;
    b. 降效技术说明准备采用的后备技术,使用另一个效率稍低的系统或方法来求得所需结果的某些部分,例如一个自动系统的降效技术可以是手工操作和数据的人工记录;
    c. 恢复及再启动技术说明将使用的恢复再启动技术,使软件从故障点恢复执行或使软件从头开始重新运行的方法。
    6.3系统维护设计
    说明为了系统维护的方便而在程序内部设计中作出的安排,包括在程序中专门安排用于系统的检查与维护的检测点和专用模块。 各个程序之间的对应关系,可采用如下的矩阵图的形式;


    三、项目开发计划
    1引言 1
    1.1编写目的 1
    1.2 背景 1
    1.3定义 1
    1.4参考资料 1
    2项目概述 1
    2.1工作内容 1
    2.2主要参加人员 1
    2.3产品 2
    2.3.1程序 2
    2.3.2文件 2
    2.3.3服务 2
    2.3.4非移交的产品 2
    2.4验收标准 2
    2.5完成项目的最迟期限 2
    2.6本计划的批准者和批准日期 2
    3实施计划 2
    3.1工作任务的分解与人员分工 2
    3.2接口人员 3
    3.3进度 3
    3.4预算 3
    3.5关键问题 3
    4支持条件 3
    4.1计算机系统支持 3
    4.2需由用户承担的工作 3
    4.3由外单位提供的条件 4
    5专题计划要点 4
     
    项目开发计划(GB856T——88)
    1引言
    1.1编写目的
    说明:编写这份软件项目开发计划的目的,并指出预期的读者。
    1.2 背景
     说明:
    a. 待开发的软件系统的名称;
    b. 本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;
    c. 该软件系统同其他系统或其他机构的基本的相互来往关系。
    1.3定义
     列出本文件中用到的专门术语的定义和外文的首字母组词的原词组。
    1.4参考资料
     列出用得着的参考资料,如:
    a. 本项目的经核准的计划任务书和合同、上级机关的批文;
    b. 属于本项目的其他已发表的文件;
    c. 本文件中各处引用的文件、资料,包括所要用到的软件开发标准。列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。
    2项目概述
    2.1工作内容
     简要地说明在本项目的开发中须进行的各项主要工作。
    2.2主要参加人员
     扼要说明参加本项目开发的主要人员的情况,包括他们的技术水平。
    2.3产品
    2.3.1程序
     列出须移交给用户的程序的名称、所用地编程语言及存储程序的媒体形式,并通过引用相关文件,逐项说明其功能和能力。
    2.3.2文件
     列出须移交用户的每种文件的名称及内容要点。
    2.3.3服务
     列出需向用户提供的各项服务,如培训安装、维护和运行支持等,应逐项规定开始日期、所提供支持的级别和服务的期限。
    2.3.4非移交的产品
     说明开发集体应向本单位交出但不必向用户移交的产品(文件甚至某些程序)。
    2.4验收标准
     对于上述这些应交出的产品和服务,逐项说明或引用资料说明验收标准。
    2.5完成项目的最迟期限
    2.6本计划的批准者和批准日期
    3实施计划
    3.1工作任务的分解与人员分工
     对于项目开发中需要完成的各项工作,从需求分析、设计、实现、测试直到维护,包括文件的编制、审批、打印、分发工作,用户培训工作,软件安装工作等,按层次进行分解,指明每项任务的负责人和参加人员。
    3.2接口人员
     说明负责接口工作的人员及他们的职责,包括:
    a. 负责本项目同用户的接口人员;
    b. 负责本项目同本单位各管理机构,如合同计划管理部门、财务部门、质量管理部门等的接口人员;
    c. 负责本项目同个份合同负责单位的接口人员等。
    3.3进度
     对于需求分析、设计、编码实现、测试、移交、培训和安装等工作,给出每项工作任务的预定开始日期、完成日期及所需资源,规定各项工作任务完成的先后顺序以及表征每项工作任务完成的标志性事件(即所谓“里程碑)。
    3.4预算
     逐项列出本开发项目所需要的劳务(包括人员的数量和时间)以及经费的预算(包括办公费、差旅费、机时费、资料费、通讯设备和专用设备的租金等)和来源。
    3.5关键问题
     逐项列出能够影响整个项目成败的关键问题、技术难点和风险,指出这些问题对项目的影响。
    4支持条件
     说明为支持本项目的开发所需要的各种条件和设施。
    4.1计算机系统支持
     逐项列出开发中和运行时所需的计算机系统支持,包括计算机、外围设备、通讯设备、模拟器、编译(或汇编)程序、操作系统、数据管理程序包、数据存储能力和测试支持能力等,逐项给出有关到货日期、使用时间的要求。
    4.2需由用户承担的工作
     逐项列出需要用户承担的工作和完成期限。包括需由用户提供的条件及提供时间。
    4.3由外单位提供的条件
     逐项列出需要外单位分合同承包者承担的工作和完成的时间,包括需要由外单位提供的条件和提供的时间。
    5专题计划要点
     说明本项目开发中需制定的各个专题计划(如分合同计划、开发人员培训计划、测试计划、安全保密计划、质量保证计划、配置管理计划、用户培训计划、系统安装计划等)的要点。

    四、详细设计说明书
    1引言 2
    1.1编写目的 2
    1.2背景 2
    1.3定义 2
    1.4参考资料 2
    2程序系统的结构 2
    3程序1(标识符)设计说明 2
    3.1程序描述 3
    3.2功能 3
    3.3性能 3
    3.4输人项 3
    3.5输出项 3
    3.6算法 3
    3.7流程逻辑 3
    3.8接口 3
    3.9存储分配 4
    3.10注释设计 4
    3.11限制条件 4
    3.12测试计划 4
    3.13尚未解决的问题 4
    4程序2(标识符)设计说明 4
     
    详细设计说明书
    1引言
    1.1编写目的
    说明编写这份详细设计说明书的目的,指出预期的读者。
    1.2背景
    说明:
    a. 待开发软件系统的名称;
    b. 本项目的任务提出者、开发者、用户和运行该程序系统的计算中心。
    1.3定义
    列出本文件中用到专门术语的定义和外文首字母组词的原词组。
    1.4参考资料
    列出有关的参考资料,如:
    a. 本项目的经核准的计划任务书或合同、上级机关的批文;
    b. 属于本项目的其他已发表的文件;
    c. 本文件中各处引用到的文件资料,包括所要用到的软件开发标准。列出这些文件的标题、文件编号、发表日期和出版单位,说明能够取得这些文件的来源。
    2程序系统的结构
    用一系列图表列出本程序系统内的每个程序(包括每个模块和子程序)的名称、标识符和它们之间 的层次结构关系。
    3程序1(标识符)设计说明
    从本章开始,逐个地给出各个层次中的每个程序的设计考虑。以下给出的提纲是针对一般情况的。对于一个具体的模块,尤其是层次比较低的模块或子程序,其很多条目的内容往往与它所隶属的上一层 模块的对应条目的内容相同,在这种情况下,只要简单地说明这一点即可。
    3.1程序描述
    给出对该程序的简要描述,主要说明安排设计本程序的目的意义,并且,还要说明本程序的特点(如 是常驻内存还是非常驻?是否子程序?是可重人的还是不可重人的?有无覆盖要求?是顺序处理还是并发处理等)。
    3.2功能
    说明该程序应具有的功能,可采用IPO图(即输入一处理一输出图)的形式。
    3.3性能
    说明对该程序的全部性能要求,包括对精度、灵活性和时间特性的要求。
    3.4输人项
    给出对每一个输入项的特性,包括名称、标识、数据的类型和格式、数据值的有效范围、输入的方式。数量和频度、输入媒体、输入数据的来源和安全保密条件等等。
    3.5输出项
    给出对每一个输出项的特性,包括名称、标识、数据的类型和格式,数据值的有效范围,输出的形式、数量和频度,输出媒体、对输出图形及符号的说明、安全保密条件等等。
    3.6算法
    详细说明本程序所选用的算法,具体的计算公式和计算步骤。
    3.7流程逻辑
    用图表(例如流程图、判定表等)辅以必要的说明来表示本程序的逻辑流程。
    3.8接口
    用图的形式说明本程序所隶属的上一层模块及隶属于本程序的下一层模块、子程序,说明参数赋值和调用方式,说明与本程序相直接关联的数据结构(数据库、数据文卷)。
    3.9存储分配
    根据需要,说明本程序的存储分配。
    3.10注释设计
    说明准备在本程序中安排的注释,如:
    a. 加在模块首部的注释;
    b. 加在各分枝点处的注释;
    c. 对各变量的功能、范围、缺省条件等所加的注释;
    d. 对使用的逻辑所加的注释等等。
    3.11限制条件
    说明本程序运行中所受到的限制条件。
    3.12测试计划
    说明对本程序进行单体测试的计划,包括对测试的技术要求、输入数据、预期结果、进度安排、人员职责、设备条件驱动程序及桩模块等的规定。
    3.13尚未解决的问题
    说明在本程序的设计中尚未解决而设计者认为在软件完成之前应解决的问题。
    4程序2(标识符)设计说明
    用类似F.3的方式,说明第2个程序乃至第N个程序的设计考虑。
    ......

    展开全文
  • 系统详细设计说明

    万次阅读 2020-09-15 23:42:22
    详细设计说明书 Version 3.0 文档编号 TTS*** 2014-06-24 文档历史 版本 标题 内容 作者 时间 ...
  • 数据库设计说明

    万次阅读 2019-01-09 12:03:26
    数据库设计说明
  • 软件设计方案说明书的编写

    万次阅读 多人点赞 2018-10-09 11:37:36
    关于软件设计方案说明书的编写,其根本目的有两个,一是便于项目内部各职能的成员进行沟通和项目执行时的依据(比如编码、测试等),二是作为项目的一部分,是项目文档的一部分。软件设计方案说明书的格式和内容,...
  • 【综合实训】图书管理系统——详细设计说明

    千次阅读 多人点赞 2021-05-07 18:49:04
      本报告的目的是对高校图书管理系统进行详细设计说明,以便用户及项目开发人员了解产品详细的设计与实现,为开发人员提供开发参考书。以下叙述将结合文字描述、伪代码,图表等来描述高校图书管理系统的详细设计和...
  • 【软件工程】——详细设计说明

    万次阅读 多人点赞 2018-11-19 12:38:12
    该文档在概要设计的基础上,进一步的细化系统结构,展示了软件结构的图标,物理设计、数据结构设计、及算法设计、详细的介绍了系统各个模块是如何实现的,包括涉及到的算法,逻辑流程等。 预期的读者:程序员 1.2...
  • 【软件工程】详细设计说明

    万次阅读 热门讨论 2018-03-30 20:37:55
    详细设计说明书 1引言 1.1编写目的 说明编写这份详细设计说明书的目的,指出预期的读者。 该文档实在概要设计的基础上,进一步的细化系统结构,展示了软件啊结构的图标,物理设计,数据结构设计,及算法设计,...
  • Android APP 设计说明书模板

    万次阅读 2016-04-28 12:26:32
    因公司申请软件著作权需要,我临时转行成为文员,写设计说明书,测试报告什么的。分享一下我的设计说明书部分纲要,仅供参考。
  • 转自:https://www.cnblogs.com/peizhe123/p/5511505.html 一、软件需求说明...
  • 数据库设计说明书的编写

    万次阅读 多人点赞 2019-06-17 19:46:34
    G.1 引言 G.1.1 编写目的 数据库的表结构设计是整个项目开发中一个非常重要的环节,一个良好的数据库设计,可以提高开发效率,方便系统维护,并且为...我们也希望通过写数据设计说明书,规范数据名称、数据范围...
  • (软件工程)——概要设计说明

    万次阅读 热门讨论 2018-10-30 09:43:03
    步骤:概要设计和详细设计 软件设计的目标和任务 用信息域表示的软件需求,以及功能和性能需求,进行:数据设计、系统结构设计、过程设计 信息阶段的信息流 软件设计任务: 从工程管理的角度来看,软件设计...
  • 软件工程之概要设计说明

    万次阅读 2018-10-24 20:45:32
    1引言 ...此概要设计说明书是为了说明整个系统的体系结构,以及需求用例的各个功能点在结构中的体现,为系统的详细设计人员进行详细设计师的输入参考文档。 1.2背景 说明: 待开发软件系统的名...
  • 软件设计说明书模版(申请软件著作权可供参考)

    万次阅读 多人点赞 2019-06-20 14:59:22
    1.引言 1.1 编写目的 1.2 项目背景 ...3.2.1 软件概要设计说明 3.2.3 基本设计概念和处理流程 3.3 软件的详细设计 3.3.1 系统结构 3.3.2 模块设计说明 3.3.3 爬虫模块 3.3.4 日志模块 3.3.5 数...
  • 【软件工程】——概要设计说明

    千次阅读 热门讨论 2018-11-19 12:06:29
    本阶段完成系统的大致设计并说明系统的数据结构与软件结构,本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件概貌,把它加工成程序细节上非常接近与源程序开发的软件标识。 预期读者:软件测试人员、...
  • 带过期时间的积分系统表设计

    千次阅读 2020-04-08 09:52:55
    积分表设计 表结构设计 积分记录表 integral_record 此表对应的是业务操作引起的积分变化记录 字段名 类型 长度 说明 id bigint 20 主键id type smallint 11 积分记录类型 ...过期时间...
  • 为什么需要功能需求设计说明

    千次阅读 2017-04-11 12:01:40
    为什么需要功能需求设计说明书在没有功能设计文档时,主要有如下几个问题: 前期研究团队沟通成本如何要让团队里面的所有人员对软件产品的功能需求设计有一个共识?没有功能设计文档,反正我是想不出有什么办法。当...
  • 图书馆管理系统设计说明

    万次阅读 多人点赞 2014-11-06 12:59:28
    软件设计说明书 文档编号:QY2014007-LY7 文档信息:图书馆信息管理系统软件设计说明书 文档类别:管理文档 密 级:机密 版本信息:1.0 建立日期:2014-05-20   创 建 人: 审 核 者: 批 准 人:...
  • 软件设计方案说明书模板

    千次阅读 2019-08-27 14:56:03
    文章目录软件设计方案说明书目录使用说明书修改记录审阅人1 引言1.1 编写目的1.2 背景1.3 参考资料1.4 术语定义及说明2 设计概述2.1 任务和目标2.1.1 需求概述2.1.2 运行环境概述2.1.3 条件与限制2.1.4 详细设计方法...
  • 软件开发文档包括软件需求说明书、数据要求说有书、概要设计说明书、详细设计 说明书、可行性研究报告、项目开发计划。 ##**一:软件需求说明书** 软件需求说明书也称为软件规格说明。该说明书对所开发软件的功能...
  • 【软件工程】数据库设计说明

    千次阅读 热门讨论 2018-03-30 20:39:22
    数据库设计说明书(GB8567——88) 1引言 1.1编写目的 本文档描述了机房收费系统数据库的设计,提供了数据酷库设计的可视性以及软件支持所需的信息,应用于机房收费系统开发前期,为后期的数据库设计指引方向,也...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,045,135
精华内容 418,054
热门标签
关键字:

关于时间的设计说明