《软件工程--实践者的研究方法》读后感3
第三章 过程模型
瀑布模型又被成为经典生命周期,是系统的、顺序的软件开发方法,包括通用过程模型的5个部分。沟通——项目启动、需求获取;策划——项目估算、进度计划、项目跟踪;建模——分析、设计;构建——编码、测试;部署——交付、支持、反馈。使用瀑布模型遇到的问题有:(1)实际的项目很少遵守瀑布模型提出的顺序。(2)客户通常难以清楚地描述所有的需求。(3)客户必须有耐心因为只有到项目接近尾声的时候才能有个可执行程序。
增量过程模型以迭代的方式运用瀑布模型,它为用户迅速提供一套功能有限的软件产品,第一个增量往往是核心产品。如果在项目既定的商业要求期限之前不可能找到足够的开发人员,这种情况下增量模型显得特别有用。
RAD模型,即快速应用程序开发是一用侧重于短暂的开发周期的增量软件过程模型。其每个功能分配给一个独立的RAD团队,然后再集成为一个整体。当然,RAD模型也有不足:(1)对于大型的可伸缩的项目,RAD需要大量的人力资源来创建多个相对独立的RAD团队。(2)如果开发者和客户没有为短时间内急速完成整个系统做好准备,RAD项目将会失败。(3)如果一个系统不能合理地模块化,RAD构件建立会有很多问题。(4)如果系统需求是高性能,并且需要通过调整构件接口的方式来提高性能,不能采用RAD模型。(5)技术风险很高的情况下,例如,一个新的应用开发,大量使用新技术,不宜采用RAD。
演化过程模型是迭代的过程模型。原型开发——摸着石头过河,在需求不明确,难度大的情况下使用。存在一些问题:(1)软件开发管理往往陷入失效。(2)系统性能不好,不完美。
螺旋模型是一种演进式软件过程模型。它结合了原型的迭代性质和瀑布模型的系统性和可控性特点。使用范围:大型负责系统。特点:循环迭代,每次迭代不一定是可用的,同时降低了风险;确定一系列里程碑,确保共利益者都支持可行的和令人满意的系统解决方案。螺旋的第一圈一般开发出产品的规格说明,接下来开发产品的原型系统,并在每次迭代中逐步完善,开发不同的软件版本。螺旋的每圈都会跨过策划区域,此时,需调整项目计划,并根据交付后的反馈调整预算和进度。另外,项目经理还调整完成软件开发需要迭代的次数。它的缺点是很难说服客户(特别是以合同的形式)演进的方法是可控的。他依赖大量的风险评估专家来保证成功。如果有较大的风险没被发现和管理,肯定会发生问题。
协同开发模型可以表示为一系列框架活动、软件工程动作和任务以及相应的状态。它可以用于所有类型的软件开发。基于构件的开发本质上是演化模型,需要以迭代的方式构件模型。它特点是采用预先打包的软件构件开发程序。它能够使软件复用。
面向方面的软件开发AOP。
统一过程UP以及UML建模技术。UP的开始阶段包括客户沟通和策划活动。在该阶段,初步用“用例”描述每一类用户所需要的主要特征和功能。策划活动识别各种资源,评估主要风险,定义进度计划等。细化阶段包括用户沟通和通用过程模型的建模活动,完成软件的五种视图——用例模型、分析模型、设计模型、实现模型和部署模型。UP的构建阶段和通用的差不多,产生了不俗模型。UP的转换阶段包括通用构建阶段的后期阶段以及第一部分通用部署活动。此阶段,软件增量成为可用的发布版本。UP的生产阶段与通用阶段的部署活动一致,持续地监控软件的允许并提供技术支持。五个UP阶段并不是顺序地进行,而是阶段性的并发进行。一个软件工程的工作流分布在所有UP阶段。