《软件工程——理论、方法与实践》课件第2章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《软件工程——理论、方法与实践》课件第2章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程理论、方法与实践 软件工程 理论 方法 实践 课件
- 资源描述:
-
1、1 1第2章 软 件 过 程第2章 软 件 过 程2.1 软件过程概述2.2 软件过程模型2.3 Rational统一过程2.4 敏捷开发过程2.5 面向方面的软件开发本章小结习题2 2第2章 软 件 过 程2.1 软件过程概述软件过程具有以下一些特征:(1)过程描述了所有的主要活动。(2)过程在一定限制下使用资源、产生中间和最终的产品。(3)过程由以某种方式连接的子过程构成,活动以一定的顺序组织。(4)每个过程活动都有入口和出口准则以便确立活动的开始和结束。(5)每个过程都有达到活动目标的相关指导原则。3 3第2章 软 件 过 程软件过程可概括为三类:基本过程类、支持过程类和组织过程类。基本
2、过程类包括需求获取和定义过程、设计过程、实现过程、验证过程和维护过程;支持过程类包括文档过程、配置管理过程、质量保证过程、联合评审过程、审计过程等;组织过程类包括基础设施过程、改进过程以及培训过程。4 4第2章 软 件 过 程2.2 软件过程模型软件开发过程也被称作为软件生命周期,因为它描述了一个软件产品从建立概念到实现、交付、使用、维护的过程。软件过程模型是对软件开发过程的抽象描述。模型一般来说是对实际过程的简化,过程模型通常包括软件活动、软件产品和人员的角色等。尽管从不同的角度可以构造很多不同的软件过程模型,但一般来说,有一些通用的软件开发模式和模型。5 5第2章 软 件 过 程2.2.1
3、 瀑布模型瀑布模型是被广泛认可的第一个软件工程模型。在模型中,过程的主要活动按需求分析和定义、系统和软件设计、编码和单元测试、集成和系统测试、运行和维护几个阶段顺序展开,瀑布模型的这几个活动阶段与软件生存期相吻合,模型示意如图2.1所示。6 6第2章 软 件 过 程图2.1 瀑布模型7 7第2章 软 件 过 程1需求分析和定义需求分析和定义阶段着重回答“软件要解决什么问题?”。这个阶段,通过咨询用户和与用户商讨准确地分析和定义系统的功能、限制和目标,分析和定义的结果被详细地用需求规格说明来描述。需求分析和定义是软件过程的早期阶段活动,若需求定义不准确将会造成所交付的软件存在严重的问题,并会为软
4、件的修改付出很大的代价。8 8第2章 软 件 过 程2系统和软件设计设计阶段需要回答“系统应该如何实现?”这个问题,因此设计阶段主要是要根据需求划分系统的组件,包括建立系统总体结构(又称为概要设计或初步设计)和确立构成系统的组件的细节(又称详细设计)。9 9第2章 软 件 过 程3编码和单元测试编码和单元测试阶段又称为实现阶段。实现阶段通过采用适合的程序设计语言,编码完成软件的设计,形成系统的程序集合。单元模块的测试通常在本阶段内完成。4集成和系统测试这个阶段对已通过单元测试的程序单元进行集成和测试,以保证整个系统可以满足用户的需求。在测试完成后系统可以被交付给用户。1010第2章 软 件 过
5、 程5运行和维护软件交付后并不意味着开发机构完成了所有的开发任务,一般来说,运行和维护是软件生存期中最长的一个阶段。软件的本质特性决定了软件交付后不可避免地会遭遇变更,维护涉及对未被发现的错误的纠正和对用户提出的新需求的完善。1111第2章 软 件 过 程2.2.2 演化式开发模型很多时候,软件开发的初期并不能准确、全面地发掘出软件的需求,软件的开发只能从并非准确的需求描述开始。演化式开发的主要思想是:首先经过概要的分析构建一个初始的系统(原型),将原型提交给用户评价,根据反馈信息改进系统形成新的原型(中间系统),重复这个过程直至系统可以满足用户的需要而产生最终可交付的系统。图2.2为演化式开
6、发模型。1212第2章 软 件 过 程图2.2 演化式开发模型1313第2章 软 件 过 程演化式开发过程中包含着并行的、循环的需求分析、开发和验证等活动。一般来说有两种类型的演化式开发过程,即探索式开发和抛弃式开发。探索式开发:通过与用户一起工作,探索需求逐步开发直至交付一个最终的系统。通常开发从理解系统的部分需求开始,通过加入用户提出的新的需求不断改进系统。抛弃式开发:主要目标是帮助更好地理解用户的需求和进行准确的需求定义。一旦系统真正的需求被确立,原型即被抛弃。通常适用于需求难以导出的项目。1414第2章 软 件 过 程2.2.3 形式化变换模型某些安全性、可靠性要求很高的软件系统,可以
7、采用形式转化模型来开发。在形式化变换模型中,开发过程实际上是一个数学变换过程,系统的需求定义是一个用数学语言描述的形式化定义,传统的设计、实现和单元测试过程被形式化变换过程所取代,软件的开发过程是通过一系列的数学变换将形式化的需求定义转换成可执行程序的过程。图2.3和图2.4反映了该过程。变换过程的每一步都会将形式化模型转换成更详细、更具体的数学表达直到转换成等价的程序。1515第2章 软 件 过 程图2.3 形式化开发过程1616第2章 软 件 过 程图2.4 形式化变换过程1717第2章 软 件 过 程2.2.4 面向复用的开发面向复用的开发模型如图2.5所示。开发人员在确定需求的基础上,
8、寻找可以符合要求的已有组件,这些组件可以是可购买到的通用组件,也可以是自身机构已开发成功的组件。之后应对获得的组件信息进行分析,在此基础上适当修改需求以适应组件,然后根据设计和选用的体系结构框架及选择的组件进行系统集成和测试。面向复用的开发模式区别于其他开发过程的主要地方是组件分析、需求调整、面向复用的设计以及开发和集成活动。1818第2章 软 件 过 程图2.5 面向复用的开发模式1919第2章 软 件 过 程(1)组件分析:根据需求定义寻找合适的组件。在很多情况下,不一定存在和所期望的功能十分一致的组件,更多情况下找到的组件仅能提供单一或部分所需要的功能。(2)需求调整:这个阶段根据搜索到
9、的组件信息对需求进行进一步的分析,调整部分需求以利于采用合适的组件开发。(3)面向复用的设计:这个阶段的主要任务是根据可复用的组件设计系统的结构或复用已有的系统框架,同时对于没有有效组件可利用的软件部分要进行设计。(4)开发和集成:集成组件、开发无法复用的软件部分。2020第2章 软 件 过 程2.2.5 增量开发瀑布模型由于需求的改变会造成系统的修改代价较大,演化式开发会带来系统结构上的缺陷和程序维护上的困难,增量开发则可以平衡这两种开发模式带来的问题。增量开发模式由Mills提出,其主要内容是将系统的需求定义、设计和实现分解成若干增量,依次开发和交付,以减少开发过程中的返工,也可以让用户体
10、验先期交付的系统,然后提出更准确、详细的需求。图2.6为增量开发模型。2121第2章 软 件 过 程图2.6 增量开发模型2222第2章 软 件 过 程增量开发的优势在于:系统较早交付的增量通常能满足一些关键的需求,因此客户不必等到整个系统交付就可以使用系统中较早交付的部分。同时增量开发模式需求的定义可以分阶段展开,客户从早期交付的增量部分体验系统有助于后期增量需求的获取,因此,增量模型可以灵活地适应需求的变化,从而降低整个工程的开发风险。2323第2章 软 件 过 程增量开发模式也存在缺陷,有些情况下将系统功能映射成适当大小的增量并不是很容易的,增量需求的逐步定义也让找出所有增量公共部分的需
展开阅读全文