软件工程基础——结构化分析方法

本部分主要内容是结构化分析方法。

结构化方法经过30多年的发展,已经成为系统、成熟的软件开发方法之一。结构化方法包括已经形成了配套的结构化分析方法、结构化设计方法和结构化设计方法,其核心和基础是结构化程序设计理论。

需求分析与需求分析方法

先来明确什么是需求。需求是用户解决问题或达到目标所需的条件或权能;系统或系统部件要满足合同、标准、规范或其他正式规定文档所具有的条件或权能;由需求的定义可知,需求以及需求分析的内容包括提炼、分析和仔细审查已经收集到的需求;确保所有利益相关者都明白其含义并且能够找出其中的错误、遗漏或者其他不足的地方。从用户最初的非形式化需求到满足用户对软件产品要求的映射,对用户意图进行不断地提示和判断。

需求分析阶段的工作,可以概括为四个方面。

首先是需求获取,它涉及的关键问题有:对问题空间的理解,人与人之间的通信和不断变化的需求。在同用户的交流过程中,不断收集和积累用户的信息,并且通过认真理解用户的各项要求,澄清模糊的需求,排除不合理的需求,全面地提炼系统的功能性和非功能性需求。要特别注意的是,在需求获取过程中,容易产生诸如与用户交流存在障碍,相互误解,缺乏共同语言,忽视需求变化,混淆目标和需求等问题,这些问题都将直接影响到需求分析和系统后续开发的成败。

然后是需求分析。搞定了难缠的客户,程序员们就要分析一下这些需求到底应该怎么实现。这一步最终的结果就是给出系统的解决方案,或者说模型。

第三步是编写需求规格说明书。它为各方面人员之间的交流提供了方便。

最后就是需求评审。在需求分析的最后一步,对需求分析阶段的工作进行复审,验证需求文档的一致性,可行性,完整性和有效性。

常见的需求分析方法有结构化分析方法和面向对象的分析方法。

结构化分析方法

结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。其目的是帮助弄清用户对软件的需求。

结构化分析方法的是指是着眼于数据流,自顶向下逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。

它的步骤如下:

1.通过对用户的调查,以软件的需求为线索,获得当前系统的具体模型。

2.去掉具体模型中的非本质因素,抽象出逻辑模型。

3.根据计算机的特点分析当前系统与目标系统的差别,建立目标系统的逻辑模型。

4.完善目标系统并补充细节,写出目标系统的软件需求规格说明。

5.评审直到确认完全符合用户对软件的需求。

结构化分析的常用工具。其中第一个就是数据流图,简称DFD。它是描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统的功能建模。

这种图主要的图形元素有四个。

这个代表数据的源点和终点。它表示系统和环境的接口,属于系统之外的实体。

这个代表数据流。沿着箭头的方向为传送数据的通道,一般在旁边标注数据流名。

这个代表存储文件。表示处理过程中存放的各种数据文件。

这个代表加工或者转换。输入数据经过这样的加工变换产生输出。

我们使用数据流图为系统建立逻辑模型。

第一步,由外向里,先画出系统的输入输出,然后再画出系统的内部。

第二步,自顶向下,顺序完成顶层,中间层,底层数据流图。

第三步,逐层分解。

数据流图的建立从顶层开始。顶层数据流图应该包含说有相关外部实体,以及外部实体与软件中间的数据流,其作用主要是描述软件的作用范围,对总体功能,输入,输出进行抽象描述,并反应软件和系统,环境的关系。对复杂系统的表达应采用控制复杂度策略,需要按照问题的层次结构逐步分解细化,使用分层的数据流图表达这种结构关系。

应注意以下几个地方:

1.对加工处理建立唯一、层次性的编号,每个加工处理通常要求既有输入又有输出。

2.数据存储之间不应该有数据流。

3.数据流图应该具有一致性。读和写应该是同时存在的。

4.相邻两层的DFD之间具有父子关系。子图代表对父图的详细描述,父图表示了子图间的接口。子图个数不大于父图中的处理个数。

第二个是数据字典,简称DD。

它是结构化分析方法的核心。数据字典是对所有与系统相关的数据元素的一个有组织的列表,以及精确的严格的定义,使得用户和系统分析员对于输入,输出,存储成分和中间计算结构有着共同的理解。数据字典把不同的需求文档和分析模型紧密地结合在一起,与各模型的图形表示配合,能清楚地表达大数据处理的要求。

数据字典的作用是对DFD中出现的被命名的图形元素做出确切解释。通常,数据字典包含的信息有:名称,别名,何处/如何使用,内容描述,补充信息等。

在数据字典中,通常要用到一些符号,释义如下:

“=”:表示等于,定义为,或者说,由某物构成。

“[…|…]”:表示或的关系,选项中用|分隔各项中的某一项

“+”:表示与,和

“n{  }m”:表示重复,即花括号中的项要重复若干次,n和m表示下限和上限。

“(…)”:表示可选,括号中的项可以没有。

“* *”:表示注释。

“..”:表示连接符。

软件需求规格说明书

它简称为SRS,是描述需求中的重要文档。它有很多作用。

1.便于用户和开发人员进行理解和交流。

2.反映出用户问题的结构,可以作为软件开发工作的基础和依据。

3.作为确认测试和验收的依据。

4.为成本估算和编制计划进度提供基础。

5.软件不断改进的基础。

软件需求规格说明书应该重点描述软件的目标,软件的功能需求,性能需求,外部接口,属性以及约束条件。该说明书是确保软件质量的有力措施,衡量软件需求规格说明书好坏的标准、标准的优先级以及标准的内涵是:

1.正确性。

2.无歧义性。

3.完整性。

4.可验证性。

5.一致性。

6.可理解性。

7.可修改性。

8.可追踪性。

软件需求规格说明是一份在软件生命周期中至关重要的文档,它在开发早期就为尚未诞生的软件系统建立了一个可见的逻辑模型,它可以保证开发工作的顺利进行,因而应该及时地建立并保证它的质量。说明书越精确,以后出现错误,混淆,反复的可能性越小。用户能看懂需求说明书,并且发现和指出其中的错误是保证软件系统质量的关键,因而需求说明必须简单易懂,尽量少包含术语。

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2018-2020 Shawn Zhou
  • Powered by Hexo Theme Ayer
  • PV: UV:

感谢打赏~

支付宝
微信