软件项目管理-CH01-选择恰当的过程-典型软件开发过程模型.ppt

上传人:s****8 文档编号:69408196 上传时间:2023-01-03 格式:PPT 页数:127 大小:2.39MB
返回 下载 相关 举报
软件项目管理-CH01-选择恰当的过程-典型软件开发过程模型.ppt_第1页
第1页 / 共127页
软件项目管理-CH01-选择恰当的过程-典型软件开发过程模型.ppt_第2页
第2页 / 共127页
点击查看更多>>
资源描述

《软件项目管理-CH01-选择恰当的过程-典型软件开发过程模型.ppt》由会员分享,可在线阅读,更多相关《软件项目管理-CH01-选择恰当的过程-典型软件开发过程模型.ppt(127页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、软件项目管理Software Project Management(SPM)郭建郭建东CH01 选择恰当的开发过程选择恰当的开发过程-典型软件工程过程模型典型软件工程过程模型01.1 软件工程过程01.2 典型软件工程过程模型01.3 过程模型的选择2软件项目管理 CH01 选择过程 郭建东01.1 软件工程过程 软件过程是近十年来人们关注的焦点。软件过程是为开发高质量软件所需要完成的任务的框架。软件工程是有创造力、有知识的人在定义好的、成熟的软件过程框架中进行的。3软件项目管理 CH01 选择过程 郭建东软件过程软件过程层次图质量焦点质量焦点过程过程方法方法工具工具4软件项目管理 CH01

2、选择过程 郭建东软件过程 软件过程提供了一个框架,在该框架下可以建立一个软件开发的综合计划:若干框架活动适用于所有软件项目,而不在乎其规模和复杂性。若干不同任务的集合-每一个集合都由任务、里程碑、交付物以及质量保证点组成-使得框架活动适应于不同软件项目的特征和项目组的需求。若干保护性活动-如软件质量保证、软件配置管理、测试与度量-它们贯穿于整个过程模型之中。保护性活动独立于任何一个框架活动,且贯穿于整个过程之中。5软件项目管理 CH01 选择过程 郭建东软件过程里程碑、交付物SQA点公共过程框架框架活动保护性活动任务集合工作任务6软件项目管理 CH01 选择过程 郭建东软件过程软件过程可分为三

3、大类:基本过程类:是构成软件生存周期主要部分的那些过程,包括获取、供应、开发、操作、维护等过程。支持过程类:可穿插到基本过程中提供支持的一系列过程,包括文档开发、配置管理、质量保证、验证、确认、联合评审、审计、问题解决等过程。组织过程类:一个组织用来建立、实施一种基础结构、并不断改进该基础结构的过程,包括管理、基础、改进、培训等过程。7软件项目管理 CH01 选择过程 郭建东软件过程模型 软件过程模型是软件开发的指导思想和全局性框架,软件过程模型的提出和发展反映了人们对软件过程的某种认识观,体现了人们对软件过程认识的提高和飞跃。8软件项目管理 CH01 选择过程 郭建东什么是过程?软件工程中的

4、目标就是开发和维护软件及相关产品New or changedrequirementsNew or changed systemSoftware EngineeringProcess9软件项目管理 CH01 选择过程 郭建东当前主流的软件过程CMMRUPMSFXP10软件项目管理 CH01 选择过程 郭建东过程铁三角过程:把各部分集成在一起 CMM规程人技术和工具11软件项目管理 CH01 选择过程 郭建东过 程过程就是针对某一给定目标的一系列运作步骤,IEEE-STD-610 是在过程环境下的一系列有序活动。所谓活动(Activity)就是过程对象一次状态改变,也叫过程步(Step)。活动起始

5、态和活动结果态表征了活动的进行。可以说一切事物的发生、发展、消亡都离不开过程,都寓于过程之中。12软件项目管理 CH01 选择过程 郭建东过程的一般定义13软件项目管理 CH01 选择过程 郭建东煮蛋的启示14软件项目管理 CH01 选择过程 郭建东软件过程 软件过程是将用户的需求转化成有效的软件解决方案的一系列活动。许多软件组织无法正确定义和控制这一过程,但这恰恰是组织改进的关键。15软件项目管理 CH01 选择过程 郭建东软件过程(Cont.)过程的好坏由结果状态与预期状态的差异决定,也就是目标过程的好坏由结果状态与预期状态的差异决定,也就是目标成果质量的好坏。成果质量的好坏。规程(规程(

6、Procedure)是人们对客观事物运动规律)是人们对客观事物运动规律 的理解和掌的理解和掌握,使规范了的过程。握,使规范了的过程。软件过程是为了获得高质量软件产品所需要完软件过程是为了获得高质量软件产品所需要完 成的一系列成的一系列任务的框架,它规定了完成各项任务的工作步骤。任务的框架,它规定了完成各项任务的工作步骤。软件过程必须科学、合理,才能开发出高质量软件过程必须科学、合理,才能开发出高质量 的软件产品。的软件产品。16软件项目管理 CH01 选择过程 郭建东软件过程(Cont.)软件过程又称软件生存周期过程,是软件生存周期内为达到一定目标而必须实施的一系列相关过程的集合。早期:立项、

7、需求分析、设计、编码、测试、交付、维护、退役17软件项目管理 CH01 选择过程 郭建东软件过程(Cont.)项目计划就是安排实际的过程,制作项目计划首先要定义过程。项目计划是某个软件过程模型的实例。软件过程是人类制作产物的一系列活动,而过去的软件工程师把产物和人分离,只研究产品过程及其质量,假定人力、物力资源是无限大、无限好。现在认识到面对实际资源实施软件过程学,求相对最佳质量才是有效的。18软件项目管理 CH01 选择过程 郭建东软件过程(Cont.)现在的软件生命周期过程包括:现在的软件生命周期过程包括:早期:早期:立项、需求分析、设计、编码、立项、需求分析、设计、编码、测试、交付、维护

8、、退役测试、交付、维护、退役又加入了:又加入了:管理各种活动、质量保证管理各种活动、质量保证环境基础设施配置、文档管理等。环境基础设施配置、文档管理等。19软件项目管理 CH01 选择过程 郭建东软件开发问题的循环解决过程状态描述问题定义技术开发方案综述20软件项目管理 CH01 选择过程 郭建东软件开发过程为开发小组的活动顺序提供向导详细说明那些制品将被开发,以及什么时候开发指导每一个开发人员和整个开发组的工作为监控和度量项目的产品和活动提供准则21软件项目管理 CH01 选择过程 郭建东软件工程 方法学传统方法学面向对象的方法学22软件项目管理 CH01 选择过程 郭建东传统方法学(生命周

9、期方法学)仍然是使用十分广泛的软件工程方法学。采用结构化技术来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。从上而下,顺序地完成软件开发的各阶段任务。23软件项目管理 CH01 选择过程 郭建东01.2 典型软件工程过程模型24软件项目管理 CH01 选择过程 郭建东瀑布模型(Waterfall)原型模型(Prototype)增量模型(Incremental)螺旋模型(Spiral)迭代模型(Iterative)01.2 典型软件工程过程模型25软件项目管理 CH01 选择过程 郭建东瀑布模型(线性顺序模型)瀑布式模型包含以下活动:系统/信息工程和建模软件需

10、求分析设计代码生成测试维护26软件项目管理 CH01 选择过程 郭建东基本概念软件生存期(过程)模型:软件生存期是软件产品或系统一系列相关活动的全周期。从形成概念开始,经过研制,交付使用,在使用中不断增补修订,直到最后被淘汰,让位于新的软件产品的过程。对软件生存期的不同划分,形成了不同的软件生存期模型。27软件项目管理 CH01 选择过程 郭建东软件工程的传统途径生命周期方法学 生命周期方法学的基本内容生命周期方法学的基本内容 从时间角度对软件开发和维护的复杂问题进行分解,把软件生命的漫长周从时间角度对软件开发和维护的复杂问题进行分解,把软件生命的漫长周 期依次划分为若干个阶段,每个阶段有相对

11、独立的任务,然后逐步完成每个阶期依次划分为若干个阶段,每个阶段有相对独立的任务,然后逐步完成每个阶 段的任务。段的任务。生命周期方法学的应用方法生命周期方法学的应用方法 从对任务的抽象逻辑分析开始,一个阶段一个阶段地进行开发;前一个阶段任从对任务的抽象逻辑分析开始,一个阶段一个阶段地进行开发;前一个阶段任 务的完成是后一个阶段工作的前提和基础,而后一个阶段任务通常是使前一阶务的完成是后一个阶段工作的前提和基础,而后一个阶段任务通常是使前一阶 段提出的解法更进一步的具体化,加进了更多的实现细节。段提出的解法更进一步的具体化,加进了更多的实现细节。阶段过渡方法阶段过渡方法 每一个阶段的开始和结束都

12、有严格标准,前一阶段结束的标准是后一阶段工作每一个阶段的开始和结束都有严格标准,前一阶段结束的标准是后一阶段工作 开始的标准。开始的标准。技术审查和管理复审。技术审查和管理复审。基本概念基本概念 文档及其作用。文档及其作用。生命周期各阶段的基本任务生命周期各阶段的基本任务 问题定义问题定义可行性研究可行性研究 需求分析需求分析 总体设计(概要设计)总体设计(概要设计)详细设计详细设计 编码和单元测试编码和单元测试 综合测试综合测试 软件维护。软件维护。28软件项目管理 CH01 选择过程 郭建东软件工程(生命周期各阶段的基本任务)问题定义可行性研究需求分析总体设计详细设计编码与单元测试综合测试

13、软件维护要解决的问题是什么?问题性质、工程目标和规模的报告分析员:实际用户+负责人是否有解决办法?分析员 高层逻辑模型,准确和具体的工程规模和目标,成本/效益分析等可行性报告为了解决的问题,目标系统必须做什么?准确确定系统的功能系统的逻辑模型(数据流图+数据字典+简要算法)如何解决这些问题模块划分软件结构如何具体地实现系统:每个模块的流程图(程序的详细规格说明)通过各种类型的测试,使软件达到预定的要求写出正确的容易理解和容易维护的程序模块 通过各种必要的维护活动使系统持久地满足用户的需要29软件项目管理 CH01 选择过程 郭建东生命周期法各阶段的工作小结生命周期法各阶段的工作小结生命周期法各

14、阶段的工作小结生命周期法各阶段的工作小结“生命周期法”的特点阶段具有顺序性和依赖性推迟实现的观点质量保证的观点每个阶段都必须完成规定的文档每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。32软件项目管理 CH01 选择过程 郭建东软件工程瀑布模型瀑布模型 问题定义特点:1)阶段间具有顺序性和依赖性 2)推迟实现的观点 3)质量保证的观点。可行性研究需求分析总体设计详细设计编码与单元测试综合测试软件维护软件定义时期软件开发时期软件维护时期33软件项目管理 CH01 选择过程 郭建东软件开发过程模型瀑布模型的特征从上一项活动中接受该项活动的工作对象,作为输入。利用这一输入实施

