《软件项目管理第三章.pptx》由会员分享,可在线阅读,更多相关《软件项目管理第三章.pptx(65页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1目目 录录CMM和ISO90001传统软件开发生命周期模型2扩展软件开发生命周期模型3质量管理4案例分析5本章小结6第1页/共65页22023/3/223.1CMM和和ISO90001.SW-CMM和和CMMI2.ISO9000质量标准质量标准3.三者之间的比较三者之间的比较软件项目过程管理第2页/共65页32023/3/223.1.1 SW-CMM和CMMI 软件过程是指人们用于开发和维护软件及其相关产品的一系列活动、方法、实践和革新。软件开发过程管理是指在软件开发过程中,除了先进技术和开发方法外,还有一整套的管理技术。软件过程改进是针对软件生产过程中会对产品质量产生影响的问题而进行的,它
2、的直接结果是软件过程能力的提高。现在常见的软件过程改进方法:ISO 9000,SW-CMM和由多种能力模型演变而来的CMMI。第3页/共65页42023/3/22SW-CMM简介 为了保证软件产品的质量,1991年美国卡内基梅隆大学软件工程研究所(CMU/SEI)将软件过程成熟度框架进化为软件能力成熟度模型(Capability Maturity Model For Software,简称SW-CMM),并发布了最早的SW-CMM 1.0版。SW-CMM为软件企业的过程能力提供了一个阶梯式的进化框架,阶梯共有五级。3.1.1 SW-CMM和CMMI第4页/共65页52023/3/221 初始级
3、2 可重复级3 已定义级4 已管理级5 优化级无序、混乱的软件过程。依赖个别人的努力和机遇。建立基本的项目管理过程。相似项目,重复以往成果。文档化、标准化和标准的软件软件过程。软件过程和产品质量有详细的度量标准。持续的对过程进行改进。图 CMM分级标准3.1.1 SW-CMM和CMMI第5页/共65页62023/3/22KPA及KP 除第一级外,SW-CMM的每一级都是按完全相同的结构组成的。每一级包含了实现这一级目标的若干关键过程域(KPA),每个KPA进一步包含若干关键实施活动(KP),无论哪个KPA,它们的实施活动都统一按六个公共属性进行组织,即每一个KPA都包含六类KP:1.目标2.实
4、施保证3.实施能力 4.执行活动 5.度量分析6.实施验证3.1.1 SW-CMM和CMMI第6页/共65页72023/3/22n CMMI简介简介由于不同领域能力成熟度模型存在不同的过程改进,重复的培训、由于不同领域能力成熟度模型存在不同的过程改进,重复的培训、评估和改进活动以及活动不协调等一些问题。于是由美国国防部出面,评估和改进活动以及活动不协调等一些问题。于是由美国国防部出面,美国卡内基美国卡内基梅隆大学软件工程研究所(梅隆大学软件工程研究所(CMU/SEI)于)于2001年年12月发月发布的布的CMMI 1.1版本包括四个领域:软件工程(版本包括四个领域:软件工程(SW)、系统工程)
5、、系统工程(SE)、集成的产品和过程开发()、集成的产品和过程开发(IPPD)、采购()、采购(SS)。)。3.1.1 SW-CMM和CMMI第7页/共65页82023/3/223.1.1 SW-CMM和CMMIn CMMICMMI有两种不同的实施方法有两种不同的实施方法n连续式主要是衡量一个企业的项目能力连续式主要是衡量一个企业的项目能力n阶段式主要是衡量一个企业的成熟度阶段式主要是衡量一个企业的成熟度n CMMICMMI的五个台阶的五个台阶n 完成级完成级n 管理级管理级 n 定义级定义级 n 量化管理级量化管理级 n 优化级优化级 n 每一个台阶都是上面一阶台阶的基石。要上高层台每一个台
6、阶都是上面一阶台阶的基石。要上高层台阶必须首先踏上较低一层台阶阶必须首先踏上较低一层台阶。第8页/共65页92023/3/223.1.2 ISO9000质量标准n ISO9000ISO9000 所谓所谓“ISO9000”不是指一般意义上的一个质量保证标准,而是不是指一般意义上的一个质量保证标准,而是一族系列标准的统称。一族系列标准的统称。n作用作用强化品质管理,提高企业效益;增强客户信心,扩大市场份强化品质管理,提高企业效益;增强客户信心,扩大市场份额;额;获得了国际贸易获得了国际贸易“通行证通行证”,消除了国际贸易壁垒;,消除了国际贸易壁垒;节省了第二方审核的精力和费用;节省了第二方审核的精
7、力和费用;在产品品质竞争中永远立于不败之地;在产品品质竞争中永远立于不败之地;有效地避免产品责任;有效地避免产品责任;有利于国际间的经济合作和技术交流。有利于国际间的经济合作和技术交流。第9页/共65页102023/3/223.1.2 三者之间的比较n 选择选择SW-CMMSW-CMM还是还是CMMICMMI的考虑的考虑实施企业的业务特点。实施企业的业务特点。实施企业对过程改进的熟悉程度。实施企业对过程改进的熟悉程度。实施企业对过程改进项目的预算。实施企业对过程改进项目的预算。实施企业是否可以使用阶段式的演进路线。实施企业是否可以使用阶段式的演进路线。实施实施CMM与与CMMI可以平滑的转换。
8、可以平滑的转换。n ISO9001ISO9001与与CMMCMM的关系的关系ISO9001和和CMM既有区别又相互联系,两者不可简单地互相替既有区别又相互联系,两者不可简单地互相替 代。代。取得取得ISO9001认证并不意味着完全满足认证并不意味着完全满足CMM某个等级的要求。某个等级的要求。取得取得CMM第第2级级(或第或第3级级)不能笼统地认为可以满足不能笼统地认为可以满足ISO9001的的要求。要求。第10页/共65页11目目 录录CMM和ISO90001传统软件开发生命周期模型2扩展软件开发生命周期模型3质量管理4案例分析5本章小结6第11页/共65页122023/3/223.2传统软
9、件开发生命周期n软件生命周期软件生命周期软件从需求确定、设计、开发、测试直至投入使用,并在使用中不软件从需求确定、设计、开发、测试直至投入使用,并在使用中不断地修改、增补和完善,直至被新的系统所替代而停止该软件的使用的断地修改、增补和完善,直至被新的系统所替代而停止该软件的使用的全过程。全过程。n可划分为以下子阶段可划分为以下子阶段 1.可行性研究可行性研究2.需求分析和定义需求分析和定义3.总体设计总体设计4.详细设计详细设计5.编码(实现)编码(实现)6.软件测试、运行软件测试、运行/维护维护第12页/共65页132023/3/223.2传统软件开发生命周期n确定软件生存周期管理的主要阶段
10、确定软件生存周期管理的主要阶段 1.选择合适的生存期模型。选择合适的生存期模型。2.标识和定义生存期的的任务,即创建软件生存期。标识和定义生存期的的任务,即创建软件生存期。3.建立管理和技术上的的软件生产过程。建立管理和技术上的的软件生产过程。4.整个周期内对生存期过程的管理。整个周期内对生存期过程的管理。n软件项目生存期模型的基本特征:软件项目生存期模型的基本特征:1.描述了开发的主要阶段描述了开发的主要阶段2.定义了每一个阶段要完成的主要过程和活动定义了每一个阶段要完成的主要过程和活动3.规范了每一个阶段的输入和输出规范了每一个阶段的输入和输出 4.提供了一个框架,可以将必要的活动映射到该
11、框架中。提供了一个框架,可以将必要的活动映射到该框架中。常用的模型:瀑布模型、螺旋模型、进化模型、原型模型、增量模常用的模型:瀑布模型、螺旋模型、进化模型、原型模型、增量模型等。本节分别对这几种传统的软件开发生命周期模型予以介绍。型等。本节分别对这几种传统的软件开发生命周期模型予以介绍。第13页/共65页142023/3/22系统需求系统需求软件需求软件需求分析分析设计设计编码编码测试测试运行运行n瀑布模型总结瀑布模型总结n文档驱动的模型文档驱动的模型n阶段间具有顺序性和依阶段间具有顺序性和依赖性赖性n项目开发周期较长项目开发周期较长n实际项目很少按照该模实际项目很少按照该模型给出的顺序进行型
12、给出的顺序进行3.2.1瀑布模型生存周期阶段划分第14页/共65页152023/3/223.2.1瀑布模型WaterFall model适合的项目项目的需求在项目开始前很明确解决方案在项目开始前也很明确类似的项目如:公司的财务系统库存管理系统短期项目第15页/共65页162023/3/223.2.2原型模型第16页/共65页172023/3/223.2.2原型模型nPrototyping modelPrototyping model特点特点n在需求定义之前,需要快速构建一个系统在需求定义之前,需要快速构建一个系统n根据构建系统的优缺点,用户给开发人员提出反馈意见根据构建系统的优缺点,用户给开发
13、人员提出反馈意见n根据反馈意见修改软件需求规格,以便系统可以更正确根据反馈意见修改软件需求规格,以便系统可以更正确地反映用户的需求地反映用户的需求n减少各种假设以及风险减少各种假设以及风险第17页/共65页182023/3/22Prototype 模型适合的项目项目的需求在项目开始前不明确需要减少项目需求的不确定性类似的项目如:确定显示界面第一次开发的产品,验证可行性3.2.2原型模型第18页/共65页192023/3/22增量增量1增量增量2增量增量3增量增量4第一个增量发布第一个增量发布第二个增量发布第二个增量发布第三个增量发布第三个增量发布第四个增量发布第四个增量发布开发进度开发进度3.
14、2.3增量模型第19页/共65页202023/3/22n n增量模型总结增量模型总结n融合了瀑布模型和原型的迭代特征。融合了瀑布模型和原型的迭代特征。n每一个增量均发布一个可操作产品。每一个增量均发布一个可操作产品。3.2.3增量模型第20页/共65页212023/3/22增量模型适合的项目项目开始,明确了需求的大部分,但是需求可能会发生变化对于市场和用户把握不是很准,需要逐步了解对于有庞大和复杂功能的系统进行功能改进,就需要一步一步实施的。3.2.3增量模型第21页/共65页222023/3/22建造建造/修改修改原型原型听取用户听取用户意见意见用户测试用户测试运行原型运行原型这个模型这个模
15、型可看作是重复执可看作是重复执行的多个瀑布模行的多个瀑布模型。型。3.2.4进化模型第22页/共65页232023/3/22进化模型适合的项目项目开始,需求和设计不明确且可能发生显著变化。有多个用户组,可能产生需求冲突的。系统功能需要向用户演示以便于项目的演进。项目引进了新的、未经验证的技术。3.2.4进化模型第23页/共65页242023/3/22原型原型1原型原型2原型原型3可运行可运行原型原型需求计划需求计划 生存期生存期 计划计划开开发发计计划划集集成成与与测测试试软件软件需求需求需求需求确认确认设计确认设计确认与验证与验证 软件软件 产品产品设计设计详细设计详细设计风风险险分分析析风
16、风险险分分析析风风险险分分析析验收验收测试测试实现实现集成集成与与测试测试单元单元测试测试编码编码开发、验证开发、验证下一产品下一产品实施工程实施工程提交线提交线评审评审累计累计成本成本风险分析风险分析评价方案,识别评价方案,识别风险、消除风险风险、消除风险制订计划制订计划决定目标决定目标方案和限制方案和限制客户评估客户评估3.2.5螺旋模型第24页/共65页252023/3/22n螺旋模型总结螺旋模型总结n基于风险驱动的开发模型基于风险驱动的开发模型,使用原型法或其它方法来使用原型法或其它方法来尽量降低风险。尽量降低风险。n适用于需求不明确的大规模软件项目适用于需求不明确的大规模软件项目3.
17、2.5螺旋模型第25页/共65页262023/3/22目目 录录CMM和ISO90001传统软件开发生命周期模型2扩展软件开发生命周期模型3质量管理4案例分析5本章小结6第26页/共65页273.3.1极限模型n极限模型简介极限模型简介20012001年,为了避免许多公司的软件团队陷入不断增长的过程年,为了避免许多公司的软件团队陷入不断增长的过程泥潭,一批业界专家一起概括出了一些敏捷开发过程的方法:泥潭,一批业界专家一起概括出了一些敏捷开发过程的方法:SCRUMSCRUM,CrystalCrystal,特征驱动软件开发(,特征驱动软件开发(Feature Driven Feature Driv
18、en DevelopmentDevelopment,简称,简称FDDFDD),自适应软件开发(),自适应软件开发(Adaptive Software Adaptive Software DevelopmentDevelopment,简称,简称ASDASD),以及最重要的极限编程(),以及最重要的极限编程(eXtreme eXtreme Programming,Programming,简称简称XPXP)。)。第27页/共65页282023/3/223.3.1极限模型极限编程将极限编程将开发阶段的开发阶段的4 4个活动(分个活动(分析、设计、析、设计、编码和测试)编码和测试)混合在一起,混合在一起
19、,在全过程中在全过程中采用迭代增采用迭代增量开发、反量开发、反馈修正和反馈修正和反复测试。复测试。第28页/共65页292023/3/22nXPXP开发模型核心思想开发模型核心思想:n交流(交流(Communication)n简单(简单(Simplicity)n反馈(反馈(Feedback)n勇气(勇气(Courage)3.3.1极限模型第29页/共65页302023/3/22n优点优点1)采用简单计划策略,不需采用简单计划策略,不需要长期计划和复杂模型,要长期计划和复杂模型,开发周期短;开发周期短;2)在全过程采用迭代增量开在全过程采用迭代增量开发、反馈修正和反复测试发、反馈修正和反复测试的
20、方法,能够适应用户经的方法,能够适应用户经常变化的需求。常变化的需求。n缺点缺点1)1)目前主要在小规模项目上目前主要在小规模项目上应用并取得成功,但是否应用并取得成功,但是否适用于中等规模或大规模适用于中等规模或大规模软件产品,需慎重考虑;软件产品,需慎重考虑;2)2)由于这个模型较新产品交由于这个模型较新产品交付后维护成本是否降低,付后维护成本是否降低,不能确定;不能确定;3)3)对编码人员的经验要求高对编码人员的经验要求高 3.3.1极限模型第30页/共65页312023/3/223.3.2Rational统一过程统一过程(RUP)第31页/共65页322023/3/22n n 用例驱动
21、用例驱动 Concise,simple,and understandable n n 以体系结构为中心以体系结构为中心 Effective basis for large-scale reusen n 增量和迭代开发增量和迭代开发 基于风险前驱的原则,渐进地展开分析、设计及其相关基于风险前驱的原则,渐进地展开分析、设计及其相关活动,每个迭代都会提供一次验证和调整模型机会,推动活动,每个迭代都会提供一次验证和调整模型机会,推动软件质量的提升。软件质量的提升。3.3.2Rational统一过程统一过程(RUP)第32页/共65页332023/3/22V模型接收测试系统测试项目规化需求分析总体设计详
22、细设计编码和调试集成测试单元测试3.3.3V模型模型第33页/共65页342023/3/22V模型模型适合的项目项目的需求在项目开始前很明确解决方案在项目开始前也很明确对系统的性能安全很严格的项目类似的项目如:航天飞机等公司的财务系统3.3.3V模型模型第34页/共65页352023/3/22微软产品周期模型微软产品周期模型产品规划阶段产品规划阶段测试阶段测试阶段产品开发阶段产品开发阶段发布阶段发布阶段M1MnCCZBBRTM/WRC1RCnAlphaGolden MastersBetaProduct VisionFunction SpecQFEs3.3.4微软产品开发周期模型微软产品开发周期
23、模型第35页/共65页362023/3/22目目 录录CMM和ISO90001传统软件开发生命周期模型2扩展软件开发生命周期模型3质量管理4案例分析5本章小结6第36页/共65页372023/3/223.4.1质量概述质量的概念质量的多种定义 符合目的或者用途(Joseph Juran)用户的感觉就是质量(A V Feigenbaum)符合顾客在其合理价格下对产品的要求(Sud Ingle)产品或者服务满足明确和隐含需要能力的性能特性的总体(BS4778)第37页/共65页382023/3/223.4.1质量概述质量定义q质量是满足要求的程度,包括符合规定的要求和满足顾客的需求.第38页/共6
24、5页392023/3/223.4.1质量概述软件质量软件质量是软件满足明确说明或者隐含的需求的程度明确说明:查询功能隐含说明:查询速度第39页/共65页402023/3/223.4.1质量概述软件质量框架模型第40页/共65页412023/3/223.4.1质量概述McCall质量模型第41页/共65页422023/3/223.4.1质量概述主观质量模型-ICEDT模型直观性产品的使用是否合乎人们的通常想法?一致性产品的运行是否有一贯性?效率 产品是否可以让用户迅速和经济地完成其任务?耐久性产品是否稳定和可靠?体贴产品是否充分考虑了用户的需求?第42页/共65页432023/3/223.4.1
25、质量概述质量的重要性q质量管理是项目管理的最高统一(三大目标的统一)质量进度费用第43页/共65页442023/3/223.4.1质量概述低劣软件质量的关联关系低劣软件质量高额的维护费用缺乏质量重视对性能改善的冲动希望软件快些、省些、好些市场被竞争对手侵占软件生产率的低下减少新开发项目资源第44页/共65页452023/3/223.4.1质量概述质量管理理论的发展过程工匠自控质量检查19201940质量控制TQM质量保证19601970第45页/共65页462023/3/223.4.1质量概述软件质量管理的发展过程软件质量管理的发展过程发展时期程序设计程序系统年代 成品开发组织方式开发技术特点
26、开发工具质量管理特征软件工程至50年代末至70年代初至今程序软件软件产品个体项目设计组、软件作坊软件机构(软件工厂)靠开发者个人技巧机器代码、汇编语言个人设计、个人使用、手工技巧、无维护观念、无系统化方法程序设计理论深入、模块化、自顶向下,逐步求精,不重视维护问题高级语言、操作系统、数据管理系统靠少数人协调把关系统化、规范化、全员化逐步产生与各种方法相应的工具、开发环境结构化设计理论和方法面向对象方法、快速原型技术。第46页/共65页472023/3/223.4.2质量管理过程质量管理的对象过程的质量产品的质量第47页/共65页482023/3/223.4.2质量管理过程软件质量管理过程软件项
27、目的质量计划软件质量保证软件质量控制第48页/共65页492023/3/223.4.2质量管理过程质量计划确定项目应达到的质量标准决定如何满足质量标准的计划安排和方法第49页/共65页502023/3/223.4.2质量管理过程质量保证(QA)通过评价项目整体绩效,建立对质量要求的信任提供项目和产品可视化的管理报告 例如:总体设计规格质量审计Is it done right?这个任务本身并不能提高产品的质量一般由质量保证部门人员实施第50页/共65页512023/3/22质量保证的要点对项目进行评价推测能否达到质量指标建立对项目的信心3.4.2质量管理过程第51页/共65页522023/3/2
28、2质量保证的重要输出文件 SOA(质量保证文件)3.4.2质量管理过程第52页/共65页532023/3/22质量控制(QC)确定项目结果与质量标准是否相符,同时,确定消除不符的原因和方法控制产品的质量,及时纠正缺陷 例如:评审、单元测试Is it right done?这个任务本身提高产品的质量一般由开发人员实施3.4.2质量管理过程第53页/共65页542023/3/22质量控制的要点检查工作结果按照标准跟踪检查确定措施消灭质量问题3.4.2质量管理过程第54页/共65页552023/3/22软件项目质量控制的主要活动技术评审代码走查代码评审单元测试集成测试压力测试系统测试接收测试缺陷追踪
29、3.4.2质量管理过程第55页/共65页562023/3/22质量保证与质量控制P1P2P3ProductQAQCQA3.4.2质量管理过程第56页/共65页572023/3/223.4.3质量成本质量成本(CoQ)质量成本是由于产品的第一次工作不正常而衍生的附加花费,包括两部分预防成本缺陷成本第57页/共65页582023/3/22质量测量方法-质检/过失比质检/过失比-有用的质量测量方法质检/过失比=预防成本/缺陷成本质检/过失比2:应该努力达到的程度3.4.3质量成本第58页/共65页592023/3/223.4.3质量计划质量计划要求项目应达到的质量目标和所有特性的要求确定项目中的质量
30、活动和质量控制程序项目不同阶段,职责,权限,交流方式以及资源分配确定项目采用的控制手段,合适的验证手段和方法确定和准备质量记录第59页/共65页602023/3/223.4.3质量计划质量计划的质量目标可用度初期故障率偶然故障率平均失效期时间平均失效间隔时间缺陷密度平均失效恢复时间第60页/共65页612023/3/22质量计划模板参照3.4.3质量计划第61页/共65页622023/3/22软件质量改善的要求软件质量活动必须经过规划软件质量活动规划必须明文规定质量活动必须尽早开始质量小组必须独立存在应该经过训练必须有适当的经费3.4.3质量计划第62页/共65页632023/3/22n HR
31、MSHRMS系统系统即人力资源管理系统,是为某跨国企业的信息化部门而开即人力资源管理系统,是为某跨国企业的信息化部门而开发的。发的。n HRMSHRMS系统生存期模型选择过程系统生存期模型选择过程针对本项目的开发特点,参考企业的生存期模型说明和软针对本项目的开发特点,参考企业的生存期模型说明和软件过程体系,决定采用迭代增量式模型。件过程体系,决定采用迭代增量式模型。3.5 案例分析(HRMS系统系统)第63页/共65页642023/3/22H HR RM MS S项项目目生生存存期期模模型型 3.5 案例分析(HRMS系统系统)第64页/共65页652023/3/22感谢您的观看!第65页/共65页