软件工程CMM.ppt

上传人:夺命阿水 文档编号:235695 上传时间:2023-03-10 格式:PPT 页数:91 大小:397.50KB
返回 下载 相关 举报
软件工程CMM.ppt_第1页
第1页 / 共91页
软件工程CMM.ppt_第2页
第2页 / 共91页
软件工程CMM.ppt_第3页
第3页 / 共91页
软件工程CMM.ppt_第4页
第4页 / 共91页
软件工程CMM.ppt_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《软件工程CMM.ppt》由会员分享,可在线阅读,更多相关《软件工程CMM.ppt(91页珍藏版)》请在课桌文档上搜索。

1、第七章 软件开发工具与环境,7.1 软件工具定义:用来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件成为软件工具.分类:按软件过程活动分类支持软件开发过程的工具支持软件维护过程的工具支持软件管理过程和支持过程的工具,7.2 计算机辅助软件工程(CASE),(CASE,Computer-Aided Software Engineering)7.2.1 CASE的基本概念与发展历史1.什么是CASE CASE使人们能在计算机的辅助下进行软件开发,为软件开发的工程化、自动化进而智能化打下基础。在CASE工具辅助下进行软件开发,可提高开发效率、改善软件质量。,CASE构造积木块,CASE工具

2、,环境体系结构,硬件平台,操作系统,可移植服务,集成框架,信息工程工具工程建模和管理工具项目计划工具风险分析工具项目管理工具需求根据工具质量和管理工具文档工具系统软件工具质量保证工具数据库管理工具软件配置管理工具,分析和设计工具PRO/SIM工具界面设计和开发工具原型工具编程工具集成和测试工具静态分析工具动态分析工具测试管理工具客户/服务器测试工具再工程工具 逆向工程工具 代码重构和分析工具 联机再工程工具,2.CASE工具分类,3.集成化CASE环境(I-CASE),1990年Wasserman提出的五级集成模型平台集成:工具运行在相同的硬件/操作 系统平台上数据集成:工具使用共享数据模型来

3、操作表示集成:工具提供相同用户界面控制集成:工具激活后能控制其它工具的操作过程集成:工具在一个过程模型和“过程机”的指导下使用,I CASE 的元素,基础块,体系结构硬件平台操作系统,可移植服务,集成框架,CASE工具,工具集成层触发执行机制通信机制,集成化CASE环境的总体结构模型,用户界面层用户界面开发工具包界面协议,工具1,信息集成层信息与CASE工具的集成信息与信息的集成,共享中心库层CASE数据库访问控制功能,工具2,工具n,2.CASE中心库,在I-CASE中中心库是软件工程信息的“积聚和存储中心”;是一组实现“数据-工具”和“数据-数据”集成的机制和数据结构。CASE中心库也称为

4、“软件总线”CASE中心库也是一个存放地,结合了高级的集成CASE工具的机制。,CASE中心库存放的内容,被求解的问题关于问题域的信息系统解决方案关于被遵从的软件过程(方法学)的规则和指令项目计划、资源和历史关于组织的信息,CASE中心库提供的服务,可从任何高级的数据库管理系统期望得到的访问类型特定于CASE环境的访问类型,中心库,中心信息库,Data 记录 元素 视图 入库实体,处理 模块 处理 函数 外部实体 界面,图形 DFD 结构图 E-R图 数据模型,规则,权限,过程和管理,现存拷贝库,数据字典,命名标准 标准名 别名 属性名 编译名,中心信息库报告,中心信息库 的内容,版本,属性描

5、述,3.CASE工作台,CASE工作台分类 程序设计工作台分析和设计工作台测试工作台交叉开发工作台配置管理工作台文档工作台项目管理工作台,程序设计工作台,组成程序设计工作台的工具:(1)语言编译器(2)结构化编译器(3)连接器(4)加载器(5)交叉引用(6)按格式打印(7)静态分析器(8)动态分析器(9)交互式调试器,测试工作台(下游CASE工具),源代码,被测试的程序,测试数据,规约,预测器,测试管理器,测试预估,模拟器,文件比较器,报告生成器,动态分析器,测试结果,测试结果报告,执行报告,测试数据生成器,7.3 软件工程环境(SEE),7.3.1 软件工程环境概述软件工程环境定义:(1)一

