那下一点我们就需要来给大家来说一下啊,因为刚才
也是在上课之前有同学问我:老师,那个需求规约和需求文档有什么关系啊?
什么叫做需求文档?文档这个词实际上在软件工里面 软件工程这个这个范畴里面,用的特别的泛
它实际上是指的整个软件开发中形成的各种的什么,记录性的这种文件啊
这个图表啊,这个相当于模型啊,这些都是叫做文档,所以
它实际上在软件开发的各种过程中给的一些辅助性的说明 的这些制品都叫做文档。
那么需求文档如果从一个很宽泛的角度,是指需求阶段 形成的各种类型的这个制品。
比如说我们说的需求的陈述,对吧 用 UCase 来表达的这样的一个需求的这样的一个描述,UCase 图
那么到我们今天通过结构化的分析方法给大家介绍的什么啊 这个数据流图、
数据字典加小说明这样的一个规范化的 这个软件需求规约都是叫做需求文档,所以
有的同学说到底两者之间什么样的关系?我说需求规约是在需求阶段最重要的一种需求文档
它也是作为软件开发组织和用户之间能够达成共识进而
进一步地进行软件的后续开发的一个基本的依据,它是作为设计 编码、 测试的一个基本的依据。
所以大家就可以看到了软件需求规约的一个重要性 使用需求分析的输出就是
xxx系统需求规格说明书 又叫软件需求规约。
软件需求规约里面很重要的就是我们用的某种的软件的开发
软件的分析设计方法来给出来的这个模型 比如说在这里面我们的需求这个规约如果用结构化的方法就是
DFD 数据流图,这个数据字典
加工小说明都是作为需求规约中很重要的一块 但是前期它还有一些相应的比如说编写这个目的
编写这个需求规格说明书的这个目的是什么?为什么人所用,对吧。
那么 这个项目的需求的整个的这个背景给出
待开发的软件产品的名称,包括说明这个项目的提出者、 开发者和用户
包括说明该软件产品将做什么 如果有必要说明不做什么
大家说说明这个系统做什么是很容易的啊,但是 这个系统做什么也不一定能把这个系统的边界划分的特别清楚
所以我们在分析一个系统边界的时候,经常要借助于这个系统不做什么 来去把一些我们在似是而非的、
要做不做得这样的事情 界定清楚,所以这一部分是需求规约中我们很重要的一部分啊
那么还有术语的定义,因为我们的这个需求规约里面经常会用到问题
与所在的一些术语,对吧。
比如说可能银行、 金融 包括零售业它用的术语是不一样的,所以在这里面
比如说iii,iii这样一个词实际上它暗含了一组
一组的这样的一个一些功能特性,所以这样的一个术语就不是说我们软件相当于能够给它
它实际上是作为一个电信系统的一个什么,基本的术语iii,整个它暗含了一系列功能的这- 样一个句集
所以这样的一些术语的定义要在这里面表达清楚,一些是 一般情况下是跟领域相关的一些特定的术语
那么还有我在编写这个软件需求规约的时候,一些参考性的文献可能
你借鉴于以前开发过的类似的
这个项目的软件需求规约,那么包括在这个项目的提出中,可能比如说这个项目又是
借鉴了比如说国内外的一些什么样的一些产品的这样的一些需求的说明,所以这样的一些东西-
相当于都放在这 第二部分就是概述了
功能的概述叙述了待开发的软件产品 将要完成的主要的功能有哪些?大家说这个主要的
功能很多情况下就在于我们能够去给它分割的一些那些那些什么,那些 那些加工,是吧。
但是它实际上是从一个很很顶层的这样的一个角度 来把这个系统对外提供的功能进行进行很完善的这样的一个描述
那么第二部分就是约束,叙述对系统设计产生影响的限制条件
并对下一节中所述的一些某些特殊的需求来提供理由,比如说管理模式、 硬件的限制、
安全等 所以这些约束是指,比如说我们开发的是 web
网站,对吧 这个外部网站里面相当于我可能用到的是 这个未来啊我们希望的是能用到这个相当于这个
这个云架构,云计算的架构,所以它会有一个什么,云。
那么 还有一个端,云和端的这样的一个概念大家如果了解这个 cloudcomputing
就知道说,如果真正的这样的一个云计算需要 软件及服务的一个思想,也就是说所有的这个软件是以服务的方式来提供
对外的,说的更直白一点,也就是说你要访问的
所有的这个资源从云里获得,实际上你都是通过一个什么 通过一个 IP 地址,对吧。
一个 web 浏览器,一个 IP 地址打过去相当于来去使用它 是通过浏览器的这样的一个使用。
所以这种情况下就意味着如果你要开发一个类似于这样的一个云架构的这样的一个 web
应用 那我需要的是我这里面的所有的构成单元都是 web
服务 所以这就是对于系统设计产生影响的一些限制条件
可能要把它说清楚,因为有的时候用户就告诉你我就希望未来就在这个 往云的架构上去走,希望你。
所以你在需求这个里面已经需要给它考虑清楚 那么包括还有一些特殊需求来提供理由,比如说管理模式、 限制 对吧,硬件限制等等。
因为我们也知道比如说一些很安全,机子要求很高的一些,那么它有一些
特定的这样的一些软硬件管理模式的限制,就像我跟大家讲到的比如说我们的军方,对吧
应该是绝大多数的他们的软件都是自主研发的,所以在这里面它都是 有一些特殊的这样的一些需求,所以这个里面包括管理
硬件的限制、 安全的限制等等,你都需要在这里面给它解释清楚
那下面就是我们所熟知的今天老师给大家介绍的结构化的分析方法
建立的什么,系统的功能模型数据流图 也就是这个系统做什么的这样的一个陈述,对吧
那么还有对个数据流图的解释性说明的数据字典和加工说明
数据字典是对数据流图里的数据流和数据存储的说明,加工 说明是对底层的叶子加工的这样的一个说明
那么在数据流图里面,大家可以看到,比如说数据流图 1 画出该数据流图加工说明,数据流说明。
数据流图 2 整个 这样
所以大家看到了整个的这样的数据流图实际上它是对于这个系统中
相应的可能顶层的数据流图和底层的数据流图,相当于都分别来给出相应的这样的一个说明
那么进而呢数据字典对整个的这个 系统中的相应的数据流和数据存储数据项都分别相应进行说明
那么文件的说明,大家看这个就是依照了数据存储的特点,对吧
要看一下这个系统中的数据的数据库的存储格式,它的整个的一些设计
来对这个进行说明,所以文件说明更多的是倾向于对数据存储的这样的一个说明
那这里面的接口,大家可以看到它进一步分成什么,用户接口、 硬件接口和软件接口
因为这个系统对外相当于,它可能要需要 跟其他的接口进行相应的这样的一个衔接,所以就涉及到
跟其他的用户iii打交道,它需要对用户提供的接口是什么样子的 那么它要跟外面的硬件可能要进行交互式来使用
那么硬件接口这个相当于是什么样子的哈,包括跟其他软件 协同相当于作战的一起来为用户提供服务,那么跟它有
交互的这样的软件接口的需求又是什么样,所以在这里面来给出相应的说明
那么性能的需求就是对这个系统 里面的一些比如说精度啊、
时间特性啊等等这样的一些 这里的精度就逐项说明对各项输入数据和输出数据达到的一些精度的要求
时间特征说明的是这个软件的时间特征,比如说响应的时间 更新的处理时间:包括数据的传输、
转换的时间、 计算的时间等 那么还有就是说灵活性,说明这个软件所具有的灵活性是指
当用户需求发生变化的时候,那么它怎么样能够去灵活地应对 去提供相应的这样的一些这个服务
比如说操作方式、 运行环境、 时间特征发生变化的时候,这个软件的适应能力,它能否相当于跟上,对吧
那么还有属性的这样的一个说明,比如说可使用性、 保密性、 可维护性、
可移植性 那么还有其他的这样的一些需求 比如说数据库方面的,包括我们在这操作
特点,因为一些用户他存在着这样或那样一些他的这个 基础,这个相当于的这样的一些制约。
可能他对一些操作希望采用什么样的方式
比如说像有的人他是学中文的,他就可能对于计算机的处理系统 并不是特别的在行。
那这个时候他希望在使用你这个软件的时候,你尽可能地去 帮助它一步步地下来,对吧。
能够给他提供多帧的这样的一些帮助的信息 那么有的人相当于是专业级的,对吧。
就希望的是一下子我就相当于能够相当于去 能够去达到自己的目标,一步相当于一步到位,所以这个过程不同的操作人员
或者用户群,它决定了对操作的这样的一些不同的需求,所以在这里面你也需要给它满足 写出来。
那么还有就是说故障和处理 这个系统可能会出现什么样的故障?那么以及
你怎么去应对它,能怎么去处理它?所以这个里面 都是要进行这样的一些调研。
有的同学:老师,我还没编这样的软件,我怎么知道它出现什么故障?
调研呢所以这个里面要跟用户跟这个领域专家进行交流 去了解这样的系统在使用的过程中,可能出现的故障点有哪些
对于这些故障的等级进行这个相当于排列,所以这也是我们需求分析人员必须做的一件事情