软件工程笔记3-软性需求获取和结构化分析方法

less than 1 minute read

Published:

短暂的夏夜融掉了,葱绿的深谷中冒出水蒸气,无数棵树上的汁沸腾了,无数个梦挤进了克林索尔的轻眠中。


软性需求获取和结构化分析方法

获取并理解用户的需求是软件工程师所面对的最困难的任务之一

需求获取四个任务:

  1. 发现和分析问题,并分析问题的原因/结果关系。
  2. 与用户进行各种方式的交流,并使用调查研究方法收集信息
  3. 按照三个成分即数据,过程和接口观察问题的不同侧面
  4. 将获取的需求文档化,形式有用例、决策表、决策树等

需求获取两个原则

  1. 深入浅出:需求获取要尽可能全面细致(需求是全集,实现是子集)
  2. 以流程为主线的原则

需求获取的过程

  1. 开发高层业的业务模型(该大领域的业务流程框架)
  2. 定义项目范围和高层需求
  3. 识别用户类和用户代表
  4. 获取具体需求(与用户交流,相似产品的描述文档,系统需求规格说明,已有系统的问题报告和改进要求,市场调查和用户问卷,观察用户如何工作)
  5. 确定目标系统和业务的工作流
  6. 整理需求和总结

软件需求分析阶段的任务

  1. 需求获取:分析之前获取的需求,有些问题只有通过分析才能得到解决,直接把获取的需求作为软件设计阶段的依据将会导致严重的后果
  2. 需求分析:考虑需求的+
    • 完整性:每项获取的需求都要给出设计和实现该需求所需要的全部信息
    • 正确性:需求描述无误,无歧义
    • 合理性:每项需求之间,软件需求与系统需求之间应是协调一致的
    • 可行性:技术,经济,社会可行性
    • 充分性
  3. 需求定义:编写需求规格说明
  4. 需求验证:确保已规格说明中定义的需求准确无误,能被客户理解接受,需要对齐严格评审

结构化分析方法

结构化分析方法(SA,structured analysis),是一种面向数据流进行需求分析的方法。SA是一种建模方法,示意图如下

功能建模、数据建模、行为建模、数据字典、加工规格说明、系统需求规格说明

功能建模

按照软件内部数据传递、变化的关系,自顶向下逐层分解,指导找到满足功能要求的所有课实现的软件为止

数据流图:

环境图:

顶层数据流图(0层数据流图)仅包括一个数据处理过程(开发的目标系统)

作用:确定系统在其环境中的位置,通过确定系统的输入和输出与外部实体的关系确定其边界

数据流图的分层

按照系统的层次结构进行逐步分解,分层的数据流图反映的结构关系科研清楚地表达整个系统

数据建模

这部分在数据库课程讲过了:就是属性和关系画ER图

行为建模

状态转化图(状态图):描述系统状态和引起系统状态转化的事件,来表示系统的行为

状态图分为状态和事件两部分:

事件表达式语法:事件说明[守卫条件]/动作表达式

  • 事件说明语法:事件名(参数表)
  • 守卫条件:一个布尔表达式
  • 动作表达式:一个过程表达式,当状态转化开始时执行该表达式

当事件说明的事件发生,且守卫条件的布尔表达式成立时,发生状态转化,并执行动作表达式

数据字典

数据字典以词条方式定义在数据模型,功能模型,行为模型中出现的数据对象及控制信息的特性,给出他们的准确定义,包括数据流、加工、数据文件、数据文件以及数据源点、汇点等

数据词典时讲三种分析模型粘合在一起的粘合剂,是分析模型的核心

词条描述:对数据流图中的每一个被命名的图形元素均加定义

  • 数据流词条:[数据流名,简述,组成,来源,去向,流通量,峰值]
  • 数据元素词条:[类型,取值范围,相关元素及数据结构]
  • 数据存储文件词条:[文件名,简述,组成,输入,输出,存取方式,存取频率]
  • 加工词条:[加工名,编号,简述,输入,输出,加工逻辑]
  • 数据源点和数据汇点词条:[名称,简述,有关数据流,数据]

数据结构描述

常用描述数据结构的方:定义式,Warnier图

  1. 定义式
  1. Warnier图

加工规格说明

决策表和决策树

在对数据流图的分解中,位于层次树底层的加工也称为基本加工或原子加工,对每一个基本加工都要进一步说明,这种说明被称为加工规格说明

加工规格说明要满足的要求:

  1. 每个基本加工都需要加工规格说明
  2. 必须描述加工规则,输入数据流如何转化成输出数据流
  3. 描述加工策略,而非加工细节
  4. 信息充足,完备,有用,不重复

决策表:条件-动作

决策表的改进

如果表中有两条或更多的处理规则具有相同的动作,并且其条件项之间存在着某种关系,就可设法将它们合并。

建立决策表的步骤

(1) 列出与一个具体过程(或模块)有关的所有处理。

(2) 列出过程执行期间的所有条件(或所有判断)。

(3) 将特定条件取值组合与特定的处理相匹配,消去不可能发生的条件取值组合。

(4) 将右部每一纵列规定为一个处理规则,即对于某一条件取值组合将有什么动作。

决策树:

系统需求规格说明

根据分析的结果编写需求规格说明,经过严格评审并得到用户的确认,式需求分析阶段的重要任务之一,需求规格说明也是这个阶段的最终结果