- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件需求分析思考
软件需求分析思考
摘要:软件需求分析是软件项目开发的一个重要阶段,在整个软件开发过程中起到十分重要的作用,软件开发的成政和质量,在很大程度上取决于软件需求分析所采取的方法、技术和原则,本文介绍了软件需求分析的相关概念、任务、过程,并提出了为减少软件开发风险。需求分析的过程中应注意的若干问题。
关键词:软件需求分析;任务;过程;风险
1 什么是软件需求
一般可以从用户角度(即系统的外部行为)和从开发者角度(即系统的内部特性)两个方面来阐述软件需求的定义。
从用户角度一般认为软件需求是“指明系统必须实现什么的规格说明”。它描述了系统的行为、特性或属性,是在开发过程中对系统的约束。
从开发者角度可以认为需求是“用户所需要的并能触发一个程序或系统开发工作的说明”。有些需求分析专家拓展了这个概念:“从系统外部能发现系统所具有的满足于用户的特点、功能及属性等”。
从上面这些不同形式的定义不难发现:这些定义都强调产品是什么样的,而并非产品是怎样设计和构造的。很难给软件需求一个准确的定义,真正的“需求”实际上在客户的脑海里,但一般情况下,用户并不能描述自己的需要。只就需要系统分析人员根据用户的自己语言的描述整理出相关的需要再进一步和客户核对。
2 软件需求的类型
软件需求包括三个不同的层次:业务需求、用户需求和功能需求(也包括非功能需求)。
业务需求:反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。
用户需求:文档描述了用户使用产品必须要完成的任务,这在使用实例文档或方案脚本说明中予以说明。
功能需求和非功能需求:功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。作为功能需求的补充,软件需求规格说明还应包括非功能需求,它描述了系统展现给用户的行为和执行的操作等。它包括产品必须遵从的标准、规范和合约;外部界面的具体细节;性能要求;设计或实现的约束条件及质量属性。所谓约束是指对开发人员在软件产品设计和构造上的限制。质量属性是通过多种角度对产品的特点进行描述,从而反映产品功能。多角度描述产品对用户和开发人员都极为重要。
下面通过与文字处理系统相关的部分需求来说明需求的分类。业务需求是:“用户能有效地纠正文档中的拼写错误”,该产品的包装盒封面上可能会标明这是个满足业务需求的拼写检查器。而对应的用户需求可能是“找出文档中的拼写错误并通过一个提供的替换项列表来供选择替换拼错的词”。同时,该拼写检查器还有许多功能需求,如找到并高亮度提示错词的操作;显示提供替换词的对话框以及实现整个文档范围的替换。
3 需求分析的任务
开发软件系统最为困难的部分就是准确说明开发什么。最为困难的概念性工作便是编写出软件需求规格说明,所谓软件需求规格说明是软件应满足的全部需求,并可以用文档的方式完整和精确地陈述这些需求,包括所有面向用户、面向机器和其它软件系统的接口。这项工作非常关键,一旦做错,将最终会给系统带来极大损害,并且以后再对它进行修改也极为困难。一个质量较高的软件需求规格说明通常应具备完整性、正确性可行性、无二义性等基本特征。
4 需求分析过程
可把整个软件需求工程研究领域划分为需求开发和需求管理两部分。需求开发可进一步分为:问题获取、分析、编写规格说明和验证四个阶段。这些子项包括软件类产品中需求收集、评价、编写文档等所有活动。需求开发活动包括以下几个方面:确定产品所期望的用户类别;获取每个用户类的需求;了解实际用户任务和目标以及这些任务所支持的业务需求;分析源于用户的信息以区别用户任务需求、功能需求、业务规则、质量属性、建议解决方法和附加信息;将系统级的需求分为几个子系统,并将需求中的一部份分配给软件组件;了解相关质量属性的重要性;与客户商讨实施优先级的划分;将所收集的用户需求编写成文档和模型;评审需求规格说明,确保对用户需求达到共同的理解与认识,并在整个开发小组接受说明之前将问题都弄清楚。
需求管理需要建立并维护在软件工程中同客户达成的合同。这种合同都包含在编写的需求文档与模型中,客户的接受仅是需求成功的一半,开发人员也必须能够接受他们,并真正把需求应用到产品中。通常的需求管理活动包括:定义需求基线(迅速制定需求文档的主体);评审提出的需求变更、评估每项变更的可能影响从而决定是否实施它:以某种可控制的方式将需求变更融入到项目中:使当前的项目计划与需求一致;估计变更需求所产生影响并在此基础上协商新的承诺,并体现在项目解决方案上;让每项需求都能与其对应的设计、源代码和测试用例联系起来以实现跟踪;在整个项目过程中跟踪需求状态
原创力文档


文档评论(0)