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

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

举报
开通vip

软件项目管理-CH01-选择恰当的过程-典型软件开发过程模型null软件项目管理 Software Project Management (SPM)软件项目管理 Software Project Management (SPM)郭建东CH01 选择恰当的开发过程 -典型软件工程过程模型CH01 选择恰当的开发过程 -典型软件工程过程模型01.1 软件工程过程 01.2 典型软件工程过程模型 01.3 过程模型的选择*软件项目管理 CH01 选择过程 郭建东01.1 软件工程过程01.1 软件工程过程 软件过程是近十年来人们关注的焦点。软件过程是...

软件项目管理-CH01-选择恰当的过程-典型软件开发过程模型
null软件项目管理 Software Project Management (SPM)软件项目管理 Software Project Management (SPM)郭建东CH01 选择恰当的开发过程 -典型软件工程过程模型CH01 选择恰当的开发过程 -典型软件工程过程模型01.1 软件工程过程 01.2 典型软件工程过程模型 01.3 过程模型的选择*软件项目管理 CH01 选择过程 郭建东01.1 软件工程过程01.1 软件工程过程 软件过程是近十年来人们关注的焦点。软件过程是为开发高质量软件所需要完成的任务的框架。软件工程是有创造力、有知识的人在定义好的、成熟的软件过程框架中进行的。*软件项目管理 CH01 选择过程 郭建东软件过程软件过程软件过程层次图质量焦点过程方法工具*软件项目管理 CH01 选择过程 郭建东软件过程软件过程 软件过程提供了一个框架,在该框架下可以建立一个软件开发的综合 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 : 若干框架活动适用于所有软件项目,而不在乎其规模和复杂性。 若干不同任务的集合----每一个集合都由任务、里程碑、交付物以及质量保证点组成----使得框架活动适应于不同软件项目的特征和项目组的需求。 若干保护性活动----如软件质量保证、软件配置管理、测试与度量----它们贯穿于整个过程模型之中。保护性活动独立于任何一个框架活动,且贯穿于整个过程之中。 *软件项目管理 CH01 选择过程 郭建东软件过程软件过程里程碑、交付物SQA点公共过程框架框架活动保护性活动任务集合工作任务*软件项目管理 CH01 选择过程 郭建东软件过程软件过程软件过程可分为三大类: 基本过程类:是构成软件生存周期主要部分的那些过程,包括获取、供应、开发、操作、维护等过程。 支持过程类:可穿插到基本过程中提供支持的一系列过程,包括文档开发、配置管理、质量保证、验证、确认、联合评审、审计、问题解决等过程。 组织过程类:一个组织用来建立、实施一种基础结构、并不断改进该基础结构的过程,包括管理、基础、改进、培训等过程。 *软件项目管理 CH01 选择过程 郭建东软件过程模型软件过程模型 软件过程模型是软件开发的指导思想和全局性框架,软件过程模型的提出和发展反映了人们对软件过程的某种认识观,体现了人们对软件过程认识的提高和飞跃。*软件项目管理 CH01 选择过程 郭建东什么是过程?什么是过程?软件工程中的目标就是开发和维护软件及相关产品*软件项目管理 CH01 选择过程 郭建东当前主流的软件过程当前主流的软件过程CMM RUP MSF XP*软件项目管理 CH01 选择过程 郭建东过程铁三角过程铁三角过程:把各部分集成在一起 --CMM*软件项目管理 CH01 选择过程 郭建东过 程过 程过程就是针对某一给定目标的一系列运作步骤,[IEEE-STD-610] 是在过程环境下的一系列有序活动。所谓活动(Activity)就是过程对象一次状态改变,也叫过程步(Step)。 活动起始态和活动结果态表征了活动的进行。可以说一切事物的发生、发展、消亡都离不开过程,都寓于过程之中。*软件项目管理 CH01 选择过程 郭建东过程的一般定义过程的一般定义*软件项目管理 CH01 选择过程 郭建东煮蛋的启示煮蛋的启示*软件项目管理 CH01 选择过程 郭建东软件过程 软件过程 软件过程是将用户的需求转化成有效的软件解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 的一系列活动。 许多软件组织无法正确定义和控制这一过程,但这恰恰是组织改进的关键。*软件项目管理 CH01 选择过程 郭建东软件过程(Cont.)软件过程(Cont.)过程的好坏由结果状态与预期状态的差异决定,也就是目标成果质量的好坏。 规程(Procedure)是人们对客观事物运动规律 的理解和掌握,使规范了的过程。 软件过程是为了获得高质量软件产品所需要完 成的一系列任务的框架,它规定了完成各项任务的工作步骤。 软件过程必须科学、合理,才能开发出高质量 的软件产品。*软件项目管理 CH01 选择过程 郭建东软件过程(Cont.)软件过程(Cont.)软件过程又称软件生存周期过程,是软件生存周期内为达到一定目标而必须实施的一系列相关过程的集合。 早期: 立项、需求分析、设计、编码、 测试、交付、维护、退役 *软件项目管理 CH01 选择过程 郭建东软件过程(Cont.)软件过程(Cont.)项目计划就是安排实际的过程,制作项目计划首先要定义过程。项目计划是某个软件过程模型的实例。 软件过程是人类制作产物的一系列活动,而过去的软件工程师把产物和人分离,只研究产品过程及其质量,假定人力、物力资源是无限大、无限好。现在认识到面对实际资源实施软件过程学,求相对最佳质量才是有效的。 *软件项目管理 CH01 选择过程 郭建东软件过程(Cont.)软件过程(Cont.)现在的软件生命周期过程包括: 早期: 立项、需求分析、设计、编码、 测试、交付、维护、退役 又加入了: 管理各种活动、质量保证 环境基础设施配置、文档管理等。 *软件项目管理 CH01 选择过程 郭建东软件开发—问题的循环解决过程软件开发—问题的循环解决过程状态描述 问题定义 技术开发 方案综述*软件项目管理 CH01 选择过程 郭建东软件开发过程软件开发过程为开发小组的活动顺序提供向导 详细说明那些制品将被开发,以及什么时候开发 指导每一个开发人员和整个开发组的工作 为监控和度量项目的产品和活动提供准则 *软件项目管理 CH01 选择过程 郭建东软件工程 — 方法学软件工程 — 方法学传统方法学 面向对象的方法学 *软件项目管理 CH01 选择过程 郭建东传统方法学(生命周期方法学)传统方法学(生命周期方法学)仍然是使用十分广泛的软件工程方法学。 采用结构化技术来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。 从上而下,顺序地完成软件开发的各阶段任务。 *软件项目管理 CH01 选择过程 郭建东01.2 典型软件工程过程模型01.2 典型软件工程过程模型*软件项目管理 CH01 选择过程 郭建东null瀑布模型(Waterfall) 原型模型(Prototype) 增量模型(Incremental) 螺旋模型(Spiral) 迭代模型(Iterative) 01.2 典型软件工程过程模型*软件项目管理 CH01 选择过程 郭建东瀑布模型(线性顺序模型)瀑布模型(线性顺序模型)瀑布式模型包含以下活动: 系统/信息工程和建模 软件需求分析 设计 代码生成 测试 维护*软件项目管理 CH01 选择过程 郭建东基本概念基本概念软件生存期(过程)模型: 软件生存期是软件产品或系统一系列相关活动的全周期。从形成概念开始,经过研制,交付使用,在使用中不断增补修订,直到最后被淘汰,让位于新的软件产品的过程。对软件生存期的不同划分,形成了不同的软件生存期模型。*软件项目管理 CH01 选择过程 郭建东软件工程的传统途径—生命周期方法学软件工程的传统途径—生命周期方法学 生命周期方法学的基本内容 从时间角度对软件开发和维护的复杂问题进行分解,把软件生命的漫长周 期依次划分为若干个阶段,每个阶段有相对独立的任务,然后逐步完成每个阶 段的任务。 生命周期方法学的应用方法 从对任务的抽象逻辑分析开始,一个阶段一个阶段地进行开发;前一个阶段任 务的完成是后一个阶段工作的前提和基础,而后一个阶段任务通常是使前一阶 段提出的解法更进一步的具体化,加进了更多的实现细节。 阶段过渡方法 每一个阶段的开始和结束都有严格 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 ,前一阶段结束的标准是后一阶段工作 开始的标准。 技术审查和管理复审。 基本概念 文档及其作用。 生命周期各阶段的基本任务 问题定义→可行性研究→ 需求分析→ 总体设计(概要设计) → 详细设计→ 编码和单元测试→ 综合测试→ 软件维护。 *软件项目管理 CH01 选择过程 郭建东软件工程(生命周期各阶段的基本任务)软件工程(生命周期各阶段的基本任务)问题定义可行性研究需求分析总体设计详细设计编码与单元测试综合测试软件维护要解决的问题是什么?问题性质、工程目标和规模的报告分析员:实际用户+负责人是否有解决办法?分析员 高层逻辑模型,准确和具体的工程规模和目标,成本/效益分析等可行性报告为了解决的问题,目标系统必须做什么?准确确定系统的功能系统的逻辑模型 (数据流图+数据字典+简要算法)如何解决这些问题模块划分软件结构如何具体地实现系统:每个模块的 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图 (程序的详细规格说明)通过各种类型的测试,使软件达到预定的要求写出正确的容易理解和容易维护的程序模块 通过各种必要的维护活动使系统持久地满足用户的需要*软件项目管理 CH01 选择过程 郭建东生命周期法各阶段的工作小结生命周期法各阶段的工作小结生命周期法各阶段的工作小结生命周期法各阶段的工作小结“生命周期法”的特点“生命周期法”的特点 阶段具有顺序性和依赖性 推迟实现的观点 质量保证的观点 每个阶段都必须完成规定的文档 每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。*软件项目管理 CH01 选择过程 郭建东软件工程——瀑布模型软件工程——瀑布模型瀑布模型 问题定义特点:1) 阶段间具有顺序性和依赖性 2) 推迟实现的观点 3) 质量保证的观点。 可行性研究需求分析总体设计详细设计编码与单元测试综合测试软件维护软件定义时期软件开发时期软件维护时期*软件项目管理 CH01 选择过程 郭建东软件开发过程模型软件开发过程模型瀑布模型的特征 从上一项活动中接受该项活动的工作对象,作为输入。 利用这一输入实施该项活动应完成的内容 给出该项活动的工作成果,作为输出传给下一项活动 对该项活动实施的工作进行评审。若其工作得到确认,则继续下一项活动。*软件项目管理 CH01 选择过程 郭建东瀑布模型 — 特点瀑布模型 — 特点文档驱动的模型 阶段间具有顺序性和依赖性 推迟实现的观点 质量保证的观点*软件项目管理 CH01 选择过程 郭建东思考????思考???? 传统瀑布模型存在什么问题?*软件项目管理 CH01 选择过程 郭建东传统的瀑布模型 — 存在什么问题??? 传统的瀑布模型 — 存在什么问题??? 传统的瀑布模型过于理想化了,事实上,人在工作过程中不可能不犯错误。 在设计阶段可能发生规格说明文档中的错误。 而设计上的缺陷或错误可能在实现过程中显现出 来。 在综合测试阶段将发现需求分析、设计或编码阶段 的许多错误。 *软件项目管理 CH01 选择过程 郭建东  Tom Gilb:  “假如你不积极地解决你项目中存在的风险,它们就会积极地解决掉你” 瀑布方法会掩饰项目中真正的风险,当你太晚发现它们时已无济于事。*软件项目管理 CH01 选择过程 郭建东瀑布模型 — 问题瀑布模型 — 问题实际项目很少按照该模型给出的顺序进行 用户常常难以清楚地给出所有需求 用户必须有耐心 开发者常常被不必要地耽搁 *软件项目管理 CH01 选择过程 郭建东软件开发过程模型软件开发过程模型瀑布模型的缺点: 从认识论角度看,人的认识是一个多次反复循环的过程,不可能一次完成。但瀑布模型中划分的几个阶段,没有反映出这种认识过程的反复性。 软件开发是一个知识密集型的开发活动,需要相互合作完成,但瀑布模型没有体现这一点。*软件项目管理 CH01 选择过程 郭建东瀑布模型 — 实际的瀑布模型 瀑布模型 — 实际的瀑布模型 需求分析验证规格说明验证设计验证编码测试综合测试维护变化的需求验证*软件项目管理 CH01 选择过程 郭建东软件开发过程模型软件开发过程模型具有维护循环的软件生存期的瀑布模型*软件项目管理 CH01 选择过程 郭建东软件开发过程模型——原型模型软件开发过程模型——原型模型基本思想 在获取一组基本的需求定义后,利用高级软件工具的可开发环境,快速地建立一个目标系统的最初版本,并把它交给用户试用、补充和修改,再进行新的版本开发。反复进行这个过程,直到得出系统的“精确解”,即用户满意为止。经过这样一个反复补充和修改的过程,应用系统的“最初版本”就逐步演变为系统的“最终版本”。*软件项目管理 CH01 选择过程 郭建东原型模型原型模型快速建立起来的可以在计算机上运行的程序,他所能完成的功能往往是最终产品能完成的功能的一个子集。*软件项目管理 CH01 选择过程 郭建东原型模型 — 适用情况原型模型 — 适用情况用户定义了一组一般性目标,但不能标识出详细的输入、处理及输出需求; 开发者可能不能确定算法的有效性、操作系统的适应性或人机交互的形式; …… 原型模型可能是最好的选择 *软件项目管理 CH01 选择过程 郭建东原型模型(Cont.)原型模型(Cont.)原型模型从需求收集开始。 开发者和用户在一起定义软件的总体目标,标识出已知的需求,并规划出进一步定义的区域。 然后是“快速设计”,快速设计集中于软件那些对用户可见部分的表示。“快速设计”导致原型的建造。 原型由用户评估,并进一步精化待开发软件的需求,逐步调整原型使其满足客户的要求。同时开发者对将要做的事情有更好的理解, 这个过程是迭代的。*软件项目管理 CH01 选择过程 郭建东原型模型(Cont.) 原型模型(Cont.) 快速原型验证规格说明验证设计验证编码测试综合测试维护变化的需求验证维护过程开发过程*软件项目管理 CH01 选择过程 郭建东原型模型—存在的问题原型模型—存在的问题用户似乎看到的是软件的工作版本,其实…… 开发者常常需要实现上的折衷,以使原型能够尽快工作*软件项目管理 CH01 选择过程 郭建东原型模型原型模型在“需求分析”、“原型设计”两个阶段中,开发者和用户一起为想象中的系统的某些主要部分定义需求和规格说明,并由开发者在规格说明级用原型描述语言构造一个系统原型,它代表了部分系统,包括那些为满足用户需求的必要属性。该原型可用来帮助分析和设计工作,而不是一个软件产品。 *软件项目管理 CH01 选择过程 郭建东原型模型原型模型在演示原型期间,用户可以根据他所期望的系统行为来 评价 LEC评价法下载LEC评价法下载评价量规免费下载学院评价表文档下载学院评价表文档下载 原型的实际行为。如果原型不能满意地运行,用户能立刻找出问题和不可接受的地方,并与开发者重新定义需求。该过程一直持续到用户认为该原型能成功地体现想象中的系统的主要部分功能为止。在这期间,用户和开发者都不要为程序算法或设计技巧等枝节问题分心,而是要确定开发者是否理解了用户的意思,同时试验实现它们的若干方法。*软件项目管理 CH01 选择过程 郭建东原型模型特征原型模型特征原型特征 软件原型是软件的最初版本,以最少的费用、最短的时间开发出的、以反映最后软件的主要特征的系统。它具有以下特征: (1)它是一个可实际运行的系统。*软件项目管理 CH01 选择过程 郭建东原型模型特征原型模型特征(2)它没有固定的生存期。一种极端是扔掉原型(以最简便方式大量借用已有软件,做出最后产品的模型,证实产品设想是成功的,但产品中并不使用);另一种极端是最终产品的一部分即增量原型(先做出最终产品的核心部分,逐步增加补充模块),演进原型居于其中(每一版本扔掉一点,增加一点,逐步完善至最终产品)。*软件项目管理 CH01 选择过程 郭建东原型模型特征原型模型特征(3)从需求分析到最终产品都可作原型,即可为不同目标作原型。 (4)它必须快速、廉价。 (5)它是迭代过程的集成部分,即每次经用户评价后修改、运行,不断重复双方认可。*软件项目管理 CH01 选择过程 郭建东原型模型评价原型模型评价原型法的评价 优点 1.原型法在得到良好的需求定义上比传统生存周期法好得多,可处理模糊需求,开发者和用户可充分通信。 2.原型系统可作为培训环境,有利于用户培训和开发同步,开发过程也是学习过程。 3.原型给用户以机会更改心中原先设想的、不尽合理的最终系统。 4.原型可低风险开发柔性较大的计算机系统。 5.原型增加使系统更易维护、对用户更友好的机会。 6.原型使总的开发费用降低,时间缩短。*软件项目管理 CH01 选择过程 郭建东原型模型评价缺点 1.“模型效应”或“管中窥豹”。对于开发者不熟悉的领域把次要部分当作主要框架,做出不切题的原型。 2.原型迭代不收敛于开发者预先的目标。即每次更改,为了消除错误,次要部分越来越大,“淹没”了主要部分。 3.原型过快收敛于需求集合,而忽略了一些基本点。 4.资源规划和管理较为困难,随时更新文档也带来麻烦。 5.长期在原型环境上开发,只注意得到满意的原型,容易“遗忘”用户环境和原型环境的差异。原型模型评价*软件项目管理 CH01 选择过程 郭建东原型模型评价适用范围:原型开发可以应用于软件生存周期的不同阶段,也可以替代生存期的部分或全部阶段,具体可以用于以下领域: 1.辅助分析和确定用户需求的任务。 2.作为软件设计的一种工具。例如:研究系统设计的可行性和适应性。 3.作为一种解决不确定性的工具。例如:研究一种新技术的效果,逐步使其适应预定的环境。 4.作为一种实验工具。 5.充作同步培训工具。 6.“一次性”的应用。例如写一个能运行的程序,一旦得到答案,该程序将不再使用。 7.作为软件维护的辅助工具。特别是在用户需求不稳定,维护工作量很大的情况下,要求大量的重新设计工作。原型模型评价*软件项目管理 CH01 选择过程 郭建东增量模型增量模型融合了瀑布模型的基本成分和原型的迭代特征。采用随着日程时间的进展而交错的线性序列。*软件项目管理 CH01 选择过程 郭建东增量模型(Cont.) 增量模型(Cont.) 需求分析验证规格说明验证设计验证维护针对每个构件完成详细设计、编码和集成,经测试后交付给用户*软件项目管理 CH01 选择过程 郭建东增量模型 (Cont.)增量模型 (Cont.)分析分析分析分析设计设计设计设计编码编码编码编码测试测试测试测试增量1增量2 增量3增量4 *软件项目管理 CH01 选择过程 郭建东增量模型 (Cont.)增量模型 (Cont.)增量模型融合了瀑布模型的基本成分和原型 的迭代特性。 例如,使用增量模型开发字处理软件 基本的文件管理、编辑和文档生成功能。 更完善的编辑和文档生成能力。 实现拼写和文法检查功能。 完成高级的页面布局功能。 *软件项目管理 CH01 选择过程 郭建东增量模型 (Cont.)增量模型 (Cont.)第一个增量往往是核心产品 每一个增量均发布一个可操作产品 早期的增量是最终产品的“可拆卸”版本 *软件项目管理 CH01 选择过程 郭建东软件开发过程模型软件开发过程模型喷泉模型 喷泉模型认为软件生命周期的各个阶段是相互重叠和多次反复的。 主要用于面向对象方法中*软件项目管理 CH01 选择过程 郭建东软件开发过程模型——螺旋模型软件开发过程模型——螺旋模型 在原型基础上,进行多次原型反复并增加风险评估,形成螺旋模型。*软件项目管理 CH01 选择过程 郭建东软件开发过程模型——螺旋模型软件开发过程模型——螺旋模型*软件项目管理 CH01 选择过程 郭建东软件开发过程模型——螺旋模型软件开发过程模型——螺旋模型*软件项目管理 CH01 选择过程 郭建东软件开发过程模型——螺旋模型螺旋模型分析 在螺旋模型结构中,维护只是螺旋模型的另一个周期,在维护和开发之间本质上并没有区别,从而解决了做太多测试或未作足够测试所带来的风险。 适用条件 内部的大规模软件的开发,不太适合合同软件。 一般只适用于大规模软件的开发软件开发过程模型——螺旋模型*软件项目管理 CH01 选择过程 郭建东迭代模型 迭代模型 建立在Barry Boehm 的螺旋模型基础上的。*软件项目管理 CH01 选择过程 郭建东迭代模型(Cont.)迭代模型(Cont.)*软件项目管理 CH01 选择过程 郭建东迭代模型(Cont.)迭代模型(Cont.)Each iteration results in an executable release.*软件项目管理 CH01 选择过程 郭建东null*软件项目管理 CH01 选择过程 郭建东Risk ProfilesTimeRiskWaterfall RiskRisk Profiles*软件项目管理 CH01 选择过程 郭建东特点 特点 这种方法可以在生命周期早期强制性的确定项目中存在的风险。 这种方法是一个连续地发现、创造和实现的过程。 在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动项目制品的生产和制作。*软件项目管理 CH01 选择过程 郭建东提供解决方案:提供解决方案:在生命周期的早期,这种方法可以及时地发现一些严重的需求理解错误,此时还可能修正这些错误。 允许并鼓励用户反馈信息,以明确系统的真实需求。 这种方法使开发小组重视项目中最关键的问题,而屏蔽掉那些使他们远离项目真实风险的问题。 不断地迭代测试能够给出项目状况的客观评价。*软件项目管理 CH01 选择过程 郭建东提供解决方案: (Cont.)提供解决方案: (Cont.)尽早地发现需求、设计和实现中的不一致。 在整个项目生命周期中更加平均地分配开发组的工作量,特别是测试小组的工作量。 开发组可以不断打在开发中进行学习从而改进过程。 在整个生命周期中,项目相关人员可以通过具体证据了解项目状况。*软件项目管理 CH01 选择过程 郭建东Review: 软件过程模型 Review: 软件过程模型 瀑布模型 原型模型 增量模型 螺旋模型 迭代模型 *软件项目管理 CH01 选择过程 郭建东软件开发问题的症状软件开发问题的症状对于最终用户的需要理解得不够精确 对需求的改变束手无策 程序块不兼容 软件不易维护或不易扩展 对项目严重缺陷的发现较晚 软件质量低劣 软件性能令人无法接受 开发组的人员按各自的方式进行开发,如果有人改变可部分软件,将很难进行重组 一个不可靠的构造和发布过程*软件项目管理 CH01 选择过程 郭建东失败原因失败原因特别的需求管理 模糊和不精确的交流 脆弱的构架 过度复杂 未检测出需求、设计和实现之间的不一致 测试的不足 对于项目状况的评估过于主观 未解决存在的风险 无法控制变化的产生和传播 自动控制不足*软件项目管理 CH01 选择过程 郭建东RUPRUP RUP—Rational Unified Process*软件项目管理 CH01 选择过程 郭建东RUPRUP现在软件产业界普遍认为,开发复杂软件项目必须采用基于UML的、以构架为中心、用例驱动与风险驱动相结合的迭代式增量开发过程,他是世界公认的开发复杂软件项目的最好过程,已经成为软件界的“圣经”。这一开发过程目前已经稳定、成熟。 这就是:*软件项目管理 CH01 选择过程 郭建东Rational Unified Process—RUP Rational Unified Process—RUP Rational 统一过程是由Rational 软件公司开发和营销的一种软件工程过程,是开发组织用以分配与管理任务和职责的一种规范化方法。这个过程的目的是在预定的进度和预算范围内,开发出满足最终用户需要的高质量软件。 *软件项目管理 CH01 选择过程 郭建东RUP捕获的6项最佳商业实践 RUP捕获的6项最佳商业实践 被证明是解决软件开发过程中根本问题的方法*软件项目管理 CH01 选择过程 郭建东最佳软件开发实践 Best Practices最佳软件开发实践 Best Practices迭代地开发软件 Develop Iteratively 管理需求 Manage Requirements 应用基于构件的构架 Use Component Architectures 为软件建立可视化的模型 Model Visually (UML) 不断地验证软件质量 Continuously Verify Quality 控制软件的变更 Manage Change*软件项目管理 CH01 选择过程 郭建东RUP的目标RUP的目标按照预先制定的时间计划和经费预算,开发出高质量的软件产品以满足最终用户的需求*软件项目管理 CH01 选择过程 郭建东RUP是什么?RUP是什么?是一种软件工程过程 是一个过程产品 有自己的过程框架 捕获了现代软件开发中的最佳实践*软件项目管理 CH01 选择过程 郭建东RUP的三大特点RUP的三大特点用例驱动 以架构为中心 迭代和增量开发*软件项目管理 CH01 选择过程 郭建东用例驱动用例驱动用Use Case作为划分问题的组织单元,分析和设计活动的局部粒度都遵循这一划分原则。Use Case的定义反映可系统外部要素根据特定目标使用拟建系统的状况,能确保问题的局部划分粒度适当,保持了全局与局部的平衡。 *软件项目管理 CH01 选择过程 郭建东null*软件项目管理 CH01 选择过程 郭建东RUP的整体架构RUP的整体架构*软件项目管理 CH01 选择过程 郭建东RUP的迭代模型RUP的迭代模型*软件项目管理 CH01 选择过程 郭建东RUP的关键概念RUP的关键概念*软件项目管理 CH01 选择过程 郭建东RUPRUPRUP将这些最佳实践活动以一种适当的形式结合起来,从而适应了广泛的项目和开发组织。RUP 是一个过程产品(process product)。Rational (IBM) 软件公司开发并维护着这个产品,并将其与Rational 软件公司自己的一系列软件开发工具集成。*软件项目管理 CH01 选择过程 郭建东RUPRUPRUP 有自己的过程框架 (process framework), 这个框架可以被改造和扩展以适应采纳此方法的组织。软件过程也是软件 设计、开发、交付和维护*软件项目管理 CH01 选择过程 郭建东RUP —简要历史RUP —简要历史RUP 2000RUP 5.5RUP 5.0ROP 4.1ROP 4.0Rational 方法Objective 过程3.82000 1999 1998 1997 1996 1995实时ROOM业务工程 配置和变更管理需求学院Booch 方法OMT UML 0.8SQA 过程UML 1.1数据工程UI 设计UML 1.2基于WEB的开发UML1.3*软件项目管理 CH01 选择过程 郭建东谁在使用RUP?谁在使用RUP?电信业 Ericsson、Alcatel、MCI 交通、航空、国防 Lockheed-Martin、British Aerospace 制造业 Xerox、Volvo、Intel 金融业 Visa、Merrill Lynch、Schwab 系统集成业 Ernst & Young、Oracle、Deloitte & Touche *软件项目管理 CH01 选择过程 郭建东RUP RUP RUP核心是解决可操作性问题,帮助开发人员尽可能少地依赖那些“不可描述的经验”。他详细给出了每个阶段参与该过程的各种焦色,然后表示在过程中,该角色创建的制品。*软件项目管理 CH01 选择过程 郭建东nullRational Unified Process 的主要工件,及这些工件间的信息流*软件项目管理 CH01 选择过程 郭建东null*软件项目管理 CH01 选择过程 郭建东null*软件项目管理 CH01 选择过程 郭建东null*软件项目管理 CH01 选择过程 郭建东null*软件项目管理 CH01 选择过程 郭建东null*软件项目管理 CH01 选择过程 郭建东null*软件项目管理 CH01 选择过程 郭建东增量和迭代开发增量和迭代开发基于风险前驱的原则,渐进地展开分析、设计及其相关活动,每个迭代都会提供一次验证和调整模型机会,推动软件质量的提升。*软件项目管理 CH01 选择过程 郭建东RUP 二维过程结构RUP 二维过程结构沿时间轴的组织结构沿内容轴的组织结构*软件项目管理 CH01 选择过程 郭建东RUP的生命开发周期RUP的生命开发周期*软件项目管理 CH01 选择过程 郭建东RUP的生命开发周期RUP的生命开发周期*软件项目管理 CH01 选择过程 郭建东RUP的生命开发周期RUP的生命开发周期*软件项目管理 CH01 选择过程 郭建东RUP的生命开发周期RUP的生命开发周期*软件项目管理 CH01 选择过程 郭建东主要困难 主要困难 多层次持续的规划与评估 判断架构中关键风险的经验 高效率的验证和评价手段 多工种之间的频繁沟通 多版本工作产品的管理 *软件项目管理 CH01 选择过程 郭建东基础保障 基础保障 核心人员必要的管理与技术经验 自动化的验证和评价工具 团队成员之间有高效的沟通工具 软件配置与变更管理工具*软件项目管理 CH01 选择过程 郭建东RUP 的裁减 RUP 的裁减 RUP 仅仅是一个通用的过程框架,需要根据实际情况裁减。*软件项目管理 CH01 选择过程 郭建东A Process is not Enough to Build a SystemA Process is not Enough to Build a System*软件项目管理 CH01 选择过程 郭建东 XP XPXP(Extreme Programming),它是由Kent Beck大师提出的。大师在经历传统软件开发的痛苦之后,希望能够找到一种优秀的软件开发方法。大师总结了大量的软件的成功和失败的因素之后,提出了改进软件开发方法的四个要素:沟通(communication)、简单化(simplicity)、反馈(feedback)、勇气(courage)。这形成了XP的核心价值观。在经历了数年的发展,XP在软件开发的各方面都发展出了众多的方法来支持软件开发。 *软件项目管理 CH01 选择过程 郭建东XP是什么?XP是什么?敏捷方法的代表。 Kent Beck在他的开篇之作《Extreme Programming Explained – Embrace Change》中提出-97年 一种高度动态的过程,它通过非常短的迭代周期来应对软件开发中的变化 强调有效测试和演化设计――fowler*软件项目管理 CH01 选择过程 郭建东XP的目标XP的目标在规定的时间生产出满足客户需要的软件 *软件项目管理 CH01 选择过程 郭建东什么时候需要XP?什么时候需要XP?需求不明确、变化快 高风险:在特定的时间内,面对一个相当难开发的系统 中小型团队(人数不超过10 个) *软件项目管理 CH01 选择过程 郭建东XP的系统隐喻 XP的系统隐喻 *软件项目管理 CH01 选择过程 郭建东XP体现四个价值目标XP体现四个价值目标沟通(communication) 简化(simlicity) 反馈(feedback) 勇气(courage)*软件项目管理 CH01 选择过程 郭建东XP的12个核心实践XP的12个核心实践规划策略(Planning game) 系统隐喻(System Metaphor) 简单设计(Simple design) 配对编程(pair programming) 编码标准(Coding standards) 测试驱动(Test-driven) 重构(Refactoring) 持续集成(Continuous integration) 小发行版(Small releases) 现场客户(On-site customer) 集体代码所有权(Collective ownership) 一周40小时 (40-hour week) *软件项目管理 CH01 选择过程 郭建东实践之间的互相支持实践之间的互相支持*软件项目管理 CH01 选择过程 郭建东XP项目的状态图 XP项目的状态图 *软件项目管理 CH01 选择过程 郭建东XP的计划/反馈循环XP的计划/反馈循环*软件项目管理 CH01 选择过程 郭建东从CMM角度看XP 从CMM角度看XP XP部分满足或大部分满足了CMM 2-3 级KPA 的要求,而基本上没有涉及CMM 4-5 级的KPA XP 侧重于具体的过程和开发技术,而CMM 更关注组织和管理上的问题 XP 缺少的一个重要内容是“institutionalization” --Mark Paulk, SEI*软件项目管理 CH01 选择过程 郭建东XP vs. RUPXP vs. RUP*软件项目管理 CH01 选择过程 郭建东对XP的置疑对XP的置疑技术前提:对变化成本曲线的置疑 技艺前提:对于有经验的人是简单的代码,对没有经验的人是复杂的 社会结构前提 :程序员可以能否对自己的开发过程承担责任 *软件项目管理 CH01 选择过程 郭建东不适用于XP的场合不适用于XP的场合不能接受XP 文化的组织 中大型(超过10 个人)的团队 重构会导致大量开销的应用 需要很长的编译或测试周期的系统 不太容易测试的应用 人员异地分布的物理环境 --Beck *软件项目管理 CH01 选择过程 郭建东01.3 过程模型的选择01.3 过程模型的选择*软件项目管理 CH01 选择过程 郭建东
本文档为【软件项目管理-CH01-选择恰当的过程-典型软件开发过程模型】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_099148
暂无简介~
格式:ppt
大小:2MB
软件:PowerPoint
页数:0
分类:工学
上传时间:2011-06-28
浏览量:36