软件开发如何应对非功能性需求变更?
需求变更本应是客户的权力,如果确是需要变更,当然要满足客户需要。但问题是不
能让变更权力滥用?/p>
把一些无关痛痒的非功能性需求变更宠惯养成堂而皇之的变更?/p>
对于?/p>
功能性需求客户总会有新的想法,
项目好像总没有办法终结?/p>
以前当出现这种情况时?/p>
我?/p>
觉得很沮丧,
觉得自己非常不幸?/p>
怎样会碰上这样的客户?/p>
可在读了
《设计模式精?/p>
?/p>
Design
Patterns Explained
)》一书的一段话后,我恍然大悟,这不是我的错,世界原来就是这?/p>
子的啊,永远不变的就是变化?/p>
令人烦恼的非功能性需求变?/p>
在软件开发中?/p>
大家都会遇到过这样的问题:客户的一个新想法,就推翻了之前与?/p>
户经过再三讨论而确认定下来的需求?/p>
如果是功能性需求变更还会让人容易接受一些,
毕竟
功能性需求不实现的话?/p>
是会大大影响到软件产品的质量?/p>
但现在我所负责的这个开发项?/p>
中遇到的都是一些非功能性的变更
,
而且许多是看起来无关痛痒的、鸡毛蒜皮的变更?/p>
?/p>
1
)什么是非功能性需求?
?/p>
IEEE
中,软件需求的定义是:用户解决问题或达到目标所需的条件或功能。一?/p>
包含业务需求?/p>
用户需求、功能需求、行业隐含需求和一些非功能性需求?/p>
业务需求反映了
客户对系统?/p>
产品高层次的目标要求?/p>
功能需求定义了开发人员必须实现的软件功能?/p>
所?/p>
非功能性需求,
是指为满足用户业务需求而必须具有除功能需求以外的特性?/p>
包括系统性能?/p>
可靠性、可维护性?/p>
易用性和对技术和对业务适应性等?/p>
其中最常见的是软件界面、操作方
便等一系列要求?/p>
?/p>
2
)非功能性需求变更的特点
让我们从客户角度和开发人员角度去看看非功能性需求的特点?/p>
首先?/p>
有些非功能?/p>
小需求从客户角度看起来工作量不大?/p>
但是实际上开发人员要耗费比较长的时间去完成这?/p>
小功能。其次,许多非功能性需求,如界面美观、操作方便等都是客户头脑一热、或领导一
拍脑袋就部署下去的需求,往往是原来在需求分析阶段所没有注意的内容?/p>
其实?/p>
非功能性需求是常常被轻视,
甚至被忽视的?/p>
原因是非功能性需求描述很困难?/p>
它很难像功能性需求那样,
可以通过结构化和量化的词语来描述清楚?/p>
在描述这类需求时候,
我们经常采用软件性能要好?/p>
操作要方便?/p>
软件界面要美观大方等较模糊的描述词语?/p>
例如?