软件项目-生命周期模型指南-模板

软件项目-生命周期模型指南-模板
软件项目-生命周期模型指南-模板

生命周期模型指南

版本:V1. 0

生命周期模型指南

目录

1介绍 (1)

1.1目的 (1)

1.2范围 (1)

2术语表 (1)

3指南概述 (1)

4瀑布模型 (2)

4.1定义 (2)

4.2流程图 (2)

4.3阶段描述 (3)

4.3.1项目启动阶段 (3)

4.3.2需求分析阶段 (3)

4.3.3概要设计阶段 (3)

4.3.4详细设计阶段 (3)

4.3.5实现阶段 (4)

4.3.6测试阶段 (4)

4.3.7系统上线阶段 (4)

4.3.8项目收尾阶段 (4)

4.4WBS划分 (4)

4.5优缺点 (4)

4.6适用项目 (5)

生命周期模型指南1 介绍

1.1 目的

本文件的目的是定义公司软件开发常用的生命周期模型,用于指导项目组在进行项目策划时,根据项目特点和模型的优缺点进行模型选择。

1.2 范围

适用于公司所有软件开发类项目。

2 术语表

3 指南概述

软件生命周期模型是经过多次实践总结出来适合于不同项目使用的经典、有效的软件开发方法,它按照软件生命周期的各个阶段划分任务,依照一定的规则和步骤,有序地进行软件开发。选用恰当的软件生命周期模型进行软件开发,可以提高产品质量;降低项目管理难度;缩短开发进度;便于项目状态跟踪;为过程改进和度量提供基线;改善组织级的过程弱势,提高过程能力成熟度级别。

为了便于分类汇总和统计各种生命周期模型的指标和数据,结合公司软件开发过程的实际,我们选择了常用的几种基本模型进行了描述,项目组在进行项目策划时,可以根据模型的适用前提、优缺点和项目的实际需要进行选择,参考下面各种模型的生命周期模型示意图,结合标准过程刻画出项目自己的生命周期模型图,记录在《项目已定义过程》中,并进行评审。

当本指南中定义的模型不能满足项目组需要,项目组可以将新引入的模型进行定义并提交EPG,经EPG审批后纳入本指南中。

生命周期模型指南4 瀑布模型

4.1定义

瀑布模型是最基本也是最常用的一种生命周期模型,又称线性模型。瀑布模型的开发活动自上而下、相互衔接,满足以下特征:

●从上一项活动接受该项开发活动的工作对象,作为输入;

●利用这一输入实施该项开发活动完成的内容;

●给出该项开发活动的工作成果,作为下一项开发活动输出;

●对该项开发活动实施的工作进行评审。若评审通过,则继续进行下一项开发活动;否则返回前项。

采用瀑布模型的项目依照该模型选定的阶段顺序进行,每一个阶段的工作产品都是下一个阶段工作

的输入,每一个阶段只有在上一个阶段通过检查,确认完成后才开始新的阶段工作,所以项目必须有明

确的阶段里程碑,在每个阶段结束时都要进行里程碑评审,以判定是否可以开始下一阶段的工作。例如:在项目策划没有完成时,需求分析和设计工作就不能进行,同样,在需求分析和设计没有完成时就不开

始编码。

瀑布模型中,每个阶段完成后,可以在下一个阶段修改上一个阶段的工作产品,但是必须按照基线变更进行管理,如果发生变更,需要回溯前面所有阶段的工作产品,以便使工作产品保持一致。

4.2 流程图

瀑布模型的示意图如下:

项目启动

需求分析

概要设计

详细设计

实现

测试

上线

项目收尾注:标记为的阶段为必选的里程碑,该阶段完成时需进行里程碑评审活动,并对其输出进行严格

生命周期模型指南

的变更控制。标记为是可选的里程碑,项目可以根据项目特点和《组织标准过程裁剪指南》,选择是否作为项目里程碑。

4.3 阶段描述

项目生命周期模型基本按照活动的大阶段描述,在项目实际使用时需结合组织标准过程集合选取每个生命周期阶段的过程元素,从而构成项目的标准过程集合,建立项目的生命周期模型。

4.3.1 项目启动阶段

项目启动阶段主要包括签发任务书、初始估算、制定项目总体计划等工作,具体活动按照《项目启动过程》进行。项目启动阶段主要输出《项目任务书》、《项目总体计划》和《项目初始估算表》等文档。

4.3.2 需求分析阶段

需求分析阶段包括了用户需求调研和需求分析、项目策划三个过程。

需求调研过程输出《用户需求说明书》,具体活动按照《需求调研过程》进行,需求分析过程出《系统需求规格说明书》。具体活动按照《需求分析过程》进行。

需求分析阶段为了降低开发风险,并与用户较好地沟通,可采用原型模型获得明确的用户需求。

项目策划过程主要包括风险产品WBS、识别项目风险、制定项目计划等活动。

需求输出文档必须纳入基线管理。

4.3.3 概要设计阶段

概要设计阶段根据已经基线化的需求文档进行,包括总体架构设计、数据模型概要设计、人机交互

设计、设计测试方案和测试用例等活动。概要设计输出《概要设计说明书》、《测试用例》、《测试方案》,

设计输出文档也必须纳入基线管理。

其中测试相关活动可以延续到详细设计阶段进行。具体活动按照《概要设计过程》和《测试过程》进行。

4.3.4 详细设计阶段

详细设计阶段包括详细设计过程和实现过程。包括编码规范讲解和学习、新技术讲解和学习、数据建

生命周期模型指南模、模块功能设计、模块实现设计、流程详细设计等活动,详细设计阶段输出《详细设计说明书》。

具体活动按照《详细设计过程》和《实现过程》进行。

4.3.5 实现阶段

实现阶段的主要活动包括编写代码、系统集成、进行代码走查、单元测试,输出为通过单元测试的可运行的程序。具体活动按照《实现过程》进行。

4.3.6 测试阶段

测试阶段包括模块测试、系统测试和用户测试、缺陷修复等活动。其中模块测试一般会提前到实现阶段开始。具体活动按照《测试过程》和《实现过程》进行。

4.3.7 系统上线阶段

系统上线阶段主要包括搭建上线环境、进行试运行、系统上线等活动。该阶段的主要目的是将将系统部署到用户环境验收通过。具体活动按照《系统上线过程》进行。

4.3.8 项目收尾阶段

项目收尾阶段主要包括项目总结和内部交付等活动。具体活动按照《项目收尾过程》进行。

4.4 WBS划分

4.5 优缺点

●优点:

?为软件开发工作提供一种结构化、有序的方法

