什么是软件设计规约呢?也就说软件设计规约是对软件的组织或其组成部分的内部结构的描述,
满足系统需求规约所指定的全部功能和性能要求。
所以大家看,它是从软件解的这样的一个角度要覆盖所有的什么?
功能需求和非功能需求的一个什么?解决方案,对吧?的这样的一个 这个书写。
那么在这个软件设计规约的组成里面, 结构化的这样的一个方法里面,
那么它的软件设计规约通常有概要设计规约和详细设计规约两部分,
分别为相应的设计过程的输出文档。
那我们来看一下概要设计规约有哪些内容。
概要设计规约它指明软件的组织结构,它内部的内容包括了比如说
系统的环境,对吧?那这个就是说硬件、 软件接口与人机界面、
外部定义的数据库、 与设计有关的限定条件,这些是作为系统环境的描述。
那么设计的描述大家来看, 有数据流和主要的数据结构、 软件模块的结构、 模块之间的接口。
为什么要有数据流在这个地方呢? 数据流不应该属于一个
需求的对吧?软件需求分析的这样的一个东西么?
因为你的很多的这个主要的数据结构实际上只要是对数据流的 这样的一个体现,对吧?就在设计阶段。
所以有的时候是要把数据流相当于说我跟 需求的这样的什么样的数据流相对应,我形成了这样的一些数据结构。
那么还有就是说对每个模块的这样的一个描述。
那么这个处理过程外部的行为,包括界面的定义、 数据结构和必要的一些注释。
所以 这个大家看,对于每个模块的描述我们是在做什么?
就是在做一些为未来详细设计来做 准备,对吧?就是说但是做一个前期的这样的一个初步的定义。
那么还有一个文件 结构和全局的数据。
所以这个里面看你到底是不是采用文件的这样结构
来存储这样的数据,包括你的一些数据是不是存在这个数据库中,所以这一部分是跟 这个数据存储相关的。
此外,还应该包括有关软件测试方面的要求和说明。
大家还记得我在结构化的这个需求分析中指了一点,
结构化的需求,需求规约 它可以作为什么测试的这样的一个依据?
也就是我这个系统已经编码已经开始运行了,对吧?
运行了,我这时候要来看,根据运行的这样的一个系统去看一下 我的这样的原来说的这样的系统功能是不是已经都实现了?所以
是作为确认测试的一个很重要的入口啊。
这是作为需求规约而言,软件的需求规约,是作为
作为系统的确认测试,也就是最终系统已经都做完了, 我要来确认一下整个系统的这样的一些功能、 非功能的需求是否都在这个系统中实现了。
所以这是作为系统确认测试的一个输入,就是软件的 需求规约。
那么概要设计,大家看,我已经形成了系统的一个什么? 一个整个的软件体系结构已经形成了,对吧?
也就说这个系统有哪些软件模块,以及模块之间的关系我要来给出来,
所以这部分是作为系统未来做 集成测试的。
所以 软件的概要设计规约是作为系统未来做集成测试的一个 非常重要的输入。
也就说我根据整个系统的一个 体系结构图,我就知道说哪些模块、
哪些模块它们 要集成在一起,对吧?以及它们之间的层次关系,所以这是集成测试。
所以软件的概要设计呢,它是面向软件开发者的文档, 它主要是作为软件项目的管理人员、
系统的分析人员与设计人员之间交流的这样的一个媒体。
所以大家看概要设计也是很重要的。
所以有一句话啊, 好的软件不是 coding 出来的,是设计出来的。
所以设计 就体现了对于软件的这种高质量的保障的 一个非常重要的环节,所以也是体现了整个的软件的
这样的一个重中之重是在设计这一环节,而不是在什么? 而不是在 coding 这个环节。
那么需求的正确捕获当然是作为第一步, 有了这个之外,相当于是设计出来好的这样一个实现方案
这是软件开发人员所必须的,或者说应该有的能力。
那我们下面来看一下详细设计规约。
详细设计规约是对软件各组成 部分内部属性的描述,它即是概要设计的细化。
那么在这个里面大家可以看一下,也就是说它要做什么呢?一个就是各处理过程的算法,
也就是各个模块内部的算法,对吧?第二个,算法所涉及的全部的数据结构的描述,
特别地,对主要的数据结构往往包括与算法实现有关的这样的描述。
所以大家看,就是 每个模块内部的算法和数据结构的描述。
那么软件设计规约主要是作为软件设计人员和程序员之间交流的媒体。
所以大家看 因为详细设计完之后,下一步要干什么了?就是做编码了。
所以 软件设计规约它是作为编程人员和设计人员之间交流的这样一个桥梁。
那我们再看,我到了软件设计详细设计
这一个阶段,实际上每一模块内部的处理逻辑,我已经有了清晰的认识,对吧? 所以软件的详细设计规约
是单元系统的单元测试的 输入。
所以大家看啊整个,这个就说在每一步骤
相当于,大家看,前面的需求规约是最后的确认测试,对吧?
那么这个软件的概要设计规约是系统的 集成测试,等那软件的详细设计是系统的单元测试。
那大家看,我们如果测试来看的话,最开始要做的是什么? 你先编每个单元嘛对吧?先进行单元测试。
之后是什么? 集成测试,对吧?再继后是什么?确认测试。
再继后相当于是一个系统测试。
就是说是要跟其他的软硬件的环境结合在一起的一个系统测试。
所以我们最早形成的需求规约是为 这个阶段做的。
那么这概要设计是为这个阶段相当于做的。
那么 详细设计是为这个阶段。
越早的相当于是为越往后的这样的一个测试来做铺垫。
所以有一点这样的一个特点。
那我们来 看一下设计规约的格式。
第一个相当于要来说明 这个编写目的,说明这个本软件设计说明书的这样的一个目的啊,可能为什么人去来读啊等等。
包括这个里面背景说明,待开发的软件产品的名称, 这个项目的提出者、
开发者和用户等,说明这个软件产品将要做什么,如有必要,说明不做什么。
那么还有就说这个规约中的一些术语来给出来它的一些定义啊和缩写啊。
包括这个文档所借鉴的一些参考资料, 就说要按照一个规范来给出来,注明资料的来源。
那么下面就是总体设计,就说 需求的这样的规定,对本软件的主要输入、 输出、 处理功能和性能的 要求。
那么运行环境、 处理流程、 软件的结构。
大家看 到软件结构这一部分就有什么?在 DFD 图的基础上,用
模块结构图来说明各层模块的划分及其相互关系, 划分原则上应细到程序级,也就说我们可控的什么?程序单元。
每个单元呢必须来执行单独的一个功能,也就说 单元的功能是独立的。
那么再在之后相当于就介绍运行的设计。
比如说运行模块的组合,就是说明一下系统施加不同的外部运行的控制时候可能引起各种的
不同模块的组合情况,包括它的一些内部模块和支撑软件 有哪些。
包括运行的控制,以什么样的方式这个系统进行运行,
包括它的这个运行的这样的一些操作的步骤等等,所以大家看这是运行的这样的一些相关- 的设计。
系统的出错处理。
就说要来说明一下这个系统可能会出现的
这个出错的和故障的情况出现的系统会显示什么样的一些信息及相应的含义。
所以 这个里面你就要把这个系统可能出现什么样的问题的时候,相当于可能会有什么样的一些显示-
来给出来啊。
那么包括出错处理方式及补救措施这里呢看一下,比如说第一个 后备的这样的一个技术,对吧。
一般情况下就是说有一个副本的这样的一个概念在里面。
我各种的重要的文档都要形成副本的这样的一些存储, 这样的应对整个数据出问题。
第二个就说性能的这个降级。
如果 我这个系统在使用的过程出现问题了,那么我退而求其次对吧,
把一些功能相当于给它,它的这个特点给它省略掉,我去 求这个相当于它能主要的这样的一个性能指标达到要求就可以。
还有一个恢复和再启动。
也就说当这个系统出问题的时候,我要建立恢复点,就说让这个系统能够 这个再重新开始启动运行。
所以这样的一些东西相当于要给出来说明。
那下面就是模块的设计的说明,大家看, 每一模块的内部啊,整个相当于每一模块的整个的名称、
它的功能等等这样的一些包括它的 这个模块内的可能还包含哪些模块的这样的一些接口的说明,都在这里面给出来。
所以 这里面我就不再细讲了。
所以这个是模块的这样的一个说明表。
所以大家看这里面有什么?模块名、 模块所在的文件、 调用
本模块的这样的一个模块名,包括本模块调用的其他模块名,功能的概述、 处理的描述、 引用的格式、 返回值。
所以对于每一模块,你都需要来给出这样的一个模块的这样的一个说明表。
这个内部接口、 外部接口、 用户接口等等。