6、组软件工具的集合(2)工具按一定方法或模型组织(3)工具支持整个生存周期各阶段或 部分阶段,1.软件工程环境分类,(1)按软件开发模型及开发方法分类支持:瀑布模型、演化模型、螺旋模型、喷泉模型等支持:结构化方法、信息模型方法、OO方法等,(2)按应用范围分类 通用型软件工程环境 专用型软件工程环境(应用型软件工程环境),(3)按开发阶段分类前端开发环境(支持系统分析、分析、设计等阶段活动)后端开发环境(支持编程、测试等阶段活动)软件维护环境逆向工程环境,2.软件工程环境的特征,(1)仓库(2)工具的集成(3)用户友好的界面(4)提取信息的能力(5)分析的能力(6)可裁剪和可扩充的能力(7)项目

7、控制和管理(8)方法学的支持,3.软件工程环境的基本功能,(1)软件开发的一致性及完整性维护(2)配置管理及版本控制(3)数据的多种表示形式及自动转换(4)信息自动检索及更新(5)项目控制和管理(6)对方法学的支持,7.3.2 集成环境,软件工程环境的层次模型,工作台应用,框架服务,平台服务,7.3.3 平台服务,SEE运行在工作台网络上,宿主系统,目标机1,目标机2,网络连接,网络连接,宿主目标开发方式:,一个软件工程环境运行其上的平台称为软件工程环境的宿主机系统。,7.3.4 框架服务,SEE参考模型,数据仓库服务,数据集成服务,任务管理服务,用户界面服务,消息服务,工具插槽,第八章 软件

8、质量管理与质量保证,8.1 软件质量概述 8.1.1 软件质量定义 ANSI标准对软件质量的定义:“软件质量是软件产品或服务的特性和特性的整体”IEEE对软件质量的定义:软件产品具备满足给定需求的特性及特征的总体的能力软件拥有所期望的各种属性组合的程度用户认为软件满足他们综合期望的程度软件组合特性可以满足用户预期需求的程度,8.1.2 软件质量的质量特性,McCall质量模型:提出软件质量特性包含的质量特性可使用性(Usability)正确性(Correctness)可靠性(Reliability)效率(Efficiency)完整性、安全性(Integrity,Security)灵活性(Fle

9、xibility)可测试性(Restability)可维护性(Maintainability)可移植性(Portability)复用性(Reuseability)互操作性(Interperability),McCall的三层质量度量模型,McCall质量度量模型框架,特性,评价准则,评价准则,评价准则,度量,度量,度量,面向管理观点的产品质量,决定产品质量的软件属性,定量化地度量软件属性,ISO建议的软件质量评价模型 标准分为三级:高层:质量需求评价准则(SQRC)中层:质量设计评价准则(SQDC)低层:质量度量评价准则(SQMC),ISO建议的软件质量评价模型,正 确 性,可 跟 踪 性,完

10、 备 性,准 确 性,容 错 性,简 洁 性,模 块 性,通 用 性,扩 充 性,可 容 性,效 率,安 全 性,可维护性,适 应 性,互 连 性,SQDC(中层),SQRC(高层),SQMC(低层),可 用 性,一 致 性,使用单位自行制定,8.1.3国际标准和国家标准规定的质量特性ISO/IEC 9126-1991 Information technology software product evaluation quality characteristics and guidelines for their use我国1996年将其等同采用:GB/T16260-1996 软件产品评价质

