软件详细设计说明书

2024-05-15

1. 软件详细设计说明书

面向对象软件设计说明书模板 


1 概述 

1.1 系统简述 

对系统要完成什么,所面向的用户以及系统运行的环境的简短描述,这部分主要来源于需求说明书的开始部分。 

1.2 软件设计目标 

这部分论述整个系统的设计目标,明确地说明哪些功能是系统决定实现而哪些时不准备实现的。同时,对于非功能性的需求例如性能、可用性等,亦需提及。需求规格说明书对于这部分的内容来说是很重要的参考,看看其中明确了的功能性以及非功能性的需求。 

这部分必须说清楚设计的全貌如何,务必使读者看后知道将实现的系统有什么特点和功能。在随后的文档部分,将解释设计是怎么来实现这些的。 

1.3 参考资料 

列出本文档中所引用的参考资料。(至少要引用需求规格说明书) 

1.4 修订版本记录 

列出本文档修改的历史纪录。必须指明修改的内容、日期以及修改人。 

2 术语表 

对本文档中所使用的各种术语进行说明。如果一些术语在需求规格说明书中已经说明过了,此处不用再重复,可以指引读者参考需求说明。 



3 用例 

此处要求系统用用例图表述(UML),对每个用例(正常处理的情况)要有中文叙述。 


4 设计概述 

4.1 简述 

这部分要求突出整个设计所采用的方法(是面向对象设计还是结构化设计)、系统的体系结构(例如客户/服务器结构)以及使用到的相应技术和工具(例如OMT、Rose) 

4.2 系统结构设计 

这部分要求提供高层系统结构的描述,使用方框图来显示主要的组件及组件间的交互。最好是把逻辑结构同物理结构分离,对前者进行描述。别忘了说明图中用到的俗语和符号。 

4.2.1 顶层系统结构 

4.2.2 子系统1结构 

4.2.3 子系统2结构 

4.3 系统界面 


各种提供给用户的界面以及外部系统在此处要予以说明。如果在需求规格说明书中已经对用户界面有了叙述,此处不用再重复,可以指引读者参考需求说明。如果系统提供了对其它系统的接口,比如说从其它软件系统导入/导出数据,必须在此说明。 

4.4 约束和假定 

描述系统设计中最主要的约束,这些是由客户强制要求并在需求说明书写明的。说明系统是如何来适应这些约束的。 

另外如果本系统跟其它外部系统交互或者依赖其它外部系统提供一些功能辅助,那么系统可能还受到其它的约束。这种情况下,要求清楚地描述与本系统有交互的软件类型(比如某某某数据库软件,某某某EMail软件)以及这样导致的约束(比如只允许纯文本的Email)。 

实现的语言和平台也会对系统有约束,同样在此予以说明。 

对于因选择具体的设计实现而导致对系统的约束,简要地描述你的想法思路,经过怎么样的权衡,为什么要采取这样的设计等等。 


5 对象模型 

5.1 系统对象模型 


提供整个系统的对象模型,如果模型过大,按照可行的标准把它划分成小块,例如可以把客户端和服务器端的对象模型分开成两个图表述。 

对象图应该包含什么呢? 

在其中应该包含所有的系统对象。这些对象都是从理解需求后得到的。要明确哪些应该、哪些不应该被放进图中。 

所有对象之间的关联必须被确定并且必须指明联系的基数(一对一、一对多还是多对多,0..1,*,1..*)。聚合和继承关系必须清楚地确定下来。每个图必须附有简单的说明。 

可能经过多次反复之后才能得到系统的正确的对象模型。 


6 对象描述 


在这个部分叙述每个对象的细节,它的属性、它的方法。在这之前必须从逻辑上对对象进行组织。你可能需要用结构图把对象按子系统划分好。 

为每个对象做一个条目。在系统对象模型中简要的描述它的用途、约束(如只能有一个实例),列出它的属性和方法。如果对象是存储在持久的数据容器中,标明它是持久对象,否则说明它是个临时对象(transient object)。 

对每个对象的每个属性详细说明:名字、类型,如果属性不是很直观或者有约束(例如,每个对象的该属性必须有一个唯一的值或者值域是有限正整数等)。 