15、该项活动应完成的内容给出该项活动的工作成果,作为输出传给下一项活动对该项活动实施的工作进行评审。若其工作得到确认,则继续下一项活动。34软件项目管理 CH01 选择过程 郭建东瀑布模型 特点文档驱动的模型 阶段间具有顺序性和依赖性推迟实现的观点质量保证的观点35软件项目管理 CH01 选择过程 郭建东思考?传统瀑布模型存在什么问题?36软件项目管理 CH01 选择过程 郭建东传统的瀑布模型 存在什么问题?传统的瀑布模型过于理想化了,事实上,人在工作过程中不可能不犯错误。在设计阶段可能发生规格说明文档中的错误。而设计上的缺陷或错误可能在实现过程中显现出 来。在综合测试阶段将发现需求分析、设计或编

16、码阶段 的许多错误。37软件项目管理 CH01 选择过程 郭建东Tom Gilb:“假如你不积极地解决你项目中存在的风险,它们就会积极地解决掉你”瀑布方法会掩饰项目中真正的风险,当你太晚发现它们时已无济于事。38软件项目管理 CH01 选择过程 郭建东瀑布模型 问题实际项目很少按照该模型给出的顺序进行用户常常难以清楚地给出所有需求用户必须有耐心开发者常常被不必要地耽搁39软件项目管理 CH01 选择过程 郭建东软件开发过程模型瀑布模型的缺点:从认识论角度看,人的认识是一个多次反复循环的过程,不可能一次完成。但瀑布模型中划分的几个阶段,没有反映出这种认识过程的反复性。软件开发是一个知识密集型的开

