第3章 需求分析3.1 需求分析的任务
3.2 与用户沟通获取需求的方法3.3 分析建模与规格说明
3.4 实体-联系图3.5 数据规范化 3.6 状态转换图 3.7 其他图形工具 3.8 验证软件需求海滨学院1
第3章 需求分析需求分析的任务: 需求分析是软件定义时期的最后一个阶段,它 的基本任务是准确地回答“系统必须做什么?” 这个问题。 确定系统必须完成哪些工作,也就是对目标系 统提出完整、准确、清晰、具体的要求。 系统分析员应该写出软件需求规格说明书,以 书面形式准确地描述软件需求。海滨学院2
需求:正在构建的系统必须符合的事务。 需求管理:是一种获取、组织并记录系统需求 的系统化方案以及一个使客户与项目团队不断 变更的系统需求达成并保持一致的过程。 传统需求分析:强调需求的记录,以一成不变 的观点对待需求,不重视需求实现与维护。 现代需求过程:包括需求的获取、分析、处理、 验证、实现和全过程的需求管理。需求管理覆 盖软件工程的整个过程。
海滨学院
传统与现代需求方法的比较:需求管理过程 需求管理功能 需求管理思想方法 一成不变的观点, 局 限 于 需 求 分 注 重 具 体 的 需 注重“描述”的方 传统 析这一个阶段 求分析方法 法和过程,是纯技 术性的转换
功能范围更广, 包括获取、分 全过程的,注 注重需求实现与维 析、处理、验 现代 重 整 个 产 品 过 护过程,处理不断 证、实现和全 程的全部 变更的系统需求 过程的需求管 理海滨学院4
需求管理存在的问题: 范围问题:系统目标、边界未被良好定义,用 户和开发团队理解不一致。 理解问题:用户不能完全了解自己需要什么, 对系统能力、局限更加不清楚;工程师不理解 用户的问题域和应用环境。 易变问题:需求随时间发生变化。
海滨学院
需求工程: 20世纪80年代中期,形成了软件工程的子领 域——需求工程。 进入20世纪90年代后,需求工程称为软件界研 究的重点之一。 Alan Davis 把需求工程定义为“直到(但不包 括)把软件分解为实际架构构件之前的所有活 动”。
海滨学院
需求工程的阶段划分:现代软件工程的需求工程 需求开发过程 需求获取 需求分析 需求处理 需求确认海滨学院7
需求管理过程 需求实现 需求跟踪 需求变更控制
3.1 需求分析的任务
确定对系统的综合要求分析系统的数据要求
导出系统的逻辑模型修正系统开发计划
海滨学院
3.1.1 确定对系统的综合要求1. 功能需求 2. 性能需求 3. 可靠性和可用性需求 4. 出错处理需求 5. 接口需求
6. 约束 7. 逆向需求 8. 将来可能提出的要求海滨学院9
3.1.2 分析系统的数据要求
建立数据模型——ER图 描绘数据结构——层次方框图和Warnier图 数据结构规范化
海滨学院
3.1.3 导出系统的逻辑模型
综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、实体-联系图、
状态转换图、数据字典和主要的处理算法描述这个逻辑模型。
海滨学院
3.1.4 修正系统开发计划
根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和 进度,修正以前制定的开发计划。
海滨学院
3.2 与用户沟通获取需求的方法
访谈面向数据流自顶向下求精
简易的应用规格说明技术快速建立软件原型
海滨学院
需求分析综合症 解决方案 需求诱导的方法:被动式沟通 用户讲故事 介绍游戏规则 输出结果 主动式沟通 幻灯片放映 动画制作 仿真演示 交互演示 现场演示 复杂程度与成本 原型开发 交互式沟通
海滨学院
3.2.1 访谈1. 正式访谈
系统分析员将提出一些事先准备好的具体问题。
2. 非正式访谈
分析员将提出一些用户可以自由回答的开放性问题, 以鼓励被访问人员说出自己的想法。 经过仔细考虑写出的书面回答可能比被访者对问题的 口头回答更准确。
3. 调查表
海滨学院
4. 情景分析技术 对用户将来使用目标系统解决某个具体问题的 方法和结果进行分析。 情景分析技术的用处: 能在某种程度上演示目标系统的行为,从而便 于用户理解,而且还可能进一步揭示出一些分 析员目前还不知道的需求。 能保证用户在需求分析过程中始终扮演一个积 极主动的角色。让用户起积极主动的作用对需 求分析工作获得成功是至关重要的。
海滨学院