?使用简单,按照顺序开展每一个阶段的工作,一个结束再开始一个

?可以及早发现问题,降低项目的阶段成本

?过程控制可见性较强

?过程记录比较全,易于维护

●缺点:

?项目从开始到发布可见的版本需要较长的周期,用户直到项目开发晚期才能了解产品的真实面貌和质量

?缺乏灵活性,不能跨阶段操作

生命周期模型指南

? 文档多 ? 不易变更

4.6 适用项目

● 产品定义(或项目需求)和技术方案非常明确,对用户的需求有很好的了解,需求变更较少; ● 对质量的要求高于对成本和进度的要求; ● 开发队伍技术力量较弱或缺乏经验。

5 增量模型

5.1 定义

增量模型是通过对用户需求的判断,在定义了用户要求和系统需求,进行总体构架设计后,采用序列化地创建产品的方法进行开发的过程。每一个线性序列产生软件的一个可发布的“增量”, 第一个建立的增量完成预计功能/性能的一部分(往往包含了核心功能,即实现了基本的需求),下一个增量实现另外的部分,增加更多的功能/性能,然后与前面实现的增加进行集成,如此循环,直到系统完全实现。

5.2 流程图

项目启动

需求分析

概要设计

详细设计

上线

项目收尾

实现详细设计

详细设计

实现实现

测试

项目准备

上线上线测试测试

注:标记为 的阶段为选定的里程碑,该阶段完成时需进行里程碑评审活动,并对其输出进行严格

生命周期模型指南的变更控制;标记为是可选的里程碑,项目可以根据增量的的实际情况确定是否设置,增量循环的循环

体内也可以根据项目的实际情况设置更多的里程碑。

5.3 阶段描述

阶段同瀑布模型。在策划阶段需要确定增量的数目、规模、每一增量发布的时间表,在概要设计阶段需要考虑各增量集成的顺序、接口等问题,制定集成策略。当各增量的关联性小,可以从需求开始划分各增量;

项目根据自己的特点、集成策略决定是否需要划分单独的测试和上线阶段。

5.4 WBS划分

WBS划分同瀑布模型。但每个增量中会包括瀑布模型中的详细设计、实现、测试和上线阶段的活动。

5.5 优缺点

●优缺点该模型的优点:

?在达到初始需求之前可降低成本

?可快速生产出可使用的系统

?降低在开发期间用户需求改变的可能性

?能够有计划地管理技术风险

●该模型的缺点:

?项目管理风险加大

?各增量的集成难度增大,在概要设计阶段需要制定详细的集成策略

5.6 适用项目

●用户核心需求非常清楚;

●项目人员不足;

●产品可以分割成不同的阶段分别完成。

几种常见的测试模型汇总

几种比较常见的测试模型汇总: V模型 V模型最早是由Paul Rook在20世纪80年代后期提出的,旨在改进软件开发的效率和效果。V模型反映出了测试活动与分析设计活动的关系。从左到右描述了基本的开发过程和测试行为,非常明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系。 V模型指出,单元和集成测试应检测程序的执行是否满足软件设计的要求;系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;验收测试确定软件的实现是否满足用户需要或合同的要求。 但V模型存在一定的局限性,它仅仅把测试作为在编码之后的一个阶段,是针对程序进行的寻找错误的活动,而忽视了测试活动对需求分析、系统设计等活动的验证和确认的功能。 W模型(也叫双V模型)

W模型由Evolutif公司公司提出,相对于V模型,W模型增加了软件各开发 阶段中应同步进行的验证和确认活动。W模型由两个V字型模型组成,分别代 表测试与开发过程,图中明确表示出了测试与开发的并行关系。 W模型强调:测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。W模型 有利于尽早地全面的发现问题。例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,这将显著减少总体测试时间,加快项目进度。 但W模型也存在局限性。在W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。这样就无法支持迭代的开发模型。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑。 X模型 X模型是由Marick提出的,他的目标是弥补V模型的一些缺陷,例如:交接、经常性的集成等问题。 X模型的左边描述的是针对单独程序片段所进行的相互分离的编码和测试, 此后将进行频繁的交接,通过集成最终合成为可执行的程序。右上半部分,这些可执行程序还需要进行测试。已通过集成测试的成品可以进行封版并提交给用户,也可以作为更大规模和范围内集成的一部分。多根并行的曲线表示变更可以在各个部分发生。 X模型还定位了探索性测试(右下方)。这是不进行事先计划的特殊类型的测试,诸如“我这么测一下结果会怎么样?”,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。 但V模型的一个强项是它明确的需求角色的确认,而X模型没有这么做,这大概是X模型的一个不足之处。而且由于X模型从没有被文档化,其内容一开始需要从V模型的相关内容中进行推断,因为它还没有完全从文字上成为V 模型的全面扩展。

软件生命周期模型

瀑布模型/改进的瀑布模型 虽然瀑布模型仍然存在很多的问题有待解决,但瀑布模型仍然是最展本的和最效的?种可供选择的软件开发生命周期模型.瀑布模型要求软件开发严格按照需求-〉分析-〉设计?〉编码-> 测试的阶段进行,每-个阶段都可以定义明确的产出物和验证准则.瀑布模型在每?个阶段完成后都可以组织相关的评审和验证,只有在评审通过后才能够进入到下-个阶段. 由于需要对每?个阶段进行验证,瀑布模型要求每?个阶段都有明确的文档产出,对于严格的瀑布模型每?个阶段都不应该重叠,而应该是在评审通过,相关的产出物都己经基线后才能够进入到下?个阶段. 瀑布模型的优点仍然是可以保证整个软件产品较高的质量,保证缺陷能够捉前的被发现和解决. 采用瀑布模型可以保证系统在整体上的充分把握,使系统具备良好的扩展性和可维护性?但对于前期需求不明确,而又很难短时间明确淸楚的项目则很难很好的利用瀑布模型.另外对于中小型的项目,需求设计和开发人员往往在项目开始后就会全部投入到项目中,而不是分阶段投入,因此采用瀑布模型会导致项目人力资源过多的闲置的情况,这也是必须要考虑的问题. 很多人往往会以进度约束而不选择瀑布模型,这往往是?个错误的观点.导致这种情况的?个关键因素往往是概念需求阶段人力不足.冈此在概念需求阶段人力能够得到充分保证的情况下,瀑布模型和迭代模型在开发周期上并不会存在太人的差别.反而是很多项目对于迭代或嫩捷模型用不好,为了赶进度在前期需求不明确,没有经过?个总体的架构设计情况下就开始编码,后期出现大量的返工而严重影响进度. 架构设计是软件开发中?个重要的关注点.因此在RUP中也捉及到软件开发要以架构为核心.因此在架构设计完成后系统会彼分为相关的f?系统和功能模块.每个功能模块间的接口都可以定义淸楚.在这种情况下,当模块B的详细设计做完成后往往就没有必妥等到其它模块的详细设计都妥完全作完才开始编码,冈此在架构设计完成后可以将系统分为多个模块并行开发,每个模块仍然遵循先设计和编码测试的瀑布模型思路.这是瀑布模型的?种最重要的改进思路,也可以说这是?种增量开发的模型.