17、发活动,需要相互合作完成,但瀑布模型没有体现这一点。40软件项目管理 CH01 选择过程 郭建东瀑布模型 实际的瀑布模型 需求分析验证规格说明验证设计验证编码测试综合测试维护变化的需求验证41软件项目管理 CH01 选择过程 郭建东软件开发过程模型具有维护循环的软件生存期的瀑布模型42软件项目管理 CH01 选择过程 郭建东软件开发过程模型原型模型基本思想在获取一组基本的需求定义后,利用高级软件工具的可开发环境,快速地建立一个目标系统的最初版本,并把它交给用户试用、补充和修改,再进行新的版本开发。反复进行这个过程,直到得出系统的“精确解”,即用户满意为止。经过这样一个反复补充和修改的过程,应用

18、系统的“最初版本”就逐步演变为系统的“最终版本”。43软件项目管理 CH01 选择过程 郭建东原型模型快速建立起来的可以在计算机上运行的程序,他所能完成的功能往往是最终产品能完成的功能的一个子集。44软件项目管理 CH01 选择过程 郭建东原型模型 适用情况用户定义了一组一般性目标,但不能标识出详细的输入、处理及输出需求;开发者可能不能确定算法的有效性、操作系统的适应性或人机交互的形式;原型模型可能是最好的选择 45软件项目管理 CH01 选择过程 郭建东原型模型(Cont.)原型模型从需求收集开始。开发者和用户在一起定义软件的总体目标,标识出已知的需求,并规划出进一步定义的区域。然后是“快速

