




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章 软件工程概述实用软件工程学期项目(大作业):计划:全部同学分成小组,每组5-8人,每一个小组推选一位负责人,作为项目经理。项目经理有权利对小组其它的人员进行具体的角色分工和人事调整。每组人员的角色可为: 1. 项目经理 2. 系统分析人员 3. 系统设计人员 4. 系统实施人员 5. 系统测试人员 要求: 项目经理负责:组织、分工、控制进度; 对每位组员成绩有浮动调整权; 项目经理奖罚:引起过半数组员不满,则改选; 带领全组顺利完成任务,总评加分。小组成员:在项目经理的统一协调下完成项目,根据完成的质量来决定最后的成绩。目 的 体验软件工程各阶段的主要工作,特别注意吸取教训; 学会与他
2、人合作,培养团队精神,单干户将得不到成绩。 从现在开始,谁也不知道我们的项目会不会成功,但是请牢记:目标、交流与合作、内省第1章 软件工程概述 本章主要内容 软件的发展、定义及特征;软件危机的表现及解决途径;软件工程的定义及三要素,软件工程的基本原理及目标;软件生存周期的概念和内容;五种软件开发模型;软件开发方法和开发工具;传统软件工程和面向对象软件工程。 本章重点:软件工程的定义及三要素,软件工程的基本原理及目标;五种软件开发模型;软件开发方法和开发工具; 本章难点:五种软件开发模型的使用。 工程在现代社会中,“工程”一词有广义和狭义之分。就狭义而言,工程定义为“以某组设想的目标为依 据,应
3、用有关的科学知识和技术手段,通过一群人的有组织活动将某个(或某些)现有实体(自然的或人造的)转化为具有预期使用价值的人造产品过程”。就广义 而言,工程则定义为由一群人为达到某种目的,在一个较长时间周期内进行协作活动的过程。 参阅工程系统论,王连成著,中国宇航出版社。“工程”是科学的某种应用,通过这一应用,使自然界的物质和能源能够通过各种结构、机器、产品、系统和过程,以最短的时间和精而少的人力做出高效、可靠且对人类有用的东西。 工程的分类将自然科学的理论应用到具体工农业生产部门中形成的各学科。如:水利工程、化学工程、土木建筑工程、遗传工程、系统工程、生物工程、海洋工程、环境微生物工程 用较多的人
4、力、物力来进行较大而复杂的工作,需要一个较长时间周期内来完成。如:城市改建工程、京九铁路工程、菜蓝子工程 、探月工程关于工程的研究称为“工程学”。工程学 是一门应用学科,是用数学和其他自然科学的原理来设计有用物体的进程。关于工程的立项称为“工程项目” 一个全面的、大型的、复杂的包含各子项目的工程称为“系统工程”工程师和科学家是一样的吗?实践工程学的人叫做工程师。工程师利用科学家发现的知识,制造对人类有用的物体或工具。科学家经常要问“为什麽?”,他们关心了解人类不懂的知识,科学家不必关心 经济问题,他们想法获得必要的经费(如政府拨款、企业投资、私人赞助等),然后专心去研究,把这些经费花光,如果得
5、到的是和原先设想的完全相反的结果,经费也没有白花。工程师则相反,他们必须使制造出来的物体,在经济上是可行的,否则没有任何用处,如果一件产品的成本高于其市场价值,无人光顾,这种产品就无法生产,所以对工程师来说,经济观念是必备的。 愚公是一位工程名家第1章 软件工程概述 本章结构:1.1 软件与软件危机 1.2 软件工程 1.3 7条基本原理1.4 软件生存周期 1.5 软件开发模型 1.6 软件开发方法和软件开发工具 1.7 软件开发过程 1.1 软件与软件危机 1.1.1软件的定义 软件是指计算机系统中与硬件相互依存的一部分,包括程序、相关数据和及其说明文档。程序是按照事先设计的功能和性能要求
6、执行的指令序列;数据是程序能正常操纵信息的数据结构;文档是与程序开发维护和使用有关的文字或图形资料软件的分类按软件的功能进行划分: 系统软件 操作系统 数据库管理系统 设备驱动程序 通信处理程序等 支撑软件文本编辑程序文件格式化程序磁盘向磁带向数据传输的程序程序库系统支持需求分析、设计、实现、测试和支持管理的软件按软件规模进行划分:类别 参加人员数 研制期限 源程序行数 微型 1 14周 0.5k 小型 1 16月 1k2k中型 25 12年 5k50k大型 520 23年 50k100k甚大型 1001000 45年 1M(=1000k)极大型 20005000 510年 1M10M1.1
7、软件和软件危机1.1.3 软件危机 软件危机是指在计算机软件的开发、使用和维护过程中遇到的一系列严重问题。1、对软件的要求:用户的需求更高、涉及的领域更广软件运行环境更加庞大软件更新换代更加频繁硬 件软件开发软件维护1955年 1970年 1985年100%80%60%40%20%1.1 软件和软件危机3.产生软件危机的原因:与软件的特点有关与软件开发和维护的方法有关软件生产至今尚未摆脱手工生产方式。忽视需求分析和设计工作。没有规范的维护要求和记录。危机实例2: 1900年错误1992年,来自明尼苏达州怀俄明的玛丽收到一份幼儿园的入园通知,她当时是104岁。 闰年错误1988年2月29日,一家
8、超市因出售过期一天的肉而被罚款1000美元。因为在肉的标签上打印保质期的计算机程序没有考虑到1988年是闰年。 接口误用1990年4月10日,在伦敦地铁运营过程中,司机还没上车,地铁列车就驶离车站。当时司机按了启动键,正常情况下如果车门是开着的,系统就应该可以阻止列车起动。当时的问题是司机离开了列车去关一扇卡着的门,但当门终于关上时,列车还没有等到司机上车就开动了。 安全问题软件工程学院的CERT组(Computer Emergency Response Team,计算机紧急反应小组)是一个政府资助的组织,用来协助社区处理安全事件、突发事件和安全技能方面的问题。美国报道的CERT的安全事件从1
9、990年的252件增加到2000年的21756件,而到2001年已增加到了40000多件。危机实例3: 拖延和超支在1995年,由于新丹佛尔国际机场自动行李系统的错误,造成旅客行李箱的损坏。机场则被迫推迟16个月再开放,且大部分采用手工行李系统,产生32亿美元超支。 拖延和超支(2)2002年的Swanick空运控制系统,包括英格兰和威尔士全部空运线路。在系统交付时,已延期6年且严重超支(实际花费6.23亿英傍,原计划花费3.5亿英镑),其中两次主要的系统升级是在运输操作员培训已经开始后才交付的。 延期交付1984年,经过18个月的开发,一个耗资2亿美元的系统交付给了威斯康星州的一家健康保险公
10、司。但是该系统无法正常工作,只好追加了6千万美元,又花了3年才解决了问题。 不必要的复杂性麦克道尔道格拉斯的C-17货机因为控制系统的软件问题,而超支5亿美元。C-17含有19台机载计算机,80个微处理器以及6种不同的编程语言。1.2 软件工程发展简史1.问题的引出先看几个图例简陋的小屋不用设计新农村别墅造型图别墅的平面图、切面图图书馆信息管理系统需求表图书馆信息管理系统功能设计图书馆信息管理系统物理模型设计图书馆信息管理系统逻辑模型设计(部分)图书馆信息管理系统数据设计过程设计图书馆信息管理系统界面设计结论:软件生产同建筑行业一样需要工程化、规模化、自动化、标准化。软件生产过程中也有中间环节
11、(设计物理模型、逻辑模型、界面、数据、过程等等),也可以随时进行质量检查。软件生产中也需要有高效的工具。软件生产人员也可以细分为:分析员、设计员、程序员、测试员、操作员、维护人员等等。软件生产低水平的手工作坊不能适应当今的大规模软件开发需求软件行业的出路?-软件工程1.2 软件工程的定义和目标1993IEEE: 软件工程是:将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,对中所选方法的研究。注意:软件工程研究所依据的基础理论:数学、计算机科学、经济学、工程学、管理学和心理学等学科。其中数学和计算机科学用于构造模型、分析算法;工程学用于评估成
12、本、制定规范和标准;管理学和心理学用于进度、资源、环境、质量、成本等的分析和管理。1.2.1 软件工程的概念 软件工程学是一门指导软件开发和维护的工程学科,是为了经济地获得能够在实际机器上有效运行的可靠软件而建立和使用的一系列完善的工程化原则。它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法来生产软件,以达到提高质量、降低成本的目的。软件工程三要素软件工程方法软件工具软件工程过程 为软件开发提供“如何做”的技术。如怎样定项目计划、怎样实施需求分析、如何测试等。为软件工程方法提供自动或半自动软件支撑环境。如软件开发工具、测试工具等。软件开发的不同阶段可使用不同的工具。将软件工程划
13、分为若干阶段,分配方法和工具,定义每个阶段的先后顺序和完成标志。软件工程发展简史1968年Fritz Bauer在NATO(北大西洋公约组织)会议上给出的定义: “软件工程是为了经济地获得可靠的和能在实际机器上高效运行的软件而确立和使用的健全的工程原理(方法)”20世纪70年代形成了软件工程的概念、框架、方法和手段。80年代到90年代,研究重点是面向对象的分析和设计,称为对象工程。90年代后期,基于构件的开发方法,即第三代软件工程,也称为构件工程。软件工程研究的主要内容技术方面:研究软件开发方法、软件开发过程、软件开发工具和环境。管理方面:主要研究软件管理学、软件经济学、软件心理学。强调规范化
14、和文档化 规范化:使众多的开发者遵守相同的规范,使软件生产摆脱个人生产方式,进入标准化、工程化的生产方式关注国标、行标。文档化:把软件的设计思想、设计过程和实现过程完整地记录下来,便于各类相关人员交流和沟通;使软件开发过程由不可见变为可见,便于管理者对软件生产进度和开发过程进行管理;是验收、质量检测的标准和依据。软件工程的基本目标 付出较低的开发成本; 达到预期的软件功能; 取得较好的软件性能; 使软件易于移植; 需要较低的维护费用; 能按时完成开发工作,及时交付使用。 1.3 软件工程7条基本原理软件工程专家B.W.Boehm提出了软件工程的7条基本原理 :原理1、用分阶段的生命周期计划严格
15、管理项目概要计划里程碑计划项目控制计划产品控制计划测试验收计划运行维护计划 原理2、坚持进行阶段评审。 软件的质量保证工作不能等到编码阶段结束之后再进行。经过大量的统计数据表明,大部分错误是在编码之前造成的,其中,设计错误约占软件错误的63%,编码错误仅占37%。错误发现与改正的越晚,所需付出的代价也越高。因此,在每个阶段都应该进行严格的评审,以便尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。软件工程7条基本原理原理3、实行严格的产品控制 基准配置又称基线配置,它们是经过阶段评审后的软件配置成份。基准配置管理的思想是:一切有关修改软件的建议,特别是涉及到对基准配置的修改建议,都
16、必须按照严格的规程进行评审和控制,获得批准以后才能实施修改。目的是当需求变动时,其它各阶段的文档或代码随之相应变动,以保证软件的一致性。软件工程7条基本原理原理4、采用现代程序设计技术 自从提出软件工程概念后,人们一直把主要精力用于研究各种新的程序设计技术。60年代末提出了结构化程序设计技术,以后又进一步发展出结构化分析与设计技术、面向对象的分析和设计技术。实践表明,采用先进的技术既可提高软件开发和维护的效率,又可提高软件质量。软件工程7条基本原理原理5、结果应能清楚地审查 软件是一种看不见、摸不着的逻辑产品。软件开发小组的工作进展情况难于评价和管理。 为更好地进行管理,应根据软件开发的总目标
17、及完成期限,明确地规定开发小组的责任和产品标准,从而使所得到的产品有明确的标准能清楚地审查。 软件工程7条基本原理原理6、开发小组的人员应该少而精 软件开发小组成员的素质应该好,人数不宜过多。 素质高的人员开发效率高、质量好、错误少。开发小组人员过多,信息交流造成的通信开销会急剧增加。软件工程7条基本原理原理7、承认不断改进软件工程实践的必要性 遵循上述六条基本原理,就能够按照当代软件工程基本原理实现软件的工程化生产。但是,仅有上述六条原理并不能保证软件开发与维护的过程能赶上时代前进的步伐,因此,应把承认不断改进软件工程实践的必要性作为软件工程的第七条基本原理。软件工程7条基本原理1.4 软件
18、生存周期 软件生存周期是指一个计算机软件从功能确定、设计,到开发成功投入使用,并在使用中不断地修改、增补和完善,直到停止该软件的使用的全过程。包括制定计划(可行性研究)需求分析软件设计程序编码软件测试运行维护 在实践中,整个开发周期经常不是明显地划分,而是分析、设计、实现,再分析、再设计、再实现等迭代执行。1.可行性研究目标:确定待开发系统的总体目标和范围,研究系统的可行性和可能的解决方案,对资源、成本及进度进行合理的估算。内容 :所采用的软件生命周期模型,开发人员的组织,系统解决方案。管理的目标和级别,所有的技术与工具,以及开发的进度、预算和资源分配。2.需求分析分析、整理和提炼所收集到的用
19、户需求,建立完整的分析模型。将其编写成软件需求规格说明和初步的用户手册。通过评审需求规格说明书,取保对用户需求达到共同的理解与认识。需求规格说明书明确描述了软件的功能,列出软件所必须满足的约束条件,并定义软件的输入和输出接口。3.设计决定软件怎么做,设计人员根据软件需求规格说明书,确定软件的体系结构,用户界面,每个模块的算法、数据结构和接口等,编写设计说明书,并组织进行设计评审。设计过程将现实世界的问题模型转换成计算机的实现模型,设计同样需要文档化,并应当在编写程序之前评审其质量。4.实现将所设计的各个模块编写成计算机可接受的程序代码,与实现有关的文档就是源程序及合适的注释。5.测试及集成在设
20、计测试用例的基础上,测试软件的各个组成模块,然后将各个模块集成起来,测试整个产品的功能和性能是否以满足已有的规格说明。除此之外,还要进行系统测试和验收测试。6.维护软件运行过程中需要不断地进行维护,使软件持久满足用户需要。改正性维护:运行中发现软件中的错误需要修正适应性维护:为了适应变化了的软件工作环境,需做适当变更完善性维护:为了增强软件的功能需做变更预防性维护:修改软件为将来的维护各种预先做准备。1.5 软件开发模型1.5.1 瀑布模型瀑布模型(waterfall model)是由W. Royce于1970年提出来的。 瀑布模型依据软件生命周期方法学开发软件,各阶段的工作自顶向下、从抽象到
21、具体的顺序进行。瀑布模型规定了各项软件工程活动,包括:制定开发计划、需求分析和说明、软件设计、程序编码、测试、运行维护。并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。如图1.2所示。 特点瀑布模型严格按照软件生存周期各个阶段来进行开发,上一阶段的输出即是下一阶段的输入,并强调每一阶段的严格性。它规定了各阶段的任务和应提交的成果及文档,每一阶段的任务完成后,都必须对其阶段性产品(主要是文档)进行评审,通过后才能开始下一阶段的工作。因此,它是一种以文档作为驱动的模型 瀑布模型优点和特点优点: 提供了软件开发的基本框架,有利于大型软件开发过程中人员的组织、管理,有利于软件开发方
22、法和工具的研究与使用,因此,在软件工程中占有重要的地位。特点: (1) 阶段间具有顺序性(必须等前一阶段的工作完成之后才能开始后一阶段的工作)和依赖性(前一阶段的输出文档是后一阶段的输入文档)。 (2)推迟实现的特点 只有完成测试后,系统才能开始运行。清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现,是按照瀑布模型开发软件的一条重要的指导思想。 (3)质量保证 为了保证软件质量,在瀑布模型的每个阶段都应该坚持以下两个做法: 第一,每一个阶段都必须完成规定的文档; 第二,每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。瀑布模型缺点(1)在软件开发的初期阶段就要求做出正
23、确、全面、完整的需求分析对许多应用软件来说是极其困难的。 (2)需对大量冗余信息进行分析。按照“瀑布式生命周期法”的要求,首先要对整个系统的业务流程和信息进行全面的分析,以致对大量与目标系统毫无关系的信息分析造成了极大的浪费,加大了系统分析的工作量。有的 MIS开发,仅系统分析就长达数月,甚至一年以上。(3)过高地要求用户的稳定和准确表达,但由于用户对计算机管理缺乏深入的了解,往往做不到。 (4)开发过程中出现错误,通常要到系统实施过程中才能查验。(5)不支持软件复用的概念;也不支持“原型”的概念。(6)开发周期长。通常在完成编码之前,看不到任何运行或演示。 由于存在以上种种问题,再加之环境因
24、素变动较快,近年来开发的许多MIS,有些还未投入使用,就由于系统组织结构和管理过程发生变化而需重新进行系统分析和设计,有的在投入运行后不久就已报废,明显地缩短了MIS的寿命。 瀑布模型适应场合瀑布模型一般适用于功能、性能明确、完整、无重大变化的软件系统的开发。例如操作系统、编译系统、数据库管理系统等系统软件的开发。应用有一定的局限性。1.5 软件开发模型1.5.2快速原型化模型快速原型模型是为克服瀑布模型的缺点于20世纪80年代推出的。快速原型法基本思想是:由用户、客户和开发者进行快速需求分析,产生系统规格说明;软件开发人员根据该规格说明快速产生一个可运行的原型;运行该原型,以便向用户展示软件
25、系统应有的部分或全部的功能和性能,并评价其规格说明的完整性、准确性和一致性;根据评价结果,进一步精化和细化规格说明;该过程可重复多次,直到最终的规格说明演化成与用户和客户一致的、可执行的系统为止。 原型模型优缺点优点:与用户见面快;开发成功率高,适合于需求不确定的大系统。缺点:周期长,开发成本高。原型模型比瀑布模型更符合人们认识事物的过程和规律,是一种较实用的开发框架。它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成员(包括分析员、设计员、程序员和用户)不能很好交流或通信有困难的情况。1.5 软件开发模型1.5.3 增量模型 增量模型规定软件的开发过程是一次开发产品的一个
26、部分。首先应该开发产品的基本部分,然后再逐步开发产品的附加部分。增量模型的开发过程示意图如图1.4所示 :1.5 软件开发模型1.5.4 螺旋模型 螺旋模型(spiral model)是B. Boehm于1988年提出的。螺旋模型将瀑布模型和原型模型结合起来,不仅体现了两个模型的优点,而且还增加了两个模型都忽略了的风险分析,弥补了两者的不足。 螺旋模型的结构如图1.5所示,它由四部分组成:制定计划、风险分析、实施开发、客户评估。螺旋式周期螺旋模型沿着螺线旋转(一个螺旋式周期 ),在四个象限上分别表达四个方面的活动,即:制定计划确定软件目标,选定实施方案,弄清项目开发的限制,选定完成目标的策略风
27、险分析分析所选方案,考虑如何识别和消除风险,风险角度分析该策略实施工程实施软件开发,启动一个开发阶段 客户评估评价前一步开发工作,提出修正建议,计划下一轮的工作 。螺旋模型的优点1)支持用户需求的动态变化。这就要求构造的原型的总体结构、算法、程序、测试方案应具有良好的可扩充性和可修改性。也支持软件系统的可维护性,每次维护过程只是沿螺旋模型继续多走一两个周期。2)原型可看作形式的可执行的需求规格说明,易于为用户和开发人员共同理解,还可作为继续开发的基础,并为用户参与所有关键决策提供了方便。3)螺旋模型特别强调原型的可扩充性和可修改性,原型的进化贯穿整个软件生存周期,这将有助于目标软件的适应能力。
28、4)螺旋模型为项目管理人员及时调整管理决策提供了方便,进而可降低开发风险。缺点 1)如果每次迭代的效率不高,致使迭代次数过多,将会增加成本并推迟提交时间;2)使用该模型需要有相当丰富的风险评估经验和专门知识,要求开发队伍水平较高。适应场合:支持需求不明确、特别是大型软件系统的开发,并支持面向规格说明、面向过程、面向对象等多种软件开发方法,是一种具有广阔前景的模型。1.5 软件开发模型1.5.5 喷泉模型它是以面向对象的软件开发方法为基础,以用户需求为动力,以对象来驱动的模型。喷泉模型如图1.6所示。 1.5 软件开发模型1.5.6 形式化方法模型 形式化方法模型包含了一组活动,它们带来了计算机
29、软件用数学描述的方法。用于软件形式化开发方法的模型有两种:变换模型和净室软件过程模型。 1.5 软件开发模型【例1.1】假设你被任命为一家软件公司的项目负责人,你的工作是管理该公司已被广泛应用的字处理软件的新版本开发。由于市场竞争激烈,公司规定了严格的完成期限并且已对外公布。你打算采用哪种软件生命周期模型?为什么?解:对这个项目的一个重要要求是,严格按照已对外公布了的日期完成产品开发工作,因此,选择生命周期模型时、应该着重考虑哪种模型有助于加快产品开发的进度。使用增量模型开发软件时可以并行完成开发工作,因此能够加快开发进度。这个项目是开发该公司已被广泛应用的字处理软件的新版本,从上述事实至少可
30、以得出3点结论:第一,旧版本相当于一个原型,通过收集用户对旧版本的反映,较容易确定对新版本的需求,没必要再专门建立一个原型系统来分析用户的需求;第二,该公司的软件工程师对字处理软件很熟悉,有开发字处理软件的丰富经验,具有采用增量模型开发新版字处理软件所需要的技术水平;第三,该软件受到广大用户的喜爱,今后很可能还要开发更新的版本,因此,应该把该软件的体系结构设计成开放式的,以利于今后的改进和扩充。 1.6 传统软件工程和面向对象软件工程 1.6.1 传统的软件工程 传统的软件工程采用瀑布模型作为软件工程的基本模型,把软件开发和运行过程划分为六个阶段:软件计划、需求分析、软件设计、程序编码、软件测
31、试、运行和维护等,强调各阶段的完整性和先后顺序,根据不同阶段的工作特点,运用不同的手段完成各阶段的任务。 1. 传统软件工程存在的问题 2. 传统结构化技术的缺点 1.6.2 面向对象的软件工程 1. 面向对象方法的基本思想 面向对象方法的基本思想是从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式。 面向对象方法学的出发点和基本原则是:尽可能模拟人类所习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识世界、解决问题的方法和过程,即使描述问题的问题域与实现解法的求解域在结构上尽可能一致。 1.6 传统软件工程和面向对象软件工程2. 面向对象方法的主要
32、优点 符合人们通常的思维方式 高度连续性 重用性好 可维护性好 1.7 软件工程过程 软件工程过程是为了获得软件产品或是为了完成软件项目而进行的有关软件工程活动,每项活动可以分解成一系列软件工程任务。软件过程成熟度SEI(卡内基梅隆大学软件工程研究所)提出了个综合模型(CMM),定义了当一个组织达到不同的过程成熟度时应该具有的软件工程能力。为了确定一个组织目前的过程成熟度,SEI使用了一个能力成熟度模型(评估调查表)和五个等级方案。该模型定义了在不同级别上具有的关键活动。SEI的模型提供了衡量一个组织软件工程实践能力的有效性方法,且建立了过程成熟度的五个级别。第一级:初始级软件过程的特征是无序
33、的,有时甚至是混乱的。几乎没有过程定义,成功完全取决于个人的能力。关键活动:无注意:SEI将关键过程域(KPAs)与每一个成熟度级别联系起来。KPAs描述了要达到某一特定级别必须满足的关键过程。KPAs是叠加的。例如:过程成熟度第三级包含了第二级的所有KPAs加上第三级特有的KPAs 第二级:可重复级建立了基本的项目管理过程,能够追踪费用、进度和功能。有必要的过程规范,可以重现以前类似项目的成功过程。关键活动:软件配置管理、软件质量保证、软件子合同管理、软件项目追踪和查错、软件项目计划、需求管理。注释:软件配置管理:简单而言就是管理软件的变化,它应用于整个软件工程过程,通常由相应的工具,过程和
34、方法学组成。 第三级:定义级用于管理和生产活动的软件过程已经文档化、标准化,并与整个组织的软件过程相集成。所有项目都使用文档化的、组织认可的过程来开发和维护软件。本级包含了第二级的所有特征。关键活动:详细复审、组内协调、软件产品工程、集成的软件管理、培训程序、组织的过程定义、组织的过程焦点。第四级:管理级软件过程和产品质量的详细度量数据被收集,通过这些度量数据,软件过程和产品能够被定量地理解和控制。本级包含了第三级的所有特征。关键活动:软件质量管理、定量的过程管理 第五级:优化级通过定量的反馈,进行不断的过程改进,这些反馈来自于过程或通过测试新的想法和技术而得到。本级包含了第四级的所有特征过程
35、变化管理、技术变化管理、错误预防 。实施CMM的必要性 实施CMM是改进软件质量的有效方法: 控制软件生产过程、提高软件生产者组织性和软件生产者个人能力的有效合理的方法软件工程和很多研究领域及实际问题有关,主要相关领域和因素有:需求工程(REQUIREMENTS ENGINEERING),软件复用(SOFTWARE REUSE)等 需求工程(REQUIREMENTS ENGINEERING)。理论上,需求工程是应用已被证明的原理、技术和工具,帮助系统分析人员理解问题或描述产品的外在行为。软件复用(SOFTWARE REUSE),定义为利用工程知识或方法,由一已存在的系统,来建造一新系统。这种技术,可改进软件产品质量和生产率。还有软件检查、软件计量、软件可靠性、软件可维修性、软件工具评估和选择等。 CMMI的本质是软件管理工程的一个部分。软件过程改善是当前软件管理工程的核心问题, 50多年来计算的发展使人们认识到要高效率、高质量和低成本地开发软件,必须改善软件生产过程。基於模型的过程改进是指用采用能力模型来指导组织的过程改进,使之过程能力稳定的进行改善,该组织也能变得更加成熟。 CMMI的评估方式: 自我评估:用于本企业领导层评价公司自身的软件能力。主任评估:使本企业领导层评价公司自身的软件能力,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 虚拟现实技术在2025年医疗护理培训中的安全性评估报告
- 2024年9月计算机等级考试一级试题及答案
- 2023自考英语二重点词汇大全
- 2023年编译原理平时作业答案
- 2023年遵义市自然灾害救助应急预案
- 2023建设工程计价考试真题及答案解析
- 2023年车辆钳工中级考试试题
- 2024-2025学年河南省新乡市七年级(下)期末英语试卷(含解析)
- 2025版建筑安全施工协议范本下载
- 2025年度酒店客房装饰装修与石材采购合同模板
- DB14 T1109-2015桥梁预应力孔道注浆密实性无损检测技术规程
- 2024年单片机控制装置安装与调试技能竞赛样题
- 中考英语688高频词大纲词频表
- 政府、办公楼物业管理服务投标方案(技术标)
- 《汽车构造》教案
- 《抑郁焦虑识别》课件
- 《新活素心内科》课件
- 物品赔偿单范本
- 某某公司钢渣处理项目可行性研究报告书
- 中建标准厂房钢结构安装施工方案
- 喷涂产品检验标准
评论
0/150
提交评论