11、量特性及其使用指南,8.1.4 产品质量与过程质量,产品质量,开发技术,成本、时间、进度,过程质量,人员素质,影响产品质量的4个方面,8.2 软件质量保证,质量保证也是一个过程,已列入国际标准“ISO/IEC 12207信息技术-软件生存期过程”中。,8.2.1 质量保证的主要功能,质量方针的制定和展开质量保证方针的质量保证标准的制定质量保证体系的建立和管理各阶段的质量评审,8.2.2 质量保证的实施 软件质量的度量过程度量产品度量 软件质量评价:软件复杂性度量静态度量软件产品规模软件产品程序控制结构的度量数据结构的度量开发度量,Halstead的软件复杂度度量方法,根据程序中可执行代码行的操

12、作符和操作数的数量来计算程序的复杂性n1:程序中出现的不同操作符数目n2:程序中出现的不同操作数数目N1:程序中操作符出现的总数N2:程序中操作数出现的总数,Halstead使用原始度量定义的算式,(1)程序长度 N=n1log2 n1+n2log2 n2(2)程序容量 V=Nlog2(n1+n2)(3)语言级别 L=(2n2)/(n1n2)(4)程序工作量 E=V/L(5)程序编写时间 T=E/S S:Stroud数(6)程序潜在错误的数量 B=Nlog2(n1+n2)/3000,Halstead认为程序中可能存在的错误与程序容量成正比,例:一程序对75个数据库项共访问1300 次,对150

13、个操作符使用1200次,潜在错 误数为:B=(1300+1200)log2(75+150)/3000=6.5(即67个错误),Halstead复杂性度量方法是一种较科学的方法,但存在不足和问题:(1)未忽略模块特性(2)忽略了非执行语句(3)代码和数据的二义性(4)未考虑数据类型的差异(5)未注意调用深度(6)未区别不同类型的运算符,McCabe复杂性度量(环路度量),McCabe认为程序复杂性很大程度取决于程序控制流的复杂性,以程序图的环路数作为该程序复杂性的度量值 对于具有强连通图的环路数:V(G)=e-n+2 e:边数 n:结点数,McCabe复杂性度量示例,a,c,b,e,f,d,1,

14、2,3,7,6,8,4,5,9,R1,R2,R3,R4,R5,V(G)=9-6+2=5,V(G)其它计算方法:(1)计算图中所有有界区域和无界区域数R 图中共有5个区域(R1到R5),所以 V(G)=5(2)用判定语句总数+1(判定个数=分支数-1)图中可按4个判定计算,V(G)=4+1=5,8.2.3 技术评审,软件评审是一个“过滤器”,用于“净化”软件工程各项活动,质量控制技术,质量控制活动分类,开发方法学,配置管理,验证技术,评 审,正确性验证,性能调试,组件测试,集成测试,系统测试,原子事务,模块冗余性,检 错,质量控制,避免错误,容 错,调 试,测 试,8.3 软件可靠性,硬件系统故

15、障率,0,t,Z(t),软件系统故障率,0,t,Z(t),软件可靠性的主要指标,借用硬件可靠性的定量度量方法来度量软件的可靠性:MTBF:平均故障间隔时间 MTTF:平均故障时间,t1,t2,.,tn:失效时间,MTTF,n,i=1,n,1,t,i,8.4 软件容错技术,提高软件质量和可靠性的技术:避开错误技术容错技术:对无法避开的差错,使其 影响减至最小的技术。,8.4.1 什么是容错软件?,定义1:规定功能的软件,在一定程度上对自 身错误的作用具有屏蔽能力的软件;定义2:规定功能的软件,在一定程度上能从 错误状态自动恢复到正常状态的软件;定义3:规定功能的软件,在因错误而发生错 误时,仍能

