软件工程2软件过程.ppt
,软件过程,软件工程,一 软件过程,1、定义,定义:计算机科学技术百科全书:软件过程是软件生存周期中的一系列相关过程。,软件生命周期,一软件过程,2、软件过程的时期(软件生命周期),一软件过程,5、软件过程的基本任务,注意:只为框架,根据实际组成最佳软件过程!,二 软件过程模型,1、模型概述,软件过程模型 软件过程模型是对实际过程的抽象描述 常见的软件过程模型,瀑布模型快速原型模型增量模型螺旋模型形式化方法模型基于组件的开发模型,喷泉模型增量模型Rational统一过程敏捷过程与极限编程能力成熟度模型,1、瀑布模型:将软件开发活动分为需求分析、设计、编码、测试等阶段,自上而下,相互衔接的固定次序,如瀑布流水、逐级下落,瀑布模型的特点:,(1).线性化模型结构;瀑布模型中,前一个阶段完成后,下一个阶段才往下做。任何阶段如果发生错误,立即返回发生错误的阶段进行修改。(2).各阶段具有里程碑特征;里程碑指瀑布模型中的阶段只能逐级到达、不能跨越;,瀑布模型的特点:,(3).基于文档的驱动;瀑布模型中,每一阶段完成后,都会产生文档。(4).严格的阶段评审机制。,瀑布模型的特点:,(5).瀑布模型是线性的,用户只有等到整个过程末期才能见到开发出来的软件产品,从而增加了开发风险。(6)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。,瀑布模型的特点:,(7).为软件开发和维护提供了一种有效管理模式,对保证软件产品的质量有重要的作用;(8)不适应用户需求的变化,缺乏灵活性。有可能直到软件开发完成才发现软件不是用户需求的。,瀑布模型适应于:需求不发生或发生很少变化,需求明确的情况。软件开发人员具有丰富的经验,对软件应用领域很熟悉。软件项目的风险较低。瀑布模型不具有完善的风险控制机制,2、快速原型模型,为了克服瀑布模型的缺点而提出来的。通过快速构建一个在机器上可运行的原型系统,让用户试用原型,并收集反馈意见的办法,来获取用户真实的需求。,三 软件过程模型,快速原型模型步骤,第1步:快速建立一个能反映用户主要需求的原型系统,让用户在计 算机上试用它,通过实践来了解目标系统的概貌。第2步:用户试用原型系统之后会提出许多修改意见,开发人员按照 用户意见快速地修改原型系统,然后再次请用户试用,。经过多次反复之后,一旦用户认为现在这个原型系统确实能 做他们所需要的工作,开发人员便可以依照这个原型系统书 写规格说明文档,根据这份文档开发出的软件应该能够满足 用户的真实需要。第3步、第4步,快速原型模型特点,1、迭代性:原型法第一次只是试验开发,第二次则在此基础上获得较为满意的软件产品,接下来第三次获得更为满意的软件产品,第四次不断迭代,直到得到最终的产品。2、减少由于软件需求不明确而给开发带来的风险。3、与瀑布模型相比,原型法需要更多用户、获取方的参与。,快速原型模型特点,4、没有考虑软件的整体质量和长期的可维护性。原型中,一些不合适的操作算法会被采用,目的为了演示功能和快速创建原型。还有,一些不合适的开发工具被采用也仅仅只是为了它的方便,还有不合适的操作系统被选择等等。如果客户和开发者达成一致协议:原型被建造仅为了定义需求,之后就被抛弃或者部分抛弃,而采用新模型重新设计。5、原型用于需求的获取和确认6、对于大型软件项目,原型模型缺乏有效的管理规程。7、快速模型还包含瀑布模型的思想。,快速原型模型适用于:已有产品或产品的原型(样品),只需客户化的工程项目简单而熟悉的行业或领域有快速原型开发工具进行产品移植或升级,增量模型是把待开发的软件系统模块化将每个模块作为一个增量组件分批次地分析、设计、编码和测试这些增量组件。,3、增量模型(渐增模型),以增量方式逐步完善待开发的软件。当一个新的构件被编码和测试后,并入到软件系统中,然后作为一个整体进行测试。分批逐步向用户提交产品,直到最后一次得到满足全部需求的完整产品。,3、增量模型(渐增模型),增量模型,增量模型特点:作为瀑布模型变体,具有瀑布模型的所有优点。每个增量开发都是一次瀑布模型的过程递增式开发。开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。第一个可交付版本所需要的成本和时间很少;,增量模型特点:开发由增量表示的小系统,承担的风险不大。当使用增量模型时,第一个增量往往是核心产品,也就是说第一个增量实现了基本的需求。由于很快发布了第一个版本,因此可以减少用户需求的变更;使投资获得明显回报;但要求软件具有开放结构。允许增量投资,即在项目开始时,可以仅对一个或两个增量投资。,增量模型特点:可将早期增量作为原型,从中获得对后面增量的需求经验;项目总体性失败的风险比较低。增量模型强调每一个增量,都是一个可发布的软件产品。增量模型融合了线性顺序模型的基本成分(重复的应用)和原型实现的迭代特征。,增量模型特点:11.人员分配灵活。刚开始不用投入大量人力资源,当核心产品很受欢迎时,可增加人力实现下一个增量。12.具有一定的市场。当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径,这样就可以先发布部分功能给客户,对客户起到镇静剂的作用。13.至始至终开发者和客户纠缠在一起,直到完全版本出来。,增量模型适用于:,当需要快速推出可运行的版本,而该版本不需要完整的功能时,我们可以选择增量模型。在不确定性因素很多,很多东西前面无法计划情况下,可以采用增量迭代模型软件产品可以分批次地进行交付。待开发的软件系统能够被模块化。软件开发人员对应用领域不熟悉,难以一次性进行系统开发。项目管理人员把握全局的水平较高。,4、螺旋模型,是一种引入了风险分析的模型是瀑布模型、快速原型方法和风险分析方法的有机结合。,三 软件过程模型,4、螺旋模型,螺旋模型特性,螺旋模型被划分为若干框架活动关注软件的重用螺旋模型可以降低风险需要风险评估的经验逐步明确需求,螺旋模型特性,螺旋模型一个周期执行时间太长,而且要有方法和自动化工具支持,否则无法实施螺旋模型适应于风险较大的大型软件项目的开发。由于软件项目的风险分析会增加成本,假如风险分析费用比例过高则不合算。因此,只有开发资金较多的大型项目才有按阶段进行详细风险分析的可能与必要。也是一个演化模型一次次迭代逐步产生更加完善版本。,三 软件过程模型,5、喷泉模型,喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。,迭代:软件的某个部分常常被重复工作多次,相关对象在每 次迭代中随之加入渐进的软件成分。重复 演进 无间隙,三 软件过程模型,喷泉模型,三 软件过程模型,喷泉模型特性,优点:开发人员可以同步进行开发。可以提高软件项目开发效率,节省开发时间。具有较好的可移植性,容易适应各种运行环境缺点:由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,不利于项目的管理。这种模型要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。,结 束,