- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四讲需求分析;提纲
需求工程概述
需求获取
需求分析、协商与建模
需求规约与验证
需求管理
;需求工程概述
什么是软件需求?
用户对目标系统在功能、行为、性能等方面的要求
软件需求的本质是什么?
明确软件到底“做什么”,以及应具备的性能
什么是需求分析?
对软件需求的理解、分析与表达;功能需求与非功能需求
功能需求应明确软件的行为
非功能需求主要是约定软件的质量标准
用户需求与领域需求
用户需求:只针对某个特定用户
领域需求:针对某个行业的普遍规律
什么是需求工程? 教材P47
运用相关技术与方法进行需求分析的过程。细分为:需求获取、需求分析与协商、系统建模、需求规约、需求验证以及需求管理6个阶段。
;需求工程的六个阶段;I. 需求获取
通过与用户的交流,了解业务现状以及对待开发系统的期望
需求获取收集的“原始材料”为进行需求分析提供了基础
II. 需求分析与协商
对需求进行分类组织,分析需求之间的关系
检查需求的一致性、重叠和遗漏的情况
根据用户的需要对需求进行排序。
在需求获取阶段,经常出现以下问题:
提出的要求超出软件系统可以实现的范围或实现能力
不同的用户提出了相互冲突的需求
;III. 系统建模
借助建模技术对获取的需求信息进行分析和表达,排除错误和弥补不足,确保需求文档正确反映用户真实意图
常用的分析和建模方法
IV. 需求规约(Specification) (编写文档)
通过建立完整的信息描述、详细的功能和行为描述、性能需求和设计约束的说明、合适的验收标准,给出对目标软件的各种需求
软件需求规约是分析任务的最终产物
需求规约作为用户和开发者之间的一个协议,在之后的软件工程各个阶段发挥重要作用
;V. 需求验证 (评审)
需求开发阶段工作的复查手段
对功能的正确性、完整性和清晰性,以及其它需求给予评价
为保证软件需求定义的质量,评审应以专门指定的人员负责(应该是需求分析人员之外的其他人员),并按规程严格进行
VI. 需求管理 (维护一致性)
一种获取、组织并记录系统需求的系统化方案:对所有需求工??相关活动的规划和总体控制
需求变更管理:一个使用户与项目团队对不断变更的系统需求达成并保持一致的过程(变更的记录、分析、变更过程管理、追踪等)
;需求确认与需求分析
都需要对系统需求中的遗漏和冲突进行识别和分析
区别
需求分析处理的是未整理的原始需求,此时发现的问题是客户的问题
需求确认的对象是经分析后形成的需求规格说明,此时发现的问题是需求分析人员的问题,此外还需要考虑需求文档是否满足相应的质量标准; 在实际的开发中,这些需求开发活动不会是线性地、顺序地完成。实际上,这些活动是交叉的、递增的和反复的。;需求获取;具体每一种需求
功能需求:
功能
(1)系统将做什么?
(2)系统什么时候做?
(3)有多种操作模式吗?
(4)必须执行什么种类的计算或数据转换?
(5)对可能发生的激励事件的反应是什么?
数据
(1)输入、输出数据的格式应该是什么?
(2)在任何时间都必须保留任何数据吗?;过程约束
资源
(1)构造系统需要哪些材料、人员或其他资源?
(2)开发人员应该具有怎样的技能?
文档
(1)需要多少文档?
(2)文档是联机的,还是印刷的,还是两种都要?
(3)每种文档针对哪些读者?
标准
国家标准、军用标准
;设计约束
物理环境
(1)设备安放在哪里?
(2)在一个地方还是多个地方?
(3)是否有任何环境的限制,例如温度、湿度或者电磁干扰?
(4)是否对系统的规模有所限制?
(5)是否在电源、供热或空调上有所限制?
(6)是否会因为现有的软件构件而对编程语言所有限制?;接口
(1)输入是来自一个还是多个其他系统?
(2)输出是否传送到一个或多个其他系统?
(3)输入/输出数据的格式是否是预先规定的?
(4)数据是否必须使用规定的介质?
用户
(1)谁将使用系统?
(2)将会有几种类型的用户?
(3)每类用户的技术水平如何?
;质量需求
性能
(1)有没有执行速度、响应时间或吞吐量的约束?
(2)使用什么效率测量方法测量资源使用和响应时间?
(3)多少数据将流经系统?
(4)数据接收和发送的时间间隔是多少?
可用性和人的因素
(1)每类用户需要什么类型的培训?
(2)用户理解并使用系统的难易程度如何?
(3)就一个系统而言,在多大程度上防止用户误用系统?
;安全性
(1)必须控制对系统或信息的访问吗?
(2)应该将每个用户的数据和其他用户的数据隔离吗?
(3)应该将用户的程序和其他程序以及操作系统隔离开吗?
(4)要采取预防措施以防止盗窃或蓄意破坏吗?
可靠性和可用性
文档评论(0)