16、在一定程度上完成预期的 功能的软件;,8.4.2 容错的一般方法,实现容错计算的方法:错误检测算法错误恢复算法 容错资源软件冗余备份实现容错计算的主要手段是冗余,主体:常规软件所需资源,附加体:容错资源,容错软件,8.4.3 容错的一般方法,冗余技术分类:1.结构冗余2.信息冗余3.时间冗余,8.4.3 容错的一般方法,冗余技术分类:1.结构冗余(1)静态冗余:3模冗余、多模冗余,U,M1,M2,M3,V,u2,u1,u3,I,3模(TMR)表决系统的结构,表决器,U=(u1u2)(u2u3)=(u1u3),1.结构冗余,(2)动态冗余:多重模块待机储备,相继运行,M1,M2,M3,主模块,备

17、用,I,待机储备系统结构,开关,Mn,.,备用,备用,1.结构冗余,(3)混合冗余 H(N,K),M1,M2,Mk,I,H(N,K)系统结构,开关,Mn,.,Mk+1,.,V,转换开关,2.信息冗余 以检测或纠正信息在运算或传输中的错误为目的而外加的一部分信息。误差校正码(冗余码):奇偶码、定重码、循环码、,3.时间冗余 以重复执行指令(指令复执)或程序(程序复算)来消除瞬时错误带来的影响。常用的程序复算方法:程序滚回技术,出错,t0,t1,t2,t3,ti-1,ti,ti+1,i-1,i,程序滚回示意图,1,2,3,时刻 t0,t1,t2,.对应于程序中预先设置好的恢复点,软件的容错系统结构

18、,1.多版本结构 把同一功能的不同版本的程序(多为子系统或模块级)并行联结到系统中,构成冗余并行模型.,版本1,版本 2,版本 3,.,表决,同一功能,多版本程序示意图,2.恢复块结构,要求做容错的块(基本块),提供:备份块(独立设计的相应冗余备份)附加的错误检验 恢复措施,恢复块,Ensure 接受测试 By 基本块 Else By备份块1 Else By备份块n Else 错误,软件质量保证体系的研究和主要技术,目前国际上软件过程质量管理最主要的三个典型代表:CMM/PSP/TSPISO9000系列ISO/IEC15504,过程与软件质量管理 随着软件技术和软件应用的发展,以过程为中心的软

19、件开发、生产与质量管理是现代软件产业的时代特征。质量形成于过程,高可信、高质量的软件必须依赖对软件过程的管理。,过程与软件质量管理 ISO9000 2000版将过程定义为“一组将输入转化为输出的相互关联或相互作用的活动”软件过程分为:软件工程过程:软件开发和生产的过程,如:需求分析、设计、编码、测试等过程;软件管理过程:对软件开发和生产的过程进 行管理的过程,如:项目策划过程、跟踪监控 过程、质量保证过程软件支持过程:对软件开发和生产的过程进 行支持的过程,如:评审过程、培训过程、质量过程。,技术改进与过程改进的关系 技术改进必须与过程改进同时并举,低技术,高技术,过程成熟,过程不成熟,低风险

20、途径,高风险途径,原始态,理想态,可能无结果途径,软件工程的五个发展方向,软件过程的管理模式,CMM:软件过程管理与改进 CMM是软件工程过程学科中的一个管理与改进软件过程的模式,也是一种衡量软件开发能力和成熟度的标准。,CMM/PSP/TSP技术流派 CMM(软件能力成熟度模型:Capability Maturity Model For Software)是由美国卡内基梅隆大学的软件工程研究所(SEI:Software Engineering Institute)受美国国防部评估软件供应商能力的要求,1986年开始研究制定,并在美国,随后在全世界推广实施的一种软件评估标准,主要用于软件开发过

21、程和软件开发能力的评估和改进。CMM标准共分五个等级,由低到高分别为:初始级、可重复级、已定义级、定量管理级和优化级。,CMM模型及其实践,在CMM模型及其实践中,企业的过程能力被作为一项关键因素予以考虑。所谓过程能力,是指把企业从事软件开发和生产的过程本身透明化、规范化和运行的强制化。这样一来,就可以把软件开发及生产过程中成功或失败的经验教训变成今后可以借鉴和吸取的营养,大大加快软件生产的成熟程度提高。,在软件开发过程中,一些关键的过程域(KPA)可以被识别出来,成为某些CMM模型方法中的衡量基准。利用过去软件工程发展的成果,侧重这些关键过程域的实施,将会有效地建立一个过程,加快软件企业成熟