19、设计”,快速设计集中于软件那些对用户可见部分的表示。“快速设计”导致原型的建造。原型由用户评估,并进一步精化待开发软件的需求,逐步调整原型使其满足客户的要求。同时开发者对将要做的事情有更好的理解,这个过程是迭代的。46软件项目管理 CH01 选择过程 郭建东原型模型(Cont.)快速原型验证规格说明验证设计验证编码测试综合测试维护变化的需求验证维护过程开发过程47软件项目管理 CH01 选择过程 郭建东原型模型存在的问题用户似乎看到的是软件的工作版本,其实开发者常常需要实现上的折衷,以使原型能够尽快工作48软件项目管理 CH01 选择过程 郭建东原型模型在“需求分析”、“原型设计”两个阶段中,

20、开发者和用户一起为想象中的系统的某些主要部分定义需求和规格说明,并由开发者在规格说明级用原型描述语言构造一个系统原型,它代表了部分系统,包括那些为满足用户需求的必要属性。该原型可用来帮助分析和设计工作,而不是一个软件产品。49软件项目管理 CH01 选择过程 郭建东原型模型在演示原型期间,用户可以根据他所期望的系统行为来评价原型的实际行为。如果原型不能满意地运行,用户能立刻找出问题和不可接受的地方,并与开发者重新定义需求。该过程一直持续到用户认为该原型能成功地体现想象中的系统的主要部分功能为止。在这期间,用户和开发者都不要为程序算法或设计技巧等枝节问题分心,而是要确定开发者是否理解了用户的意思

21、,同时试验实现它们的若干方法。50软件项目管理 CH01 选择过程 郭建东原型模型特征原型特征软件原型是软件的最初版本,以最少的费用、最短的时间开发出的、以反映最后软件的主要特征的系统。它具有以下特征:(1)它是一个可实际运行的系统。51软件项目管理 CH01 选择过程 郭建东原型模型特征(2)它没有固定的生存期。一种极端是扔掉原型(以最简便方式大量借用已有软件,做出最后产品的模型,证实产品设想是成功的,但产品中并不使用);另一种极端是最终产品的一部分即增量原型(先做出最终产品的核心部分,逐步增加补充模块),演进原型居于其中(每一版本扔掉一点,增加一点,逐步完善至最终产品)。52软件项目管理

