软件工程:第四章 软件需求与获取分析(一)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
需求分析的过程 常用的分析方法
面向数据流的结构化分析方法 (SA) 面向数据结构的Jackson 面向数据结构的Jackson方法 (JSD) Jackson方法 面向对象的分析方法 (OOA) 等
需求分析的过程
(3) 编制需求分析阶段的文档 软件需求说明书 数据要求说明书 初步的用户手册 修改、完善与确定软件开发实施计划 修改、
需求分析的过程
(10) 软件成本消耗与开发进度需求 开发有规定的时间表吗? 开发有规定的时间表吗? 软硬件投资有无限制? 软硬件投资有无限制?
需求分析的过程
(11) 质量保证
系统的可靠性要求? 系统的可靠性要求? 系统必须监测和隔离错误吗? 系统必须监测和隔离错误吗? 出错后,重启系统允许的时间? 出错后,重启系统允许的时间? 系统变化如何反映到设计中? 系统变化如何反映到设计中? 维护是否包括对系统的改进? 维护是否包括对系统的改进? 系统的可移植性? 系统的可移植性?
需求分析的过程
问题识别的另一项工作是建立分析所需要的通信 途径,以保证能顺利地对问题进行分析。 途径,以保证能顺利地对问题进行分析。
需求分析的过程
(2) 分析与综合 从信息流和信息结构出发,逐步细化所有 从信息流和信息结构出发, 的软件功能,找出系统各元素之间的联系、 的软件功能,找出系统各元素之间的联系、 接口特性和设计上的约束, 接口特性和设计上的约束,分析它们是否满 足功能要求,是否合理。最终综合成系统的 足功能要求,是否合理。 解决方案,给出目标系统的详细逻辑模型. 解决方案,给出目标系统的详细逻辑模型.
需求分析的过程 (4) 界面需求
有来自其它系统的输入吗? 有来自其它系统的输入吗? 有来自其它系统的输出吗? 有来自其它系统的输出吗?
对数据格式有规定吗? 对数据格式有规定吗?
需求分析的过程 (5) 用户或人的因素
用户类型? 用户类型? 各种用户熟练程度? 各种用户熟练程度? 需受何种训练? 需受何种训练? 用户理解、使用系统的难度? 用户理解、使用系统的难度? 用户错误操作系统的可能性? 用户错误操作系统的可能性?
需求分析的过程
(8) 资源需求
软件运行时所需的数据、软件。 软件运行时所需的数据、软件。 内存空间等资源。 内存空间等资源。 软件开发、维护所需的人力、支撑软件、开 软件开发、维护所需的人力、支撑软件、 发设备等。 发设备等。
需求分析的过程 (9) 安全保密要求
需对访问系统或系统信息加以控制吗? 需对访问系统或系统信息加以控制吗? 如何隔离用户之间的数据? 如何隔离用户之间的数据? 用户程序如何与其它程序和操作系统隔离? 用户程序如何与其它程序和操作系统隔离? 系统备份要求? 系统备份要求?
(2) 去掉具体模型中非本质因素,抽象出当前系统的逻辑模型 去掉具体模型中非本质因素,
购 书 申 学 请
生
审查 有效性
购 书 单 开发票
发 票
开领 书单
领 书 单 发书
书
学 生
学生购买教材的逻辑模型
软件需求分析的目标和任务
(3) 分析当前系统与目标系统的差别,建立目标系统的 分析当前系统与目标系统的差别, 逻辑模型 无效书单
软件需求分析的目标和任务 软件需求分析的过程 软件需求分析的原则 软件需求获取技术 结构化分析方法 原型化方法 软件需求分析的图形工具 软件需求文档 软件需求评审
软件需求分析的目标和任务
课前讨论 1.用户在软件需求分析过程中重要吗? 1.用户在软件需求分析过程中重要吗?请 用户在软件需求分析过程中重要吗 说明理由 2.软件需求分析是软件工程过程中交换意 2.软件需求分析是软件工程过程中交换意 见最频繁的步骤, 见最频繁的步骤,为什么交换意见的途径 会经常阻塞? 会经常阻塞?
软件需求分析的目标和任务
软件需求分析的目标和任务
逻辑模型 现 行 系 统 目 标 系 统 描述重要的业务 功能, 功能,无论系统 是如何实施的。 是如何实施的。 描述新系统的主要 业务功能和用户新 的需求, 的需求,无论系统 应如何实施。 应如何实施。 物理模型
描述现实系统是如何 在物理上实现的。 在物理上实现的。 描述新系统是如何实 施的(包括技术)。 施的(包括技术)。
需求分析的过程
1.你认为一个优秀系统分析员要有哪些素质? 2.为什么系统分析员工资比程序员高?
软件需求分析的目标和任务 软件需求分析的过程 软件需求分析的原则 软件需求获取技术 结构化分析方法 原型化方法 软件需求分析的工具 软件需求文档 软件需求评审
Biblioteka Baidu
软件需求分析的原则
一.需要能够表达和理解问题的数据域和功能域 需要能够表达和理解问题的数据域 数据域和 数据域包括数据流,数据内容和数据结构. 数据域包括数据流,数据内容和数据结构.
软件需求的获取
获取用户需求的主要方法是调查研究。 调查研究的主要方法有: 调查研究的主要方法有 访问面谈 收集查问资料 深入现场,跟班作业
软件需求的获取
如何编写调查研究表? 如何编写调查研究表?
软件需求的获取
某出版社系统调查表
编号
1 2 3 4 5
提出问题 您在哪个部门工作? 您在哪个部门工作? 出版业务流程是什么? 出版业务流程是什么? 您每日都处理那些文件、数据、报表? 您每日都处理那些文件、数据、报表? 工作中手工处理特别麻烦的事情是什么? 工作中手工处理特别麻烦的事情是什么? 工作中手工处理什么问题解决不了? 工作中手工处理什么问题解决不了?影响效率的问题 有哪些? 有哪些? 您认为提高工作效率,节省工作时间, 您认为提高工作效率,节省工作时间,减轻工作强度 可采取哪些办法? 可采取哪些办法?
需求包括的内容(类型): 需求包括的内容(类型):
(1) 功能 (2) 性能 (3) 环境 (4) 界面 (5) 用户或人的因素 (6) 文档 (7) 数据 (8) 资源 (9) 安全保密 (10)软件成本消耗与开发进度 (10)软件成本消耗与开发进度 (11)质量保证 (11)质量保证
需求分析的过程 (1)功能需求 (1)功能需求 系统做什么? 系统做什么? 系统何时做什么? 系统何时做什么? 系统何时及如何修改或升级? 系统何时及如何修改或升级?
软件需求分析的目标和任务
需求分析的任务就是借助于当前系统的逻辑 需求分析的任务就是借助于当前系统的逻辑 模型导出目标系统的逻辑模型, 模型导出目标系统的逻辑模型,解决目标系 做什么” 的问题。 统的 “做什么” 的问题。 通俗地说,需求分析的任务就是准确地定义 通俗地说,需求分析的任务就是准确地定义 未来系统的目标, 未来系统的目标,确定为了满足用户的需求 系统必须做什么。 需求规格说明书> 系统必须做什么。用 <需求规格说明书> 规 需求。 范的形式准确地表达用户的需求 范的形式准确地表达用户的需求。
软件需求分析的目标和任务
软件需求分析的目标是深入描述软件的功能 和性能, 和性能,确定软件设计的约束和软件同其它系统 元素的接口细节,定义软件的其它有效性需求。 元素的接口细节,定义软件的其它有效性需求。
软件需求分析的目标和任务
软件需求的几点说明 需求分析研究的对象是软件项目的用户要求 准确地表达被接受的用户要求 确定被开发软件系统的元素
需求分析的过程
(4) 需求分析评审
作为需求分析阶段工作的复查手段, 作为需求分析阶段工作的复查手段 , 应该对功 能的正确性、文档的一致性、完备性、 能的正确性 、 文档的一致性 、 完备性 、 准确性和 清晰性,以及其它需求给予评价。 清晰性,以及其它需求给予评价。 为保证软件需求定义的质量, 为保证软件需求定义的质量,评审应以专门指定 的人员负责,并按规程严格进行。 的人员负责 , 并按规程严格进行 。 评审结束应有 评审负责人的结论意见及签字。除分析员之外, 评审负责人的结论意见及签字 。 除分析员之外 , 用户/需求者,开发部门的管理者,软件设计、 用户 / 需求者 , 开发部门的管理者 , 软件设计 、 实现、测试的人员都应当参加评审工作。 实现、测试的人员都应当参加评审工作。
软件需求分析的目标和任务
为什么需求分析比较困难? 为什么需求分析比较困难?
客户说不清楚需求 需求自身不断变动 分析人员或客户理解有误
软件需求分析的目标和任务
理解有误引出的二则笑话
1.有个外星人间谍潜伏到地球刺探情报, 1.有个外星人间谍潜伏到地球刺探情报,它给上司写了 有个外星人间谍潜伏到地球刺探情报 一份报告: 主宰地球的是车。它们喝汽油, 一份报告:“主宰地球的是车。它们喝汽油,靠四个轮 子滚动前进。嗓门极大,在夜里双眼能射出强光。 子滚动前进。嗓门极大,在夜里双眼能射出强光。…… 有趣的是,车里住着一种叫作‘ 的寄生虫, 有趣的是,车里住着一种叫作‘人’的寄生虫,这些寄 生虫完全控制了车。 生虫完全控制了车。” 2.有一个软件人员滔滔不绝地向客户讲解在“ 2.有一个软件人员滔滔不绝地向客户讲解在“信息高速 有一个软件人员滔滔不绝地向客户讲解在 公路上做广告”的种种好处,客户听得津津有味。最后, 公路上做广告”的种种好处,客户听得津津有味。最后, 心动的客户对软件人员说: 好得很, 心动的客户对软件人员说:“好得很,就让我们马上行 动起来吧。 动起来吧。请您决定广告牌的尺寸和放在哪条高速公路 我立即派人去做。 上,我立即派人去做。”
购书单 审查并 学
生 开发票
发票
开领 书单
领书单
学 生
计算机售书系统的逻辑模型
软件需求分析的目标和任务
通常软件开发项目是要实现目标系统的物 理模型 目标系统的具体物理模型是由它的逻辑模 型经实例化,即具体到某个业务领域而得 型经实例化, 到的
软件需求分析的目标和任务 软件需求分析的过程 软件需求分析的原则 软件需求获取技术 结构化分析方法 原型化方法 软件需求分析的工具 软件需求文档 软件需求评审
软件需求分析的目标和任务 需求分析过程示意图
(1) 通过对现实环境的调查,获得当前系统的物理模型 通过对现实环境的调查, 购 书 购 领 发 申 书 书 书 请 教务科 单 会计室 票 出纳员 单 学 教材科 107 206 206 303 生 王 张 李 赵
学 生
学生购买教材的物理模型
软件需求分析的目标和任务
需求分析的过程 (6)文档需求 (6)文档需求 需哪些文档? 需哪些文档? 文档针对哪些读者? 文档针对哪些读者?
需求分析的过程 (7) 数据需求
输入、输出数据的格式? 输入、输出数据的格式? 接收、发送数据的频率? 接收、发送数据的频率?
数据的准确性和精度? 数据的准确性和精度?
数据流量? 数据流量? 数据需保持的时间? 数据需保持的时间?
输入数据 转换1 中间数据 数据 存储 附加数据 转换2 结果数据
软件需求分析的原则
二.要能以层次化的方式对问题进行分解和不断细化
软件需求分析的原则
三.要给出系统的逻辑视图和物理视图 要给出系统的逻辑视图 逻辑视图和 逻辑视图给出软件要达到的功能和处理数据之 间的关系 物理视图给处理功能和数据结构的实际表示形 式
软件需求分析的目标和任务 软件需求分析的过程 软件需求分析的原则 软件需求获取技术 结构化分析方法 原型化方法 软件需求分析的图形工具 软件需求文档 软件需求评审
软件需求的获取 需求获取面临的挑战: 需求获取面临的挑战:
(1)问题空间的理解 (1)问题空间的理解 (2)人与人之间的通信 (2)人与人之间的通信 (3)需求的不断变化 (3)需求的不断变化
需求分析的过程
软件需求分析过程图
编制需求 分析文档
问题识别
分析与综合
需求评审
需求分析的过程
(1) 问题识别 从系统的角度来理解软件并评审软件范围是 否恰当 确定对目标系统的综合要求,即软件的需求 确定对目标系统的综合要求, 提出这些需求实现条件, 提出这些需求实现条件,以及需求应达到的 标准
需求分析的过程
需求分析的过程 (2) 性能需求
软件开发的技术性指标 例如: 例如: 存储容量限制 执行速度、 执行速度、相应时间 吞吐量
需求分析的过程 (3) 环境需求
硬件设备:机型、外设、接口、 硬件设备:机型、外设、接口、
地点、分布、温度、 地点、分布、温度、 湿度、磁场干扰等 湿度、
软件: 软件:
操作系统 网络 数据库