软件生命周期模型选择及WBS分解指南

软件生命周期模型选择及WBS分解指南 一、概述 同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为“软件生命周期”。软件生命周期模型,通俗说就是,软件开发过程中所遵循的模式,即把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。 软件生命周期模型和项目开发过程有非常紧密关系,它是经过多次实践总结出来适合于不同项目使用的经典、有效的软件开发方法,它按照软件生命周期的各个阶段划分任务,依照一定的规则和步骤,有效地进行软件开发。 选用恰当的软件生命周期模型进行软件开发,可以提高产品质量;降低项目管理难度;缩短开发进度;便于项目状态跟踪;为过程改进和度量提供基线;改善组织级的过程弱势,提高过程能力成熟度级别。 为了便于分类汇总和统计各种生命周期模型的指标和数据,结合公司软件开发过程的实际,我们选择了常用的几种基本模型进行了描述,项目开发小组在进行项目策划时,可以根据模型的适用前提、优缺点和项目的实际需要进行选择,并在《项目实施计划》中,参加评审。 二、软件生命周期模型 常用的软件生命周期模型有:瀑布模型、迭代模型、增量模型、原型模型等。 以上所提到的件生命周期模型病不存在孰优孰劣的问题,每一种模型在实际工作中都有所应用。只要选择了最适合的,并按照此模型的流程来开发软件,都会取得成功。 需要强调的是,不管采用什么模型,项目实施中有四项活动是必不可少的——需求、设计、编码和测试。不管是有意识还是无意识,这些活动都会出现在项目过程中。这也是最重要的四项活动,其他的活动其实都是为这些活动服务的,不管是配置管理、风险管理,还是评审等等。 以下对各种常用的软件生命周期模型的设计思想、WBS划分(Work Breakdown Structure,即工作分解结构)、优缺点、使用范围进行分析。

软件工程考试题库

软件工程概述 一单项选择 1.软件生命周期一般包括:软件开发期和软件运行期,下述(D)不是软件开发期所应包含的内容。 A需求分析B结构设计C程序编制D软件维护 2.软件是一种逻辑产品,它的开发主要是(A)。 A研制B拷贝C再生产D复制 3.以文档作为驱动,适合于软件需求很明确的软件项目的生存周期模型是(C)。 A喷泉模型B增量模型C瀑布模型D螺旋模型 4.在软件生存周期中,(B)阶段必须要回答的问题是“要解决的问题是做什么?”。 A详细设计B可行性分析和项目开发计划C概要设计D软件测试 5.软件产品与物质产品有很大区别,软件产品是一种(C)产品 A有形B消耗C逻辑D文档 6.(C)把瀑布模型和专家系统结合在一起,在开发的各个阶段上都利用相应的专家系统来帮助软件人员完成开发工作。 A原型模型B螺旋模型C基于知识的智能模型D喷泉模型 7.(B)阶段是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。 A概要设计B详细设计C编码D测试 8.下列软件开发模型中,适合于那些不能预先确切定义需求的软件系统的开发的模型是(A)。 A原型模型B瀑布模型C基于知识的智能模型D变换模型 9.下列软件开发模型中,以面向对象的软件开发方法为基础,以用户的需求为动力,以对象来驱动的模型是(C)。 A原型模型B瀑布模型C喷泉模型D螺旋模型 10.下列软件开发模型中,支持需求不明确,特别是大型软件系统的开发,并支持多种软件开发方法的模型是(D)。 A原型模型B瀑布模型C喷泉模型D螺旋模型 11.软件特性中,使软件在不同的系统约束条件下,使用户需求得到满足的难易程度称为(C)。 A可修改性B可靠性C可适应性D可重用性 12.软件特性中,一个软件能再次用于其他相关应用的程度称为(B)。 A可移植性B可重用性C容错性D可适应性 13.软件特性中,(A)是指系统具有清晰的结构,能直接反映问题的需求的程度。 A可理解性B可靠性C可适应性D可重用性 14.软件特性中,软件产品交付使用后,在实现改正潜伏的错误、改进性能、适应环境变化等方面工作的难易程度称为(B)。 A可理解性B可维护性C可适应性D可重用性 15.软件特性中,软件从一个计算机系统或环境移植到另一个上去的难易程度指的是(C). A可理解性B可修改性C可移植性D可重用性 16.软件特性中,在给定的时间间隔内,程序成功运行的概率指的是(D)。 A有效性B可适应性C正确性D可靠性 17.软件特性中,允许对软件进行修改而不增加其复杂性指的是(A)。 A可修改性B可适应性C可维护性D可移植性 18.软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是(B)。 A可理解性B可互操作性C可维护性D可追踪性 19.软件特性中,根据软件需求对软件设计、程序进行正向追踪,或根据程序、软件设计对软件需求进行逆向

CMMI生命周期模型选用指南解读

编码:SHZIM-O-OPD-P02 xxxx技术股份有限公司 生命周期模型选用指南

更改控制页

目录 1目的 (1) 2范围 (1) 3模型介绍 (1) 3.1瀑布模型 (1) 3.1.1模型说明 (1) 3.1.2模型分析 (1) 3.2迭代模型 (2) 3.2.1模型说明 (2) 3.2.2模型分析 (3) 3.3快速原型模型 (3) 3.3.1模型说明 (3) 3.3.2模型分析 (4) 3.4精简模型 (4) 3.4.1模型说明 (4) 3.4.2模型分析 (5) 3.5V模型 (6) 3.5.1模型说明 (6) 3.5.2模型分析 (6) 4模型选择 (8) 4.1模型选择原则 (8) 4.2项目分类 (8) 4.3模型选择指南 (9)

1目的 描述适合公司现状、可供项目选择的组织级生命周期模型。 2范围 公司所有软件项目。 3模型介绍 3.1瀑布模型 3.1.1模型说明 图1 瀑布模型 对于需求比较明确的项目,可以使用瀑布模型进行项目开发,每个阶段的输入都是依靠上一个阶段的输出,每个阶段内都需要完成与最终产品相关的所有工作。 3.1.2模型分析 优点:

1.可以明确划分项目的各个阶段,便于管理; 2.项目成员只需要在被安排的阶段开展项目工作,不需要全程参与; 3.阶段工作内容清晰,降低了开发难度。 缺点: 1.对项目的启动条件要求较高; 2.若出现需求不明确或设计开发技术瓶颈,将会影响后续阶段的工作启动; 3.最终产品提交给用户确认的时间比较晚,存在一定的风险。 3.1.3模型参照 参见《瀑布模型》。 3.2迭代模型 3.2.1模型说明 图2 迭代模型 通常有许多项目不能在需求开发阶段提供准确的需求,对于这样的项目,可以选择迭代开发模型,将能够确定的需求分析确定下来。之后便可以对这部分确定的需求进行系统设计、编码和测试。整个项目可以进行多次迭代的过程,一般情况下迭代的起点从需求开发开始,然后进行设计、编码和测试,但是有时候也可能出现从设计或编码阶段安排新的迭代过程。

产品生命周期曲线预测模型及其在营销决策中的应用报告

产品生命周期曲线预测模型及其在营销决策中 的应用报告 产品生命周期曲线预测模型及其在营销决策中的应用报告出处 一.产品生命周期的内涵与外延对于产品这种有规律性的发展过程,必须要充分认识,在进行市场需求信息调查的基础上,及时掌握产品所处市场的不同阶段,以便采取相应的对策。产品的生命周期不是产品本身的使用寿命。通常,新产品从市场上试销到被淘汰,如同任何生物一样,有一个发生.发展.成熟和衰亡的过程。市场产品运动的发展变化轨迹可以用一条曲线来描述,这条曲线就称为产品生命周期曲线(又称成长曲线),它是指新产品研制成功后,从投入市场开始,发展到成长.成熟以至衰退被淘汰为止的整个销售过程的全部时间。 一般来说,产品生命周期可划分为四个阶段:即投入期.成长期.成熟期和衰退期。这四个阶段组成了完整的产品生命周期系统,而各个阶段可称为它的子系统。投入期的主要特征是生产成本高.投入流动资金多.广告费用大,同时产品销售量增长缓慢,企业获利极少甚至为负数。产品从投入期转入成长期的标志是销售量迅速增长.利润额迅速上升,竞争者纷纷涌入,同时生产成本得到降低,生产效率和市场占有率均显著提高。第三阶段成熟期

是产品在市场上基本饱和,市场竞争日益激烈,销售量基本区域稳定,利润开始减少。最后,由于成本回升.需求减少.竞争者减少和其他因素的影响,导致产品销售量减少,利润额也明显下降,产品普及率迅速降低。 产品生命周期理论是制定产品在市场上不同时期营销战略及策略的基础。在进行产品营销决策前,首先要对市场进行调查研究,做好产品定位工作,把影响产品销售的各种主要因素,纳入市场营销系统来进行分析预测。具体来说,就是认真确定企业现有业务或产品的市场现状,对每项业务和产品的战略性盈利潜力都要进行评估分析,决定哪些业务应维持.哪些应减少.哪些应淘汰,进而制定合理的投资计划,把有限的资金用到发展经济效益好的业务或产品中去。这种方法除了对产品生命周期各阶段进行预测外,也适用于新产品的开发和更新换代,新老技术的交替,对某种产品的普及率及饱和量的预测,还广泛地应用于对人口预测.生物及农作物生长及对某项事业的发展趋势的预测。 二.产品生命周期曲线预测模型的原理通常产品生命周期曲线呈一条对称的S形曲线。如图1所示:图1 产品生命周期曲线图龚柏兹曲线,是美国统计学家和数学家龚柏兹(Gom鄄pertz)首先提出用作控制人口增长率的一种模型,可以利用它来进行产品生命周期预测。其预测模型为:式中:预测值;K限值或饱和点;参数a决定曲线的位置;参数b决定曲线中间部分的斜率;

软件生命周期模型

软件生命周期模型 .软件生命周期对于一个软件的研制,从问题的提出,经过开发、使用、维护、修订,直到最后终止使用而被另一软件所取代,就像是一个生命体从孕育、出生、成长到最后消亡,软件的这个状态变化的过程称为生命周期(life cycle)。软件生命周期的演化具有阶段性,依据一定的原则,可以把软件生命 周期划分为若干不同阶段,相邻的阶段既相互区别又相互联系,每个阶段都以 其前一阶段的工作成果作为本阶段工作的基础。软件生命周期的划分有助于软 件开发和管理人员根据不同阶段的特点进行软件开发及其管理。软件开发的经 验表明,软件开发越到后期,改正前期开发工作的失误越困难,因此在软件开 发工作中应该对软件开发工作的阶段性给予充分认识,在前期工作不无分的前 提下不应过早地进入软件开发的下一阶段。依据不同的原则对软件生命周期的 划分也不同,《软件工程国家标准--计算机软件开发规范》(GB8566-88)中将软件生命周期划分为8个阶段:可行性研究与计划、需求分析、概要设计、详细 设计、实现(包括单元测试)、组装测试(集成测试)、确认测试、使用和维护。 本书按照人们所习惯的粗分方法把上面8个阶段划分为计划、开发和维护3个 阶段,在概述其他两个阶段的基础上重点介绍软件的开发过程。2.软件开发方 法在规定的投资规模和时间限制内,实现符合用户需求的高质量软件是软件开 发的目标,为实现这一目标,人们根据软件开发的特点,提出了多种软件开发 策略。通过不同的软件开发模型阐明从问题提出到最终软件实现,软件开发工 作过程的阶段性任务分解,并规定了每一个阶段的目标、任务以及工作结果的 表达形式。常见的软件设计模型有:瀑布模型(waterfall model)、渐进模型(increamental model)、演化模型(evolutionary model)、螺旋模型(spiral model)、喷泉模型(fountain model)、智能模型(intelligent model)等。这里介绍其中的3种。(1)瀑市模型瀑市模型1970年由W.Royce提出,其开发过程 依照固定顺序进行,各阶段的任务与工作结果如图1所示。该模型严格规定各 阶段的任务,上一阶段任务输出作为下一阶段工作输入。此模型适合于用户需 求明确、开发技术比较成熟、工程管理严格的场合使用,其缺点是:由于任务 顺序固定,软件研制周期长,前一阶段工作中造成的差错越到后期越大,而且 纠正前期错误的代价高。图1瀑布型开发过程(2)渐进模型从一组简单的基本用户需求出发,首先建立一个满足基本要求的原型系统。通过测试和运行原型系