对每个对象的每个方法详细说明:方法名,返回类型,返回值,参数,用途以及使用的算法的简要说明(如果不是特别简单的话)。如果对变量或者返回值由什么假定的话,Pre-conditions和Post-conditions必须在此说明。列出它或者被它调用的方法需要访问或者修改的属性。最后,提供可以验证实现方法的测试案例。 


6.1 子系统1中的对象 

6.1.1 对象:对象1 

用途: 
约束: 
持久性: 

6.1.1.1 属性描述: 

1. 属性:属性1 
类型: 
描述: 
约束: 

2. 属性:属性2 

6.1.1.2 方法描述: 

1. 方法:方法1 
返回类型: 
参数: 
返回值: 
Pre-Condition: 

Post-Condition: 
读取/修改的属性: 
调用的方法: 

处理逻辑: 

测试例:用什么参数调用该方法,期望的输出是什么…… 


7 动态模型 

这部分的作用是描述系统如何响应各种事件。例如,可以建立系统的行为模型。一般使用顺序图和状态图。 

确定不同的场景(Scenario)是第一步,不需要确定所有可能的场景,但是必须至少要覆盖典型的系统用例。不要自己去想当然地创造场景,通常的策略是描述那些客户可以感受得到的场景。 

7.1 场景(Scenarios) 

对每个场景做一则条目,包括以下内容: 
场景名:给它一个可以望文生义的名字 
场景描述:简要叙述场景是干什么的以及发生的动作的顺序。 
顺序图:描述各种事件及事件发生的相对时间顺序。 


7.1.1 场景:场景1 
描述: 
动作1 
动作2 


7.2 状态图 

这部分的内容包括系统动态模型重要的部分的状态图。可能你想为每个对象画一个状态图,但事实上会导致太多不期望的细节信息,只需要确定系统中一些重要的对象并为之提供状态图即可。 

7.2.1 状态图1: 


8 非功能性需求 
在这个部分,必须说明如何处理需求文档中指定的非功能性需求。尽可能客观地评估系统应付每一个非功能性的需求的能力程度。如果某些非功能性需求没有完全在设计的系统中实现,请务必在此说明。另外,你也需要对系统将来的进化作一个估计并描述本设计如何使系统能够适应这些可预见的变化。 


9 辅助文档 

提供能帮助理解设计的相应文档。 


10 词汇索引 


文章录入

软件详细设计说明书

2. 软件文档中概要设计如何写?

软件文档中概要设计也称“总体设计”,是开发人员在明确用户需求(要什么)后对系统的一个总体考虑(明确系统目标、设计原则,初步考虑数据库设计和功能设计),国家关于这方面有相关标准(概要设计说明书(GB8567-88))。
在具体实践中可以按下列提纲撰写内容:
1.引言
1.1编写目的
[说明编写这份概要设计说明书的目的,指出预期的读者。]
1.2背景
a.[待开发软件系统的名称;]
b.[列出本项目的任务提出者、开发者、用户。]
1.3定义
[列出本文件中用到的专门术语的定义和外文首字母组词的原词组。]
1.4参考资料
    [列出有关的参考资料。]

2.总体设计
2.1需求规定
    [说明对本系统的主要的输入输出项目、处理的功能性能要求。包括]
    2.1.1系统功能
  2.1.2系统性能
      2.1.2.1精度
      2.1.2.2时间特性要求
      2.1.2.3可靠性
      2.1.2.4灵活性
  2.1.3输入输出要求
  2.1.4数据管理能力要求
  2.1.5故障处理要求
  2.1.6其他专门要求

2.2运行环境
    [简要地说明对本系统的运行环境的规定。]
    2.2.1设备
    [列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能。]
    2.2.2支持软件
    [列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。]
    2.2.3接口
    [说明该系统同其他系统之间的接口、数据通信协议等]
    2.2.4控制
    [说明控制该系统的运行的方法和控制信号,并说明这些控制信号的来源。]

2.3基本设计概念和处理流程
    [说明本系统的基本设计概念和处理流程,尽量使用图表的形式。]

2.4结构
[给出系统结构总体框图(包括软件、硬件结构框图),说明本系统的各模块的划分,扼要说明每个系统模块的标识符和功能,分层次地给出各模块之间的控制与被控制关系。]

2.5功能需求与系统模块的关系
    [本条用一张矩阵图说明各项功能需求的实现同各模块的分配关系。]

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补救措施
    [说明故障出现后可能采取的变通措施。]

