软件开发生命周期模型
- 格式:docx
- 大小:120.55 KB
- 文档页数:6
今天和大家分享的是软件开发生命周期,主要介绍软件的生命周期和软件的设计模型。
国标(GB8566-88)中将软件生命周期分为8个阶段:可行性研究与计划、需求分析、概要设计、详细设计、实现(包括单元测试)、组装测试(集成测试)、确认测试、使用和维护。
这里出现了一个面试经常出现的问题,就是测试阶段的问题,测试阶段:单元测试、集成测试、系统测试、验收测试。
软件设计模型:瀑布模型、快速原型开发、增量与递归模型、螺旋模型。
1)瀑布模型:1970年由W.Royce提出,其开发过程依照固定顺序进行,各阶段的任务与工作结果。
该模型严格规定了各阶段的任务,上一阶段的输出作为下一阶段的输入。
此模型适用于用户需求明确、开发技术比较成熟、工程管理严格的场合使用。
缺点是由于任务顺序固定,软件研制周期长,前一阶段工作中造成的差错越到后期越大,纠正的代价也就越高。
2)快速原型就是先用相对少的成本,较短的周期开发一个简单的、但可以运行的系统原型向用户演示或让用户试用,以便及早澄清并检验一些主要设计策略,在此基础上再开发实际的软件系统。
快速原型模型主要有三种类型:探索型原型、实验型原型和演化型原型。
探索型主要用于开发需求的阶段,目的是弄清用户的原型。
实验型原型主要用于设计阶段,目的是考核实现方案是否合适,能否实现。
演化型模型主要用于及早的向用户提交一个原型,得到用户认可后不断的修改演化成最终的软件系统。
快速原型的开发步骤:先快速分析需求,然后构造原型,之后是运行原型和评价原型,最后就是修改原型。
3)迭代模型:所有的阶段都能够细分为迭代,每一次的迭代都会产生一个能够发布的产品,这个产品是最终产品的一个子集。
4)螺旋模型:特别适合于大型复杂的系统。
螺旋模型沿着螺线进行若干次的迭代,图中的四个象限代表了一下活动:1. 制定计划2. 风险分析3. 实施工程4. 客户评估上述的开发模型有一些都是适合大型复杂系统的,我们平时基本不接触的。
所以只需掌握瀑布模型和快速原型模型就可以了。
软件工程中的软件开发生命周期和流程在当今数字化的时代,软件已经成为我们生活和工作中不可或缺的一部分。
从我们日常使用的手机应用程序,到企业运行所依赖的复杂业务系统,软件的身影无处不在。
而软件的成功开发并非偶然,它依赖于一套科学的方法和流程,这就是软件开发生命周期(Software Development Life Cycle,简称 SDLC)和相关的流程。
软件开发生命周期是指软件从开始构思到最终退役的整个过程。
它就像是软件的“成长轨迹”,涵盖了一系列的阶段和活动,每个阶段都有其特定的目标和任务。
常见的软件开发生命周期模型包括瀑布模型、迭代模型、敏捷模型等。
瀑布模型是一种传统的线性模型,它将软件开发过程分为明确的阶段,如需求分析、设计、编码、测试和维护。
每个阶段都必须在前一个阶段完成后才能开始,就像瀑布一样,水流依次而下,无法回溯。
这种模型的优点是流程清晰,易于管理和控制,但缺点是灵活性较差,如果在后期发现前期的需求有误,修改的成本会很高。
迭代模型则是在瀑布模型的基础上进行了改进,它允许在每个阶段结束后进行回顾和调整,并将整个开发过程分为多个迭代周期。
每个迭代周期都会产生一个可运行的版本,逐步完善软件的功能。
这种模型提高了软件开发的灵活性,能够更快地响应需求的变化,但对项目管理的要求也更高。
敏捷模型则是近年来越来越流行的一种开发模式,它强调团队的协作和快速响应变化。
敏捷开发通常采用短周期的迭代,通过频繁的沟通和反馈来不断优化软件。
这种模型适合需求不确定、变化频繁的项目,但也需要团队具备较高的沟通和协作能力。
在软件开发生命周期中,需求分析是至关重要的第一步。
这个阶段的主要任务是明确软件要解决的问题,以及用户对软件的功能和性能要求。
开发团队需要与用户进行充分的沟通,了解他们的业务流程和需求,同时对市场进行调研,分析竞争对手的产品。
需求分析的结果通常会以需求规格说明书的形式呈现,为后续的开发工作提供明确的指导。
一、软件开发生命周期模型1.Code-and-fix life-cycle model:遗憾的是,许多产品都是使用"边做边改"模型来开发的。
在这种模型中,既没有规格说明,也没有经过设计,软件随着客户的需要一次又一次地不断被修改.在这个模型中,开发人员拿到项目立即根据需求编写程序,调试通过后生成软件的第一个版本。
在提供给用户使用后,如果程序出现错误,或者用户提出新的要求,开发人员重新修改代码,直到用户满意为止。
这是一种类似作坊的开发方式,对编写几百行的小程序来说还不错,但这种方法对任何规模的开发来说都是不能令人满意的,其主要问题在于:(1)缺少规划和设计环节,软件的结构随着不断的修改越来越糟,导致无法继续修改;(2)忽略需求环节,给软件开发带来很大的风险;(3)没有考虑测试和程序的可维护性,也没有任何文档,软件的维护十分困难。
2.Waterfall life-cycle model:1970年WinSTon Royce提出了著名的"瀑布模型",直到80年代早期,它一直是唯一被广泛采用的软件开发模型。
瀑布模型将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。
在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。
当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。
瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。
但是,这种模型的线性过程太理想化,已不再适合现代的软件开发模式,几乎被业界抛弃,其主要问题在于:(1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;(2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;(3)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。
软件开发生命周期模型的选择在软件开发中,生命周期模型是一种用于描述软件开发过程的框架。
不同的生命周期模型为软件开发提供了不同的指导方针和步骤,从而有助于开发团队在项目执行期间遵循规范和有效地组织开发过程。
但是,不同的开发项目具有不同的特点和需求,因此选择合适的生命周期模型是非常重要的。
本文将对软件开发生命周期模型进行探讨,并讨论在选择过程中需要考虑的因素。
一、生命周期模型概述生命周期模型是软件开发中的一个重要概念,其目的是为软件开发过程提供一种组织方法,使得软件开发流程变得更加明确可控。
常见的生命周期模型主要有瀑布模型、迭代模型、螺旋模型、敏捷方法等。
瀑布模型是软件生命周期模型中最经典的模型,其具有层次分明、逐步推进,且每个阶段都有明确定义的文档和交付成果的特点。
瀑布模型适合开发复杂性低、需求稳定的软件项目,但当需求发生变更时,会导致大幅度返工,增加项目延误和成本。
迭代模型强调快速、迭代式的开发环节,通过不断迭代,逐步完善系统,具有灵活性和应变能力,适合于需求不稳定的软件开发项目。
螺旋模型是一种风险驱动的生命周期模型,强调对开发过程中出现的风险进行管理,并在开发周期的各个阶段不断调整和完善计划。
该模型适用于需要高度可靠性、安全性和稳定性的软件项目。
敏捷方法是一种应对快速变化的软件开发方法,其主要特点是将软件开发过程分解为较短的周期(通常为2至4周),每个周期内的成果可以及时交付和评估。
因此,敏捷方法适用于需要快速响应市场、客户需求的软件开发项目。
以上介绍的生命周期模型仅是其中的一部分,根据项目的不同特点和需求,开发团队可以选择不同的生命周期模型。
二、选择生命周期模型的考虑因素在选择软件开发生命周期模型时,需要考虑多种因素,包括以下几个方面:1. 项目特点不同的项目具有不同的特点,例如项目复杂度、需求稳定性、风险程度等。
在选择生命周期模型时,应根据项目特点选择合适的模型。
如果项目需求稳定、复杂度低,则瀑布模型适合;如果项目需求变化较快,则可以考虑采用迭代模型或敏捷方法。
熟悉常用的软件开发生命周期模型软件开发生命周期模型是指在软件开发过程中,按照一定的步骤和阶段进行开发的方法论。
不同的生命周期模型适用于不同的开发需求和开发团队,但它们都以确保软件质量和满足用户需求为目标。
本文将介绍几种常用的软件开发生命周期模型,帮助读者更好地理解和应用于实际开发项目中。
瀑布模型瀑布模型是最经典的开发生命周期模型之一,它被认为是一种线性顺序模型。
瀑布模型将软件开发过程划分为几个阶段,如需求分析、系统设计、编码、测试和维护等。
每个阶段的输出会成为下一个阶段的输入,确保整个开发过程的连续性和一致性。
该模型适用于需求稳定、并能够明确详细的项目。
迭代模型迭代模型将软件开发过程划分为多个迭代周期,每个周期都包含需求分析、设计、编码、测试和发布等阶段。
每个迭代都会获得一个可用的软件产品,并在之后的迭代中不断完善和扩展。
迭代模型适用于需求变化频繁或团队缺乏明确的需求文档的情况。
通过快速迭代和反馈,开发团队能够更快地适应需求变化和改进软件质量。
螺旋模型螺旋模型将软件开发过程看作一系列的螺旋,每个螺旋代表一个开发周期。
在每个周期的开始,开发团队会进行风险评估和需求分析,并根据评估结果制定相应的开发策略。
然后,团队按照该策略进行设计、编码、测试和发布等工作。
螺旋模型适用于需要高风险控制和迭代开发的项目。
通过周期性的风险评估和调整,开发团队能够及时应对风险并提高软件质量。
敏捷模型敏捷模型是一种轻量级和迭代的开发方法论,强调快速适应需求变化和团队合作。
敏捷模型将开发过程划分为多个迭代周期,每个周期通常持续2到4周。
每个周期都包含需求分析、设计、编码、测试和部署等工作。
开发团队和客户之间的高效沟通和合作是敏捷模型的核心。
敏捷模型适用于团队追求快速交付、灵活适应需求变化的项目。
总之,软件开发生命周期模型是指导软件开发过程的重要方法论。
熟悉常用的软件开发生命周期模型有助于开发团队更好地组织和管理开发项目,确保软件质量和满足用户需求。
软件工程生命周期软件工程生命周期1. 引言软件工程生命周期是指软件开发过程中的一系列阶段和活动,从项目启动、需求分析,到系统设计、编码,再到测试、部署、维护等阶段。
软件工程生命周期的目的是确保软件开发过程的可控性和质量,以提供高质量的软件产品给用户。
2. 软件工程生命周期模型软件工程生命周期模型是指将软件开发过程划分为不同阶段的模型,常见的模型有瀑布模型、迭代模型、敏捷模型等。
2.1 瀑布模型瀑布模型是最早的软件工程生命周期模型之一,它将软件开发过程划分为需求分析、系统设计、编码、测试、部署、维护等严格的阶段。
2.2 迭代模型迭代模型是将软件开发过程划分为多个迭代周期的模型,每个迭代周期包括需求分析、系统设计、编码、测试等阶段,每个迭代周期都可以产生一个可交付的软件版本。
2.3 敏捷模型敏捷模型强调灵活性和快速响应变化,将软件开发过程分为多个短期的迭代周期,每个周期内开发人员和需求方紧密合作,快速迭代开发出可用的软件产品,并根据反馈及时调整需求和开发计划。
3. 软件工程生命周期的阶段无论使用哪种软件工程生命周期模型,软件开发过程都会经历一些共同的阶段。
3.1 需求分析阶段需求分析阶段是确定软件系统的需求和功能的阶段,通过与用户、业务人员的沟通和交流,分析需求,编写需求规格说明书。
3.2 系统设计阶段在系统设计阶段,软件工程师将需求规格说明书转化为可执行的软件设计方案,包括系统架构设计、模块设计、数据结构设计等。
3.3 编码阶段在编码阶段,根据系统设计方案,开发人员进行具体的编码实现。
3.4 测试阶段测试阶段是验证软件产品是否满足需求以及是否存在缺陷和漏洞的阶段,包括单元测试、集成测试、系统测试等。
3.5 部署阶段在软件部署阶段,将已经测试通过的软件产品部署到目标环境中,使用户可以正常使用。
3.6 维护阶段维护阶段是软件工程生命周期中的一个阶段,通过修复缺陷、升级软件版本等方式,确保软件系统持续稳定运行。
CMMI生命周期模型1.1 术语CMMI 能力成熟度模型集成PP 项目计划PMC 项目监控PPQA 过程和产品质量保证CM 配置管理SOW 工作说明书WBS 工作分解结构SRS 软件需求规格说明书2 带回溯的瀑布模型带回溯的瀑布模型是最常用的软件开发模型,它的各个阶段是按线性序列组织并可以回溯到上一级,克服了标准瀑布模型缺乏灵活性的缺点。
开发过程中的阶段划分为项目策划、需求分析、概要设计、详细设计、编码和单元测试、软件集成和集成测试、系统测试、验收和安装等(图1)。
尽管开发过程中定义了各个阶段的顺序,但这些阶段有时是相互交迭进行的,阶段间的依赖性由入口准则来确定。
带回溯的瀑布模型的每个阶段均具有以下特征:●从上一阶段接受本阶段工作的对象,作为输入;●对上述输入实施本阶段的活动;●给出本阶段的工作成果,作为输出传入下一阶段;●对本阶段工作进行评审,如果本阶段工作得到确认,那么继续下阶段工作,否则返回前一阶段,甚至更前阶段。
●本阶段可以回溯至上一阶段,并可以逐级向上回溯。
●各阶段之间可以有重叠。
图1 瀑布模型瀑布模型为软件开发与维护提供了一种有效的管理模式,根据这一管理模式制订开发计划、进行成本预算、组织开发人员,以阶段评审和文档控制为手段有效地对整个开发过程进行指导,从而保证了软件产品的质量。
优点:适用于需求稳定,且无其它不确定因素;易于理解和使用;每个阶段的产出物形成稳定的基线;变更被认为很少发生或是严格受控的。
缺点:对于需求不稳定或存在其它不确定因素的项目适用性差,变更实现困难且成本高;一般在最后阶段才能看到产品。
2.1 项目启动建立项目,并且确认相关的项目干系人并且取得相关干系人的关系依赖,做好相关的准备工作和进行对项目的估算,准备项目的任务书和进行项目的启动。
2.2 项目计划项目策划是每个项目的初始阶段,目的是为开发过程和过程管理做好必要的准备。
项目策划的主要工作是进行可行性分析和研究,进行估计和制定管理项目的计划。
软件⽣存周期及其模型是什么?
软件⽣存周期(Software life cycle)⼜称为软件⽣命期,⽣存期。
是指从形成开发软件概念起,所开发的软件使⽤以后,直到失去使⽤价值消亡为⽌的整个过程。
⼀般来说,整个⽣存周期包括计划(定义)、开发、运⾏(维护)三个时期,每个时期⼜划分为若⼲个阶段。
每个阶段有明确的任务。
周期模型(典型的⼏种):
瀑布模型
快速原型模型:快速原型模型允许在阶段对软件的需求进⾏初步⽽⾮完全的分析和定义,快速设计开发出的原型,该原型向⽤户展⽰待开发软件的全部或部分功能和性能;⽤户对该原型进⾏测试评定,给出具体改进意见以丰富细化;开发⼈员据此对软件进⾏修改完善,直⾄⽤户满意认可之后,进⾏软件的完整实现及测试、维护。
迭代模型:迭代包括产⽣产品发布(稳定、可执⾏的产品版本)的全部开发活动和要使⽤该发布必需的所有其他外围元素。
在某种程度上,开发迭代是⼀次完整地经过所有⼯作流程的过程:需求分析、设计、实施和测试⼯作流程。
实质上,它类似⼩型的瀑布式项⽬。
RUP认为,所有的阶段都可以细分为迭代。
每⼀次的迭代都会产⽣⼀个可以发布的产品,这个产品是最终产品的⼀个⼦集。
⽣命周期阶段:
软件计划与可⾏性分析
需求分析
软件设计
编码
软件测试
运⾏与维护。
瀑布模型/改进的瀑布模型
虽然瀑布模型仍然存在很多的问题有待解决,但瀑布模型仍然是最基本的和最效的一种可供选择的软件开发生命周期模型.瀑布模型要求软件开发严格按照需求->分析->设计->编码->测试的阶段进行,每一个阶段都可以定义明确的产出物和验证准则.瀑布模型在每一个阶段完成后都可以组织相关的评审和验证,只有在评审通过后才能够进入到下一个阶段.
由于需要对每一个阶段进行验证,瀑布模型要求每一个阶段都有明确的文档产出,对于严格的瀑布模型每一个阶段都不应该重叠,而应该是在评审通过,相关的产出物都已经基线后才能够进入到下一个阶段.
瀑布模型的优点是可以保证整个软件产品较高的质量,保证缺陷能够提前的被发现和解决.采用瀑布模型可以保证系统在整体上的充分把握,使系统具备良好的扩展性和可维护性.但对于前期需求不明确,而又很难短时间明确清楚的项目则很难很好的利用瀑布模型.另外对于中小型的项目,需求设计和开发人员往往在项目开始后就会全部投入到项目中,而不是分阶段投入,因此采用瀑布模型会导致项目人力资源过多的闲置的情况,这也是必须要考虑的问题.
很多人往往会以进度约束而不选择瀑布模型,这往往是一个错误的观点.导致这种情况的一个关键因素往往是概念需求阶段人力不足.因此在概念需求阶段人力能够得到充分保证的情况下,瀑布模型和迭代模型在开发周期上并不会存在太大的差别.反而是很多项目对于迭代或敏捷模型用不好,为了赶进度在前期需求不明确, 没有经过一个总体的架构设计情况下就开始编码,后期出现大量的返工而严重影响进度.
架构设计是软件开发中一个重要的关注点.因此在RUP中也提及到软件开发要以架构为核心.因此在架构设计完成后系统会被分为相关的子系统和功能模块.每个功能模块间的接口都可以定义清楚.在这种情况下,当模块B的详细设计做完成后往往就没有必要等到其它模块的
详细设计都要完全作完才开始编码,因此在架构设计完成后可以将系统分为多个模块并行开发,每个模块仍然遵循先设计和编码测试的瀑布模型思路.这是瀑布模型的一种最重要的改进思路,也可以说这是一种增量开发的模型。
当一个新系统的开发存在多个完全不相关的独立需求的功能开发的时候,也可以选择将整个开发过程按独立的需求来分为多个小瀑布进行操作.这种方式的最大问题就是没有一个完全总体的设计,架构设计人员无法在洞悉了所有需求后从系统的可扩展性,复用等方面总体规划.
在项目管理中有一种压缩进度的方法叫赶工,因此瀑布模型的另外改进处就在适当的重叠各个阶段过程,达到资源的有效利用.比如我们通过讨论,会议确定的实现方式就可以开始执导下一个阶段的工作而不一定完全等到相关的交付物文档化出来.
螺旋模型
首先螺旋模型是遵从瀑布模型的.即需求->架构->设计->开发->测试的路线.螺旋模型最大的价值在于整个开发过程是迭代和风险驱动的.通过将瀑布模型的多个阶段转化到多个迭代过程中,以减少项目的风险.
螺旋模型的每一次迭代都包含了以下六个步骤
1.决定目标,替代方案和约束
2.识别和解决项目的风险
3.评估技术方案和替代解决方案
4.开发本次迭代的交付物和验证迭代产出的正确性.
5.计划下一次迭代
6.提交下一次迭代的步骤和方案.
螺旋模型实现了随着项目成本投入不断增加,风险逐渐减小.以帮我我们加强项目的管理和跟踪,在每次迭代结束后都需要对产出物进行评估和验证,当发现无法继续进行下去时可以及早的终止项目.
螺旋模型复杂的地方在于尽责,专心和知识渊博的管理.因为对于每一次迭代我们要制定出清晰的目标,分析出相关的关键风险和计划中可以验证和测试的交付物并不是一件容易的事情.
螺旋模型的每一次迭代只包含了瀑布模型的某一个或两个阶段.如第二次迭代重点是需求,第三次迭代是总体设计和后续设计开发计划等.因此这是和RUP提倡的迭代模型是有区别
的,RUP的每一次迭代都会包含需求,设计,开发和测试等各个阶段的活动.RUP迭代的目的在于逐步求精而不是仅仅完成瀑布模型某一阶段的工作.
增量和迭代模型
增量迭代是RUP统一过程常采用的软件开发生命周期模型.增量和迭代有区别但两者又经常一起使用.所以这里要先解释下增量和迭代的概念.假设现在要开发A,B,C,D四个大的业务功能,每个功能都需要开发两周的时间.则对于增量方法而言可以将四个功能分为两次增量来完成,第一个增量完成A,B功能,第二个增量完成C,D功能;而对于迭代开发来讲则是分两次迭代来开发,第一次迭代完成A,B,C,D四个基本业务功能但不含复杂的业务逻辑,而第二个功能再逐渐细化补充完整相关的业务逻辑.在第一个月过去后采用增量开始时候A,B全部开发完成而C,D还一点都没有动;而采用迭代开发的时候A,B,C,D四个基础功能都已经完成.
RUP强调的每次迭代都包含了需求,设计和开发,测试等各个过程,而且每次迭代完成后都是一个可以交付的原型。
迭代不是并行,在每次迭代过程中仍然要遵循需求->设计->开发的瀑布过程。
迭代周期的长度跟项目的周期和规模有很大的关系。
小型项目可以一周一次迭代,而对于大型项目则可以2-4周一次迭代。
如果项目没有一个很好的架构师,很难规划出每次迭代的内容和要到达的目标,验证相关的交付和产出。
因此迭代模型虽然能够很好的满足与用户的交付,需求的变化,但确是一个很难真正用好的模型.
就对风险的消除上,增量和迭代模型都能够很好的控制前期的风险并解决.但迭代模型在这方面更有优势.迭代模型更多的可以从总体方面去系统的思考问题,从最早就可以给出相对完善的框架或原型,后期的每次迭代都是针对上次迭代的逐步精化.
业界比较标准的增量模型往往要求在软件需求规格说明书全部出来后后续的设计开发再
进行增量.同时每个增量也可以是独立发布的小版本.由于系统的总体设计往往对一个系统的架构和可扩展性有重大的影响,因此我们推荐的增量最好是在架构设计完成后再开始进行增量,这样可以更好的保证系统的健壮性和可扩展性.
原型法
原型一般都不是单独采用的一种生命周期模型,往往会结合瀑布和增量迭代等方法一起使用.对于螺旋模型就可以理解为瀑布+迭代+原型+风险的一种生命周期模型.对于迭代开发来讲,每一个迭代周期的产出都可以看做是下个阶段要精化的原型.而对于瀑布模型开发来讲,我们在需求阶段也可以进行界面和操作建模,形成DEMO后和用户做进一部的需求沟通和确认.
当你的用户没有信息系统的使用经验,你的系统分析员也没有过多的需求分析和挖掘经验的时候,需求分析和调研过程则更需要是一个启发式的过程.而原型则是这种很好的启发式方法,可以快速的挖掘用户需求并达成需求理解上的一致.否则即使双方都签字认可的需求往往仍然不是客户真正想要的东西.
原型可以分为抛弃型的和不抛弃型的.如果原型仅仅是需求阶段方面和用户沟通画的DEMO,则这种原型一般都建议抛弃掉.而对于迭代开发来将,每次迭代的产出都是可以独立运行和包含基础功能的系统,是后续细化的基础,这类原型一般都不建议抛弃,后期的设计开发也要基于该原型逐渐的进行完善.
快速和敏捷开发
我们一般将快速和敏捷开发做为方法论,而很少将其做为一种软件开发生命周期模型.敏捷的目的是减少繁重和不必要的工件的输出,提高效率.而不是要我们去挑阶段或过程,不是分析设计都还没有做就去做开发.因此对于瀑布,增量迭代或原型我们都可以借鉴敏捷方法论中的一些好的实践,这些实践都是对传统的生命周期模型很好的补充.对于敏捷方法论在此不再做过多的叙述.
关于选择生命周期模型的最后的总结
(1)在前期需求明确的情况下尽量采用瀑布模型或改进型的瀑布模型。
(2)在用户无信息系统使用经验,需求分析人员技能不足情况下一定要借助原型。
(3)在不确定性因素很多,很多东西前面无法计划情况下尽量采用增量迭代和螺旋模型。
(4)在需求不稳定情况下尽量采用增量迭代模型。
(5)在资金和成本无法一次到位情况下可以采用增量模型,软件产品分多个版本进行发布。
(6)对于完全多个独立功能开发可以在需求阶段就分功能并行,但每个功能内都应该遵循瀑
布模型。
(7)对于全新系统的开发必须在总体设计完成后再开始增量或并行。
(8)对于编码人员经验较少情况下建议不要采用敏捷或迭代等生命周期模型。
(9)增量,迭代和原型可以综合使用,但每一次增量或迭代都必须有明确的交付和出口准则。