敏捷软件需求阅读笔记01

       寒假里,根据老师的要求需要阅读一本关于软件需求方面的书籍。经过在豆瓣网上的查找和比较,最终选择了这本《敏捷软件需求——团队、项目群与企业级的精益需求实践》,这本书的原作者是Dean Leffingwell,由刘磊、付庆冬、李建昊和雷迅共同编译。作者在序中写到:为什么一些产品开发项目达不到预定的经济目标呢?研究表明,80%~85%的项目失败归咎于需求不正确。这也是为什么管理软件需求成为现在整个软件工程行业十分重要的研究方向。

                                                                                                                                                                    图一 书封面

      在开发过程中,环境不断在变,竞争对手引入新的产品,客户需求发生演变。这也就说明在开始设计之前开发实际需求工件不可行,那么也就证明了过去常用的甚至现在仍有人在使用的瀑布模型不可取,瀑布模型指的是从需求——设计——实现——验证——部署一条线,在瀑布模型中的需求形成了一个内在的铁三角陷阱,人们普遍认为,瀑布模型中的那个简单的需求框具有欺骗性,暗示我们可以提前合理的确定一系列需求,然后以他们为基础来估算项目的进度和预算。实际上,“固定需求范围”这种假设才是导致项目失败的根本原因。

                                                                                                                                                                 图二 铁三角陷阱

      这表明,完整定义需求,之后经过较长时间才交付这些需求,这种方式已经不再合乎时宜。业务需求的频繁变更表明,需求一旦形成文档就不会有重大变动,任何这样的假定都是有根本缺陷的。另外,铁三角图中还少了另一个重要的维度——质量,由于成本、进度、需求都是固定的,质量就成为了团队唯一能影响的变量。

      从上面的叙述中可以得知,软件行业必须必须认真考虑本质上截然不同的过程模型。由于瀑布模型的失败,在上个世纪八九十年代出现了迭代式过程,一般情况下,我们可以把这些过程视为一个包括多种迭代式方法的渐进连续体。这些方法包括:螺旋模型、快速应用开发(RAD)、统一软件过程(RUP)。在螺旋模型中,需求仍占据早期的强势地位,在螺旋最开始的周期中,主要是理解需求,并且要在正式开发之前验证需求。在此之后,螺旋模型开始一个更大的"螺旋".RAD现在被认为是一个更笼统的词汇。现在它通常泛指一些轻量级的方法,这些方法使用第四代语言和框架——可以加速提供可工作的软件。从其需求角度来看,如果能在需求变更之前尽快完成构建,就更容易成功。如果判断有误,则可以通过一些廉价的轻量级工具,以更快的速度重构。RUP主要来源于螺旋模型,适用于对健壮性、伸缩性和可扩展性有严格要求的大规模应用,它是一种广泛采用的增量式软件过程模型。RUP认为各种活动有必要在生命中周期各阶段(导入、细化、构建、移交)交叉进行,需求细化和需求变更是一个贯穿生命周期的持续性过程。

                                                                                                                                                                图三  螺旋模型

                                                                                                                                                                      图四 RAD

                                                                                                                                                                        图五 RUP

在迭代模型中,采用“基于发现”的方式,采用更轻量的文档和模型。迭代式过程能够通过早期迭代更快地发现“真正的用户需求”,从而大大降低项目的总体风险。

原文地址:https://www.cnblogs.com/DaisyYuanyq/p/8496737.html