22、CH01 选择过程 郭建东原型模型特征(3)从需求分析到最终产品都可作原型,即可为不同目标作原型。(4)它必须快速、廉价。(5)它是迭代过程的集成部分,即每次经用户评价后修改、运行,不断重复双方认可。53软件项目管理 CH01 选择过程 郭建东原型模型评价原型法的评价优点1.原型法在得到良好的需求定义上比传统生存周期法好得多,可处理模糊需求,开发者和用户可充分通信。2.原型系统可作为培训环境,有利于用户培训和开发同步,开发过程也是学习过程。3.原型给用户以机会更改心中原先设想的、不尽合理的最终系统。4.原型可低风险开发柔性较大的计算机系统。5.原型增加使系统更易维护、对用户更友好的机会。6.原

23、型使总的开发费用降低,时间缩短。54软件项目管理 CH01 选择过程 郭建东缺点1.“模型效应”或“管中窥豹”。对于开发者不熟悉的领域把次要部分当作主要框架,做出不切题的原型。2.原型迭代不收敛于开发者预先的目标。即每次更改,为了消除错误,次要部分越来越大,“淹没”了主要部分。3.原型过快收敛于需求集合,而忽略了一些基本点。4.资源规划和管理较为困难,随时更新文档也带来麻烦。5.长期在原型环境上开发,只注意得到满意的原型,容易“遗忘”用户环境和原型环境的差异。原型模型评价55软件项目管理 CH01 选择过程 郭建东适用范围:原型开发可以应用于软件生存周期的不同阶段,也可以替代生存期的部分或全部

24、阶段,具体可以用于以下领域:1.辅助分析和确定用户需求的任务。2.作为软件设计的一种工具。例如:研究系统设计的可行性和适应性。3.作为一种解决不确定性的工具。例如:研究一种新技术的效果,逐步使其适应预定的环境。4.作为一种实验工具。5.充作同步培训工具。6.“一次性”的应用。例如写一个能运行的程序,一旦得到答案,该程序将不再使用。7.作为软件维护的辅助工具。特别是在用户需求不稳定,维护工作量很大的情况下,要求大量的重新设计工作。原型模型评价56软件项目管理 CH01 选择过程 郭建东增量模型融合了瀑布模型的基本成分和原型的迭代特征。采用随着日程时间的进展而交错的线性序列。57软件项目管理 CH

25、01 选择过程 郭建东增量模型(Cont.)需求分析验证规格说明验证设计验证维护针对每个构件完成详细设计、编码和集成,经测试后交付给用户58软件项目管理 CH01 选择过程 郭建东增量模型(Cont.)增量1增量2 增量3增量4 59软件项目管理 CH01 选择过程 郭建东增量模型(Cont.)增量模型融合了瀑布模型的基本成分和原型的迭代特性。例如,使用增量模型开发字处理软件基本的文件管理、编辑和文档生成功能。更完善的编辑和文档生成能力。实现拼写和文法检查功能。完成高级的页面布局功能。60软件项目管理 CH01 选择过程 郭建东增量模型(Cont.)第一个增量往往是核心产品每一个增量均发布一个

26、可操作产品早期的增量是最终产品的“可拆卸”版本61软件项目管理 CH01 选择过程 郭建东软件开发过程模型喷泉模型喷泉模型认为软件生命周期的各个阶段是相互重叠和多次反复的。主要用于面向对象方法中62软件项目管理 CH01 选择过程 郭建东软件开发过程模型螺旋模型在原型基础上,进行多次原型反复并增加风险评估,形成螺旋模型。63软件项目管理 CH01 选择过程 郭建东软件开发过程模型螺旋模型64软件项目管理 CH01 选择过程 郭建东软件开发过程模型螺旋模型65软件项目管理 CH01 选择过程 郭建东螺旋模型分析在螺旋模型结构中,维护只是螺旋模型的另一个周期,在维护和开发之间本质上并没有区别,从而

