《软件过程》PPT课件.ppt
《《软件过程》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《软件过程》PPT课件.ppt(187页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件过程、管理和质量 李 宣 东 南京大学计算机科学与技术系概 要软件过程软件质量保证软件配置管理软件项目管理概念软件过程 软件过程是近十年来人们关注的焦点。软件过程是为开发高质量软件所需要完成的任务的框架。软件工程是有创造力、有知识的人在定义好的、成熟的软件过程框架中进行的。软件过程软件工程层次图质量焦点过程方法工具软件过程软件工程是一种层次化的技术 任何工程方法(包括软件工程)必须以有组织的质量保证为基础。全面的质量管理和类似的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程方法的不断出现。支持软件工程的根基就在于对质量的关注。软件过程软件工程的基层是过程层 软件工程过程是将
2、技术层结合在一起的凝聚力,使得软件能够被合理地和及时地开发出来。过程定义了一组关键过程区域的框架,这对于软件工程技术的有效应用是必须的。关键过程区域构成了软件项目管理控制的基础,并且确定了上下各区域之间的关系,规定了技术方法的采用、工程产品(模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证及变化的适当管理。软件过程软件工程的方法层 提供了为开发软件在技术上需要“如何做”。方法涵盖了一系列的任务:需求分析、设计、编程、测试和维护。软件工程方法依赖于一组原则,这些原则控制了每一个技术区域,且包含建模活动和其他描述技术。软件过程软件工程的工具层 对过程和方法提供了自动的或半自动的支持
3、。当这些工具被集成起来使得一个工具产生的信息可以被另外一个工具使用时,一个支持软件开发的系统就建立了,称为计算机辅助软件工程(CASE)。CASE集成了软件、硬件和一个软件工程数据库(包含了关于分析、设计、编程和测试的重要信息),从而形成了一个软件工程环境。软件过程过程:为实现一个给定目标而进行的一系列运作步骤。过程具有一系列的性质:时间性、并发性、嵌套性和度量性等。软件过程:开发和维护软件及其相关产品所设及的一系列活动。过程是活动的集合;活动是任务的集合;任务是把输入转换为输出的操作。软件过程 软件过程提供了一个框架,在该框架下可以建立一个软件开发的综合计划:若干框架活动适用于所有软件项目,
4、而不在乎其规模和复杂性。若干不同任务的集合-每一个集合都由任务、里程碑、交付物以及质量保证点组成-使得框架活动适应于不同软件项目的特征和项目组的需求。若干保护性活动-如软件质量保证、软件配置管理、测试与度量-它们贯穿于整个过程模型之中。保护性活动独立于任何一个框架活动,且贯穿于整个过程之中。软件过程里程碑、交付物SQA点公共过程框架框架活动保护性活动任务集合工作任务软件过程软件过程可分为三大类:基本过程类:是构成软件生存周期主要部分的那些过程,包括获取、供应、开发、操作、维护等过程。支持过程类:可穿插到基本过程中提供支持的一系列过程,包括文档开发、配置管理、质量保证、验证、确认、联合评审、审计
5、、问题解决等过程。组织过程类:一个组织用来建立、实施一种基础结构、并不断改进该基础结构的过程,包括管理、基础、改进、培训等过程。软件过程模型 软件过程模型是软件开发的指导思想和全局性框架,软件过程模型的提出和发展反映了人们对软件过程的某种认识观,体现了人们对软件过程认识的提高和飞跃。软件过程模型瀑布模型强调阶段的划分及其顺序性、各阶段工作及其文档的完备性,是一种严格线性的、按阶段顺序的、逐步细化的开发模式。定义分析设计编码测试维护软件过程模型瀑布模型的特点:结构简单明了;历史较长、应用面广泛、为广大软件工作者所熟悉;已有与之配套的一组十分成熟的开发方法和丰富的支撑工具。确定了需求分析的绝对重要
6、性,但是在实践中要想获得完善的需求说明是非常困难的;反馈信息慢。软件过程模型原型模型听取用户意见建造/修改原型用户测试运行原型软件过程模型原型模型的特点:原型作为标识软件需求的一种机制,原型被建造仅是为了定义需求,之后就该被抛弃(或至少部分抛弃);实际的软件在充分考虑了质量和可维护性之后才被开发。软件过程模型演化软件过程模型 人们已经越来越认识到软件就象所有复杂系统一样要经过一段时间的演化。业务和产品需求随着开发的发展常常发生改变,想找到最终产品的一条直线路径是不可能的。软件过程模型演化软件过程模型 紧迫的市场期限使得难以完成一个完善的软件产品,但可以先提交一个有限的版本以对付竞争或商业的压力
7、;只要核心产品或系统需求能够很好地理解,而产品或系统的细节部分可以进一步定义。软件过程模型演化软件过程模型 演化模型是利用一种迭代的思想方法,它的特征是使软件工程师渐进地开发逐步完善的软件版本。增量模型螺旋模型软件过程模型增量模型分析设计编码测试分析设计编码测试分析设计编码测试增量1增量2增量3软件过程模型增量模型的特点:以功能递增的方式进行软件开发能较快地产生可操作的系统;在每一步递增中,都可以把用户/开发者的经验结合到不断求精的产品中;可改善测试效果和降低软件开发总成本。软件过程模型螺旋模型需求定义评审风险分析工程实现软件过程模型螺旋模型的特点:把软件开过程组成为一个逐步细化的定义周期(螺
8、旋周期)序列,每经历一个周期,系统就得到进一步的细化和完善;本质上,具有上述特征的螺旋是一直运转的直到软件退役。有时这个过程处于睡眠状态,但任何时候出现了改变,过程都会从合适的入口点开始;软件过程模型螺旋模型的特点:紧密围绕开发中的风险问题,用风险分析推动软件设计向深一层扩展、求精;强调持续地判断、确定和修改用户任务目标,并按成本、效益来分析候选的软件产品性质对任务目标的贡献;可结合采用多种软件开发方法,但究竟结合哪一种方法仍由风险分析来决定。软件过程模型形式化方法模型 形式化方法的主要目的是要把软件开发过程建立在严密可行的数学基础之上,从而提高软件质量和软件生产率。事后的或并行的一种辅助手段
9、,用以对系统的性质进行严格的验证;集成到软件开发过程中,希望在严格的形式系统的基础上,实现从需求规约到程序代码的转换和过渡。软件过程管理改进软件过程研究软件过程本质上是为了突出关键过程以改善软件的质量。人们已经得到共识,要提高软件质量必须改进软件过程。软件过程管理改进软件过程软件机构形成一套完整而成熟的软件过程不是一蹴而就的,它需要一个从无序到有序,从特殊到一般,从定性到定量,最后再从静态到动态的历程,或者说软件机构在形成成熟的软件过程之前必须经历一系列的成熟阶段。软件过程管理改进软件过程因此有必要建立一个软件过程成熟度模型来对过程作出一个客观、公正的评价,以促进软件开发组织改进软件过程。软件
10、过程管理软件过程成熟度 指一个特定的软件过程被显式定义、管理、度量、控制和能行的程度。成熟度可以用于指示企业加强其软件过程能力的潜力。当一个企业达到了一定的软件过程成熟级别后,它将通过制定策略、建立标准和确立机构结构使它的软件过程制度化。而制度化又促使企业通过建立基础设施和公司文化来支持相关的方法、实践和过程。从而使之可以持续并维持一个良性循环。软件过程管理不成熟企业的标志:缺乏确定的软件过程和相应的管理和控制;即使给出了软件过程,也不严格的遵循和强制执行;管理是完全被动的,管理者采用的策略是救火式的,即出了事才去解决,解决的时候也难以纵观全局,往往只顾眼前;软件过程管理不成熟企业的标志:由于
11、缺乏有依据的估算,制订软件预算和生产计划时往往跟着感觉走,实际生产时则常常超标;如果强制在预定期限内完成,那么软件的功能和质量肯定是得不到保证;缺乏评价软件产品质量和解决产品缺陷和过程问题的客观基础。软件过程管理成熟企业的标志:具有在企业范围内管理、控制软件开发和维护过程的能力;现有人员和新进人员均了解所遵循的软件过程,且工作活动均按照事先的计划完成;在定义好的软件过程中,所有项目和机构中的角色和责任分明;软件过程管理成熟企业的标志:制定的计划是有效的且与实际的工作进展一致;软件过程在必要时可按照一定规则和程序加以修改;软件过程管理成熟企业的标志:软件产品和过程具有一定的可控性:1.管理者能够
12、监督软件产品的质量和生产过程;2.具有客观的和定量化的措施来判断产品质量并分析产品与生产 过程中的问题;3.计划和预算有章可循,它是基于历史数据的,从而是实际可行 的;4.预算的结果,包括成本、时间表、产品功能和质量等,通常能 够达到;5.有关的参与者完全理解遵循软件过程的价值并认真地遵循之;6.具有支撑软件过程的基础设施,如标准过程库、历史数据库等。软件过程管理软件能力成熟度模型(Capability Maturity Model,CMM)软件能力成熟度模型提美国大学Carnegie Mellon University软件工程研究所出的一套系统、规范的对软件生产过程进行管理的模型,其有效性已
13、为大量实践所证实,并已成为对一个软件企业的生产能力和产品质量进行衡量的事实标准。软件过程管理软件能力成熟度模型(CMM)CMM被用来确定一个机构的软件过程的成熟程度以及指明如何提高该成熟度的参考模型。CMM描述了软件过程从无序到有序、从特殊到一般、从定性管理到定量管理、最终到达可动态优化的成熟过程,给出了该过程中五个成熟阶段的基本特征和应遵循的原则、采取的行动,以帮助软件机构改进其软件过程。软件过程管理CMM的主要作用 CMM可以指导软件机构如何控制软件产品的开发和维护过程,以及如何向成熟的软件工程体系演化,并形成一套良性循环的管理文化。具体说来,一个企业要想改进其生产过程,应该采取如下策略和
14、步骤:确定软件企业当前所处的过程成熟级别;了解对改进软件生产质量和加强生产过程控制起关键作用的因素;将工作重点集中在有限几个关键目标上,有效达到改进机构软件生产过程的效果,进而可持续地改进其软件生产能力。软件过程管理CMM的基本前提软件质量在很大程度上取决于产生软件的软件过程的质量和能力;软件过程是一个可管理、可度量并不断改进的过程;软件过程的质量受到用以支撑它的技术和设施的影响;企业在软件过程中所采用的技术层次应适应于软件过程的成熟度。软件过程管理CMM的基本原理CMM强调连续的软件过程改进。该连续的改进基于多个演化步骤。CMM将这些演化步骤划分成五个级别。这种分级结构的理论依据是软件质量原
15、理。每一级别都包括若干目标。当满足某一目标后,软件过程的相应部分便确定下来。五级成熟度定义了一个标准,用以度量机构的软件过程成熟度和评价其软件过程能力。软件过程管理CMM的基本内容机构和资源的管理:涉及机构本身的责任,人员和其它资源设施。软件工程过程及其管理:涉及软件工程过程,即软件过程的深度、范围和完整性以及如何度量、管理和改进这样的过程。工具和技术:软件工程过程中使用的开发工具和技术。软件过程管理CMM的五个成熟度级别初始级 可重复级:有规章的过程 定义级:标准化、一致的过程 管理级:可预测过程 优化级:可持续改进的过程 软件过程管理CMM的初始级(第一级)成功来源于个人英雄主义而非机构行
16、为,因此它不可重复,更换人员后成功便难以维持。软件过程管理CMM的可重复级(第二级)针对特定软件项目建立管理该项目的策略和实现这些策略的过程。新项目的计划和管理基于类似项目的经验。软件过程能力主要通过管理单个项目的软件生产过程来得到提高和增强。不同的项目可有不同的软件过程,机构应当建立一定的方针和策略以针对具体的项目选择合适的软件生产过程并进行管理。软件过程管理CMM的可重复级(第二级)可重复级的主要特点在于确定了基本的软件生产管理和控制,具体来讲有:结合已有项目的经验和新项目的特点来确定本项目的责任和承诺;软件生产成本、时间表和实现的功能被有效跟踪;识别实现承诺所需解决的关键问题;定义软件项
17、目过程标准,机构要确保其被遵守。软件过程管理CMM的可重复级(第二级)概括来说,第二级的主要特点是项目计划和跟踪是确定且有效的,项目的软件过程是可控的,以及已有的成功经验是可重复的。软件过程管理CMM的定义级(第三级)有一个机构范围内标准的软件过程,软件工程活动和管理活动被集成为一个有机的整体。标准化的目的是使高层管理者和软件技术人员能够有效合作。有一个组例如软件工程组(SEPG)专门负责订立机构的标准软件过程,并且在机构中制定培训计划来确保相关人员和管理者有足够的知识和技能完成标准过程所赋予的角色。标准的软件过程结合具体项目的特点经过裁剪即形成项目定义软件过程,它是一组集成的完善定义的软件工
18、程和管理过程。软件过程管理CMM的定义级(第三级)一个完善定义的软件过程应包括就绪准则、输入、工作过程、验证机制、输出和完成准则。对于已建立的产品生产线,其成本、时间表和实现功能均可跟踪和控制,软件产品的质量可以得到保证。软件过程能力的实现主要基于在机构范围内对一个定义软件过程的活动、角色和责任的共同理解。软件过程管理CMM的定义级(第三级)概括来说,第三级的主要特征在于软件过程已被提升成标准化过程,从而更加具有稳定性、重复性和可控性。软件过程管理CMM的管理级(第四级)软件的过程和产品有定量的质量指标:重要的软件过程活动均配有生产率和质量方面的度量指标;应用数据库来收集和分析定义软件过程中涉
19、及的各种数据;对项目软件过程和软件质量的评价有定量的基准。软件过程管理CMM的管理级(第四级)软件项目的产品和生产过程的控制具有可预测性:将软件过程效能可能出现的偏差控制在可接受的量化界限内;具体区分影响过程效能发生偏差的有效因素和偶然因素;向新领域拓展的风险是可预知的并被仔细管理和权衡。软件过程管理CMM的管理级(第四级)概括来说,第四级的主要特征是定量化、可预测、异常控制和高质量。软件过程管理CMM的优化级(第五级)机构集中于持续的过程改进:具有标识过程缺陷和增强过程能力的有效手段。利用试验数据分析使用新技术所需的代价和带来的效益,然后再有选择地采用。当出现偏差时,软件项目人员能够分析出错
20、原因并采取有效手段防止其再次出现。防止不必要的浪费是第五级的重点。软件过程管理CMM的优化级(第五级)改进的途径有两个,一个是对已有过程的渐进式改进;另一个则是有选择地使用新技术和新方法所带来的革新。概括来说,第五级的主要特征是新技术的采用和软件过程的改进被作为日常的业务活动来加以计划和管理。软件过程管理如何看待CMM:梯子镜子牌子补药软件质量软件质量定义 明确声明的功能和性能需求、明确文档化过的开发标准、以及专业人员开发的软件所应具有的所有隐含特征都得到满足。软件质量软件质量定义软件需求是进行“质量”度量的基础。与需求不符就是质量不高。指定的标准定义了一组指导软件开发的准则。如果不能遵守这些
21、准则,就极有可能导致质量不高。通常有一组“隐含需求”是不被提及的(如对维护性的需求)。如果软件符合了明确的需求却没有满足隐含需求,软件质量仍然值得怀疑。软件质量软件质量质量要素质量要素衡量标准衡量标准衡量标准衡量标准度量度量度量度量度量度量度量度量软件质量McCall模型中的软件质量要素产品修改产品变迁产品运行易维护性灵活性易测试性易移植性易复用性互用性正确性 可靠性 高效率完整性 易使用性软件质量保证 软件质量保证(SQA)是一种应用于整个软件过程的保护性活动。SQA包括:一种质量管理方法有效的软件工程技术(方法和工具)在整个软件过程中采用的正式技术复审一种多层次的测试策略对软件文档及其修改
22、的控制保证遵从软件开发标准的规程度量和报告机制SQA小组 在一个组织中有多个机构负有保证软件质量的责任,包括软件工程师、项目管理者、客户、销售人员和SQA小组成员。SQA小组负责质量保证的计划、监督、记录、分析及报告工作。SQA小组充当客户在公司内部的代表。这就是说,SQA小组的成员必须以客户的观点看待软件。SQA计划 SQA计划为建立软件质量保证提供一张行路图,其由SQA小组和项目组共同制定,充当软件项目中SQA活动的模板。需要进行的评价;需要进行的审计和复审;项目可采用的标准;错误报告和跟踪过程;由SQA小组产生的文挡;为软件项目组提供的反馈数量。SQA活动为项目准备SQA计划;参与开发该
23、项目的软件过程描述;复审各项软件工程活动、对其是否符合定义好的软件过程进行核实;审计指定的软件工作产品、对其是否符合定义好的软件过程中的相应部分进行核实;确保软件工作及工作产品产品中的偏差已被记录在案,并根据预定规程进行处理;记录所有不符合的部分,并报告给高级管理者;协调变化的控制和管理,并帮助收集和分析软件度量信息。软件配置管理当开发软件系统的过程中,变化是不可避免的。这些变化使得在同一个项目中工作的软件开发人员之间的彼此不理解程度更加增大。当变化进行前没有经过分析、变化实现前没有被记录、没有向那些需要知道的人报告变化、或变化没有以可以改善质量及减少错误的方式被控制时,大量的不理解问题将会产
24、生。协调软件开发以减少由变化带来的不理解性到最小程度的技术称为配置管理。软件配置管理(SCM)是贯穿于整个软件过程中的保护性活动。软件配置管理SCM活动内容:标识变化控制变化保证变化被适当地实现向其他可能感兴趣的人报告变化。软件配置管理 明确地区分软件维护和软件配置管理是很重要的:维护是发生在软件已经被交付给客户、并且投入运行后的一系列软件工程活动。软件配置管理则是当软件项目开始时就开始、并且仅仅当软件退出运行后才终止的一组跟踪和控制活动。软件配置 软件过程的输出信息可以分为三个主要的类别:计算机程序(源代码和可执行程序)描述计算机程序的文档(针对技术开发者和用户)数据(包含在程序内部和程序外
25、部)。它们包含了所有在软件过程中产生的信息,总称为软件配置。变化的起源有四种基本的变化源:新的商业或市场条件,引起产品需求和业务规则的变化。新的客户需要,要求修改信息系统产生的数据、产品提供的功能、或基于计算机的系统提供的服务。改组和/或企业规模减小,导致项目优先级或软件工程队伍结构的变化。预算或进度的限制,导致系统或产品的重定义。软件配置项 软件配置项(Software Configuration Items,SCI)定义为部分软件工程过程中创建的信息,在极端情况下,一个SCI可被考虑为某个大的规约中的某个单独段落,或在某个大的测试用例集中的某种测试用例,更实际地,一个SCI是一个文档、一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件过程 软件 过程 PPT 课件
限制150内