软件开发模型介绍与对比分析

常用的软件开发模型 软件开发模型(Software Development Model)是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。 软件开发模型能清晰、直观地表达软件开发全过程,明确规定了要完成的主要活动和任务,用来作为软件项目工作的基础。对于不同的软件系统,可以采用不同的开发方法、使用不同的程序设计语言以及各种不同技能的人员参与工作、运用不同的管理方法和手段等,以及允许采用不同的软件工具和不同的软件工程环境。 1. 瀑布模型-最早出现的软件开发模型 1970年温斯顿?罗伊斯(Winston Royce)提出了著名的“瀑布模型”,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。 瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。从本质来讲,它是一个软件开发架构,开发过程是通过一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好“返回”上一个阶段并进行适当的修改,开发进程从一个阶段“流动”到下一个阶段,这也是瀑布开发名称的由来。 瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。其过程是从上一项活动接收该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,并作为输出传给下一项活动。同时评审该项活动的实施,若确认,则继续下一项活动;否则返回前面,甚至更前面的活动。对于经常变化的项目而言,瀑布模型毫无价值。(采用瀑布模型的软件过程如图所示)

软件开发模型介绍与对比分析

常用的软件开发模型 任务的结构框 架。软件开发包括需求、设 段。 软件开发 模型能清晰、直观地表达软 计、编码和测试等阶段,有 时也包括维护阶 件开发全过程,明确规定了 要完成的主要活 动和任务,用来作为软 件项目工作的基础。对于不同的软件 系统,可以采用不同的开 理方法和手段 等,以及允许采用不同的软件工 具和不同的软件工程环境。 1. 瀑布模型 -最早出现的软件开发模型 1970 年温斯顿 ?罗伊斯( Winston Royce )提出了著名的 “瀑布模型 ”,直到 80 年 代早期,它一 直是唯一被广泛采用的软件开发 模型。 瀑布模型 核心思想是按工序将问题化简 ,将功能的实现与设计分开 ,便于分工协 作,即采 用结构化的分析与设计方法将逻 辑实现与物理实现分开。将 软件生命周期划 分为制定计划 、需求分析、软件设计、程序编写、软件测试和运行维 护等六个基本活 动,并 且规定了它们自上而下 、相互衔接的固定次序 ,如同瀑布流水,逐级 下落。从 本质来讲,它是一个软 件开发架构,开发过程是通过一系列 阶段顺序展开的,从系统 需求分析开始 直到产品发布和维护,每个阶段都会产 生循环反馈,因此,如果有信息 未被覆盖或者 发现了问题, 那么 最好 “返回 ”上一个 阶段并进行适当的修改 ,开发进程 从一个阶段 “流动 ”到下一个阶段, 这也是瀑布开发名称的由来。 瀑布模型是最 早出现的软件开发模型,在软件工程中占有重要的地位 ,它提供了 软件开发的基 本框架。其过程是从上一项 活动接收该项活动的工作对象作 为输入,利 用这一输入实 施该项活动应完成的内容给出该 项活动的工作成果, 并 作为输出传给下 一项活动。同 时评审该项活动的实施,若确认 ,则继续下一项活动;否则返 回前面, 甚至更前面的 活动。对于经常变化的项目而 言,瀑布模型毫无价值。(采用瀑布模型 的软件过程如 图所示) 软件 开发模型 (Software Development Model) 是指软件开发 全部过程、活动和 发方法、使用不同的程序设计语言以及各 种不同技能的人员参与工作 、运用不同的管

产品生命周期理论介绍

产品生命周期理论(Product Life Cycle) 产品生命周期理论简介 产品生命周期理论是美国哈佛大学教授雷蒙德·弗农(Raymond Vernon)1966年在其《产品周期中的国际投资与国际贸易》一文中首次提出的。 产品生命周期(product life cycle),简称PLC,是产品的市场寿命,即一种新产品从开始进入市场到被市场淘汰的整个过程。费农认为:产品生命是指市上的的营销生命,产品和人的生命一样,要经历形成、成长、成熟、衰退这样的周期。就产品而言,也就是要经历一个开发、引进、成长、成熟、衰退的阶段。而这个周期在不同的技术水平的国家里,发生的时间和过程是不一样的,期间存在一个较大的差距和时差,正是这一时差,表现为不同国家在技术上的差距,它反映了同一产品在不同国家市场上的竞争地位的差异,从而决定了国际贸易和国际投资的变化。为了便于区分,费农把这些国家依次分成创新国(一般为最发达国家)、一般发达国家、发展中国家。 典型的产品生命周期一般可以分成四个阶段,即介绍期(或引入期)、成长期、成熟期和衰退期。 (1)第一阶段:介绍(引入)期 指产品从设计投产直到投入市场进入测试阶段。新产品投入市场,便进入了介绍期。此时产品品种少,顾客对产品还不了解,除少数追求新奇的顾客外,几乎无人实际购买该产品。生产者为了扩大销路,不得不投入大量的促销费用,对产品进行宣传推广。该阶段由于生产技术方面的限制,产品生产批量小,制造成本高,广告费用大,产品销售价格偏高,销售量极为有限,企业通常不能获利,反而可能亏损。 (2)第二阶段:成长期 当产品进入引入期,销售取得成功之后,便进入了成长期。成长期是指产品通过试销效果良好,购买者逐渐接受该产品,产品在市场上站住脚并且打开了销路。这是需求增长阶段,需求量和销售额迅速上升。生产成本大幅度下降,利润迅速增长。与此同时,竞争者看到有利可图,将纷纷进入市场参与竞争,使同类产品供给量增加,价格随之下降,企业利润增长速度逐步减慢,最后达到生命周期利润的最高点。 (3)第三阶段:成熟期 指产品走入大批量生产并稳定地进入市场销售,经过成长期之后,随着购买产品的人数增多,市场需求趋于饱和。此时,产品普及并日趋标准化,成本低而产量大。销售增长速度缓慢直至转而下降,由于竞争的加剧,导致同类产品生产企之间不得不加大在产品质量、花色、规格、包装服务等方面加大投入,在一定程度上增加了成本。 (4)第四阶段:衰退期

生命周期模型及选择指南

生命周期模型及选择指南 Version 1.1 文档名称:ZD-MMI-Guidelines-生命周期及模型选择指南-V1.1

修订历史记录