6.3系统维护设计
    [说明为了系统维护的方便而在程序内部设计中作出的安排,包括在程序中专门安排用于系统的检查与维护的检测点和专用模块。]

3. 软件功能说明书怎么写

使 用 说 明 书 
使用前请仔细阅读本说明书 
一产品简介 
本门禁控制器是专门为各类电控门锁及保安系统而设计的它选用MICROCHIP最新CPU及存储芯片
所有资料不会因断电而丢失采用HOMMARD最新技术功能强大拥有四个密码层具备超级用户密码
及被胁持密码 
门状态监视输出报警防拆一亿组密码组合被胁持密码等完善的保安措施让用户更加安全开门
按钮门铃超级用户可接常开或常闭锁等强大功能让用户更加方便 
本产品提供了一种安全自动的出入口通行管制方式是商务机构办公室住宅小区等场所的理想装置 
二技术参数 
序号 项目 指标 
1 作电源 直流电压12V10% 电流 < 0.1A 
2 最大负载 报警输出100mA 电锁输出5A 
3 外型尺寸 116mm116mm20mm 
4 重 量 160g 
5 环境温度 -2055 
6 相对湿度 30%90% 
三声光指示 
LED指示灯 
事 件 红 灯 绿 灯 
正常状态 每秒闪烁一次 
开 锁 亮 
键入按键 亮 
进入编程 亮 快速闪烁 
编程确认 亮 亮 
报 警 闪烁 
内置蜂鸣器 
事 件 说 明 鸣 音 
键入按键有效 一次短鸣 嘀 
输入密码有效 两次短鸣 嘀嘀 
输入密码错误 一次长鸣 嘀 
报 警 状 态 连续长鸣 嘀嘀嘀 
四设置使用方法 
1缺省密码编程密码为9999使用密码为1234 
2进入编程状态 
按 * 编程密码 # 进入编程状态 
3功能设置需在编程状态下 
(1)修改编程密码 
按 0 新密码 # 重复新密码 # 密码位数可1-8位 
(2)修改使用密码 
按 1 新密码 # 重复新密码 # 密码位数可1-8位 
(3)设置开门时间 
按 2 X X # 
注XX为00-99单位为秒出厂设置为06 
(4)设置报警时间 
按 3 X X # 
注XX为00-99单位为分出厂设置为05 
(5)设置门状态监视 
按 4 0 0 # 关闭此功能 
按 4 0 1 # 开启此功能 
注门状态监视需配合门磁开关开启此功能时有如下两种作用: 
a.如果输入正确密码开门后忘了关门则蜂鸣器会鸣叫提示使用者关门 
b.如果门被非法打开则会启动报警系统同时蜂鸣器鸣叫警示 
出厂设置此功能为关闭 
(6)设置安全模式 
按 5 0 0 # 关闭此功能 
按 5 0 1 # 如连续十次输入错误密码系统锁死10分钟 
按 5 0 2 # 如连续十次输入错误密码启动报警系统 
注出厂设置此功能为关闭 
(7)储存设置并退出编程状态 
按 * 
注每次设置完成后必须在1分钟内按 * 储存设置 
4使用方法 
1用户输入使用密码即可启动电控门锁开门 
2如果输入有误连按两次 * 即可取消 
3如果因误操作而引发报警需输入正确的密码来关闭报警 
4如果忘记密码了可使用主板上的跳线开关RESET来恢复出厂设置先关闭电源将跳线开关拨
到ON位置再接通电源将跳线开关拨回OFF位置即可恢复出厂设置 
5扩展功能 
1编程密码可扩展为超级用户使编程密码可控制多个不同使用密码的键盘只需输入编程密码后
按 # 也可开门 
2 用密码可扩展为被胁持密码如使用者被胁持时只需在输入 
密码时将最后一位数的数值加1即可例如使用密码为1234则输入1235 # 后能启动电控锁开门
但同时亦启动报警信号输出 
附安装接线图 
注1在安装接线时请先关闭电源勿带电操作 
2正常情况下电锁是从电源控制器接出

软件功能说明书怎么写

4. 概要设计说明书的介绍

概要设计说明书又可称系统设计说明书,这里所说的系统是指程序系统。编制的目的是说明对程序 系统的设计考虑,包括程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。

最新文章
热门文章
推荐阅读