目录
需求分析概述
需求工程
软件需求:是指用户对系统在功能、行为、性能、设计约束等方面的期望。是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。
软件需求分为需求开发和需求管理两大过程,如下图所示。
需求分类
按需求内容可分为业务需求、用户需求、系统需求三类。
(1)业务需求:由客户提出的一个宏观的功能需求。
(2)用户需求:设计员去调查需求中涉及的每个用户的具体需求。
(3)系统需求:经过整合,形成最终的系统需求,包括功能、性能、设计约束等。
1)功能需求:软件必须完成的基本动作。
2)性能需求:说明软件或人与软件交互的静态或动态数值需求,如系统响应速度、处理速度等。
3)设计约束:受其他标准硬件限制等方面的影响。
从客户角度可分为基本需求、期望需求、兴奋需求三类。
(1)基本需求:需求明确规定的功能。
(2)期望需求:除了基本需求外,客户认为理所应当包含在内的其他功能。
(3)兴奋需求:客户未要求的其他功能需求,会浪费项目开发时间和成本。
结构化需求分析
基本概念
结构化需求分析自顶向下,逐步分解,是面向数据的,强调分析对象的数据流,需要建立:功能模型(数据流图)、行为模型(状态转换图)、数据模型(E-R图)以及数据字典(数据元素、数据结构、数据流、数据存储、加工逻辑、外部实体),如下图所示。
数据流图
数据流图描述数据在系统中如何被传送或变换,以及如何对数据流进行变换的功能或子功能,用于对功能建模,数据流图如下图所示。
数据流图是可以分层的,从顶层(即上下文无关数据流)到0层、1层等,顶层数据流图只含有一个加工处理表示整个管理信息系统,描述了系统的输入和输出,以及和外部实体的数据交互。
数据字典
数据字典是用来定义在数据流图中出现的符号或者名称的含义,在数据流图中,每个存储、加工、实体的含义都必须定义在数据流图中,并且父图和子图之间这些名称要相同,示例如下图所示。
E-R图
在E-R模型中,使用椭圆表示属性(一般没有)、长方形表示实体、菱形表示联系,联系的两端要填写联系类型,示例如下图所示。
状态转换图
状态转换图通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态转换图还指明了作为特定事件的结果系统将做哪些动作,如下图所示。