目录 1 目的和范围 (1) 2 生命周期可选模型简介 (1) 2.1 瀑布模型 (1) 2.1.1 标准瀑布模型 (1) 2.1.2 V模型 (3) 2.1.3 中等简化V字模型(V4模型) (5) 2.1.4 最简化V字模型(V3模型) (6) 2.2 原型模型 (8) 2.2.1 原型模型的形式 (8) 2.2.2 特点 (8) 2.2.3 缺点 (9) 2.2.4 适用项目 (9) 2.2.5 阶段划分 (9) 2.3 螺旋模型 (10) 2.3.1 特点 (10) 2.3.2 适用项目 (11) 2.3.3 阶段划分 (11) 2.4 增量模型 (11) 2.4.1 特点 (12) 2.4.2 适用项目 (12) 2.4.3 阶段划分 (12) 2.5 迭代模型 (13) 2.5.1 特点 (14) 2.5.2 适用情况 (15) 2.5.3 迭代分类 (15)

3 生命周期模型选择指南 (16) 3.1 生命周期模型选择特性指标 (16) 3.1.1 需求清晰性、完整性、稳定性 (16) 3.1.2 项目规模 (16) 3.1.3 项目类型 (17) 3.1.4 技术复杂度 (17) 3.1.5 可重用性 (18) 3.1.6 重用已有产品 (18) 3.2 生命周期模型选择决策参考 (18) 3.3 生命周期模型与特性指标对应关系 (19) 3.4 生命周期选择 (20) 附录:标准项目生命周期图 (21)

常见的软件开发模型

常见的软件开发模型 软件开发模型是软件开发全部过程、活动和任务的结构框架。 1.软件开发模型是对软件过程的建模,即用一定的流程将各个环节连接起来,并可用规范的方式操作全过程,好比工厂的流水线。 2.软件开发模型能清晰、直观地表达软件开发全部过程,明确规定要完成的主要活动和任务,它用来作为软件项目工作的基础。 3.软件开发模型应该是稳定和普遍适用的 软件开发模型的选择应根据: 1.项目和应用的特点 2.采用的方法和工具 3.需要控制和交付的特点 软件工程之软件开发模型类型 1.边做边改模型 2.瀑布模型 3.快速原型模型 4.增量模型 5.螺旋模型 6.喷泉模型 边做边改模型(Build-and-Fix Model) 国内许多软件公司都是使用"边做边改"模型来开发的。在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改. 在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的第一个版本。在提供给用户使用后,如果程序出现错误,或者用户提出新的要求,开发人员重新修改代码,直到用户满意为止。 这是一种类似作坊的开发方式,对编写几百行的小程序来说还不错,但这种方法对任何规模的开发来说都是不能令人满意的,其主要问题在于:(1)缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无法继续修改; (2)忽略需求环节,给软件开发带来很大的风险; (3)没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难。

