一、软件需求及获取方法
1、概念
- 软件需求
(1)用户解决问题或达到目标所需条件或能力(Capability)
(2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。
(3)一种反映上面(1)或(2)所述条件或能力的文档说明
包括功能需求和质量需求(非功能需求) - 功能需求(Functional Requirement)
软件系统必须具备的功能特征 - 质量需求(Quality Requirement)
软件系统必须拥有的质量特性
2、需求获取方法(P36-P38)
- 用户访谈
调查表
情景分析 - 原型法
- 做用户的学徒等
3、原型法
- 软件原型
是软件系统的具体表示,可被用于需求分析、软件设计阶段 - 包含四个方面内容
- 原型的表现形式
原型以什么样的形式展示出来 - 保真度
原型的详细程度 - 交互性
用户如何与原型交互 - 生命周期
原型被使用的周期长短
- 原型的表现形式
- 常使用的技术
- 第四代技术(4GT)
软件工程师能够快速地生成可执行的代码 - 可重用的软件构件
使用一组已有的软件构件(或称为组件)来装配原型 - 形式化规格说明
使得分析员能够交互地创建基于语言的规格说明
调用自动工具把基于语言的规格说明翻译成可执行的代码
- 第四代技术(4GT)
- 需求不一致
- 解决方法
- 优先级方法
绝对要满足的需求(必须的)
非常重要但并非必须的需求(值得要的)
可要可不要的需求(可选的) - 商谈
理解和重视冲突双方的基本需求
基本需求需要达成一致
- 优先级方法
二、需求分析
1、概念
发现、精细化、建模、规格说明和复审软件需求的过程
- 常用的方法
- 结构化分析(Structured Analysis,SA)
使用图形化工具分析和定义软件对象的系统方法
将系统概念转换为数据和处理的表示 - 面向对象分析(Object Oriented Analysis,OOA)
运用面向对象方法,对问题域和系统责任进行分析和理解,找出描述问题域及系统责任所需的对象,定义对象的属性、操作以及它们之间的关系
- 结构化分析(Structured Analysis,SA)
2、结构化分析(P39-P62)
- 数据流(Data Flow)分析
-
用于描述系统数据对象的生成、处理、转换、存储和流向
-
包括
数据源点/终点:软件的数据来源或去往的终点
数据流向:数据流动的方向
数据处理:对数据进行的变换或加工
数据存储:数据存放的形式或信息库 -
使用数据流图(Data Flow Diagram)进行可视化建模
-
- 数据流分析
- 数据流图
使用图像化符号可视化目标软件的数据源/数据终点、数据流向、数据加工/处理、数据存储
- 数据流图
组成元素
数据源/数据终点
数据流向
数据加工/处理
数据存储
- 数据流建模步骤
创建顶层数据流图(Context DFD or Level 0 DFD)
分解顶层数据流图中的数据处理,创建1层数据流图(Level 1 DFD)
分解1层数据流图中的数据处理,创建2层数据流图(Level 2 DFD)
继续分解,直到能够展现出全部详细数据流信息为止
优化和验证数据流图