您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 第3章软件开发过程管理
第3章软件开发过程管理软件过程是指人们用于开发和维护软件及其相关产品的一系列活动、方法、实践和革新。软件开发过程管理是指在软件开发过程中,除了先进技术和开发方法外,还有一整套的管理技术。软件过程改进是针对软件生产过程中会对产品质量产生影响的问题而进行的,它的直接结果是软件过程能力的提高。现在常见的软件过程改进方法:ISO9000,SW-CMM和由多种能力模型演变而来的CMMI。3.1CMM和ISO90003.1.1SW-CMM和CMMISW-CMM简介为了保证软件产品的质量,1991年美国卡内基·梅隆大学软件工程研究所(CMU/SEI)将软件过程成熟度框架进化为软件能力成熟度模型(CapabilityMaturityModelForSoftware,简称SW-CMM),并发布了最早的SW-CMM1.0版。SW-CMM为软件企业的过程能力提供了一个阶梯式的进化框架,阶梯共有五级。3.1.1SW-CMM和CMMI1初始级2可重复级3已定义级4已管理级5优化级无序、混乱的软件过程。依赖个别人的努力和机遇。建立基本的项目管理过程。相似项目,重复以往成果。文档化、标准化和标准的软件软件过程。软件过程和产品质量有详细的度量标准。持续的对过程进行改进。图CMM分级标准3.1.1SW-CMM和CMMIKPA及KP除第一级外,SW-CMM的每一级都是按完全相同的结构组成的。每一级包含了实现这一级目标的若干关键过程域(KPA),每个KPA进一步包含若干关键实施活动(KP),无论哪个KPA,它们的实施活动都统一按六个公共属性进行组织,即每一个KPA都包含六类KP:1.目标2.实施保证3.实施能力4.执行活动5.度量分析6.实施验证3.1.1SW-CMM和CMMICMMI简介由于不同领域能力成熟度模型存在不同的过程改进,重复的培训、评估和改进活动以及活动不协调等一些问题。于是由美国国防部出面,美国卡内基·梅隆大学软件工程研究所(CMU/SEI)于2001年12月发布的CMMI1.1版本包括四个领域:软件工程(SW)、系统工程(SE)、集成的产品和过程开发(IPPD)、采购(SS)。3.1.1SW-CMM和CMMICMMI有两种不同的实施方法连续式--主要是衡量一个企业的项目能力阶段式--主要是衡量一个企业的成熟度CMMI的五个台阶完成级管理级定义级量化管理级优化级每一个台阶都是上面一阶台阶的基石。要上高层台阶必须首先踏上较低一层台阶。3.1.2ISO9000质量标准ISO9000所谓“ISO9000”不是指一般意义上的一个质量保证标准,而是一族系列标准的统称。作用─强化品质管理,提高企业效益;增强客户信心,扩大市场份额;─获得了国际贸易“通行证”,消除了国际贸易壁垒;─节省了第二方审核的精力和费用;─在产品品质竞争中永远立于不败之地;─有效地避免产品责任;─有利于国际间的经济合作和技术交流。3.1.3三者之间的比较选择SW-CMM还是CMMI的考虑─实施企业的业务特点。─实施企业对过程改进的熟悉程度。─实施企业对过程改进项目的预算。─实施企业是否可以使用阶段式的演进路线。─实施CMM与CMMI可以平滑的转换。ISO9001与CMM的关系─ISO9001和CMM既有区别又相互联系,两者不可简单地互相替代。─取得ISO9001认证并不意味着完全满足CMM某个等级的要求。─取得CMM第2级(或第3级)不能笼统地认为可以满足ISO9001的要求。软件生命周期软件从需求确定、设计、开发、测试直至投入使用,并在使用中不断地修改、增补和完善,直至被新的系统所替代而停止该软件的使用的全过程。可划分为以下子阶段1.可行性研究2.需求分析和定义3.总体设计4.详细设计5.编码(实现)6.软件测试、运行/维护据此相继产生了瀑布模型、螺旋模型、进化模型、原型模型、增量模型等。本节分别对这几种传统的软件开发生命周期模型予以介绍。3.2传统软件开发生命周期模型3.2.1瀑布模型系统需求软件需求分析设计编码测试运行瀑布模型总结文档驱动的模型阶段间具有顺序性和依赖性项目开发周期较长实际项目很少按照该模型给出的顺序进行3.2.2原型模型3.2.2原型模型Prototypingmodel特点在需求定义之前,需要快速构建一个系统根据构建系统的优缺点,用户给开发人员提出反馈意见根据反馈意见修改软件需求规格,以便系统可以更正确地反映用户的需求减少各种假设以及风险3.2.3增量模型设计编码测试分析设计编码测试分析设计编码测试分析设计编码测试分析增量1增量2增量3增量4第一个增量发布第二个增量发布第三个增量发布第四个增量发布开发进度3.2.3增量模型增量模型总结融合了瀑布模型和原型的迭代特征。每一个增量均发布一个可操作产品。3.2.4进化模型建造/修改原型听取用户意见用户测试运行原型这个模型可看作是重复执行的多个瀑布模型。3.2.5螺旋模型原型1原型2原型3可运行原型需求计划生存期计划开发计划集成与测试软件需求需求确认设计确认与验证软件产品设计详细设计风险分析风险分析风险分析验收测试实现集成与测试单元测试编码开发、验证下一产品实施工程提交线评审累计成本风险分析评价方案,识别风险、消除风险制订计划决定目标方案和限制客户评估3.2.5螺旋模型螺旋模型总结基于风险驱动的开发模型,使用原型法或其它方法来尽量降低风险。适用于需求不明确的大规模软件项目3.3扩展模型3.3.1极限模型极限模型简介2001年,为了避免许多公司的软件团队陷入不断增长的过程泥潭,一批业界专家一起概括出了一些敏捷开发过程的方法:SCRUM,Crystal,特征驱动软件开发(FeatureDrivenDevelopment,简称FDD),自适应软件开发(AdaptiveSoftwareDevelopment,简称ASD),以及最重要的极限编程(eXtremeProgramming,简称XP)。3.3.1极限模型用户故事体系结构发布计划交互接受测试小型发布极限编程将开发阶段的4个活动(分析、设计、编码和测试)混合在一起,在全过程中采用迭代增量开发、反馈修正和反复测试。3.3.1极限模型XP开发模型核心思想:交流(Communication)简单(Simplicity)反馈(Feedback)进取(Aggressiveness)3.3.1极限模型优点1)采用简单计划策略,不需要长期计划和复杂模型,开发周期短;2)在全过程采用迭代增量开发、反馈修正和反复测试的方法,能够适应用户经常变化的需求。缺点1)目前主要在小规模项目上应用并取得成功,但是否适用于中等规模或大规模软件产品,需慎重考虑;2)由于这个模型较新产品交付后维护成本是否降低,不能确定;3)对编码人员的经验要求高参考资料•从瀑布模型、极限编程到敏捷开发•敏捷开发过程中如何开发高质量的软件3.3.2Rational统一过程(RUP)3.3.2Rational统一过程(RUP)用例驱动─Concise,simple,andunderstandable以体系结构为中心─Effectivebasisforlarge-scalereuse增量和迭代开发─基于风险前驱的原则,渐进地展开分析、设计及其相关活动,每个迭代都会提供一次验证和调整模型机会,推动软件质量的提升。RUP•1参考资料•2RUP方法详解3.3.3微软产品开发周期模型微软产品周期模型产品规划阶段测试阶段产品开发阶段发布阶段M1…MnCCZBBRTM/WRC1…RCnAlphaGoldenMastersBetaProductVisionFunctionSpecQFEs参考资料•微软公司软件开发模式简介•微软软件开发过程模型3.5案例分析HRMS系统─即人力资源管理系统,是为某跨国企业的ISS部门而开发的。HRMS系统生存期模型选择过程─针对本项目的开发特点,参考企业的生存期模型说明和软件过程体系,决定采用迭代增量式模型。3.5案例分析[4]人事管理模块(Employment)增量1[4-1]Alpha测试[5]企业培训模块(Training)增量2[5-1]Alpha测试[6]职员福利模块(Benefit)增量3[7]员工招聘模块(Recruitment)增量4[14]Beta测试[16]后期维护直至合同期满[8]需求变更[9]动态组织结构增量5[10]动态审批策略增量6[5-2]增量1、2集成Release1.0项目前期工作步骤[0]-[3][1]初步需求分析[2]技术预研及系统架构[0]商业合同及项目规划[3]功能设计及模块划分注释[11]增量1、2、5、6集成测试[12]增量3、4、6集成测试[13]Alpha测试[15]提交HRMS-Release2.0HRMS项目生存期模型
本文标题:第3章软件开发过程管理
链接地址:https://www.777doc.com/doc-3232271 .html