27、解决了做太多测试或未作足够测试所带来的风险。适用条件内部的大规模软件的开发,不太适合合同软件。一般只适用于大规模软件的开发软件开发过程模型螺旋模型66软件项目管理 CH01 选择过程 郭建东迭代模型建立在Barry Boehm 的螺旋模型基础上的。67软件项目管理 CH01 选择过程 郭建东迭代模型(Cont.)PlanningRequirementsAnalysis&DesignImplementationDeploymentTestEvaluationManagementEnvironmentEach iteration results in an executable release.6

28、9软件项目管理 CH01 选择过程 郭建东Risk ReductionRisk ReductionTimeTimeRiskRiskWaterfall RiskIterative RiskRisk Profiles71软件项目管理 CH01 选择过程 郭建东特点这种方法可以在生命周期早期强制性的确定项目中存在的风险。这种方法是一个连续地发现、创造和实现的过程。在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动项目制品的生产和制作。72软件项目管理 CH01 选择过程 郭建东提供解决方案:在生命周期的早期,这种方法可以及时地发现一些严重的需求理解错误,此时还可能修正这些错误。允许并鼓励用

29、户反馈信息,以明确系统的真实需求。这种方法使开发小组重视项目中最关键的问题,而屏蔽掉那些使他们远离项目真实风险的问题。不断地迭代测试能够给出项目状况的客观评价。73软件项目管理 CH01 选择过程 郭建东提供解决方案:(Cont.)尽早地发现需求、设计和实现中的不一致。在整个项目生命周期中更加平均地分配开发组的工作量,特别是测试小组的工作量。开发组可以不断打在开发中进行学习从而改进过程。在整个生命周期中,项目相关人员可以通过具体证据了解项目状况。74软件项目管理 CH01 选择过程 郭建东Review:软件过程模型 瀑布模型原型模型增量模型螺旋模型迭代模型75软件项目管理 CH01 选择过程

30、郭建东软件开发问题的症状对于最终用户的需要理解得不够精确对需求的改变束手无策程序块不兼容软件不易维护或不易扩展对项目严重缺陷的发现较晚软件质量低劣软件性能令人无法接受开发组的人员按各自的方式进行开发,如果有人改变可部分软件,将很难进行重组一个不可靠的构造和发布过程76软件项目管理 CH01 选择过程 郭建东失败原因特别的需求管理模糊和不精确的交流脆弱的构架过度复杂未检测出需求、设计和实现之间的不一致测试的不足对于项目状况的评估过于主观未解决存在的风险无法控制变化的产生和传播自动控制不足77软件项目管理 CH01 选择过程 郭建东RUPRUPRational Unified Process78软

31、件项目管理 CH01 选择过程 郭建东RUP现在软件产业界普遍认为,开发复杂软件项目必须采用基于UML的、以构架为中心、用例驱动与风险驱动相结合的迭代式增量开发过程,他是世界公认的开发复杂软件项目的最好过程,已经成为软件界的“圣经”。这一开发过程目前已经稳定、成熟。这就是:79软件项目管理 CH01 选择过程 郭建东Rational Unified ProcessRUP Rational 统一过程是由Rational 软件公司开发和营销的一种软件工程过程,是开发组织用以分配与管理任务和职责的一种规范化方法。这个过程的目的是在预定的进度和预算范围内,开发出满足最终用户需要的高质量软件。80软件项

32、目管理 CH01 选择过程 郭建东RUP捕获的6项最佳商业实践 被证明是解决软件开发过程中根本问题的方法控制变更控制变更控制变更控制变更迭代开发迭代开发迭代开发迭代开发使用基于构使用基于构使用基于构使用基于构件的架构件的架构件的架构件的架构管理需求管理需求管理需求管理需求可视化建模可视化建模质量验证质量验证质量验证质量验证81软件项目管理 CH01 选择过程 郭建东最佳软件开发实践 Best Practices迭代地开发软件 Develop Iteratively管理需求 Manage Requirements应用基于构件的构架 Use Component Architectures为软件建立

