版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、结束软件项目管理软件项目管理清华大学清华大学 出版社(出版社( 2012)第第2章章 软件开发过程管理软件开发过程管理渤海大学渤海大学 信息科学与技术学院信息科学与技术学院任永昌任永昌 20122012年年7 7月月结束72.1 软件生命周期软件生命周期软件生命周期是软件生命周期是“从设计软件产品开始到软件产从设计软件产品开始到软件产品不能再使用为止的时间周期。品不能再使用为止的时间周期。典型的软件生命周期包括:需求阶段、设计阶段、典型的软件生命周期包括:需求阶段、设计阶段、实现阶段、测试阶段、安装和验收阶段、运行和维实现阶段、测试阶段、安装和验收阶段、运行和维护阶段,有时还包括引退阶段护阶段
2、,有时还包括引退阶段”。软件生命周期可以划分成若干个相互独立而又相软件生命周期可以划分成若干个相互独立而又相互联系的阶段,每一阶段工作以上一阶段工作的结互联系的阶段,每一阶段工作以上一阶段工作的结果为依据,并为下一阶段工作提供基础。果为依据,并为下一阶段工作提供基础。结束72.2 软件过程软件过程1. 1. 软件过程的定义软件过程的定义软件过程是指软件生命周期中的一系列相关过程,是将用软件过程是指软件生命周期中的一系列相关过程,是将用户需求转化为可执行系统的演化过程所进行的软件工程的全户需求转化为可执行系统的演化过程所进行的软件工程的全部活动,是用于生产软件产品的工具、方法和实践的集合。部活动
3、,是用于生产软件产品的工具、方法和实践的集合。软件过程是关系复杂的软件活动的集合,各活动之间有着软件过程是关系复杂的软件活动的集合,各活动之间有着严格密切的关系,有的是异步并行,有的是互为条件,因此严格密切的关系,有的是异步并行,有的是互为条件,因此实际软件过程中的软件活动存在复杂的网状关系。实际软件过程中的软件活动存在复杂的网状关系。软件过程是改进软件质量和组织性能的主要因素之一。软件过程是改进软件质量和组织性能的主要因素之一。结束72.2 软件过程软件过程2. 2. 软件过程管理的必要性软件过程管理的必要性u 提高软件企业的开发效率和产品质量;提高软件企业的开发效率和产品质量;u 有效地对
4、软件开发项目进行管理;有效地对软件开发项目进行管理;u 有帮助软件机构做出正确决策;有帮助软件机构做出正确决策;u 提高软件的可重用性和组间协作;提高软件的可重用性和组间协作;u 改善软件机构对软件的维护;改善软件机构对软件的维护;u 不断采用新的、更好的软件开发经验。不断采用新的、更好的软件开发经验。结束72.2 软件过程软件过程3. 3. 软件过程管理的组成软件过程管理的组成结束72.3 软件开发过程软件开发过程软件开发过程是以生命周期各阶段的活动划分为软件开发过程是以生命周期各阶段的活动划分为基础,将用户需求转化为软件系统活动集合的过程。基础,将用户需求转化为软件系统活动集合的过程。1.
5、 开发计划和可行性研究阶段开发计划和可行性研究阶段2. 需求分析阶段需求分析阶段3. 软件设计阶段软件设计阶段4. 编写代码阶段编写代码阶段5. 软件测试阶段软件测试阶段结束72.4 软件开发过程模型软件开发过程模型由于这种方法是从一个阶段成瀑布流入下由于这种方法是从一个阶段成瀑布流入下一个阶段,所以称为一个阶段,所以称为“瀑布模型瀑布模型”。瀑布模型是从时间角度对软件开发和维护瀑布模型是从时间角度对软件开发和维护的复杂问题进行分解。按软件生命周期依次划的复杂问题进行分解。按软件生命周期依次划分为六个阶段:分为六个阶段:可行性研究、需求分析、软件可行性研究、需求分析、软件设计、软件编码、软件测
6、试、运行与维护。设计、软件编码、软件测试、运行与维护。2.4.1 瀑布模型瀑布模型结束72.4 软件开发过程模型软件开发过程模型1. 1. 理论的瀑布模型理论的瀑布模型 2. 2. 实际的瀑布模型实际的瀑布模型2.4.1 瀑布模型瀑布模型结束72.4 软件开发过程模型软件开发过程模型3. 瀑布模型总结瀑布模型总结运用瀑布模型应坚持做到以下两点:运用瀑布模型应坚持做到以下两点:(1)每个阶段都完成规定的文档,没有交)每个阶段都完成规定的文档,没有交出合格的文档就没有完成阶段性工作。出合格的文档就没有完成阶段性工作。(2)每个阶段结束前都要对提交的文档进)每个阶段结束前都要对提交的文档进行评审,以
7、便尽早发现问题,改正错误。行评审,以便尽早发现问题,改正错误。2.4.1 瀑布模型瀑布模型结束72.4 软件开发过程模型软件开发过程模型3. 瀑布模型总结瀑布模型总结2.4.1 瀑布模型瀑布模型结束72.4 软件开发过程模型软件开发过程模型2.4.2 V模型模型V 模 型 是 瀑模 型 是 瀑布模型的一种布模型的一种变体,由于整变体,由于整个开发过程构个开发过程构造成一个造成一个V字字形而得名。形而得名。结束72.4 软件开发过程模型软件开发过程模型1. 1. 从水平方向看从水平方向看垂直虚线左边是分析和设计,是软件设计实现的过程,垂直虚线左边是分析和设计,是软件设计实现的过程,同时伴随着质量
8、保证活动同时伴随着质量保证活动审核的过程,也就是静态的测试审核的过程,也就是静态的测试过程;垂直虚线右边是对左边结果的验证,是动态测试的过过程;垂直虚线右边是对左边结果的验证,是动态测试的过程,即对分析和设计的结果进行测试,以确认是否满足用户程,即对分析和设计的结果进行测试,以确认是否满足用户需求。左右两边的对应关系如下:需求。左右两边的对应关系如下:(1)需求分析对应验收测试。)需求分析对应验收测试。(2)概要设计对应系统测试。)概要设计对应系统测试。(3)详细设计对应集成测试。)详细设计对应集成测试。(4)软件编码对应单元测试)软件编码对应单元测试。2.4.2 V模型模型结束72.4 软件
9、开发过程模型软件开发过程模型2. 2. 从垂直方向看从垂直方向看水平虚线上部,需求分析、系统定义和验收测试等水平虚线上部,需求分析、系统定义和验收测试等工作主要是面向用户。水平虚线下部是技术工作,主要工作主要是面向用户。水平虚线下部是技术工作,主要由工程师、技术人员完成。由工程师、技术人员完成。从垂直方向看,越在下面,白盒测试方法使用越多,从垂直方向看,越在下面,白盒测试方法使用越多,中间部分是灰盒测试方法。在验收测试过程中,使用黑中间部分是灰盒测试方法。在验收测试过程中,使用黑盒测试方法。盒测试方法。2.4.2 V模型模型结束72.4 软件开发过程模型软件开发过程模型为解决瀑布模型需求理解困
10、难、开发周期为解决瀑布模型需求理解困难、开发周期长、见效慢等问题,借助第长、见效慢等问题,借助第4代程序开发语言代程序开发语言而产生的一种软件开发方法。而产生的一种软件开发方法。软件开发人员先根据用户提出的软件定义,软件开发人员先根据用户提出的软件定义,快速开发一个原型,向用户展示。然后用户快速开发一个原型,向用户展示。然后用户根据这个原型提出修改意见,再进一步修改、根据这个原型提出修改意见,再进一步修改、完善,确认软件系统的需求并达到一致的理完善,确认软件系统的需求并达到一致的理解。解。2.4.3 原型模型原型模型结束72.4 软件开发过程模型软件开发过程模型2.4.3 原型模型原型模型1.
11、 1. 原型模型的基本过程原型模型的基本过程结束72.4 软件开发过程模型软件开发过程模型2.4.3 原型模型原型模型2. 2. 原型模型的软件支撑环境原型模型的软件支撑环境u 方便灵活的关系数据库系统;方便灵活的关系数据库系统;u 完整的程序生成软件;完整的程序生成软件;u 与数据库对应的、方便灵活的数据字典;与数据库对应的、方便灵活的数据字典;u 可以快速抽象或者容易提炼的原型。可以快速抽象或者容易提炼的原型。结束72.4 软件开发过程模型软件开发过程模型2.4.3 原型模型原型模型3. 3. 原型模型的优缺点和适用情况原型模型的优缺点和适用情况结束72.4 软件开发过程模型软件开发过程模
12、型2.4.4 螺旋模型螺旋模型勃姆(勃姆(Boehm,B.W)将瀑布模型与)将瀑布模型与快速原型模型结合起快速原型模型结合起来提出了螺旋模型。来提出了螺旋模型。要求不断迭代,要求不断迭代,同时要象螺旋一样不同时要象螺旋一样不断前进,即每次迭代断前进,即每次迭代都不是在原水平上进都不是在原水平上进行,是对整个开发过行,是对整个开发过程进行迭代,而不仅程进行迭代,而不仅仅对编码、测试进行仅对编码、测试进行迭代。迭代。结束72.4 软件开发过程模型软件开发过程模型2.4.4 螺旋模型螺旋模型1. 1. 工作步骤和内容工作步骤和内容(1)确定下一阶段目标、开发方案及约束条件。)确定下一阶段目标、开发方
13、案及约束条件。(2)风险分析、构造原型。)风险分析、构造原型。(3)开发、验证阶段软件产品。)开发、验证阶段软件产品。(4)制订下一阶段计划。)制订下一阶段计划。结束72.4 软件开发过程模型软件开发过程模型2.4.4 螺旋模型螺旋模型2. 2. 螺旋模型对经常遇见问题提供的解决方案螺旋模型对经常遇见问题提供的解决方案 结束72.4 软件开发过程模型软件开发过程模型2.4.4 螺旋模型螺旋模型3. 3. 螺旋模型的优缺点和适用情况螺旋模型的优缺点和适用情况结束72.4 软件开发过程模型软件开发过程模型2.4.5 增量模型增量模型首先创建一组核心功能,或者是项目至关重要的最首先创建一组核心功能,
14、或者是项目至关重要的最高优先级的系统,或者是能够降低风险的系统。随后基高优先级的系统,或者是能够降低风险的系统。随后基于核心功能反复扩展,逐步增加功能以提高性能。于核心功能反复扩展,逐步增加功能以提高性能。增量模型降低了取得初始功能之前的成本,强调采增量模型降低了取得初始功能之前的成本,强调采用构建方法来控制更改需求的影响,提高了创建可操作用构建方法来控制更改需求的影响,提高了创建可操作软件系统的速度。软件系统的速度。增量模型综合了瀑布模型和原型模型,提倡以功能增量模型综合了瀑布模型和原型模型,提倡以功能渐增方式开发软件。渐增方式开发软件。结束72.4 软件开发过程模型软件开发过程模型2.4.
15、5 增量模型增量模型增量模型结构增量模型结构结束72.4 软件开发过程模型软件开发过程模型2.4.5 增量模型增量模型1. 1. 增量开发必须注意的问题增量开发必须注意的问题u 良好的可扩展性架构设计,是增量开发成功的基础;良好的可扩展性架构设计,是增量开发成功的基础;u 由于一些模块必须在另一个模块之前完成,所以必须定义良好的由于一些模块必须在另一个模块之前完成,所以必须定义良好的接口;接口;u 与完整系统相比,增量方式正式评审更难于实现,所以必须定义与完整系统相比,增量方式正式评审更难于实现,所以必须定义可行的过程;可行的过程;u 要避免把难题往后推,首先完成的应该是高风险和重要的部分;要
16、避免把难题往后推,首先完成的应该是高风险和重要的部分;u 客户必须认识到总体成本不会更低;客户必须认识到总体成本不会更低;u 分析阶段采用总体目标而不是完整的需求定义,可能不适应管理;分析阶段采用总体目标而不是完整的需求定义,可能不适应管理;u 需要良好的计划和设计,管理必须注意动态分配工作,技术人员需要良好的计划和设计,管理必须注意动态分配工作,技术人员必须注意相关因素的变化。必须注意相关因素的变化。结束72.4 软件开发过程模型软件开发过程模型2.4.5 增量模型增量模型2. 2. 增量模型的优缺点和适用情况增量模型的优缺点和适用情况结束72.4 软件开发过程模型软件开发过程模型是增量型的
17、软件开发过程模型,强调极短的开发是增量型的软件开发过程模型,强调极短的开发周期,是瀑布模型的一个周期,是瀑布模型的一个“高速高速”变种,通过大量使用变种,通过大量使用可复用构件,采用基于构件的建造方法进行快速开发。可复用构件,采用基于构件的建造方法进行快速开发。2.4.6 RAD模型模型结束72.4 软件开发过程模型软件开发过程模型1. RAD1. RAD模型各个活动期要完成的任务模型各个活动期要完成的任务如果一个业务能够被模块化使得其中每一个主要功能如果一个业务能够被模块化使得其中每一个主要功能均可以在不到均可以在不到3个月的时间内完成,则是个月的时间内完成,则是RAD的一个候选。的一个候选
18、。一个主要功能可由一个单独的一个主要功能可由一个单独的RAD组来实现,最后集成起来组来实现,最后集成起来形成一个整体。形成一个整体。(1)业务建模。)业务建模。(2)数据建模。)数据建模。(3)过程建模。)过程建模。(4)应用生成。)应用生成。(5)测试交付)测试交付。2.4.6 RAD模型模型结束72.4 软件开发过程模型软件开发过程模型2. RAD2. RAD模型的缺陷模型的缺陷(1)并非所有应用都适合)并非所有应用都适合RAD。(2)开发人员和客户必须在很短时间内完成一系列)开发人员和客户必须在很短时间内完成一系列的需求分析,任何一方配合不当都会导致的需求分析,任何一方配合不当都会导致R
19、AD项目失败项目失败。 (3)RAD不适合技术风险很高的软件项目。不适合技术风险很高的软件项目。2.4.6 RAD模型模型结束72.4 软件开发过程模型软件开发过程模型2.4.7 软件包模型软件包模型主 要主 要用 于 开 发用 于 开 发依 赖 于 外依 赖 于 外购 ( 协 )购 ( 协 )软 件 产 品软 件 产 品和 可 重 用和 可 重 用软 件 包 的软 件 包 的系统。系统。结束72.4 软件开发过程模型软件开发过程模型2.4.7 软件包模型软件包模型1. 1. 软件包模型的开发步骤软件包模型的开发步骤(1)需求分析和软件包标识。)需求分析和软件包标识。(2)结构定义和软件包选择
20、。)结构定义和软件包选择。(3)系统集成和测试。)系统集成和测试。(4)技术修改和系统维护。)技术修改和系统维护。结束72.4 软件开发过程模型软件开发过程模型2.4.7 软件包模型软件包模型2. 2. 软件包模型的优缺点和适用情况软件包模型的优缺点和适用情况结束72.4 软件开发过程模型软件开发过程模型2.4.8 遗留系统维护模型遗留系统维护模型主 要 用主 要 用于纠错性维于纠错性维护或者稍加护或者稍加改进一个运改进一个运行系统。行系统。结束72.4 软件开发过程模型软件开发过程模型2.4.8 遗留系统维护模型遗留系统维护模型结束72.5 软件开发过程模型选择软件开发过程模型选择目前,大多
21、数软件开发项目都采用瀑布模型目前,大多数软件开发项目都采用瀑布模型作为规范化开发的基础,主要原因如下:作为规范化开发的基础,主要原因如下:(1)软件开发单位的软件工程工作尚处于初级阶段,)软件开发单位的软件工程工作尚处于初级阶段,软件开发人员和管理人员既缺乏经验,又无历史数据可供借软件开发人员和管理人员既缺乏经验,又无历史数据可供借鉴,因此,需要一种简单易行的组织方式。鉴,因此,需要一种简单易行的组织方式。(2)结构化方法学是系统工程中最成熟的方法学,目)结构化方法学是系统工程中最成熟的方法学,目前大多数软件开发都以结构化开发方法学为基础。在与结构前大多数软件开发都以结构化开发方法学为基础。在
22、与结构化方法学相适应的软件开发过程模型中,瀑布模型最为简单化方法学相适应的软件开发过程模型中,瀑布模型最为简单实用,行之有效。实用,行之有效。(3)有关软件开发的现行国家标准和国家军用标准都)有关软件开发的现行国家标准和国家军用标准都是以瀑布模型为基础制定的。是以瀑布模型为基础制定的。结束72.5 软件开发过程模型选择软件开发过程模型选择选择开发过程模型时,一般应遵循下述原则:选择开发过程模型时,一般应遵循下述原则:u 开发过程模型应与软件项目的特点相适应;开发过程模型应与软件项目的特点相适应;u 开发过程模型应与采用的软件开发技术相适应;开发过程模型应与采用的软件开发技术相适应;u 开发过程
23、模型应满足整个应用系统的开发进度要求;开发过程模型应满足整个应用系统的开发进度要求;u 开发过程模型应有助于控制和消除软件开发风险;开发过程模型应有助于控制和消除软件开发风险;u 开发过程模型应有可用的计算机辅助工具的支持;开发过程模型应有可用的计算机辅助工具的支持;u 开发过程模型应与用户和软件开发人员的知识和技开发过程模型应与用户和软件开发人员的知识和技能水平相适应;能水平相适应;u 开发过程模型应有利于软件开发的管理和控制。开发过程模型应有利于软件开发的管理和控制。结束72.6 传统开发过程存在的问题传统开发过程存在的问题传统开发过程基本是传统开发过程基本是单纯的技术实施过程,既单纯的技
24、术实施过程,既没有定义必要的项目过程没有定义必要的项目过程管理,也没有定义技术过管理,也没有定义技术过程如何与项目管理相结合。程如何与项目管理相结合。这种软件开发过程模式产这种软件开发过程模式产生的结果很难预测,极容生的结果很难预测,极容易造成管理上的失控。易造成管理上的失控。结束72.6 传统开发过程存在的问题传统开发过程存在的问题2.6.1 管理方面管理方面1. 1. 忽视软件过程管理忽视软件过程管理u(1 1)没有规范和切实可行的管理体系。)没有规范和切实可行的管理体系。u(2 2)不能真正区分技术实施和过程管理的工作任务。)不能真正区分技术实施和过程管理的工作任务。2. 2. 计划过程
25、粗略,执行控制不力计划过程粗略,执行控制不力u(1 1)项目管理计划粗略。)项目管理计划粗略。u(2 2)开发计划不充分。)开发计划不充分。3. 3. 缺乏需求基准缺乏需求基准4. 4. 缺乏成本控制体系和过程缺乏成本控制体系和过程5. 5. 质量保证过程薄弱质量保证过程薄弱u(1 1)开发过程不规范。)开发过程不规范。u(2 2)测试过程不规范。)测试过程不规范。u(3 3)缺少)缺少SQASQA相关质量保证过程。相关质量保证过程。结束72.6 传统开发过程存在的问题传统开发过程存在的问题2.6.2 技术方面技术方面1. 1. 需求分析需求分析u 问题问题1 1:客户并不知道自己需要什么。:
26、客户并不知道自己需要什么。u 问题问题2 2:需求在项目进行过程中发生改变。:需求在项目进行过程中发生改变。2. 2. 软件设计软件设计u (1 1)僵化)僵化设计难以改变。设计难以改变。u (2 2)脆弱性)脆弱性设计易于遭到破坏。设计易于遭到破坏。u (3 3)牢固性)牢固性设计难以重用。设计难以重用。u (4 4)粘滞性)粘滞性难以做正确的事情。难以做正确的事情。u (5 5)不必要的复杂性)不必要的复杂性过度设计。过度设计。结束72.6 传统开发过程存在的问题传统开发过程存在的问题2.6.2 技术方面技术方面3. 3. 代码编写代码编写u(1 1)程序员各自为战,缺乏分工合作。)程序员各自为战,缺乏分工合作。u(2 2)对于编程语言及工具不能准确掌握。)对于编程语言及工具不能准确掌握。u(3 3)不必要的重复。)不必要的重复。u(4 4)晦涩混乱的表达。)晦涩混乱的表达。4. 4. 测试测试u(1 1)认为规范化软件测试是增加项目成本。)认为规范化软件测试是增加项目成本。u(2 2)期望短期通过增加软件测试投入,迅速达到零)期望短期通过增加软件测试投入,迅速达到零BugBug率。率。u(3 3)期望用测试自动化代替大部分手工劳动。)期望用测试自动化代替大部分手工劳动。u(4 4)忽视前期需求分析和设计阶段的参与。)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海鑫钢铁内部管理制度
- 煤气柜内部管理制度
- 煤矿内部讲师奖励制度
- 牧场内部管理制度
- 环卫项目内部考评制度
- 男生宿舍内部制度
- 科室内部病例管理制度
- 科研处内部管理制度
- 管理公司内部规章制度
- 轮滑社团内部管理制度
- 《中医养生学》课件
- 防空雷达课件教学课件
- 公路建设表土剥离管理方案
- 2024年可行性研究报告投资估算及财务分析全套计算表格(含附表-带只更改标红部分-操作简单)
- JGJ31-2003 体育建筑设计规范
- 2024年河南省信阳市事业单位招聘考试(职业能力倾向测验)题库学生专用
- 农贸市场营销策划方案
- 【可行性报告】2023年高纯氮化铝粉体行业项目可行性分析报告
- 营养支持讲课最终课件
- 出口海运工厂集装箱货物绑扎加固指南
- 电动机检修作业指导书
评论
0/150
提交评论