软件过程与软件开发模型.pptx_第1页
软件过程与软件开发模型.pptx_第2页
软件过程与软件开发模型.pptx_第3页
软件过程与软件开发模型.pptx_第4页
软件过程与软件开发模型.pptx_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件过程与软件开发模型,演讲人 崔琳娜,生存周期与软件过程的关系,什么是过程?广义的说,人们随时间的流逝而进行的各种活动均可称为过程(process,流程)因此,软件过程可理解为围绕软件开发所进行的一系列活动。 在早些时候,人们常常把软件过程译为“软件开发模型” 按照早期软件工程的观点,软件开发模型包含的阶段与活动软件生存周期划分的阶段与活动基本上是一致的。它们共同的特点是将整个“过程”严格的划分阶段,各阶段的活动分步完成;前一阶段的活动没有结束,下一阶段的活动就不能进行,恰如奔流不息、拾级而下的瀑布。,软件过程的演变,在第一代软件工程期间,瀑布开发模型在软件的开发与维护中被普遍采用。 到了20世纪80年代中期,人们终于发现,这种线性开发模型不适合于大型复杂系统的开发。 软件开发模型开始演变。除传统的线性开发模型外,又陆续涌现了一批新的、允许在开发过程中任意回溯和迭代的过程模型。,软件过程涵义,软件过程是软件开发与维护的工作流程和工艺流程,是软件工程的重要组成部分。 软件过程指软件生存周期中所涉及的一系列相关过程。过程是活动的集合,活动是任务的集合,任务是把输入转换为输出的操作。软件过程是动态的,它动态地产生、推进(执行),动态地消亡。 软件过程模型是对软件过程静态的、抽象的描述,是软件过程执行的依据。,软件过程-ISO/IEC 12207,软件开发模型与软件工程,常见的开发模型: 瀑布模型、演化模型、螺旋模型、 XP开发模型、 快速开发模型等。 由于现在还没有任何一种方法能够解决软件危机中的所有问题,所以在软件开发的各个阶段采用综合治理的方法。 软件开发模型直接影响软件开发的周期和软件质量,是软件开发的组织管理形式,是软件工程最重要的内容之一。,瀑布模型的概念,瀑布模型是将软件生存周期各活动规定为依线性顺序联接的若干阶段的模型。它包括需求分析、概要设计、详细设计、编码、测试和维护。它规定了由前至后、相互衔接的固定次序,如同瀑布流水,逐级下落。,特征: 从上一阶段承接的成果物作为本阶段的工作对象; 对上一阶段成果实施本阶段的活动; 给出本阶段的成果,作为下一阶段的输入; 对本阶段的工作进行评审,若本阶段的工作得到确认,则继续下阶段的工作,否则返回前一阶段或更前一阶段。 优点: 提供了一个模板,使得分析、设计、编码、测试、运行维护可以在该模板的指导下应用。,瀑布模型的特点,缺点: 缺乏灵活性,不能适应用户需求的改变 开始阶段的小错误被逐级放大,可能导致软件产品报废 返回上一级的开发需要十分昂贵的代价 随着软件规模和复杂性的增加,对于需求不能完全确定的软件开发项目将产生很大的风险。 通常使用场合: 需求分析做得比较好的系统 二次开发系统,原型模型,在项目开发的初始阶段,人们对软件的需求认识往往不够清楚,因而使得开发项目难以做到一次开发成功,出现返工再开发在所难免。 在获得用户基本需求说明的基础上,投入少量人力和物力,快速建立一个原始模型,使用户及时运行和看到模型的概貌和使用效果,并对需求说明进行补充和精化,提出改进意见,开发人员进一步修改完善,如此循环迭代,直到得到一个用户满意的模型为止。,原型模型的内容,原型模型的特点,优点: 开发者与用户充分交流,可以澄清模糊需求,需求定义比其他模型好得多 为用户需求的改变提供了充分的余地 缺点: 开发者为了使一个原型快速运行起来,往往在实现过程中采用折衷的手段。软件系统的组成部分可能会打折扣; 资源规划和管理较为困难,随时更新文档也带来麻烦。 一般使用场合: 开发者在不了解的应用领域开发 客户不清楚其所开发软件项目的最终目标,软件演化模型-增量模型,系统设计时分片交付,可使用户在使用某些基本功能的同时,开发剩余的功能。这样通常会并行地存在两个系统:生产系统和开发系统。运行或生产系统是当前被客户或用户所使用的系统。而开发系统是准备用于替代当前生产系统的下一个版本。 增量模型是一种非整体开发的模型。是瀑布模型的顺序特征和快速原型模型的迭代特征相结合的产物。 该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。,软件演化模型-螺旋模型,软件开发几乎总要冒一定的风险,例如,产品交付给用户之后用户可能对产品不满意,到了预定的交付日期软件可能还未开发出来,实际的开发成本可能超过了预算,产品完成之前一些关键的开发人员可能“跳槽”了,产品投入市场之前竞争对手发布了一个功能相近、价格更低的软件等等。软件风险是任何软件开发项目中都普遍存在的实际问题,项目越大,软件产品越复杂,承担该项目所冒的风险也越大。软件风险可能在不同程度上损害软件开发过程和软件产品质量。因此,在软件开发过程中必须及时识别和分析风险,并且采取适当措施以消除或减少风险的危害。 构建原型是一种能使某些类型的风险降至最低的方法。 于是在1988年B.boehm提出了螺旋模型。,XP开发模型,XP极限编程(eXtreme Programming)是一种敏捷(Agile)开发方法,以编码为核心任务的,供中小型小组用于开发需求快速变化的软件。 敏捷是什么?敏捷已经成为当今描述现代软件过程的时髦用词。每个人都是敏捷的,敏捷团队是能够适当响应变化的灵活团队。变化就是软件开发本身,软件构建有变化,团队成员在变化、使用新技术带来变化,各种 变化都会对开发的软件产品以及项目本身造成影响。我们必须接受“支持变化”的思想,它应当根植于软件开发中的每一件事中,因为这是软件的心脏与灵魂。敏捷团队意识到软件是团队中所有人共同开发完成的,这些人的个人技能和合作能力是项目成功的关键所在,XP开发模型,敏捷方法是为了克服传统软件工程中认识和实践的弱点开发而成的(Jim Highsmith说:“传统方法学家陷入了误区,乐于生完美的文档而不是满足业务需要的可运行系统”)。敏捷开发可以带来多方面的好处,但它并不使用于所有的项目、所有的方面、所有的人和所有的情况,它并不完全对立于传统的软件工程实践。,XP模型开发概要,XP有四部分组成:价值、原则、活动和实践 XP的4种价值观: 交流:侧重口头交流,而不是文档、报表和计划。因而,人际关系显得尤为重要。 简化:在管用的前提下,做最简单的事。目标放在客户当前的需求上,摒弃了过多的文档。 反馈: 通过及时地单元测试和功能测试获得快速反馈。 快速地编写软件,然后向客户演示。为确保准确性和高质量,获取客户关于到目前为止的进度的反馈是至关重要的。 勇气: 提倡积极面对现实和处理问题的勇气 快速工作并在必要时重新进行开发的勇气。,XP模型开发概要,XP的指导原则: 快速反馈:开发人员通过简短的反馈循环迅速了解其当前产品是否满足了客户的需求。 简单性假设:将每个问题都视为很容易解决。只需为当前迭代打算,而无需洞察未来可能需要什么。 逐步修改:通过一系列细微的修改来解决问题。 拥抱变化:包容变化,提倡变化。 高质量的工作:工作质量决不可打折扣。XP采用测试先行的编程方式,强调编码和测试的重要性。,面向对象的开发模型,面向对象的基本概念 对象Object 类Class 继承Inheritance 消息Message 面向对象 对象+类+继承+消息通信,面向对象的基本概念,对象Object 客观世界中的实体 状态(静态属性 Attributes) 操作(动态行为 Methods) 对象:= Identifier(标识:即名称,用来在问题域中区分其他对象) Method Set(即行为或方法:一是对自身的操作,改变原有的属性状态;另一是施加于其他对象的操作,将产生的输出结果作为消息发送的操作) Data Structure(数据:描述对象属性的存储或数据结构,他表示了对象的一个状态) Message Interface(接口:主要指对外接口,指对象受理外部消息所制定的操作的名称集合),面向对象的基本概念,类Class和实例Instance 类 相同属性和行为的对象的抽象 实例 特定类所描述的一个具体对象,面向对象的基本概念,继承(Inheritance),多态性Polymorphism,概念 不同类层次共享一个方法名 相同的参数特征和返回值类型 多种不同实现 C+中虚函数实现 动态联编,重载Overloading,函数重载 同一作用域 多个名字相同的函数 参数特征不同 静态联编 运算符重载,消息Message,对象间的交互手段 形式: Message:dest,op,para Destination Object(目标对象) Operation(操作) Parameters(参数),面向对象的开发模型2,对象技术为软件工程的基于构件的过程模型提供了技术框架。面向对象范型强调了类的创建,类封装了数据和用于操纵该数据的算法。如果经过合适的设施和实现,面向对象的类可以在不同的应用及基于计算机的系统结构中复用 面向对象模型融合了螺旋模型的许多特征。它本质上是演化的,支持软件开发的迭代方法。,构件集成模型,构件(component)也称为组件,是一段实现一系列有确定接口的程序体,具有自己的功能和逻辑,能同其他构件组装起来协调工作。 该模型支持软件重用,对缩短软件开发周期、降低项目成本有重要的现实意义。同时,建造符合某应用领域体系结构标准的构件,可以用来搭建分布式的、跨越不同操作平台的软件,扩展了软件的应用前景,促进了软件标准化、商品化的发展。 因此,在此基础上专家们又提出了“基于构件的软件工程”(CBSE)。 构件组装模型具有极其广阔的实用性和深远的意义。 构件组装模型如下图所示:,构建集成模型,构件技术,软件体系结构被建立后,必须用构件去充实,这些构件可从复用库中获得,或者根据专门需要而开发。整个过程可以演化地进行,面向对象方法给予技术上的支持。 构件技术目前主要有三种流行标准: OMG的CORBA: 对象管理组织发布的公共对象请求代理体系结构(Common Object Request Broker Architecture)。一个对象请求代理(ORB)提供一系列服务,使得一个构件和其他构件通信,而不管它们在系统中的位置,实现了远程对象通过接口进行通信的机制。,构件技术, 微软的COM/DCOM:微软开发了构件对象模型(Component Object Model),它提供了运行于windows之上的单个应用系统使用不同厂商生产的构件的规约。基于分布式环境下的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论