1、根本任务
建立分析模型,创建解决方案。从实践角度考虑,需求分析是以业务分析为导向,将用户零散的需求串联起来,形成一个体系完整、组织合理、内容清晰的框架(What to do, not how to do)。
1.1需求分析根本任务概述
分解、提炼,并在此过程中消除需求矛盾。
- 分解(自顶向下)
①业务流为主线的分解策略(目标系统→主体域→业务事件→业务活动→业务步骤)
②程序结构为主线的分解策略(目标系统→子系统→功能模块→子模块→功能点)
③基于场景的分解策略(目标系统→关注点→场景集合→使用场景→任务)
④基于数据的分解策略(目标系统→主题域→主题类→逻辑数据→物理数据)
- 提炼(自底向上)
1.2建立分析模型
目的:通过软件建模,帮助我们按照实际情况或按照我们的需要的模式对系统进行可视化,提供一种详细说明系统的结构或者行为的方法,给出一个指导系统构造的模板。对所有做出的决定实施文档化。
抽象(Abstraction)
一方面要求人们只关注重要的信息,忽略次要的内容。通过强调本质的特征,就减少了问题的复杂性(例如学生模型)
另一方面也要求人们将认知保留在适当的层次,屏蔽更深层次的细节,在问题的各元素之间推断出更广泛和更普遍的关系,帮助人们寻找解决方案;
![]()
模型的描述 分解(Decomposition / Partitioning)
“分而治之” 将单个复杂和难以理解的问题分解成多个相对更容易的子问题,并掌握各子问题之间的联系
分解的方案往往还能提供问题的解决思路
投影(Projection)
多视点(Viewpoints)方法
1.3创建解决方案

2、需求分析技术
2.1结构化技术
- 数据建模(E-R图)
- 过程建模(数据流图DED、上下文图、微规格说明、数据字典)
- 行为建模(状态转换图/矩阵State)
- 过程/数据关系建模(功能实体矩阵)
- 信息工程方法(功能分解图、过程依赖图)
2.2面向对象的技术
- UML(用例图、类图、交互图、活动图、对象约束语言、状态图)
2.3Wieringa框架
2.4Zachman框架
3、需求分析方法
传统分析(程序=数据结构+算法)→结构化分析(以数据流动为中心,以DFD为核心技术)→面向对象分析(以对象为中心,以UML为核心技术)
3.1UML(Unified Modeling Language),OMG认可的工业标准
![]()
UML2.0标准共定义了13种不同的图 ![]()
需求阶段一般采用的图
5、需求分析活动
需求细化(ID、Source、Rational、Priority、Cost、Risk、Volatility)
确定需求优先级(Top-N:N的取值是不受明确限制的,真正受限制的是Top-N个需求的实现代价总和)
需求协商