欢迎来到天天文库
浏览记录
ID:38726096
大小:1.54 MB
页数:33页
时间:2019-06-18
《软件过程与软件开发模型x》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件过程与软件开发模型演讲人崔琳娜生存周期与软件过程的关系什么是过程?广义的说,人们随时间的流逝而进行的各种活动均可称为过程(process,流程)因此,软件过程可理解为围绕软件开发所进行的一系列活动。在早些时候,人们常常把软件过程译为“软件开发模型”按照早期软件工程的观点,软件开发模型包含的阶段与活动软件生存周期划分的阶段与活动基本上是一致的。它们共同的特点是将整个“过程”严格的划分阶段,各阶段的活动分步完成;前一阶段的活动没有结束,下一阶段的活动就不能进行,恰如奔流不息、拾级而下的瀑布。软件过程的演变在第一代软件工程期间,瀑布开发模型在软件的开发与维护中被普遍采用
2、。到了20世纪80年代中期,人们终于发现,这种线性开发模型不适合于大型复杂系统的开发。软件开发模型开始演变。除传统的线性开发模型外,又陆续涌现了一批新的、允许在开发过程中任意回溯和迭代的过程模型。软件过程涵义软件过程是软件开发与维护的工作流程和工艺流程,是软件工程的重要组成部分。软件过程指软件生存周期中所涉及的一系列相关过程。过程是活动的集合,活动是任务的集合,任务是把输入转换为输出的操作。软件过程是动态的,它动态地产生、推进(执行),动态地消亡。软件过程模型是对软件过程静态的、抽象的描述,是软件过程执行的依据。软件过程-ISO/IEC12207主要过程类获取过程
3、供应过程开发过程运行过程维护过程支持过程类文档编制过程配置管理过程质量保证过程验证过程确认过程联合评审过程审核过程问题解决过程组织过程类管理过程基础设施过程改进过程培训过程软件开发模型与软件工程常见的开发模型:瀑布模型、演化模型、螺旋模型、XP开发模型、快速开发模型等。由于现在还没有任何一种方法能够解决软件危机中的所有问题,所以在软件开发的各个阶段采用综合治理的方法。软件开发模型直接影响软件开发的周期和软件质量,是软件开发的组织管理形式,是软件工程最重要的内容之一。瀑布模型的概念瀑布模型是将软件生存周期各活动规定为依线性顺序联接的若干阶段的模型。它包括需求分析、概要设
4、计、详细设计、编码、测试和维护。它规定了由前至后、相互衔接的固定次序,如同瀑布流水,逐级下落。瀑布模型的特点特征:从上一阶段承接的成果物作为本阶段的工作对象;对上一阶段成果实施本阶段的活动;给出本阶段的成果,作为下一阶段的输入;对本阶段的工作进行评审,若本阶段的工作得到确认,则继续下阶段的工作,否则返回前一阶段或更前一阶段。优点:提供了一个模板,使得分析、设计、编码、测试、运行维护可以在该模板的指导下应用。瀑布模型的特点缺点:缺乏灵活性,不能适应用户需求的改变开始阶段的小错误被逐级放大,可能导致软件产品报废返回上一级的开发需要十分昂贵的代价随着软件规模和复杂性的增加,
5、对于需求不能完全确定的软件开发项目将产生很大的风险。通常使用场合:需求分析做得比较好的系统二次开发系统原型模型在项目开发的初始阶段,人们对软件的需求认识往往不够清楚,因而使得开发项目难以做到一次开发成功,出现返工再开发在所难免。在获得用户基本需求说明的基础上,投入少量人力和物力,快速建立一个原始模型,使用户及时运行和看到模型的概貌和使用效果,并对需求说明进行补充和精化,提出改进意见,开发人员进一步修改完善,如此循环迭代,直到得到一个用户满意的模型为止。原型模型的内容原型模型的特点优点:开发者与用户充分交流,可以澄清模糊需求,需求定义比其他模型好得多为用户需求的改变提供
6、了充分的余地缺点:开发者为了使一个原型快速运行起来,往往在实现过程中采用折衷的手段。软件系统的组成部分可能会打折扣;资源规划和管理较为困难,随时更新文档也带来麻烦。一般使用场合:开发者在不了解的应用领域开发客户不清楚其所开发软件项目的最终目标软件演化模型-增量模型系统设计时分片交付,可使用户在使用某些基本功能的同时,开发剩余的功能。这样通常会并行地存在两个系统:生产系统和开发系统。运行或生产系统是当前被客户或用户所使用的系统。而开发系统是准备用于替代当前生产系统的下一个版本。增量模型是一种非整体开发的模型。是瀑布模型的顺序特征和快速原型模型的迭代特征相结合的产物。该模
7、型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。软件演化模型-螺旋模型软件开发几乎总要冒一定的风险,例如,产品交付给用户之后用户可能对产品不满意,到了预定的交付日期软件可能还未开发出来,实际的开发成本可能超过了预算,产品完成之前一些关键的开发人员可能“跳槽”了,产品投入市场之前竞争对手发布了一个功能相近、价格更低的软件等等。软件风险是任何软件开发项目中都普遍存在的实际问题,项目越大,软件产品越复杂,承担该项目所冒的风险也越大。软件风险可能在不同程度上损害软件开发过程和软件产品质量。因此,在软件开发过程中必须及时识别和分析风险,
此文档下载收益归作者所有