您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 重庆大学,软件工程软件过程与CMM-改.
2019/12/151软件过程与CMM重庆大学计算机学院曾一Tel:023-65102621(o)Email:zyjckxx@cqu.edu.cn2019/12/152讨论主题1.软件过程、作用与意义2.软件能力成熟度模型CMM3.我国CMM认证情况2019/12/1531.软件过程、作用与意义1.1软件工程的发展导致软件过程的产生软件工程的目标就是提高软件的质量和软件生产率并降低软件成本人们的思维方式开始发生转变,企图通过以下途径达到目的(1)方法的研究,例如传统的方法:SADT、HIPO、JACKSON、WARNIER、SP、IDEF;面向对象的方法:CAOD/YOURDON、OMT、BOOCH、基于UML的方法等;形式化方法2019/12/1541.1软件工程的发展导致软件过程的产生软件开发模型瀑布(waterfall)、螺旋(spiral)、原型(prototype)、RAD(rapidappilicationdevelopment)、喷泉(fountain)、智能(intelligence)等。2019/12/155(2)语言/工具,如用于应用开发的语言工具:FORTRAN、PASCAL、ALGOL、COBOL、C、C++、JAVA、VB、VC++、DELPHI、POWERBUILDER等;描述工具:FC、NS、PAD、PDL、ER/EER、HIPO、DFD、系统流程图、程序图、IDEF、USECASE、状态图、时序图、交互图、PETRI、对象/类图、UML等;分析/设计工具:PSL/PSA(问题描述语言与分析器)、RSL/REVS(需求描述语言与需求工程有效性系统)、BP-WIN、ER-WIN、S-DESIGNOR、POWERDESIGNOR、AIDES(自动交互式设计与评价系统)、SDL/PAD(软件设计语言与问题分析图)等;1.1软件工程的发展导致软件过程的产生2019/12/1561.1软件工程的发展导致软件过程的产生测试工具:FACES(FORTRAN自动代码评价系统)、SADAT(静态与动态分析和测试)、AUTORETEST、PARANORMA等;维护和项目管理工具:MAKE、SCCS、CVS、CCCHARVEST、TIMELINE、PROJECT2000等。2019/12/157(3)集成环境(SDE/SEE/CASE)的研究UNIX环境APSE(AdaProgrammingSupportEnvironment)JB2(青鸟Ⅱ面向对象开发环境)SEWB3(SoftwareEngineeringWorkBench3)OracleDesigner(CASEAPP.Development/RAD)RationalROSE(基于UML的面向对象集成开发环境)等等1.1软件工程的发展导致软件过程的产生2019/12/158软件质量指标:可靠性、可理解性、可维护性、效率等软件质量模型:Boehm的软件度量模型——层次模型(总能力)-((1)可使用性;可维护性)-((2)可移植性、可靠性、效率、环境工程;可测试性、可理解性、可修改性)-((3)设备独立性、完整性、准确性、一致性、设备效率、可存取性、通信性、结构性、准确性、自描述性、简洁性、易读性、可扩充性)McCall质量模型——三层模型(总能力)-((1)质量方面:产品操作(运行);产品修改(修改);产品适应(转移))-((2)质量特性/要素:可用性、正确性、可靠性、效率、完备性;可维护性、适应性、可测试性;可移植性、可重用性、互操作性)-((3)质量子特性:可训练性,……,数据公用性等22项)1.2软件质量的研究促进软件过程的产生2019/12/159ISO/IEC9126-1991两级质量模型(特性:功能、可靠性、易用性、效率、可维护性、可移植性等6项)——(子特性:适合性,……,易替换性等21项)质量管理的必要性(1)质量形成于生产全过程W.E.Deming认为:“产品质量涉及到生产的所有环节,只有各个生产层面都不忽视质量,最后才能得到高质量的产品。”1.2软件质量的研究促进软件过程的产生2019/12/1510(2)必须使影响产品质量的全部因素在生产全过程中始终处于受控状态A.V.Feigenbaum认为:“TQC(TotalQualityControl)在制造及传递某种合乎特定质量标准的产品时,必须配合适当的管理技术及作业程序,这些程序所组成的结构称之为质量体系。”(3)应使企业具有持续提供符合要求产品的能力这就是质量保证的观念(QualityAssurance):建立质量体系(一种质量管理制度)就能够对所有影响质量的因素,包括技术因素、管理和人员等诸方面都采取有效方法进行控制,因而具有减少、消除和预防质量缺陷的机制。1.2软件质量的研究促进软件过程的产生2019/12/1511(4)质量管理必须坚持进行质量改进J.M.Juran认为:“质量改进是长期的,建议采用专案小组的形式,不断提高标准并及时解决质量改进的问题。(5)质量管理应该体现PDCA循环Plan-Do-Check-Action(计划-实施-检测-措施/纠正)(6)质量管理的核心是预防而不是补救A.V.Feigenbaum和P.B.Crosby都主张:提高产品质量的上策是预防而不是检验。预防是主动的,是在质量事故之前的,而检验和补救毕竟是被动的、事后的,因此代价也是昂贵的。1.2软件质量的研究促进软件过程的产生2019/12/1512(1)什么是过程?过程是为了达到给定目标所实施的一系列步骤。简单地说,就是做什么。过程把人、工具和规程集成在一起,就是人们使用相应的规程、方法、工具和设备将原始输入转化成面向客户的产品(输出)所做的事情。如右图所示。过程规程、方法人员、组织工具、设备1.3软件过程的概念2019/12/1513(2)过程说明不是过程只有当活动“执行了”或方法“使用了”,才能准确地说是一个过程。没有使用标准和规程,则仅仅只有框架。(3)什么是软件过程?软件过程是指软件开发人员开发和维护软件及相关产品(如项目计划、设计文档、代码、测试用例、用户手册等)的一套行为、方法、实践及变换过程根据IEEE对软件过程概念的解释,软件过程涵盖了软件采购、软件开发、软件维护、软件运行、软件获取、软件管理、软件支持等7大类的软件活动ISO12207分别将这些活动归结为基本过程、支持过程和组织过程等3大类(如下图所示)1.3软件过程的概念2019/12/1514基本过程获取过程供应过程开发过程运行过程维护过程支持过程文档编制过程配置管理过程质量保证过程验证过程确认过程联合评审过程审核过程问题解决过程组织过程管理过程基础设施过程改进过程培训过程软件过程2019/12/1515(4)软件过程的基本含义个体含义:即指软件或系统在生命周期中的某类活动的集合。整体含义:即指软件或系统在所有上述含义下的软件过程的总体。工程含义:即指解决软件过程的工程。(5)软件过程的基本成分活动Activity、实施者Agent、角色Role、产品Product、资源Resoure、约束constraint1.3软件过程的概念2019/12/1516(6)软件过程工程为建造软件过程所进行的一系列工程化活动。注解:1.裁剪2.开发3.进化4.例化5.启动6.相互作用7.计划8.运作9.监控10.分析11.改进1.3软件过程的概念2019/12/1517(7)软件过程工程的基本活动过程定义过程例化过程模拟过程运作1.3软件过程的概念2019/12/1518(8)现代软件工程现代软件工程=软件项目工程+软件过程工程软件过程是软件工程历史上的又一次认识上的飞跃,它标志着软件界已经认识到软件过程因素对软件开发的重要影响,它使人们把注意力从抽象的软件生存周期模型的研究,转向那些对软件项目的成功起着关键作用的过程细节的研究。这标志着软件过程的时代的到来。1.3软件过程的概念2019/12/15192.软件能力成熟度模型CMM2.1软件能力成熟度模型CMM(TheCapabilityMaturityModel)的发展1979年,PilipCrosby《QualityIsFree》首先提出质量原理的成熟度框架1986年之前,IBM的WattsHumphrey和RonRadice率先将这种成熟度框架引入软件过程1986年,WattsHumphrey将这种成熟度框架带到CMU的SEI,并细化了成熟度级别的概念,为软件产业界的现实应用奠定了基础1987年,SEI发表了他们的CMM研究报告1991年,SEI推出了CMM1.0版;1993年,SEI推出了CMM1.1版;计划1999年完成CMM2.0版,但由于CMMI的紧迫性而推迟2019/12/1520在不成熟软件组织中,软件过程一般由实践者及其管理者在项目过程中临时拼凑而成。即使已规定了软件过程,也不能严格地遵守和贯彻它。不成熟的软件组织是反应式的,通常经理们集中精力于解决即时危机(称为消防)。由于制定进度和预算不是基于现实的估计,因而超出进度和预算已成惯例。当硬性规定时限时,为满足进度要求,常在产品功能和质量上作出让步。2.2不成熟软件组织与成熟软件组织的比较在不成熟组织中,不存在判断产品质量或者解决产品或过程问题的客观基础。因此,产品质量难以预测。当项目进度退后时,常缩短或去消像评审和测试这些旨在提高质量的活动。2019/12/15212.2不成熟软件组织与成熟软件组织的比较一个成熟软件组织具有全组织范围的管理软件开发和维护过程的能力。软件过程被正确无误地通知到现有职员和新雇员,工作活动均按照己规划的过程进行,而且和实际进行工作的方式相一致。需要时就更新过程,并且通过可控的先导性试验和(或)费效分析使其得到改进。所有项目和在整个组织中,所有的岗位及其职责都是清楚的。在成熟组织中,经理监控产品的质量和顾客的满意程度。有客观的、定量的基础,进度和预算是基于以前的性能数据,因而是现实的;通常都能达到产品的成本、进度、功能和质量的预期结果。一般讲,成熟组织一致地遵循一个有纪律的过程,而且存在支持该过程的必要基础设施。2019/12/15222.3与CMM有关基本概念过程、软件过程软件过程管理软件产品质量主要取决于开发和维护该产品所使用的软件过程质量。软件过程管理就是使软件过程有效。软件过程能力描述遵循某软件过程可能达到的预期结果范围。软件过程效能表示遵循一个过程所达到的实际结果的一种度量。软件过程成熟度针对具体的软件过程进行明确定义、管理、测量、控制以及有效的程度。成熟度表明软件工程能力增长的潜力,表明机构软件过程的丰富性及其应用于项目的一致性。2019/12/1523软件过程评估(SPA,SoftwareProcessAssessment)一组经过训练和培训的软件专业人员,确定出一个企业软件过程的状况,找出软件企业所面对的与软件过程有关的、最急需解决的所有问题,以便取得企业领导层对软件过程改进的支持——企业内部。软件过程改进(SPI,SoftwareProcessImprovement)帮助软件企业对其软件过程向更好的方向改变,进行计划、制定以及实施软件能力评价(SCE,SoftwareCapabilityEvaluation)一组经过训练和培训的软件专业人员,鉴别出软件承包者的能力资格;或者是,检查、监察正用于软件制作的软件过程的状况——企业外部。2.4CMM的主要用途2019/12/15242.5CMM的5个级别2019/12/15251)初始级无过程意义。软件过程是无序的、随机的、缺乏总计划,无预见性,大多数活动是应付危机,经常超期超支,成功取决于个人。2)可重复级具备基本的项目管理。建立了基本的项目管理过程来跟踪费用、调度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功。2.6CMM的5个级别的特征2019/12/15262.6CMM的5个级别
本文标题:重庆大学,软件工程软件过程与CMM-改.
链接地址:https://www.777doc.com/doc-1964382 .html