1、1第9章 软件工程标准化及软件工程环境学习目标u软件工程标准化的概念及意义uISO 9000 系列标准及在质量认证中的实施uCMM模型的等级划分与评价标准u软件工程环境的概念、分类、构成及特性uCASE环境的组成与结构2第9章 软件工程标准化及软件工程环境 教学内容 9.1 软件工程标准化 9.2 软件质量认证 9.3 CMM模型 9.4 软件工程环境 9.5 CASE环境 本章小结 39.1 9.1 软件工程标准化软件工程标准化 9.1.1 软件工程标准化的概念 随着软件工程学科的发展,软件工作的范围由程序设计扩展到整个软件生存期。从软件概念的形成、需求分析、设计、实现、测试、安装、运行和维
2、护直到软件终止;技术管理工作的开展(如过程管理、产品管理、资源管理等);项目的确认与验证(如评审与审计、产品分析、测试等)。这些工作涉及软件生存期的各个阶段,为保证软件质量,保障项目有质、有序、有章的进行,标准的建立是必不可缺少的,大到开发语言的选择、系统设计报告,小到数据项定义(名字、属性),都会对语言的实现者和用户带来很大方便。表9-1 GB/T 15538-1995软件工程标准分类返回目录过程标准产品标准专业标准记号方法技术质量需求设计部件描述计划报告职别道德准则认证课程术语表示法语言49.1 9.1 软件工程标准化软件工程标准化9.1.2 软件工程标准化的意义 软件工程标准化对软件开发
3、的意义是多方面的:u减少开发人员间联系的差错和误解,提高软件的生产效率,缩短软件开发周期。u有利于软件管理,降低开发和运行成本。u提高软件产品的质量(可靠性、可维护性和可移植性)。返回目录59.2 9.2 软件质量认证软件质量认证 质量认证,检验整个企业的质量水平,注重软件企业的整体资治,全面考察企业的质量体系,检验它是否具有设计、开发和生产符合质量要求的软件产品的能力。1987年,国际标准化组织公布了 ISO 9000质量管理标准,软件质量认证也开始受到软件工业的广泛关注。9.2.1 ISO 9000系列标准 ISO 9000系列标准源于欧洲经济共同体,但很快就在美国、日本及世界各国得到广泛
4、采用和实施。ISO 9000系列标准包括:返回目录69.2 9.2 软件质量认证软件质量认证(1)ISO 9000质量管理与质量保证标准 ISO 9000是选择和使用的导则。标准将供需双方称为卖方和买方,制定了对卖方的质量要求和质量管理办法,如卖方认真按照标准要求组织生产,经过权威机构审核并取得认证,即通过ISO 9000质量认证。买方凭认证情况在市场上选购产品,就不必担心质量检验问题。(2)ISO 9001质量体系 ISO 9001包括设计、开发、生产、安装和服务等活动的质量保障模式,于1994年由国际标准化组织颁布,该标准规定了质量体系的20个方面的质量要求,覆盖了全部设计和开发活动。如果
5、软件开发企业能够达到这些要求,表明它具有质量保证能力,达到ISO 9001认证。返回目录79.2 9.2 软件质量认证软件质量认证(3)ISO 9002质量体系 ISO 9002制定了生产和安装中的质量保证模式,与 9001的差别在于,其对象的工序范围不同,9001范围最广,从设计到售后服务,9002是9001的子集。(4)ISO 9003质量体系 ISO 9003是最终检验和测试中的质量保证模式,是9002的子集。(5)ISO 9004质量管理与质量体系要素 ISO 9004是质量管理与质量体系要素的导则。参见国际标准、国家标准或行业标准,制定适用本单位软件开发的企业标准,编写软件工程标准化
6、手册,是软件工程标准化管理的重要内容。返回目录89.2 9.2 软件质量认证软件质量认证9.2.2 软件质量认证 质量认证的范围比质量保证更广泛,从仅对产品到产品与服务全过程,制定与实施ISO 9000系列标准的主导思想即是软件质量认证的体现。(1)为保证产品质量,ISO 9000要求在生产过程中,对影响产品质量的所有因素要全面控制与管理,强调产品质量并非在产品检验中得到,而是形成于生产过程。(2)质量管理必须坚持进行质量改进,贯彻执行ISO 9000标准,就是企业加强质量管理,提高产品质量的过程。即使取得质量认证也不能放松质量管理,认证的有效期一般为半年,取得认证的企业需每年接受1-2次的定
7、期检查,目的在于促进企业坚持进行质量改进。返回目录99.2 9.2 软件质量认证软件质量认证9.2.2 软件质量认证(3)企业是否具有持续提供符合要求的产品的能力,质量认证是鉴定的有效方法。生产企业为达到标准提出的要求,由独立于供方和需方的第三方权威机构审查证实后出具合格证明,如果认证工作是公正、可靠的,则公证的结果应当可以信赖。正确实施产品质量认证认证制度,对促进产品质量提高,指导消费者选购产品,提高质量合格产品企业的信誉等均具有积极作用。返回目录109.2 9.2 软件质量认证软件质量认证9.2.3 ISO 9000-3的要点(1)ISO 9000-3标准仅适用于依照合同进行的单独的订货开
8、发软件,不适用于面向多数用户销售的程序软件包。在软件开发项目的合同双方,ISO 9000-3是需方彻底要求供方进行质量保证活动的标准;(2)在包括合同在内的全部工序中进行审查,并要求一切文档化;(3)ISO 9000-3对合同双方的责任均做出了明确规定,需方应收集使用部门意见,归纳形成需方需求,详细传达给供方,明确所要求的技术条件,才可能对供方提出实施质量保证的要求;(4)“将质量制作入产品之中”是ISO 9000-3最重要的质量保证体系,道理是很明显的,软件在完成编码设计后,测试、验收对提高质量是有限度的,必须建立质量保证体系,全面管理与控制软件生存期所有阶段的质量活动;返回目录119.2
9、9.2 软件质量认证软件质量认证(5)供方应建立与实施全面质量审核制度。主要有以下内容:u为进行质量保障活动整顿其组织机构,设置质量保证管理负责人,建立程序与工序等明确的质量体系,编制质量手册。u在企业内部建立可以监督质量体系的机制。u对每一个软件的开发活动,均应编制“质量计划”,以实施基于质量体系的质量保证活动,并形成相应的文件。uISO 9000-3要求在领导层的指导下,以保持业务的一贯性为目的而开展质量保证活动。uISO 9000-3规定的是用以建立质量保证体系的“应做事件”的框架,并未规定实施程序、文件格式等具体内容。返回目录129.3 CMM模型模型 软件过程包括一个软件企业在计划、
10、开发和维护一个软件项目时所执行的一系列活动,包括工程技术活动和管理活动。通常用软件过程能力来描述软件企业遵循其软件过程能够实现的预期结果,一个软件企业可通过制度、标准和机构,将其软件过程规范化和具体化,从而不断提高软件过程能力。软件过程成熟度用于描述软件过程被明确和有效地定义、管理、测量和控制的程度。软件过程成熟度高的企业,其管理策略、开发的方法、规程和检验等均有明确的定义,不会随人员的变化而发生变化。返回目录139.3 CMM模型模型9.3.1 软件过程成熟度模型软件过程能力成熟度模型CMM(Capability Maturity Model),是在1987年,由美国卡内基-梅隆大学软件工程
11、研究院(SEI)根据联邦政府的要求,研究提出的模型,用于评估软件供应商的能力。1991年正式公布了CMM 1.0版,1993年推出CMM 1.1,现已成为具有广泛影响的模型。CMM模型把成熟度等级分为五级,共包括18个关键过程域,52个过程目标,3168种关键实践。以下给出5个等级的软件企业过程成熟度的特征:返回目录149.3 CMM模型模型(1)初始级(Initial)u软件过程是无序的,规划落实得不到保障。u管理无章,对过程几乎没有定义,缺乏健全的管理制度。u开发项目成效不稳定,成功取决于个人努力,产品的性能和质量依赖于个人的能力。(2)可重复级(Repeatable)u 管理制度化,建立
12、了基本的项目管理过程来管理费用、进度等。u 初步实现标准化,制定了必要的过程规划和章程。u 能重复早先类似项目取得的成功。返回目录159.3 CMM模型模型(3)已定义级(Defined)u软件管理和工程两个方面,均实现标准化和文档化。u建立了完善的评审和培训制度。u技术活动和管理活动得到稳定实施。u项目的质量、进度和费用均可控制。u使用经过批准和论证的标准软件过程来开发和维护软件。(4)已管理级(Managed)u对软件过程和产品有定量的理解和控制。u软件过程中活动的质量可度量。u已实现项目产品和过程的控制。u可预测过程和产品质量趋势。返回目录169.3 CMM模型模型(5)优化级(Opti
13、mizing)u可采用新思想、新技术使过程不断改进。u对过程可量化,并可据此进行分析,提出改进过程的有效方法。上述5个等级是测量软件机构的成熟度和评价其过程能力的有效尺度,每一个成熟度等级均为软件机构过程的改进与提高提供了一个基础。返回目录179.3 CMM模型模型9.3.2 关键过程域 过程域是指互相关联的若干软件实践活动和有关基础设施的一个集合。除初始级外,其他4级均有若干指示软件机构改进软件过程的要点,称为关键过程域(Key Process Area,KPA)。为了确保不同等级的软件过程能力成熟度达到各自的目标,成功地完成这些对实现该等级的目标起关键性作用的过程域十分重要,对实施关键过程
14、域起关键作用的措施、活动、规程等,又称为关键实践(Key Practice),关键过程域的目标就是通过关键实践的实施来达到。返回目录189.3 CMM模型模型9.4.3 成熟度提问单 提问单涉及到软件企业的组织结构资源、人员及培训技术、文档管理标准化、工作过程数据管理和数据分析过程控制等方面,由于涉及5个等级的提问单内容较多,以下仅给出各个等级的部分提问单的问题。(1)二级的问题u软件质量保证活动是否独立于软件开发的项目管理u在接受委托开发合同前,是否有严格的步骤进行软件开发的管理评审u是否有严格的步骤用于估计软件的规模u是否有严格的步骤用于得到软件开发的进度u是否有严格的步骤用于估计软件的成
15、本返回目录199.3 CMM模型模型u是否对代码错误和测试错误做了统计u高层管理机构是否有一种机制对软件开发项目的状态进行正规的评审u是否有一种机制能够控制软件需求的变更u是否有一种机制控制代码变更(2)三级的问题u是否有一个小组专门考虑软件工作过程的问题u是否有针对软件开发人员的软件工程培训计划u是否有针对设计评审或代码评审负责人的正规培训计划u每一个项目是否采用标准化、文档化的软件开发过程返回目录209.3 CMM模型模型u软件错误是否做了累积统计u设计评审中提出的问题是否已追踪到底u代码评审中提出的问题是否已追踪到底u是否有一种机制确保对软件工程的依从性u是否做过软件设计的内部评审u是否
16、有一种机制用于控制软件设计的变更u是否做过代码评审u是否有一种机制验证根据软件质量保证所检查的内容确能对整个工作具有代表性。u是否有机制保证回归测试的从分性返回目录219.3 CMM模型模型(3)四级的问题u是否有管理和支持引进新技术的机制u是否有代码评审标准u设计错误是否预计到,是否与实际做过比较u代码错误和测试错误是否已预计到,是否与实际做过比较u设计评审与代码评审覆盖是否做了度量和记录u对每一功能测试覆盖是否做了度量和记录u是否已为所有项目的过程度量数据建立了控制过程数据库返回目录229.3 CMM模型模型u在设计评审中收集到的评审数据是否得到分析u为确定软件产品中残留的错误分布和特征,
17、是否对代码评审和测试中发现的错误数据做了分析u是否对错误做了分析,以便确定出错过程与其原因的关系u项目评审的效率是否分析过u是否有一种机制对软件工程过程实现定期评估,并实施已经指出的改进返回目录239.3 CMM模型模型(4)五级的问题u是否有判别并替换过时技术的机制u是否有分析错误原因的机制u是否有一种机制可以得到回避错误的措施u为确定避错所需的过程变更,错误原因是否已经过评审 评估过程主要有以下几步:u建立评估小组。组成成员应对软件过程、软件技术和应用领域很熟悉,有实践经验、能够提出见解。u评估组准备。评估组具体审定评估问题,决定对每一个问题要求展示那些材料和工具。返回目录249.3 CM
18、M模型模型u项目准备。评估组与被评估机构领导商定选择那些处于不同开发阶段的项目和典型的标准实施作为评估对象。u进行评估。对被评估机构的管理人员和项目负责人说明评估过程。评估组和项目负责人一道就所列出的问题逐一对照审查,保证对问题的回答有一致的解释。u初评。对每个项目和整个机构做出成熟度等级初评。u讨论初评结果。使用备用资料及工具演示,进一步证实某些问题的答案,从而决定可能的成熟度等级。u给出最后的结论。由评估组综合问题的答案、后继问题的答案,以及背景证据,做出最终评估结论。返回目录259.4 软件工程环境软件工程环境 软件工程环境(SoftWare Engineering Environmen
19、t,简称SEE)是指以软件工程为依据,支持典型软件生产的系统。9.4.1 什么是软件工程环境 一种通用的定义是:软件工程环境就是指支持软件产品开发、维护和管理的软件系统,它在统一的集成机制下由一系列软件工具组成。美国国防部的定义是:一个软件工程环境是一组方法、过程及计算机程序的整体化构件,它支持从需求定义、程序生成直到维护的整个软件生存周期。软件工具是指支持计算机软件的开发、维护、模拟、移植或管理而设计的程序系统。软件工具的开发对软件工程环境的支持是至关重要的。返回目录269.4 软件工程环境软件工程环境9.4.2 软件工程环境的特点软件工程环境是软件工程学科各方面研究发展的物化表现,具有以下
20、特点:(1)软件工程环境强调支持软件生产的全过程(2)软件工程环境强调大型软件的工业化生产(3)多维性(4)标准化从环境工具和用户界面两个方面,进一步说明软件工程环境的特点:(1)集成化的软件工具l数据集成l界面集成l控制集成l过程集成l平台集成 返回目录279.4 软件工程环境软件工程环境(2)友善和统一的用户界面 现代的开发环境常采用以下的技术来改善用户接口的友善性:l具有拉出(Pull-Out)功能的多级菜单l屏幕提示和在线帮助(On-Line HELP)技术l采用多窗口(Multi-Windows)技术 l采用向导(Wizard)技术 菜单、多窗口、向导和帮助信息,是用户界面的重要内容
21、,被称为四大友善技术。不仅适用于软件开发环境,在开发应用软件时也多采用这种技术,另外,开发环境还十分重视用户界面的一致性(Unification)。返回目录289.4 软件工程环境软件工程环境9.4.3 软件工程环境的模型 R.N.Charette在软件工程环境:概念与技术一书中,将软件开发环境抽象为一个模型,并给出了开发环境的定义:生产一个软件系统所需要的过程(Process)、方法(Methods)与自动化(Automation)。把开发环境模型分为由底向上的3个层次:过程、方法和自动化,并将“理想”的软件开发环境描述为“过程由充分自动化了的方法所支持的完整的过程模型(Process Mo
22、del)”。按照Charette的观点,建立一个软件工程环境,首先要确定一种开发模型,提出成套的、有效的开发方法,然后在这一基础上利用各种手段实现开发活动的完全自动化。返回目录299.5 9.5 CASE环境环境9.5.1 CASE环境 早在1978年的第三界国际软件会议(ICSE)中一篇论文中,出现了用CASE一词来描述软件环境。1986年9月24日,美国华尔街日报首次将CASE一词作为技术名词来使用,之后其作为软件环境的称呼便迅速流行起来,现已成为现代化软件开发环境的总称。CASE环境、CASE工具及集成CASE(Integrated CASE,简称I-CASE)等,几乎都成了软件工程环境
23、的代名词。CASE环境的总目的,是通过一组集成化的工具,建立软件开发平台,使软件开发人员实现各项开发活动的全部自动化,保证软件产品在整个生存周期内的质量,借以提高软件开发和维护的质量和生产率。返回目录309.5 9.5 CASE环境环境 除了CASE外,对软件工程环境的称呼有过多种,如:软件支持环境(SSE,Software Support Environment)程序设计支持环境(PSE,Programming Support Environment)软件开发环境(SDE,Software Development Environment)集成化项目支持(IPSE,Integrated Pro
24、ject Support Environment)返回目录319.5 9.5 CASE环境环境9.5.2 CASE环境的组成与结构 CASE环境是一个总称,它也代表了集成化项目支持(IPSE)和集成CASE(I-CASE)环境。以下主要介绍CASE环境的组成和结构两个方面的内容。1CASE环境的组成Pressman把CASE环境的组成归纳为6个部分,3个层次,如图9-1所示。返回目录329.5 9.5 CASE环境环境图9-1 CASE环境的组成返回目录339.5 9.5 CASE环境环境 由硬件平台和操作系统(包括网络和数据库管理系统)组成的体系结构,是CASE环境的基础(地层)。集成化框架
25、(Integration Framework)由一组专门程序组成,用于建立单个工具之间的通信,建立环境信息库,以及向软件开发者提供一致的界面,它们与CASE工具集成在一起,构成环境的顶层。余下的一层是服务于“可移植性”的机构。它介于集成化工具与环境基础软、硬件之间,使集成后的工具无需作重大的修改即可与环境的软、硬件平台相适应。下面分别就CASE工具和环境信息库作简要说明。返回目录349.5 9.5 CASE环境环境(1)CASE工具 CASE工具是指“用于辅助软件开发、运行、维护、管理和支持等过程中的活动的软件”。CASE工具种类繁多,没有统一的分类方法,把CASE工具按软件过程的活动来分类,
26、归纳为以下三类:u支持软件开发过程的工具,包括需求分析工具、软件设计工具、编码工具、测试工具和纠错工具等。u支持软件维护的工具,包括版本控制工具、文档分析工具、开发信息库工具、逆向工程工具和再工程工具等。u支持软件管理过程和支持过程的工具,主要包括项目管理工具、配置管理工具和软件评价工具等。返回目录359.5 9.5 CASE环境环境(2)CASE环境信息仓库 环境信息仓库具有类似数据库管理系统的功能,Forte在1989年给出了其功能定义,主要有以下几个方面:u数据完整性 包括确认环境信息仓库的数据项,保证相关对象间的一致性,以及当对两个对象的修改需要对相关对象进行某些修改时自动完成“关联式
27、”修改等功能。u信息共享 提供在多个开发者和多个工具间共享信息的机制,管理和控制对数据及加锁/未锁对象的多用户访问,以使得修改不会被相互间不经意的覆盖。返回目录369.5 9.5 CASE环境环境u数据-工具集成 建立可以被I-CASE环境中所有工具访问的数据模型,控制对数据的访问,以及完成合适的配置管理功能。u数据-数据集成 数据库管理系统建立数据对象间的关系,使得可以完成其他功能。u文档资料标准化 在数据库中对象的定义直接导致了创建软件工程文档的标准方法。返回目录379.5 9.5 CASE环境环境2CASE 环境结构 在集成CASE环境中,各构件有机地结合在一起,构成层次式的环境体系结构
28、。Sharon和Bell在1995年提出的CASE集成框架的层次结构模型(如表9-2所示),具有一定的代表性。它把组成CASE环境的构件分成4个层次,从上到下分别是:用户界面层、工具层、对象管理层和共享中心库层。返回目录389.5 9.5 CASE环境环境表9-2 CASE集成框架的层次结构模型 返回目录399.5 9.5 CASE环境环境 最上层是用户界面层,它包括标准的界面工具箱和公共的表示协议。界面工具箱包含人机界面管理软件和显示对象库,提供了必要的界面元素和工具,能使集成环境的用户界面显示风格一致。表示协议提供一组界面约定,包括一致的屏幕布局约定、菜单名和组织、图符、对象名、键盘和鼠标
29、的使用等。工具层除了CASE工具本身外还包括一组工具管理服务。工具管理服务(TMS)负责管理工具的执行中多任务操作,包括同步和通信、协调从中心库和对象管理系统到工具的信息流,以及收集关于工具使用的度量等。返回目录409.5 9.5 CASE环境环境 对象管理层(OML)完成集成服务和配置管理功能。在框架体系结构这层的软件提供了CASE工具集成的机制,每个软件工具被“插入”到对象管理层,并通过一组将工具和中心库藕合在一起。OML的配置管理服务用于标识配置对象,完成版本控制,并提供对变化控制、审计以及状态说明和报告的支持。最底层是共享中心库层,它使得对象管理层能够与CASE数据库交互并完成对CAS
30、E数据库的访问控制。返回目录419.5 9.5 CASE环境环境9.5.3 CASE环境的类型(1)按环境的体系结构分类u按照宿主机体系结构的不同构成,一般把CASE分为单机CASE、协同式CASE和分布式CASE。u单机CASE:目前多以PC或工作站为基础。u协同式CASE:一般由前端机和后端机配套组成。u分布式CASE:利用网络功能为分散的软件开发单位服务的大型CASE环境。返回目录429.5 9.5 CASE环境环境(2)按环境支持的目标分类u根据不同的文档目标,一般把CASE分为基于方法论的环境、以语言为中心的环境和成套工具环境。u基于方法论的环境:其目标是支持软件生存期全过程或其中若
31、干阶段的活动,包括技术活动和管理活动。u以语言为中心的环境:主要用于支持某一特定的语言程序。u成套工具环境:拥有较多的CASE工具,扩充比较容易。返回目录43本本 章章 小小 结结u软件工程标准化主要从软件开发过程、阶段评审和验收测试、运行与维护的一系列软件工程阶段,论述了软件工程标准化的意义。给出了软件工程标准的分类和层次。u介绍了ISO 9000 系列标准及软件质量认证,ISO 9000 系列标准的内容及制定,实施ISO 9000 系列标准的方法与策略。u引入了软件过程成熟度模型CMM(capability maturity model)。介绍了各阶段的定义。u给出了软件过程成熟度的分级与各个级别的部分成熟度提问单的问题。返回目录44本本 章章 小小 结结u环境在现代软件开发中占有重要地位。软件开发活动中各阶段有各种支持工具,这些工具是环境的最重要组成部分。u最后简单介绍了CASE环境的组成、结构与类型。u在软件开发环境的发展中,提高开发效率和软件质量是直接目标。另一方面,新的工具和环境也改变了人们程序设计和使用计算机的方式。充分利用和发挥软件开发支持工具的作用,把大量工作留给环境和机器去完成,简化设计人员的程序化工作,对提高软件开发水平和促进环境发展都具有重要意义。返回目录