33、可视化的模型 Model Visually(UML)不断地验证软件质量 Continuously Verify Quality控制软件的变更 Manage Change82软件项目管理 CH01 选择过程 郭建东RUP的目标按照预先制定的时间计划和经费预算,开发出高质量的软件产品以满足最终用户的需求83软件项目管理 CH01 选择过程 郭建东RUP是什么?是一种软件工程过程是一个过程产品有自己的过程框架捕获了现代软件开发中的最佳实践84软件项目管理 CH01 选择过程 郭建东RUP的三大特点用例驱动以架构为中心迭代和增量开发85软件项目管理 CH01 选择过程 郭建东用例驱动用Use Case

34、作为划分问题的组织单元,分析和设计活动的局部粒度都遵循这一划分原则。Use Case的定义反映可系统外部要素根据特定目标使用拟建系统的状况,能确保问题的局部划分粒度适当,保持了全局与局部的平衡。86软件项目管理 CH01 选择过程 郭建东87软件项目管理 CH01 选择过程 郭建东RUP的整体架构88软件项目管理 CH01 选择过程 郭建东RUP的迭代模型89软件项目管理 CH01 选择过程 郭建东RUP的关键概念90软件项目管理 CH01 选择过程 郭建东RUPRUP将这些最佳实践活动以一种适当的形式结合起来,从而适应了广泛的项目和开发组织。RUP 是一个过程产品是一个过程产品(proces

35、s product)。Rational(IBM)软件公司开发并维护着这软件公司开发并维护着这个产品,并将其与个产品,并将其与Rational 软件公司自己软件公司自己的一系列软件开发工具集成。的一系列软件开发工具集成。91软件项目管理 CH01 选择过程 郭建东RUPRUP 有自己的过程框架(process framework),这个框架可以被改造和扩展以适应采纳此方法的组织。软件过程也是软件软件过程也是软件设计、开发、交付和维护设计、开发、交付和维护92软件项目管理 CH01 选择过程 郭建东谁在使用RUP?电信业Ericsson、Alcatel、MCI 交通、航空、国防Lockheed-M

36、artin、British Aerospace制造业Xerox、Volvo、Intel金融业Visa、Merrill Lynch、Schwab 系统集成业Ernst&Young、Oracle、Deloitte&Touche 94软件项目管理 CH01 选择过程 郭建东RUP RUP核心是解决可操作性问题,帮助开发人员尽可能少地依赖那些“不可描述的经验”。他详细给出了每个阶段参与该过程的各种焦色,然后表示在过程中,该角色创建的制品。95软件项目管理 CH01 选择过程 郭建东Rational Unified Process 的主要工件,及这些工件间的信息流96软件项目管理 CH01 选择过程 郭

37、建东97软件项目管理 CH01 选择过程 郭建东98软件项目管理 CH01 选择过程 郭建东99软件项目管理 CH01 选择过程 郭建东100软件项目管理 CH01 选择过程 郭建东101软件项目管理 CH01 选择过程 郭建东102软件项目管理 CH01 选择过程 郭建东增量和迭代开发基于风险前驱的原则,渐进地展开分析、设计及其相关活动,每个迭代都会提供一次验证和调整模型机会,推动软件质量的提升。103软件项目管理 CH01 选择过程 郭建东RUP 二维过程结构沿时间轴的组织结构沿内容轴的组织结构104软件项目管理 CH01 选择过程 郭建东RUP的生命开发周期105软件项目管理 CH01

38、选择过程 郭建东RUP的生命开发周期106软件项目管理 CH01 选择过程 郭建东RUP的生命开发周期107软件项目管理 CH01 选择过程 郭建东RUP的生命开发周期108软件项目管理 CH01 选择过程 郭建东主要困难多层次持续的规划与评估判断架构中关键风险的经验高效率的验证和评价手段多工种之间的频繁沟通多版本工作产品的管理109软件项目管理 CH01 选择过程 郭建东基础保障核心人员必要的管理与技术经验自动化的验证和评价工具团队成员之间有高效的沟通工具软件配置与变更管理工具110软件项目管理 CH01 选择过程 郭建东RUP 的裁减RUP 仅仅是一个通用的过程框架,需要根据实际情况裁减。

