为什么说良好的需求是软件开发关键点?

在高质量软件项目中,需求工程的作用举足轻重。统计表明,软件缺陷一半以上的原因来自于需求分析中的问题。仅凭这个数字,就足以告诉我们提升需求开发水平是多么重要,这正是在软件项目中,我们需要对需求分析下功夫的最大原因。


所谓需求,就是构思未来的产品,说明产品应该是什么样的,定义开发的行动准则,并且定义产品的验收标准。





大部分在软件开发中遇到的问题,都是由于收集、编写、协商、修改产品需求过程中的手续和作法(方法)失误带来的。出现的问题包括:非正式信息的收集,未确定的或不明确的功能,未发现或未经沟通的假设,不完善的需求文档,以及突发的需求变更要求。这一切都告诉我们,必须深入地研究和建立良好的需求工程方法。


需求是站在用户的视角看问题,而设计是依据需求,站在设计人员的视角看问题。





这种视角的变化形成了分析与设计工作风格上有很大的不同。也就是说:需求专注于要做什么,而不是怎么做;设计专注于怎么做,但它的依据是需求。事实上这种工作风格的不同,本身也反映了企业降低机会成本的追求。


良好需求的特点


把所有的需求集成起来,就成为“需求规格说明”。从整体文档编写的角度上看,好的“需求规格说明”还应该具备如下特点:


完整性:不能遗漏任何必要的需求信息。注重用户的任务而不是系统的功能将有助于你避免不完整性。


一致性:一致性是指与其它软件需求或高层(系统,业务)需求不相矛盾。在开发前必须解决所有需求间的不一致部分。


可修改性:在必要时应维护与修订“需求规格说明”。这就要求每项需求要独立标出,并与别的需求区别开来。每项需求只应在“需求规格说明”中出现一次。这样更改时易于保持一致性。


可跟踪性:应能在每项软件需求与它的业务和设计元素、源代码、测试用例之间建立起准确的跟踪关系。


对于严肃的工程活动而言,良好的需求不但是必须的,也是项目成功的根本保障。


软件工程历经数十年的发展,已经形成了一些行之有效的标准,比较典型的是 GJB5000A,这个标准是目标驱动的。研究标准的意义是使我们的思考有是非、有依据,更可以让我们学会需求开发的途径,以及明确在需求开发中需要考虑哪些问题。








在 GJB 5000A 中,需求与整个工程过程的关系如下图所示。





要提升需求分析的水平关键之处在于:发现和纠正缺点要比处处做的好容易。因此我们需要直面现实中的问题,更深入的提炼出一些东西,去寻找解决问题的方法。凡事都有逻辑,我们需要理解一种体系和内在的逻辑关系,需要提炼出一套思想和方法论。


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值