22、度的提升。,CMM一共有5级,18个关键过程域(KPA),52个目标,300多个关键实践。据美国卡内基.梅隆大学SEI统计,至2001年6月底,CMM的认证情况如下表所示。,软件过程成熟度的五个等级,0 1 2 3 4 5,软件过程能力,成熟度等级,优化级(5),管理级(4),不断改进的过程,定义级(3),重复级(2),初始级(1),可预测的过程,标准的一致的过程,有纪律的过程,5个成熟度等级在开发过程中变化的显著特点,五级成熟度的特性,等级1 初始级,CMM1,杰出的主管和优秀的队伍,项目成功,CMM1,一般的主管和队伍,项目成功难以预测,等级2 重复级,项目经验,定义准则和跟踪,新的类似项

23、目,再成功,五级成熟度的特性,等级3 定义级,CMM重复,定义软件过程,可视和可控,等级4管理级,软件过程能力,量化,改进与预测,等级5优化级,已有的技术,等级24中的改进,已有的技术,等级5中的优化,新的技术,CMM的内部结构与定义,能力成熟度模型的结构,过程能力,成熟度等级,关键过程域,包含,共同特点,被规划成,关键实践(KP),包含,指示,目标,完成,规范化,阐述,活动,描述,关键过程域(Key process area,KPA),优化级(5)过程更改管理技术改革管理缺陷预防,管理级(4)软件质量管理定量过程管理,每一个关键过程域指出了改进过程能力的主要过程,定义级(3)同行评审组间协调

24、软件产品工程集成软件管理培训大纲组织过程定义组织过程集点,重复级(2)软件配置管理软件质量保证软件子合同管理软件项目跟踪和监督软件项目策划需求管理,初始级(1),CMM成熟度等级的评估,评估步骤:1.项目关键实践(被执行活动)的性能评分,2.评定关键过程域所达到的目标,3.项目的成熟度等级评定,4.有多个项目的等级来评定组织(软件商)的成熟度等级,重复级的关键实践,需求管理:执行约定执行能力被执行活动测量和分析检查,软件项目计划:,软件项目跟踪和监督:,管理级的关键实践,组织过程定义组织标准软件过程,集成软件管理项目定义软件过程,定量分析项目定义软件过程性能,控制,数据,软件过程性能在定义的范

25、围内,定量过程管理,改进,定义过程管理,软件质量管理,软件质量管理,定量过程管理,软件产品管理,集成软件管理,管理级,定义级,实现定量目标:软件产品,定量分析:项目定义 软件过程,实践:项目定义 软件过程,建立:项目定义 软件过程,软件过程评估和软件能力评价软件过程评估:集中关注一个组织所需 改进之处及其轻重缓急;软件能力评价:集中关注识别一个特定 项目再进度要求和预算 限制内构造出高质量软 件所面临的风险。,统一软件开发过程RUP,RUP(Rational Unified Process)是Rational公司1998年发布的通用的软件开发过程框架,RUP是一种软件工程过程;统一了各种开发方

26、法;使用统一建模语言UML,RUP和CMM相辅相成;软件企业使用RUP很容易达到CMM3级的要求;RUP可以作为CMM3级所要求的机构标准软件 过程;,RUP的特点,用例驱动;架构为核心;增量迭代的开发过程;,第九章 软件工程标准化与软件文档,9.1 软件工程标准的类型9.2 软件工程标准的层次9.3 中国的软件工程标准化9.4 软件质量认证,9.1 软件工程标准的类型,过程标准 产品标准 专业标准 记号标准,9.2 软件工程标准的层次,国际标准 国家标准 行业标准 企业标准 项目规范,国家标准举例:GB-中华人民共和国国家技术监督局公布ANSI-美国国家标准协会FIPS(NBS)-美国商务部