39、111软件项目管理 CH01 选择过程 郭建东A Process is not Enough to Build a System112软件项目管理 CH01 选择过程 郭建东 XPXP(Extreme Programming),它是由Kent Beck大师提出的。大师在经历传统软件开发的痛苦之后,希望能够找到一种优秀的软件开发方法。大师总结了大量的软件的成功和失败的因素之后,提出了改进软件开发方法的四个要素:沟通(communication)、简单化(simplicity)、反馈(feedback)、勇气(courage)。这形成了XP的核心价值观。在经历了数年的发展,XP在软件开发的各方面都

40、发展出了众多的方法来支持软件开发。113软件项目管理 CH01 选择过程 郭建东XP是什么?敏捷方法的代表。Kent Beck在他的开篇之作Extreme Programming Explained Embrace Change中提出97年一种高度动态的过程,它通过非常短的迭代周期来应对软件开发中的变化强调有效测试和演化设计fowler114软件项目管理 CH01 选择过程 郭建东XP的目标在规定的时间生产出满足客户需要的软件 115软件项目管理 CH01 选择过程 郭建东什么时候需要XP?需求不明确、变化快高风险:在特定的时间内,面对一个相当难开发的系统 中小型团队(人数不超过10 个)11

41、6软件项目管理 CH01 选择过程 郭建东XP的系统隐喻 117软件项目管理 CH01 选择过程 郭建东XP体现四个价值目标沟通(communication)简化(simlicity)反馈(feedback)勇气(courage)118软件项目管理 CH01 选择过程 郭建东XP的12个核心实践规划策略(Planning game)系统隐喻(System Metaphor)简单设计(Simple design)配对编程(pair programming)编码标准(Coding standards)测试驱动(Test-driven)重构(Refactoring)持续集成(Continuous i

42、ntegration)小发行版(Small releases)现场客户(On-site customer)集体代码所有权(Collective ownership)一周40小时(40-hour week)119软件项目管理 CH01 选择过程 郭建东实践之间的互相支持现场客户规划策略一周40小时小发行版简单设计测试驱动配对编程系统隐喻重构编码标准集体所有权持续集成120软件项目管理 CH01 选择过程 郭建东XP项目的状态图 121软件项目管理 CH01 选择过程 郭建东XP的计划/反馈循环122软件项目管理 CH01 选择过程 郭建东从CMM角度看XP XP部分满足或大部分满足了CMM 2-

43、3 级KPA 的要求,而基本上没有涉及CMM 4-5 级的KPAXP 侧重于具体的过程和开发技术,而CMM 更关注组织和管理上的问题 XP 缺少的一个重要内容是“institutionalization”-Mark Paulk,SEI123软件项目管理 CH01 选择过程 郭建东XP vs.RUP面向对象面向对象 风险驱动风险驱动 需求导向需求导向 迭代,增量开发迭代,增量开发 软件开发方法学软件开发方法学 过程框架过程框架 小巧灵活小巧灵活 巨大复杂巨大复杂 变化是不变的变化是不变的 控制变化控制变化 文档将成为制品文档将成为制品 文档就是代码和测试文档就是代码和测试 计划设计计划设计 演化

44、设计演化设计以代码为中心,自底向上以代码为中心,自底向上 以架构为中心,自顶向下以架构为中心,自顶向下 从开发者的角度从开发者的角度 从机构的角度从机构的角度 124软件项目管理 CH01 选择过程 郭建东对XP的置疑技术前提:对变化成本曲线的置疑 技艺前提:对于有经验的人是简单的代码,对没有经验的人是复杂的 社会结构前提:程序员可以能否对自己的开发过程承担责任 125软件项目管理 CH01 选择过程 郭建东不适用于XP的场合不能接受XP 文化的组织 中大型(超过10 个人)的团队 重构会导致大量开销的应用 需要很长的编译或测试周期的系统 不太容易测试的应用 人员异地分布的物理环境 Beck126软件项目管理 CH01 选择过程 郭建东01.3 过程模型的选择127软件项目管理 CH01 选择过程 郭建东

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