瀑布模型(Waterfall Model) 1970年Winston Royce提出了著名的"瀑布模型",直到80年代早期,它一直是唯一被广泛采用的软件开发模型。瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。 在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。 瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于: (1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量; (2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险; (3)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。 我们应该认识到,"线性"是人们最容易掌握并能熟练应用的思想方法。当人们碰到一个复杂的"非线性"问题时,总是千方百计地将其分解或转化为一系列简单的线性问题,然后逐个解决。一个软件系统的整体可能是复杂的,而单个子程序总是简单的,可以用线性的方式来实现,否则干活就太累了。线性是一种简洁,简洁就是美。当我们领会了线性的精神,就不要再呆板地套用线性模型的外表,而应该用活它。例如增量模型实质就是分段的线性模型,螺旋模型则是接连的弯曲了的线性模型,在其它模型中也能够找到线性模型的影子. 快速原型模型(Rapid Prototype Model) 快速原型模型的第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么;第二步则在第一步的基础上开发客户满意的软件产品。 显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。 快速原型的关键在于尽可能快速地建造出软件原型,一旦确定了客户的真正需求,所建造的原型将被丢弃。因此,原型系统的内部结构并不重要,重要的是必须迅速建立原型,随之迅速修改原型,以反映客户的需求。 增量模型(Incremental Model) 又称演化模型。与建造大厦相同,软件也是一步一步建造起来的。在增量模型中,软件被作为一系列的增量构件来设计、实现、集成和测试,每一个构件是由多种相互作用的模块所形成的提供特定功能的代码片段构成. 增量模型在各

产品生命周期理论

产品生命周期理论 产品生命周期理论是美国哈佛大学教授雷蒙德·弗农(Raymond Vernon)1966年在其《产品周期中的国际投资与国际贸易》一文中首次提出的。 产品生命周期(product life cycle),简称PLC,是产品的市场寿命,即一种新产品从开始进入市场到被市场淘汰的整个过程。费农认为:产品生命是指市上的的营销生命,产品和人的生命一样,要经历形成、成长、成熟、衰退这样的周期。就产品而言,也就是要经历一个开发、引进、成长、成熟、衰退的阶段。而这个周期在不同的技术水平的国家里,发生的时间和过程是不一样的,期间存在一个较大的差距和时差,正是这一时差,表现为不同国家在技术上的差距,它反映了同一产品在不同国家市场上的竞争地位的差异,从而决定了国际贸易和国际投资的变化。为了便于区分,费农把这些国家依次分成创新国(一般为最发达国家)、一般发达国家、发展中国家。 注意:1.产品生命周期与产品使用寿命不同。2.产品生命周期是指产品某个具体品种的生命周期。3.产品生命周期主要是通过市场销售量的变化 典型的产品生命周期一般可以分成四个阶段,即引入期、成长期、成熟期、销售下降期和衰亡期。 (1)第一阶段:引入期 指产品从设计投产直到投入市场进入测试阶段。新产品投入市场,便进入了介绍期。此时产品品种少,顾客对产品还不了解,除少数追求新奇的顾客外,几乎无人实际购买该产品。生产者为了扩大销路,不得不投入大量的促销费用,对产品进行宣传推广。该阶段由于生产技术方面的限制,产品生产批量小,制造成本高,广告费用大,产品销售价格偏高,销售量极为有限,企业通常不能获利,反而可能亏损。 (2)第二阶段:成长期 当产品进入引入期,销售取得成功之后,便进入了成长期。成长期是指产品通过试销效果良好,购买者逐渐接受该产品,产品在市场上站住脚并且打开了销路。这是需求增长阶段,需求量和销售额迅速上升。生产成本大幅度下降,利润迅速增长。与此同时,竞争者看到有利可图,将纷纷进入市场参与竞争,使同类产品供给量增加,价格随之下降,企业利润增长速度逐步减慢,最后达到生命周期利润的最高点。 (3)第三阶段:成熟期 指产品走入大批量生产并稳定地进入市场销售,经过成长期之后,随着购买产品的人数增多,市场需求趋于饱和。此时,产品普及并日趋标准化,成本低而产量大。销售增长速度缓慢直至转而下降,由于竞争的加剧,导致同类产品生产企之间不得不加大在产品质量、花色、规格、包装服务等方面加大投入,在一定程度上增加了成本。 (4)第四阶段:销售下降期 当国外的生产能力达到能满足本国需求,新产品进入销售下降期。这一时期产品已高度标准化,技术投入更少,国外生产者利用规模经济大批量生产,生产成本降低,创新国失去优势,出口量下降

常用软件开发模型比较分析

常用软件开发模型比较分析 2007-09-26 20:21 正如任何事物一样,软件也有其孕育、诞生、成长、成熟和衰亡的生存过程,一般称其为“软件生命周期”。软件生命周期一般分为6个阶段,即制定计划、需求分析、设计、编码、测试、运行和维护。软件开发的各个阶段之间的关系不可能是顺序且线性的,而应该是带有反馈的迭代过程。在软件工程中,这个复杂的过程用软件开发模型来描述和表示。 软件开发模型是跨越整个软件生存周期的系统开发、运行和维护所实施的全部工作和任务的结构框架,它给出了软件开发活动各阶段之间的关系。目前,常见的软件开发模型大致可分为如下3种类型。 ① 以软件需求完全确定为前提的瀑布模型(Waterfall Model)。 ② 在软件开发初始阶段只能提供基本需求时采用的渐进式开发模型,如螺旋模型(Spiral Model)。 ③ 以形式化开发方法为基础的变换模型(T ransformational Model)。 本节将简单地比较并分析瀑布模型、螺旋模型和变换模型等软件开发模型。 1.2.1 瀑布模型瀑布模型即生存周期模型,其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。瀑布模型将软件生命周期划分为软件计划、需求分析和定义、软件设计、软件实现、软件测试、软件运行和维护这6个阶段,规定了它们自上而下、相互衔接的固定次序,如同瀑布流水逐级下落。采用瀑布模型的软件过程如图1-3所示。

图1-3 采用瀑布模型的软件过程 瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。瀑布模型的本质是一次通过,即每个活动只执行一次,最后得到软件产品,也称为“线性顺序模型”或者“传统生命周期”。其过程是从上一项活动接收该项活动的工作对象作为输入,利用这一输入实施该项活动应完成的内容给出该项活动的工作成果,并作为输出传给下一项活动。同时评审该项活动的实施,若确认,则继续下一项活动;否则返回前面,甚至更前面的活动。瀑布模型有利于大型软件开发过程中人员的组织及管理,有利于软件开发方法和工具的研究与使用,从而提高了大型软件项目开发的质量和效率。然而软件开发的实践表明,上述各项活动之间并非完全是自上而下且呈线性图式的,因此瀑布模型存在严重的缺陷。 ① 由于开发模型呈线性,所以当开发成果尚未经过测试时,用户无法看到软件的效果。这样软件与用户见面的时间间隔较长,也增加了一定的风险。 ② 在软件开发前期末发现的错误传到后面的开发活动中时,可能会扩散,进而可能会造成整个软件项目开发失败。 ③ 在软件需求分析阶段,完全确定用户的所有需求是比较困难的,甚至可以说是不太可能的。 1.2.2 螺旋模型螺旋模型将瀑布和演化模型(Evolution Model)结合起来,它不仅体现了两个模型的优点,而且还强调了其他模型均忽略了的风险分析。这

产品生命周期理论

产品生命周期理论 特殊的产品生命周期包括风格型产品生命周期、时尚型产品生命周期、热潮型产品生命周期、扇贝形产品生命周期四种特殊的类型,它们的产品生命周期曲线并非通常的S型。 风格(style):是一种在人类生活基本但特点突出的表现方式。风格一旦产生,可能会延续数代,根据人们对它的兴趣而呈现出一种循环再循环的模式,时而流行,时而又可能并不流行。 时尚(fashion):是指在某一领域里,目前为大家所接受且欢迎的风格。时尚型的产品生命周期特点是,刚上市时很少有人接纳(称之为独特阶段),但接纳人数随着时间慢慢增长(模仿阶段),终于被广泛接受(大量流行阶段),最后缓慢衰退(衰退阶段),消费者开始将注意力转向另一种更吸引他们的时尚。 热潮(fad):是一种来势汹汹且很快就吸引大众注意的时尚,俗称时髦。热潮型产品的生命周期往往快速成长又快速衰退,主要是因为它只是满足人类一时的好奇心或需求,所吸引的只限于少数寻求刺激、标新立异的人,通常无法满足更强烈的需求。 扇贝型产品生命周期主要指产品生命周期不断地延伸再延伸,这往往是因为产品创新或不时发现新的用途。 □ 产品生命周期曲线 生命周期曲线的特点:在产品开发期间该产品销售额为零,公司投资不断增加;在引进期,销售缓慢,初期通常利润偏低或为负数;在成长期销售快速增长,利润也显著增加;在成熟期利润在达到顶点后逐渐走下坡路;在衰退期间产品销售量显著衰退,利润也大幅度滑落。

适用范围:该曲线适用于一般产品的生命周期的描述;不适用于风格型、时尚型、热潮型和扇贝型产品的生命周期的描述。 □ 产品生命周期优缺点 产品生命周期理论的优点是: 产品生命周期(PLC)提供了一套适用的营销规划观点。它将产品分成不同的策略时期,营销人员可针对各个阶段不同的特点而采取不同的营销组合策略。此外,产品生命周期只考虑销售和时间两个变数,简单易懂。 其缺点是: 1、产品生命周期各阶段的起止点划分标准不易确认。 2、并非所有的产品生命周期曲线都是标准的S型,还有很多特殊的产品生命周期曲线。 3、无法确定产品生命周期曲线到底适合单一产品项目层次还是一个产品集合层次。 4、该曲线只考虑销售和时间的关系,未涉及成本及价格等其它影响销售的变数。 5、易造成“营销近视症”,认为产品已到衰退期而过早将仍有市场价值的好产品剔除出了产品线。 6、产品衰退并不表示无法再生。如通过合适的改进策略,公司可能再创产品新的生命周期。 □ 产品生命周期

5种项目生命周期模型

5种项目生命周期模型 1.项目生命周期定义 2.一个完整的项目生命周期一般分为:计划、需求分析、设计、编码、测试、发布、实施以及运行维护阶段。 参见下图标准过程: 3.软件过程模型是从项目需求定义直至经使用后废弃为止,跨越整个生存期的系统开发、运营维护所经历的全部过程、活动和任务的结构框架。 4.软件过程模型一般分为:瀑布模型、原型模型、螺旋模型、增量模型。 5. 5种项目生命周期模型 a.瀑布模型: 1) 特点 l 阶段间具有顺序性和依赖性:必须等前一阶段的工作完成之后,才能开始后一阶段的输入。对本阶段工作进行评审,若得到确认,则继续下阶段工作,否则返回前一阶段,甚至更前阶段。只有前一阶段输出正确,后一阶段才能正确。 l 推迟实现的观点:在编码之前,设置了需求分析与设计的各个阶段,分析与设计阶段的根本任务规定在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现。 l 质量保证的观点: 每个阶段都坚持两个做法: 规定文档,没有文档就没有完成该段任务。 每个阶段结束前都要对完成的文档进行评审,以便尽早发现问题,改正错误。 2) 缺点 l 依赖于早期进行的唯一的一次需求调查,不能适应需求的变化; l 由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程; l 风险往往迟至后期的开发阶段才显露,因而失去及早纠正的机会。 3) 适用项目

