瀑布模型是一个经典的软件生命周期模型,一般将软件开发分为:可行性分析(计划)、需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维护等几个阶段,瀑布模型中每项开发活动具有以下特点:
(1)以从上一项开发活动接受该项活动的工作对象作为输入。
(2)利用这一输入,实施该项活动应完成的工作内容。
(3)给出该项活动的工作成果,作为输出传给下一项开发活动。
(4)对该项活动的实施工作成果进行评审。若其工作成果得到确认,则继续进行下一项开发活动;否则返回前一项,甚至更前项的活动。尽量减少多个阶段间的反复。以较小的费用来开发软件。
螺旋模型是一个演化软件过程模型,将原型实现的迭代特征与线性顺序(瀑布)模型中控制的和系统化的方面结合起来,使软件的增量版本的快速开发成为可能。在螺旋模型中,软件开发是一系列的增量发布。在早期的迭代中,发布的增量可能是一个纸上的模型或原型;在以后的迭代中,被开发系统的更加完善的版本逐步产生。
在大多数传统的生命周期中,阶段是以其中的主要活动命名的:需求分析、设计、编码、测试。传统的软件开发工作大部分强调一个序列化过程,其中一个活动需要在另一个开始之前完成。在迭代式的过程中,每个阶段都包括不同比例的所有活动。从组织管理的角度描述整个软件开发生命周期,分四个阶段:初始、细化、构造、移交,可进一步描述为周期(Cycle)、阶段(Phase)、迭代(Iteration);核心工作流从技术角度描述迭代模型的静态组成部分,包括:业务建模、需求获取、分析与设计、实现、测试、部署。
它的特点是引进了增量包的概念,无须等到所有的需求都出来,只要某个需求的增量包出来即可进行开发。虽然某个增量包可能需要进一步适应客户的需求并且更改,但只要这个增量包足够小,其影响对于整个项目来说是可以承受的。
它是瀑布模型的变种,它说明了测试活动是如何与分析和设计相联系的。
是一个面向对象且基于网络的程序开发方法论。RUP中的软件生命周期在时间上被分解为初始阶段、细化阶段、构造阶段和交付阶段。
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。敏捷软件开发宣言:个体和交互胜过过程和工具;可以工作的软件胜过面面俱到的文档;客户合作胜过合同谈判;响应变化胜过遵循计划。
此方法是由结构化系统分析和设计组成的一种信息系统开发方法。结构化方法的基本思想是将系统的生命周期划分为系统调查、系统分析、系统设计、系统实施、系统维护等阶段,这种方法遵循系统功能原理,按照事先设计好的程序和步骤,使用一定的开发工具,完成规定的文档,在结构化和模块化的基础上进行信息系统的开发工作。结构化方法的开发过程一般是先把系统功能视为一个大的模块,再根据系统分析设计的要求对其进行进一步的模块分解或组合。它是一种强烈依赖数据流图的自顶向下的建模方法;结构化分析方法的特点是利用数据流图来帮助人们理解问题,对问题进行分析。它一般包括的工具有数据流图、数据字典、结构化语言、判定表和判定树。
信息系统的规划方法主要有:企业系统规划方法(BSP方法)、战略数据规划方法、信息工程方法、关键成功因素法(CSF方法)和战略集合转化法。
(1)企业系统规划方法。它是企业战略数据规划方法和信息工程方法的基础,UC矩阵是BSP方法将过程和数据类两者作为定义企业信息系统总体结构的基础。
(2)战略数据规划方法。它的首要任务是在企业战略目标的指导下做好企业战略数据规划。在信息系统发展的历程中共有四类数据环境,即数据文件、应用数据库、主题数据库和信息检索系统。
(3)信息工程方法。它第一次把信息系统开发过程工程化了,就是有一套成熟的、规范的工程方法、技术、标准、程序和规范,使得开发工作摆脱随意性和多变性,其目标是信息系统的开发走上智能化、程序化和自动化的道路。
(4)关键成功因素法。在每个企业中都存在着对企业成功起关键作用的因素。CSF方法的目的是通过企业的CSF,确定企业业务的关键信息需求。通过对CSF的识别,找出实现目标所需要的关键信息的集合,从而确定系统开发的优先次序。
(5)战略集合转化法(SST方法),该方法将企业战略看成是一个“信息集合”,包括使命、目标、战略和其他企业属性,例如管理水平、发展趋势以及重要的环境约束等。