软件卡哺需求开发的18般武艺 (1)

在《软件工程最佳实践》一书中,罗列了18种软件需求方法论,这里逐一介绍如下:

引入用户代表的敏捷开发需求

“用户代表”代表的是用户,决定的是需求。有了用户代表,需求的确认和变更,以及需求优先顺序的确定,都会便捷很多。这种方法完美契合敏捷的“交流胜于文档”的思想。唯一的问题是,这种方法论只能适用于小型软件的开发,对于大型软件来说,它就无能为力;甚至某些特定的嵌入式系统软件,如燃油喷射控制系统,它也会力不从心。

需求蔓延

需求蔓延指的是软件开发完成后的功能点高于需求开发结束时的功能点。多出的功能点就是蔓延的需求。使用联合应用设计和原型模拟等方法,可以抑制甚至杜绝需求蔓延。

遗留应用的数据挖掘

对于那些“古老”的软件,代码的变更常常会领先需求和设计文档的变更几条街。如果因为维护或者其他原因,需要从这些软件收集需求,是没有办法依靠这些落后的文档,我们只能从代码中来提取需求。这种需求提取,除了代码审查的手工操作之外,还可以借助一些自动化工具。

可执行语言

可执行语言是一些自动化工具产生的,用它来对需求进行描述,可以帮助我们分析需求。MSDN就是目前已知的提供关于可执行语言信息的最好的网站。而且,在理论上,可执行语言还可以利用静态分析工具进行解析,以去除可执行语言中存在的逻辑错误和遗漏。

焦点小组

焦点小组是一个用户集合,这些用户会参与软件的功能、性能的讨论。焦点小组可以对软件产品提供建议,甚至提供软件原型。焦点小组非常适合多用户需求的场景。

功能性需求和非功能性需求

功能性需求会增加软件的规模,它可以用功能点估算方法来进行度量;非功能性需求是用户关心的一些限制和约束,如性能指标、可靠性知识,它可能需要一些工作量,但通常不会增加软件的规模。

联合应用设计

联合应用设计是正式的需求审查会,参会人员包括用户和开发方的架构师和设计师,双方使用需求检查表进行逐项需求的审查。联合应用设计是收集大型软件需求最有效的方法。

你可能感兴趣的:(软件卡哺需求开发的18般武艺 (1))