l 需求清晰明了且时间要求宽松的软件开发项目; l 规模小,需求简单,功能单一的项目 4) 阶段划分 计划阶段 需求阶段 设计阶段 编码阶段 测试阶段 发布阶段 实施阶段 运行维护阶段 b.原型模型: 原型模型快速建立起来的可以在计算机上运行的程序,他所能完成的功能往往是最终产品能完成的功能的一个子集。一般来说,根据客户的需要在很短的时间内解决用户最迫切需要,完成一个可以演示的产品,这个产品只实现部分功能。原型最重要的是为了确定用户的真正需求。 原型模型在克服瀑布模型缺点、减少由于软件需求不明确给开发工作带来风险方面,确有显著效果。软件系统的原型常用有以下形式: 抛弃型:开发原型为了获取需求,在原型开发之后,已获取了更为清晰的需求信息,原型无需保留而废弃; 渐进型:原型作为软件最终产品的一部分,可满足用户的部分需求,进一步在此基础上开发,则可增加需求,实现后再交付使用; 1) 特点 l 用户需求不完全或不确定;

常用软件开发模型

常用软件开发模型比较分析 正如任何事物一样,软件也有其孕育、诞生、成长、成熟和衰亡的生存过程,一般称其为“软件生命周期”。软件生命周期一般分为6个阶段,即制定计划、需求分析、设计、编码、测试、运行和维护。软件开发的各个阶段之间的关系不可能是顺序且线性的,而应该是带有反馈的迭代过程。在软件工程中,这个复杂的过程用软件开发模型来描述和表示。 软件开发模型是跨越整个软件生存周期的系统开发、运行和维护所实施的全部工作和任务的结构框架,它给出了软件开发活动各阶段之间的关系。目前,常见的软件开发模型大致可分为如下3种类型。 ①以软件需求完全确定为前提的瀑布模型(Waterfall Model)。 ②在软件开发初始阶段只能提供基本需求时采用的渐进式开发模型,如螺旋模型(Spiral Model)。 ③以形式化开发方法为基础的变换模型(Transformational Model)。 本节将简单地比较并分析瀑布模型、螺旋模型和变换模型等软件开发模型。 1.2.1 瀑布模型 瀑布模型即生存周期模型,其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。瀑布模型将软件生命周期划分为软件计划、需求分析和定义、软件设计、软件实现、软件测试、软件运行和维护这6个阶段,规定了它们自上而下、相互衔接的固定次序,如同瀑布流水逐级下落。采用瀑布模型的软件过程如图1-3所示。 图1-3 采用瀑布模型的软件过程 瀑布模型是最早出现的软件开发模型,在软件工程中占有重要的地位,它提供了软件开发的基本框架。瀑布模型的本质是一次通过,即每个活动只执行一次,最后得到软件产品,

!软件工程练习题3

一、选择题 1.软件是一种()产品。 A.有形 B.逻辑C.物质 D.消耗 2.与计算机科学的理论研究不同,软件工程是一门() A.理论性B.工程性C.原理性D.心理性 3.软件工程学科出现的主要原因是() A.计算机的发展B.其他工程学科的影响力 C.软件危机的出现D.程序设计方法学的影响 4.软件生存周期模型有多种,下列选项中,()不是软件生存周期的模型。 A.螺旋模型B.增量模型C.功能模型D.瀑布模型 5.软件开发模型是指软件开发的全部过程、活动和任务的结构框架。主要的开发模型有瀑布模型、 演化模型、螺旋模型和喷泉模型。螺旋模型将瀑布模型和演化模型相结合,并增加了[A ],它建立在[B ]的基础上,沿着螺线自内向外每旋转一圈,就得到[B ]的一个版本。喷泉模型描述了[C ]的开发模型,它体现了这种开发方法创建软件的过程所固有的[D ]和 [E ]的特征。 供选择的答案: A:(1)系统工程(2)风险分析(3)设计评审(4)进度控制 B:(1)模块划分(2)子程序分解(3)设计(4)原型 C:(1)面向对象(2)面向数据流(3)面向数据结构(4)面向事件驱动 D:(1)归纳(2)推理(3)迭代(4)递归 E:(1)开发各阶段之间无“间隙”(2)开发各阶段分界明显(3)部分开发阶段分界明显(4)开发过程不分阶段 您的选择是: 【A 】【B 】【C 】【D 】【E 】 6.目前存在若干种软件生存周期模型,例如瀑布模型、增量模型、螺旋模型等。其中规定了由前至 后、相互衔接的固定次序的模型是() A.瀑布模型B.增量模型C.螺旋模型D.喷泉模型 7.软件生命周期包括可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、()维 护等活动。 A.应用B.测试C.检测D.以上都是 8.准确地解决“软件系统必须做什么”是()阶段的任务。 A.分析阶段B.设计阶段C.编码阶段D.测试阶段 9.研究开发所需要的成本和资源是属于可行性研究中的()研究的一方面。 A.技术可行性 B. 经济可行性 C. 社会可行性 D. 法律可行性 10.需求分析()。【】 A.要回答“软件必须做什么”B.可概括为“理解、分析、表达”六个字 C.要求编写需求规格说明书D.以上都对 11.瀑布模型中软件生命周期划分为八个阶段:问题定义、可行性研究、需求分析、总体设计、详细 设计、编码、测试和运行、维护。这八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段和()阶段。

相关文档
最新文档