版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本章讲述在软件生命周期全过程中应该完成本章讲述在软件生命周期全过程中应该完成的基本任务,并介绍各种常用的过程模型。的基本任务,并介绍各种常用的过程模型。 过程(过程(ISO 9000):): 把输入转化为输出的一组彼此相关的资源和活动。把输入转化为输出的一组彼此相关的资源和活动。 软件过程:软件过程: 是一个将用户需求转化为软件系统所需要的活动集合是一个将用户需求转化为软件系统所需要的活动集合 过程模型:过程模型: 经典模型、现代模型、敏捷过程、专业过程模型经典模型、现代模型、敏捷过程、专业过程模型第二章第二章 软件过程软件过程过程模型过程模型 过程模型过程模型 经典模型:瀑布、原型、增量、螺
2、旋、喷泉经典模型:瀑布、原型、增量、螺旋、喷泉 现代模型:统一过程、能力成熟度模型现代模型:统一过程、能力成熟度模型 敏捷过程:极限编程、敏捷过程:极限编程、SCRUM 专业过程模型:专业过程模型: 基于构件的开发基于构件的开发复用构件复用构件 形式化方法模型形式化方法模型无缺陷产品无缺陷产品 面向方面的软件开发面向方面的软件开发横向切片横向切片2.1 2.1 软件生命周期的基本任务软件生命周期的基本任务 软件生命周期软件生命周期(Software Life Cycle) 即软件从定义、开发、维护直到报废、结束其使用的即软件从定义、开发、维护直到报废、结束其使用的全过程。全过程。 由软件定义、
3、软件开发和运行维护三个时期组成。由软件定义、软件开发和运行维护三个时期组成。 软件生命周期各阶段的基本任务软件生命周期各阶段的基本任务软件生命周期的基本任务软件生命周期的基本任务 软件定义:软件定义:确定软件开发工程必须完成的总目标确定软件开发工程必须完成的总目标 问题定义:要解决的问题是什么?问题定义:要解决的问题是什么? 可行性研究:上阶段所确定的问题是否有可行的解决办可行性研究:上阶段所确定的问题是否有可行的解决办法?法? 需求分析:目标系统必须做什么?需求分析:目标系统必须做什么? 软件开发软件开发:具体设计和实现在前一个时期定义的软件。具体设计和实现在前一个时期定义的软件。 概要设计
4、:怎样宏观地解决问题?概要设计:怎样宏观地解决问题? 详细设计:应如何具体地实现这个系统?详细设计:应如何具体地实现这个系统? 编码和单元测试:写出正确的、易理解、易维护的程序编码和单元测试:写出正确的、易理解、易维护的程序 综合测试:通过各类型测试使达到预定要求。综合测试:通过各类型测试使达到预定要求。软件生命周期的基本任务(续)软件生命周期的基本任务(续) 运行维护:运行维护:修正错误,使软件持久地满足用户需要。修正错误,使软件持久地满足用户需要。 改正性维护:诊断和改正使用中的错误改正性维护:诊断和改正使用中的错误 适应性维护:修改以适应环境变化适应性维护:修改以适应环境变化 完善性维护
5、:根据用户的要求改进和扩充以完善完善性维护:根据用户的要求改进和扩充以完善 预防性维护:修改以为将来的维护作准备预防性维护:修改以为将来的维护作准备软件生命周期模型软件生命周期模型 软件生命周期模型软件生命周期模型 又称软件过程模型,是软件开发模型的直观表达。又称软件过程模型,是软件开发模型的直观表达。 规定了把生命周期划分成哪些阶段及各阶段的执行规定了把生命周期划分成哪些阶段及各阶段的执行顺序。顺序。 定义(定义(What)开发(开发(How)维护(维护(Change) 典型的软件生命周期模型包括瀑布模型、原型模型、典型的软件生命周期模型包括瀑布模型、原型模型、增量模型、螺旋模型等。增量模型
6、、螺旋模型等。2.2 瀑布模型(瀑布模型(Waterfall Model) 传统的瀑布模型传统的瀑布模型 模型:模型: 特点:特点: 阶段间具有顺序性和依赖性阶段间具有顺序性和依赖性 推迟实现推迟实现 质量保证质量保证 文档文档 缺点:太理想化缺点:太理想化2.2 瀑布模型(瀑布模型(Waterfall Model) 实际的瀑布模型实际的瀑布模型 模型:加入模型:加入“反馈环反馈环” 优点:优点: 强迫开发人员采用规范方法强迫开发人员采用规范方法 严格规定每阶段必须提交的文档严格规定每阶段必须提交的文档 “文档驱动文档驱动” 要求每阶段的所有产品必须经过质量评审要求每阶段的所有产品必须经过质量
7、评审 缺点:缺点: 几乎完全依赖于书面规格说明,可能导致产品不能满足需求。几乎完全依赖于书面规格说明,可能导致产品不能满足需求。如需回溯,则导致成本急剧上升。如需回溯,则导致成本急剧上升。2.2 瀑布模型(瀑布模型(Waterfall Model) 适用范围适用范围 一种整体开发模型一种整体开发模型 适用于适用于功能和性能明确、完整、无重大变化的软件开功能和性能明确、完整、无重大变化的软件开发发。例如:编译系统、。例如:编译系统、DBMS、OS等。等。 即在开发前均可完整、准确、一致和无二义性地定义即在开发前均可完整、准确、一致和无二义性地定义其目标功能和性能等。其目标功能和性能等。2.3 快
8、速原型模型快速原型模型(Rapid Prototype Model) 原型原型:是指模拟某种产品的:是指模拟某种产品的原始模型。原始模型。 原型系统原型系统仅包括未来系统的仅包括未来系统的主要功能,以及系统的重要主要功能,以及系统的重要接口。接口。 为了尽快向用户提供原型,为了尽快向用户提供原型,开发原型系统时应尽量使用开发原型系统时应尽量使用能缩短开发周期的语言和工能缩短开发周期的语言和工具。具。 快速原型模型快速原型模型是利用原型辅是利用原型辅助软件开发的一种新思想。助软件开发的一种新思想。加工加工原型原型原型原型快速分析快速分析和设计和设计建造建造原型原型客户客户评价原型评价原型快速原型
9、模型快速原型模型2.3 快速原型模型快速原型模型 特点:特点:快速快速 软件产品开发基本上是线性顺序进行。软件产品开发基本上是线性顺序进行。 降低了规格说明文档变化的可能性。降低了规格说明文档变化的可能性。 减少了后续阶段错误的可能性。减少了后续阶段错误的可能性。 运用方式:运用方式: 原型用途:用于获知用户的真正需求。原型用途:用于获知用户的真正需求。 运用方式:抛弃策略。需求确定后,即抛弃原型。运用方式:抛弃策略。需求确定后,即抛弃原型。 适用范围:适用范围: 一种非整体开发模型。一种非整体开发模型。 适合于初期用户需求不明确、具有一定风险的软件项目适合于初期用户需求不明确、具有一定风险的
10、软件项目的开发。或客户有一个合理的需求,但对细节没有思路的开发。或客户有一个合理的需求,但对细节没有思路2.4 增量模型(增量模型(Incremental Model) 融合了瀑布模型的基本成分(重复应用)和原融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,采用随着日程时间的进展型实现的迭代特征,采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件而交错的线性序列,每一个线性序列产生软件的一个可发布的的一个可发布的“增量增量”。当使用增量模型时,。当使用增量模型时,第第1个增量往往是核心的产品,即第个增量往往是核心的产品,即第1个增量个增量实现了基本的需求,但很多补充的特征
11、还没有实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为发布。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终每一个增量发布后不断重复,直到产生了最终的完善产品。的完善产品。增量模型表示增量模型表示2.4 增量模型增量模型 优点优点: 人员分配灵活,刚开始不用投入大量人力资源。人员分配灵活,刚开始不用投入大量人力资源。 当配备的人员不能在设定的期限内完成产品时,它当配备的人员不能在设定的期限内完成产品时,它提供了一种先推出核心产品的途径。提供了一种先推出核心产
12、品的途径。 增量能够有计划地管理技术风险。增量能够有计划地管理技术风险。 缺点缺点: 要求构件具备开放式的体系结构。要求构件具备开放式的体系结构。 易退化为边做边改模型,从而使软件过程的控制失易退化为边做边改模型,从而使软件过程的控制失去整体性。去整体性。2.4 增量模型增量模型 适用范围适用范围: 一种非整体开发模型一种非整体开发模型 客户要求在一个不可能完成的时间提供产品,故可客户要求在一个不可能完成的时间提供产品,故可向他建议只提供一个或几个增量,以后再提交软件向他建议只提供一个或几个增量,以后再提交软件的其他增量。例如:文字处理软件的其他增量。例如:文字处理软件 如果在项目既定的商业期
13、限之前不可能找到足够的如果在项目既定的商业期限之前不可能找到足够的开发人员,这种情况下则特别有用。开发人员,这种情况下则特别有用。2.5 螺旋模型(螺旋模型(Spiral Model) 目的主要是克服瀑布模型的缺点,在应对变化的灵活目的主要是克服瀑布模型的缺点,在应对变化的灵活性上很有优势,并通过一系列瀑布模型的不断循环来性上很有优势,并通过一系列瀑布模型的不断循环来逐步规避风险。逐步规避风险。 采用一种采用一种周期性的方法周期性的方法来进行系统开发。每个周期都来进行系统开发。每个周期都包括制定计划、风险分析、实施工程和客户评估包括制定计划、风险分析、实施工程和客户评估4个阶个阶段,由这段,由
14、这4个阶段进行迭代。每迭代一次,软件开发又个阶段进行迭代。每迭代一次,软件开发又前进一个层次。前进一个层次。 风险驱动风险驱动。在每个阶段之前及经常发生的循环之前,。在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。都必须首先进行风险评估。 模型表示:模型表示:螺旋模型模型表示螺旋模型模型表示 采用一种采用一种周期性的方法周期性的方法来进行系统开发。每个周期都来进行系统开发。每个周期都包括需求定义、风险分析、工程实现和评审包括需求定义、风险分析、工程实现和评审4个阶段,个阶段,由这由这4个阶段进行迭代。每迭代一次,软件开发又前个阶段进行迭代。每迭代一次,软件开发又前进一个层次。进一个
15、层次。 风险驱动风险驱动。在每个阶段之前及经常发生的循环之前,。在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。都必须首先进行风险评估。 模型表示:模型表示:螺旋模型的优缺点螺旋模型的优缺点 优点优点: 客户始终参与每个阶段的开发,保证了项目不偏离客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。正确方向以及项目的可控性。 客户认可这种公司内部的开发方式带来的良好的沟客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。通和高质量的产品。 缺点缺点: 风险评估依赖专家。风险评估依赖专家。 建设周期长,而软件技术发展比较快,所以经常出建设周期长,而软件技术
16、发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。差距,无法满足当前用户需求。2.5 螺旋模型(螺旋模型(Spiral Model) 限制条件限制条件: 因强调风险分析,但要求许多客户接受和相信这种因强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,因此,这种模分析,并做出相关反应是不容易的,因此,这种模型往往适应于型往往适应于内部的大规模软件内部的大规模软件开发。开发。 如果执行风险分析将大大影响项目的利润,那么进如果执行风险分析将大大影响项目的利润,那么进行风险分析毫无意义,因此
17、,只适合于行风险分析毫无意义,因此,只适合于大规模大规模软件软件项目。项目。 软件开发人员应该擅长寻找可能的风险,准确地分软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险。析风险,否则将会带来更大的风险。 适用范围适用范围: 对于新近开发,需求不明确的情况下,适合用螺旋对于新近开发,需求不明确的情况下,适合用螺旋模型进行开发,便于风险控制和需求变更。模型进行开发,便于风险控制和需求变更。2.6 喷泉模型(喷泉模型(Fountain Model) 是一种是一种以用户需求为动力,以对象为驱动的模型以用户需求为动力,以对象为驱动的模型, 主主要要用于描述面向对象的软件开发过
18、程用于描述面向对象的软件开发过程。 该模型认为软件开发过程自下而上周期的各阶段是相该模型认为软件开发过程自下而上周期的各阶段是相互迭代和无间隙的特性。互迭代和无间隙的特性。 软件的某个部分常常被重复工作多次,相关对象在每次迭代软件的某个部分常常被重复工作多次,相关对象在每次迭代中随之加入渐进的软件成分。无间隙指在各项活动之间无明中随之加入渐进的软件成分。无间隙指在各项活动之间无明显边界,如分析和设计活动之间没有明显的边界,则于对象显边界,如分析和设计活动之间没有明显的边界,则于对象概念的引入,表达分析、设计、实现等活动只用对象类和关概念的引入,表达分析、设计、实现等活动只用对象类和关系,从而可
19、以较为容易地实现活动的迭代和无间隙,使其开系,从而可以较为容易地实现活动的迭代和无间隙,使其开发自然地包括复用。发自然地包括复用。 模型表示:模型表示:喷泉模型的优缺点喷泉模型的优缺点 优点优点: 各个阶段没有明显的界限,开发人员可以同步进行各个阶段没有明显的界限,开发人员可以同步进行开发。开发。 可提高软件项目开发效率,节省开发时间。可提高软件项目开发效率,节省开发时间。 缺点缺点: 由于喷泉模型在各个开发阶段是重叠的,因此在开由于喷泉模型在各个开发阶段是重叠的,因此在开发过程中需要大量的开发人员,因此不利于项目的发过程中需要大量的开发人员,因此不利于项目的管理。管理。 要求严格管理文档,使
20、得审核的难度加大,尤其是要求严格管理文档,使得审核的难度加大,尤其是面对可能随时加入各种信息、需求与资料的情况。面对可能随时加入各种信息、需求与资料的情况。 适用范围适用范围:适应于面向对象的软件开发过程。适应于面向对象的软件开发过程。2.7 Rational统一过程统一过程 RUP(Rational Unified Process),是一个面向对),是一个面向对象且基于网络的程序开发方法论。象且基于网络的程序开发方法论。 是软件工程的过程。它提供了在开发组织中分派任务是软件工程的过程。它提供了在开发组织中分派任务和责任的纪律化方法。它的目标是在可预见的日程和和责任的纪律化方法。它的目标是在可
21、预见的日程和预算前提下,确保满足最终用户需求的高质量产品。预算前提下,确保满足最终用户需求的高质量产品。 是一种是一种“用例驱动,以体系结构为核心,迭代及增量用例驱动,以体系结构为核心,迭代及增量”的软件过程框架,由的软件过程框架,由UML方法和工具支持。方法和工具支持。 主要分五个阶段:起始阶段,细化阶段,构建阶段,主要分五个阶段:起始阶段,细化阶段,构建阶段,转化阶段,生产阶段。转化阶段,生产阶段。Rational统一过程的五个阶段统一过程的五个阶段 起始阶段:起始阶段:包括用户沟通和计划活动两个方面,强包括用户沟通和计划活动两个方面,强调定义和细化用例,并将其作为主要模型。调定义和细化用
22、例,并将其作为主要模型。 细化阶段:细化阶段:包括用户沟通和建模活动,重点是创建包括用户沟通和建模活动,重点是创建分析和设计模型,强调类的定义和体系结构的表示。分析和设计模型,强调类的定义和体系结构的表示。 构建阶段:构建阶段:细化设计模型,并将设计模型转化为软细化设计模型,并将设计模型转化为软件构建实现。件构建实现。 转化阶段:转化阶段:将软件从开发人员传递给最终用户,并将软件从开发人员传递给最终用户,并由用户完成由用户完成beta测试和验收测试。测试和验收测试。 生产阶段:生产阶段:持续地监控软件的运作,并提供技术支持续地监控软件的运作,并提供技术支持。持。Rational统一过程的优缺点
23、统一过程的优缺点 优点优点:提高了团队生产力,在迭代的开发过程、需求管提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。清晰的过程结构,为开发过程提供较大的通用性。 不足不足:RU
24、P只是一个开发过程,并没有涵盖软件过程的只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。可度上降低了在开发组织内大范围实现重用的可能性。可以说以说RUP是一个非常好的开端,但并不完美,在实际的是一个非常好的开端,但并不完美,在实际的应用中可以根据需要对其进行改进并可以用应用中可以根据需要对其进行改进并可以用OPEN和和OOSP等其他软件过程的相关内容对等其他软件过程的相
25、关内容对RUP进行补充和完进行补充和完善。善。 2.8 敏捷开发与极限编程敏捷开发与极限编程 敏捷开发敏捷开发:是一种以人为核心、迭代、秩序渐进的开发是一种以人为核心、迭代、秩序渐进的开发方法。把一个大项目分为多个相互联系,但也可独立运方法。把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可行的小项目,并分别完成,在此过程中软件一直处于可使用状态。使用状态。 2001年,为了解决许多公司的软件团队陷入不断增长的年,为了解决许多公司的软件团队陷入不断增长的过程泥潭,一批业界专家一起概括出了一些可以让软件过程泥潭,一批业界专家一起概括出了一些可以让软件开发团队具有快速工作、响应变化能力的价值观和原则,开发团队具有快速工作、响应变化能力的价值观和原则,他们称自己为敏捷联盟,敏捷开发过程的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025春耕农业信息化建设与安全保障合同4篇
- 2025年古董艺术品收藏与购销培训合同
- 2025年度广告投放数据监测与分析合同范本
- 2025年度果业保险产品定制与销售合同
- 二零二五年度存款居间服务数据安全保障合同2篇
- 2025年度新能源发电设备购销合同能源转型-@-1
- 2025年度智慧城市建设项目横向科研合同书
- 二零二四年教育行业投资借款合同集锦3篇
- 2025年度旅游景区运营承包合作经营合同书4篇
- 2025版水资源保护项目投标委托代理合同3篇
- 《带一本书去读研:研究生关键学术技能快速入门》笔记
- 知识图谱智慧树知到答案2024年浙江大学
- 2024年度-美团新骑手入门培训
- 高一数学寒假讲义(新人教A专用)【复习】第05讲 三角函数(学生卷)
- 农村高中思想政治课时政教育研究的中期报告
- 医院定岗定编方案文档
- 4-熔化焊与热切割作业基础知识(一)
- 2023年200MW储能电站储能系统设计方案
- 个人安全与社会责任的基本知识概述
- 简易劳务合同电子版
- 明代文学绪论
评论
0/150
提交评论