资源预览内容
第1页 / 共81页
第2页 / 共81页
第3页 / 共81页
第4页 / 共81页
第5页 / 共81页
第6页 / 共81页
第7页 / 共81页
第8页 / 共81页
第9页 / 共81页
第10页 / 共81页
亲,该文档总共81页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
,重庆理工大学 计算机科学与工程学院 李梁 65263075 liliangcqut.edu.cn,软件工程 第二章 软件过程,06:35:42,什么是软件工程? 什么是工程化思想? 什么是软件过程?有哪些过程模型? 如何建立过程模型? 什么是统一过程?自学 什么是敏捷过程?有哪些模型? 自学 什么是软件工程实践?,第一部分 软件工程与过程,06:35:42,第2章 软件过程,2.1 什么是软件过程? 2.2 什么是软件生命周期? 2.3 软件过程评估:能力成熟度模型是什么? 软件过程评估:CMM、CMMI、ISO9001:2000 等 2.4 理解敏捷过程自学(含极限编程、结对编程) 2.5 开展软件过程实践,06:35:42,概念 软件过程是为了开发出软件产品,或者是为了完成软件工程项目而需要完成的有关软件工程的活动 通常使用生命周期模型简洁地描述软件过程 每项活动可分为一系列工程任务,科学的软件过程是一组适合软件项目特点的任务集合,任务集合包括一组软件工程任务、里程碑、应交付的产品。 层次 软件工程是一门建立在以质量焦点为基础,分过程、方法和工具三个层次的综合技术(三要素),2.1 软件过程,06:35:42,2.1 软件过程,软件工程过程:一个软件机构针对某一类软件产品为自己规定的工作步骤。 软件规格说明:规定软件的功能及其运行的限制 软件开发:产生满足规格说明的软件 软件确认:确认软件能够完成客户提出的要求 软件演进:为满足客户的变更要求,软件必须在使用的过程中演进 软件工程过程定义了: 方法使用的顺序 要求交付的文档资料 为保证质量和适应变化所需要的管理 软件开发各个阶段完成的里程碑,06:35:42,软件过程框架 P15表2-1 框架是实现整个软件开发活动的基础,软件过程框架定义了若干小的框架活动,与过程有关的角色、职责的定义以及实现也都离不开框架的支持。实际上就是软件过程的工程模板 内容 组织及管理框架:实现过程活动涉及到的角色与职责 技术及工具框架:实现过程活动的自动化及需要的设备与工具,2.1 软件过程-软件过程框架,06:35:42,2.1 软件过程-软件工程目标,目标 可修改性 有效性 可靠性 可理解性 可维护性 可重用性 可适应性 可移植性 可追踪性 可互操作性,基本目标: 付出较低的开发成本达到要求的软件功能取得较好的软件性能 开发的软件易于移植需要较低的维护费用能按时完成开发工作及时交付使用 软件工程的目标是提高软件的质量与生产率,最终实现软件的工业化生产。 从短期效益看,追求高质量会延长软件开发时间并且增大费用,似乎降低了生产率。 对开发人员而言,如果非得在质量与生产率之间分个主次不可,那么应该是质量第一,生产率第二。,06:35:42,从传统工业生产过程的知识发现(补) 从传统工厂生产组织方法的启示:能否将软件开发作为工厂的产品,按照工厂产品的生产组织方式组织软件开发工作?,参考啤酒生产过程,阶段划分清楚,过程控制严格,流程执行规范,质量有保障,2.1 软件过程,06:35:42,向传统工业学习什么?,任务明确、组织有序、纪律严明、整体优化,2.1 软件过程,06:35:42,软件过程模型:就是把软件生命周期中各项开发活动的流程用一个合理的框架(开发模型)来规范描述。 软件生命周期模型 软件生命周期 划分为发生-定义、发展-开发和灭亡-运行与维护三个部分 细分为六个阶段: 问题的定义及规划 需求分析 软件设计 程序编码 软件测试 运行维护,2.1 软件过程-软件过程模型,系统规划,系统分析,系统设计,系统实施,运行支持,06:35:42,软件生命期 Software life cycle 软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程称为软件生存周期 软件有一个孕育、诞生、成长、成熟、衰亡的生存过程。这个过程即为计算机软件的生存周期 生命周期阶段的划分原则: 各阶段的任务相对独立 同一阶段任务的性质相同 软件定义(系统分析):可行性研究(软件计划)、需求分析 软件开发(系统设计):概要设计、详细设计、软件实现(编码、单元测试)、软件测试(组装测试、确认测试) 软件使用、维护和退役,2.2 软件生命周期,06:35:42,基于SDLC的瀑布模型,发生,发展,灭亡,软件系统开发生命周期(Systems Development Life Cycle,SDLC) 是建立软件系统的一个过程,是管理和控制软件系统开发过程的一种基本框架,是确保软件系统开发成功的一种必要措施和手段。,2.2 软件生命周期,06:35:42,可行性研究 确定要开发软件系统的总目标 给出功能、性能、可靠性以及接口等方面的要求 完成该软件任务的可行性研究 估计可利用的资源 (硬件,软件,人力等)、成本、效益、开发进度 制定出完成开发任务的实施计划,连同可行性研究报告,提交管理部门审查 需求分析和定义 对用户提出的要求进行分析并给出详细的定义 编写软件需求说明书或系统功能说明书及初步的系统用户手册 提交管理机构评审,2.2 软件生命周期,06:35:42,概要设计 把各项需求转换成软件的体系结构。结构中每一组成部分都是意义明确的模块,每个模块都和某些需求相对应,编写设计说明书,评审 详细设计 对每个模块要完成的工作进行具体的描述,为源程序编写打下基础,编写设计说明书,提交评审 软件实现(编码、程序设计) 把软件设计转换成计算机可以接受的程序代码,即写成以某一种特定程序设计语言表示的“源程序清单”;写出的程序应当是结构良好、清晰易读的,且与设计相一致的。 单元测试,查找各模块在功能和结构上存在的问题并加以纠正,2.2 软件生命周期,06:35:42,软件测试 组装测试,将已测试过的模块按一定顺序组装 按规定的各项需求,逐项进行有效性确认测试,决定已开发的软件是否合格,能否交付用户使用 软件运行:操作培训、模拟数据试运行、并行运行、系统转换 软件维护 改正性维护:运行中发现软件中的错误需要修正 适应性维护:为了适应变化了的软件工作环境,需做适当变更 完善性维护:为了增强软件的功能需做变更,2.2 软件生命周期,06:35:42,06:35:43,逻辑模型,物理模型,1个儿童房 1个主卧 厨房、卫生间等等,系统需求,软件生命周期总结,06:35:43,软件过程评估:评价软件过程中的各种活动(管理、技术方法、控制、计划等)是否满足软件工程成功所需的基本过程标准要求。 作用:检验和识别软件过程风险,促进软件过程改进,提高软件开发能力。 CMM:分析或诊断软件或软件团队的相对成熟度 CMMI:在CMM基础上集成了工程方面的评价指标,包括启动、诊断、建立、执行和学习,主要用于软件企业。 ISO9001:2000:国际通用标准(质量保证体系),用于软件产品、系统或服务的整体质量评估,采取“计划-实施-检查-行动”循环,将其应用于软件项目的质量管理环节,可直接应用于软件团队和软件企业。 SPICE标准:定义软件过程评估的一系列要求,帮助团队建立客观的评价体系,评估软件过程的有效性。,2.3 软件过程评估,06:35:43,CMM(Capability Maturity Model):能力成熟度模型,用于评价软件机构的软件过程能力成熟度的模型。是指对过程计划或定义水平、过程实施水平、过程管理和控制水平、过程改善潜力等指标的综合评价。美国卡内基-梅隆大学软件工程研究所开发。 建立此模型的初始目的,是为大型软件项目的招标活动提供一种全面而客观的评审依据,发展到后来此模型又同时被应用于许多软件机构内部的过程改进活动中。 核心:把软件开发视为一个过程,并根据这一原则对软件开发和维护进行过程监控和控制,使其更加科学化、标准化。 在无规则和混乱的管理之下,先进的技术和工具并不能发挥出应有的作用,改进对软件过程的管理才是消除软件危机的突破口,再也不能忽视在软件过程中管理所起的关键作用了。 CMM为软件企业的过程能力提供一个阶梯式的改进框架,它基于过去所有软件工程过程改进的成果,吸取以往软件工程的经验教训,提供一个基于过程改进的框架。,2.3 能力成熟度模型-CMM,06:35:43,CMM是一种通过严格定义、实施、控制和不断改进软件过程的方法来保证软件质量的分层模型。 CMM是对软件开发组织或项目的软件过程能力进行评估的一个基本框架。 CMM是指导软件开发组织或项目逐步改进其软件能力成熟度的一个指南。 CMM只回答“做什么?”,具体地“如何做?”由开发组织自己定。 软件过程是一个可管理、可测量和可改进的过程。 软件过程的质量受其支持技术的影响。 用于软件工程的技术水平应与过程的成熟度相适应。,2.3 能力成熟度模型-评估模型,06:35:43,在CMM中把软件过程从无序到有序的进化过程(18个)分成5个阶段,并把这些阶段排序,形成5个逐层提高的等级。 5 级: 初始级、可重复级、已定义级、已管理级(已控制级)、优化级。 这5个成熟度等级定义了一个有序的尺度,用以测量软件组织的软件过程成熟度和评价其软件能力,这些等级还能帮助软件组织把应做的改进工作排出优先次序。 成熟度等级是妥善定义的向成熟软件组织前进途中的平台,每一个成熟度等级都为过程的继续改进提供一个台阶。 CMM通过定义能力成熟度的5个等级,引导软件开发组织不断识别出其软件过程的缺陷,并指出应该做哪些改进,但是它并不提供做这些改进的具体措施。,2.3 能力成熟度模型-评估模型,06:35:43,为企业的发展规定过程成熟级别,分为5级: 初始级(Initial):一般企业皆具有 可重复级(Repeatable):成功经验可以重复 已定义级(Defined):一套完整的企业过程,人员自觉遵守(培训) 已管理级(Managed、已控制):过程&产品可度量和控制 优化级(Optimizing):过程持续改进 作用:从无序到有序、从特殊到一般、从定性管理到定量管理、最终达到动态优化。,2.3 能力成熟度模型-CMM,06:35:43,2.3 能力成熟度模型-CMM体系结构,06:35:43,关键过程域:代表一组相关的工作(活动)。每个KPA都有一个确定的目标,完成该目标即认为过程能力的提高。,2.3 能力成熟度模型-CMM结构,06:35:43,关键过程领域KPA(Key Process Area):18个 除去初始级以外,其它 4 级都有若干个引导软件机构改进软件过程的要点,称为关键过程领域。 每一个关键过程领域是一组相关的活动,成功地完成这些活动,将会对提高过程能力起重要作用。,关键过程域,2.3 能力成熟度模型-CMM关键域,06:35:43,2.3 能力成熟度模型-CMM关键域,06:35:43,级别 CMM级别的特征 1级 初始级 软件过程无序,有时甚至混乱,成功归功于个人的努力 2级,可重复级 在项目内部已建立健全的项目管理,可重复已有的成功 3级,已定义级 在组织内部已定义并实施全组织统一的软件标准过程 4级,已管理级 软件过程和产品质量已得以有计划和定量的管理和控制 5级,优化级 已建立使软件过程和产品质量得以持续改进的架构,2.3 能力成熟度模型-CMM五个级别,06:35:43,2.3 能力成熟度模型-关键实践,06:35:43,Level 1:初始级 过程无序且不可见 特点 过程执行杂乱无序 关键问题 项目计划管理、配置管理、软件质量保证 达标标准 过程活动无一定秩序,开发过程的可重复性差,2.3 能力成熟度模型-CMM五个级别,06:35:43,Level 2:可重复级 里程碑(Milestone)可见,按计划开发 达标标准 使项目管理处于严格控制之下,包括严格的项目计划和追踪、
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号