27、国家标准局 联邦信息处理标准BS-英国国家标准DIN-德国标准协会JIS-日本工业标准,行业标准举例:IEEE-美国电气与电子工程师学会 SESS-软件标准分技术委员会ANSI/IEEE str 828-1983软件配置管理计划标准GJB-中华人民共和国国家军用标准 GJB 437-88军用软件开发规范 GJB 438-88军用软件文档编制规范DOD-STD 美国国防部标准MIL-S 美国军用标准,9.3 中国的软件工程标准化,国标分类:基础标准 开发标准 文档标准 管理标准,中国的软件工程国家标准基础标准,软件工程术语 GB/T 11457-89信息处理-数据流程图、程序流程图的文 件符号编

28、制及约定GB 1526-891(ISO 5807-85)软件工程标准分类法GB/T 15538-95信息处理-程序构造及其表示法的约定 GB 13502-92(ISO 8631)信息处理-单命中判定表规范 GB/T 15535-95(ISO 5806)信息处理系统 计算机系统配置图符号及其约定 GB/T 14085-93(ISO 8790),中国的软件工程国家标准开发标准,软件开发规范 GB 8566-88计算机软件单元测试 GB/T 15532-95软件支撑环境信息处理-按记录组处理顺序文卷的程序 流程(ISO 6593-85)软件维护指南 GB/T 14079-93,中国的软件工程国家标准

29、文档标准,软件文档管理指南计算机软件产品开发文件编制指南 GB 8567-88计算机软件需求说明编制指南 GB 9585-88(ANSI/IEEE 829)计算机软件测试文件编制指南 GB 9386-88(ANSI/IEEE 830),中国的软件工程国家标准管理标准,计算机软件配置管理计划规范 GB/T12505-90(IEEE 828)信息技术 软件产品评价-质量特征及其使用指南GB/T12260-96(ISO/IEC9126-91)计算机软件质量保证计划规范 GB 12504-90(ANSI/IEEE 829)计算机软件可靠性和可维护性管理 GB/T 14394-93质量管理和质量保证标准

30、 第三部分:在软件开发、供应和维护中的使用指南 GB/T 19000.3-94(ISO9003-3-93),第十章 软件项目管理,经理管什么?,计 划,预算,组 织,进 度,标 准,各阶段管理人员和技术人员参与情况,管理人员,人员参加程度,计划,需求分析,概要设计,编码,详细设计,单元测试,确认测试,组装测试,初级技术人员,高级技术人员,高,低,10.3 软件开发成本估算,10.3.1 成本估算方法专家估算法类推估算法算式估算法成本估算模型IBM模型SLIMCOCOMO模型,(1)IBM模型,工作量 E=5.2 L(人-月)项目持续时间 D=4.1 L(月)项目人员要求 S=0.54 E(人)

31、文档页数 DOC=49 L(页),0.91,0.31,0.6,1.01,(2)SLIM模型(Putnam模型),源代码行数 L=CkK td,1,3,4,3,K:整个生存周期的工作量(人-年)td:开发持续时间(年)Ck:技术状态常数,(3)COCOMO模型,基本COCOMO模型:组织型(组织模式)半独立型(半分离模式)嵌入型(嵌入模式)中间COCOMO模型:组织型(组织模式)半独立型(半分离模式)嵌入型(嵌入模式),10.4 进度安排,10.4.1 各阶段工作量的分配,系统整个生存期活动工作量分配,系统开发阶段活动工作量分配,概要设计,详细设计,编码,单元测试,组装,确认测试,系统定义,维护,组装,确认测试,单元测试,编码,详细设计,概要设计,需求与定义,10.4.2 制定开发进度,进度表,编码,功能 1,设计,需求,测试,编码,功能 2,设计,需求,测试,任务,周,1,2,3,4,n,.,.,1,2,3,4,n,.,文档编写评审,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号