软件过程管理和质量课件_第1页
软件过程管理和质量课件_第2页
软件过程管理和质量课件_第3页
软件过程管理和质量课件_第4页
软件过程管理和质量课件_第5页
已阅读5页,还剩367页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件过程、管理和质量李宣东南京大学计算机科学与技术系编辑ppt软件过程、管理和质量编辑ppt1概要软件过程软件质量保证软件配置管理软件项目管理概念编辑ppt概要软件过程编辑ppt2软件过程软件过程是近十年来人们关注的焦点。软件过程是为开发高质量软件所需要完成的任务的框架。软件工程是有创造力、有知识的人在定义好的、成熟的软件过程框架中进行的。编辑ppt软件过程软件过程是近十年来人们关注的3软件过程软件工程层次图质量焦点过程方法工具编辑ppt软件过程软件工程层次图质量焦点过程方法工具编辑ppt4软件过程软件工程是一种层次化的技术任何工程方法(包括软件工程)必须以有组织的质量保证为基础。全面的质量管理和类似的理念刺激了不断的过程改进,正是这种改进导致了更加成熟的软件工程方法的不断出现。支持软件工程的根基就在于对质量的关注。编辑ppt软件过程软件工程是一种层次化的技术编辑ppt5软件过程软件工程的基层是过程层软件工程过程是将技术层结合在一起的凝聚力,使得软件能够被合理地和及时地开发出来。过程定义了一组关键过程区域的框架,这对于软件工程技术的有效应用是必须的。关键过程区域构成了软件项目管理控制的基础,并且确定了上下各区域之间的关系,规定了技术方法的采用、工程产品(模型、文档、数据、报告、表格等)的产生、里程碑的建立、质量的保证及变化的适当管理。编辑ppt软件过程软件工程的基层是过程层编辑ppt6软件过程软件工程的方法层

提供了为开发软件在技术上需要“如何做”。方法涵盖了一系列的任务:需求分析、设计、编程、测试和维护。软件工程方法依赖于一组原则,这些原则控制了每一个技术区域,且包含建模活动和其他描述技术。编辑ppt软件过程软件工程的方法层编辑ppt7软件过程软件工程的工具层

对过程和方法提供了自动的或半自动的支持。当这些工具被集成起来使得一个工具产生的信息可以被另外一个工具使用时,一个支持软件开发的系统就建立了,称为计算机辅助软件工程(CASE)。CASE集成了软件、硬件和一个软件工程数据库(包含了关于分析、设计、编程和测试的重要信息),从而形成了一个软件工程环境。编辑ppt软件过程软件工程的工具层编辑ppt8软件过程过程:为实现一个给定目标而进行的一系列运作步骤。过程具有一系列的性质:时间性、并发性、嵌套性和度量性等。软件过程:开发和维护软件及其相关产品所设及的一系列活动。过程是活动的集合;活动是任务的集合;任务是把输入转换为输出的操作。编辑ppt软件过程过程:为实现一个给定目标而进行的一系列运作步骤。编辑9软件过程

软件过程提供了一个框架,在该框架下可以建立一个软件开发的综合计划:若干框架活动适用于所有软件项目,而不在乎其规模和复杂性。若干不同任务的集合----每一个集合都由任务、里程碑、交付物以及质量保证点组成----使得框架活动适应于不同软件项目的特征和项目组的需求。若干保护性活动----如软件质量保证、软件配置管理、测试与度量----它们贯穿于整个过程模型之中。保护性活动独立于任何一个框架活动,且贯穿于整个过程之中。编辑ppt软件过程软件过程提供了一个框架,在该框架下可10软件过程里程碑、交付物SQA点公共过程框架框架活动保护性活动任务集合工作任务编辑ppt软件过程里程碑、交付物SQA点公共过程框架框架活动保护性活动11软件过程软件过程可分为三大类:基本过程类:是构成软件生存周期主要部分的那些过程,包括获取、供应、开发、操作、维护等过程。支持过程类:可穿插到基本过程中提供支持的一系列过程,包括文档开发、配置管理、质量保证、验证、确认、联合评审、审计、问题解决等过程。组织过程类:一个组织用来建立、实施一种基础结构、并不断改进该基础结构的过程,包括管理、基础、改进、培训等过程。编辑ppt软件过程软件过程可分为三大类:编辑ppt12软件过程模型软件过程模型是软件开发的指导思想和全局性框架,软件过程模型的提出和发展反映了人们对软件过程的某种认识观,体现了人们对软件过程认识的提高和飞跃。编辑ppt软件过程模型软件过程模型是软件开发的指13软件过程模型瀑布模型强调阶段的划分及其顺序性、各阶段工作及其文档的完备性,是一种严格线性的、按阶段顺序的、逐步细化的开发模式。定义分析设计编码测试维护编辑ppt软件过程模型瀑布模型定义分析设计编码测试维护编辑ppt14软件过程模型瀑布模型的特点:结构简单明了;历史较长、应用面广泛、为广大软件工作者所熟悉;已有与之配套的一组十分成熟的开发方法和丰富的支撑工具。确定了需求分析的绝对重要性,但是在实践中要想获得完善的需求说明是非常困难的;反馈信息慢。编辑ppt软件过程模型瀑布模型的特点:编辑ppt15软件过程模型原型模型听取用户意见建造/修改原型用户测试运行原型编辑ppt软件过程模型原型模型听取用户意见建造/修改用户测试编辑ppt16软件过程模型原型模型的特点:原型作为标识软件需求的一种机制,原型被建造仅是为了定义需求,之后就该被抛弃(或至少部分抛弃);实际的软件在充分考虑了质量和可维护性之后才被开发。编辑ppt软件过程模型原型模型的特点:编辑ppt17软件过程模型演化软件过程模型人们已经越来越认识到软件就象所有复杂系统一样要经过一段时间的演化。业务和产品需求随着开发的发展常常发生改变,想找到最终产品的一条直线路径是不可能的。编辑ppt软件过程模型演化软件过程模型编辑ppt18软件过程模型演化软件过程模型紧迫的市场期限使得难以完成一个完善的软件产品,但可以先提交一个有限的版本以对付竞争或商业的压力;只要核心产品或系统需求能够很好地理解,而产品或系统的细节部分可以进一步定义。编辑ppt软件过程模型演化软件过程模型编辑ppt19软件过程模型演化软件过程模型演化模型是利用一种迭代的思想方法,它的特征是使软件工程师渐进地开发逐步完善的软件版本。增量模型螺旋模型编辑ppt软件过程模型演化软件过程模型编辑ppt20软件过程模型增量模型分析设计编码测试分析设计编码测试分析设计编码测试增量1增量2增量3编辑ppt软件过程模型增量模型分析设计编码测试分析设计编码测试分析设计21软件过程模型增量模型的特点:以功能递增的方式进行软件开发能较快地产生可操作的系统;在每一步递增中,都可以把用户/开发者的经验结合到不断求精的产品中;可改善测试效果和降低软件开发总成本。编辑ppt软件过程模型增量模型的特点:编辑ppt22软件过程模型螺旋模型需求定义评审风险分析工程实现编辑ppt软件过程模型螺旋模型需求定义评审风险分析工程实现编辑ppt23软件过程模型螺旋模型的特点:把软件开过程组成为一个逐步细化的定义周期(螺旋周期)序列,每经历一个周期,系统就得到进一步的细化和完善;本质上,具有上述特征的螺旋是一直运转的直到软件退役。有时这个过程处于睡眠状态,但任何时候出现了改变,过程都会从合适的入口点开始;编辑ppt软件过程模型螺旋模型的特点:编辑ppt24软件过程模型螺旋模型的特点:紧密围绕开发中的风险问题,用风险分析推动软件设计向深一层扩展、求精;强调持续地判断、确定和修改用户任务目标,并按成本、效益来分析候选的软件产品性质对任务目标的贡献;可结合采用多种软件开发方法,但究竟结合哪一种方法仍由风险分析来决定。编辑ppt软件过程模型螺旋模型的特点:编辑ppt25软件过程模型形式化方法模型形式化方法的主要目的是要把软件开发过程建立在严密可行的数学基础之上,从而提高软件质量和软件生产率。事后的或并行的一种辅助手段,用以对系统的性质进行严格的验证;集成到软件开发过程中,希望在严格的形式系统的基础上,实现从需求规约到程序代码的转换和过渡。编辑ppt软件过程模型形式化方法模型编辑ppt26软件过程管理改进软件过程研究软件过程本质上是为了突出关键过程以改善软件的质量。人们已经得到共识,要提高软件质量必须改进软件过程。编辑ppt软件过程管理改进软件过程编辑ppt27软件过程管理改进软件过程软件机构形成一套完整而成熟的软件过程不是一蹴而就的,它需要一个从无序到有序,从特殊到一般,从定性到定量,最后再从静态到动态的历程,或者说软件机构在形成成熟的软件过程之前必须经历一系列的成熟阶段。编辑ppt软件过程管理改进软件过程编辑ppt28软件过程管理改进软件过程因此有必要建立一个软件过程成熟度模型来对过程作出一个客观、公正的评价,以促进软件开发组织改进软件过程。编辑ppt软件过程管理改进软件过程编辑ppt29软件过程管理软件过程成熟度指一个特定的软件过程被显式定义、管理、度量、控制和能行的程度。成熟度可以用于指示企业加强其软件过程能力的潜力。当一个企业达到了一定的软件过程成熟级别后,它将通过制定策略、建立标准和确立机构结构使它的软件过程制度化。而制度化又促使企业通过建立基础设施和公司文化来支持相关的方法、实践和过程。从而使之可以持续并维持一个良性循环。编辑ppt软件过程管理软件过程成熟度编辑ppt30软件过程管理不成熟企业的标志:缺乏确定的软件过程和相应的管理和控制;即使给出了软件过程,也不严格的遵循和强制执行;管理是完全被动的,管理者采用的策略是救火式的,即出了事才去解决,解决的时候也难以纵观全局,往往只顾眼前;编辑ppt软件过程管理不成熟企业的标志:编辑ppt31软件过程管理不成熟企业的标志:由于缺乏有依据的估算,制订软件预算和生产计划时往往跟着感觉走,实际生产时则常常超标;如果强制在预定期限内完成,那么软件的功能和质量肯定是得不到保证;缺乏评价软件产品质量和解决产品缺陷和过程问题的客观基础。编辑ppt软件过程管理不成熟企业的标志:编辑ppt32软件过程管理成熟企业的标志:具有在企业范围内管理、控制软件开发和维护过程的能力;现有人员和新进人员均了解所遵循的软件过程,且工作活动均按照事先的计划完成;在定义好的软件过程中,所有项目和机构中的角色和责任分明;编辑ppt软件过程管理成熟企业的标志:编辑ppt33软件过程管理成熟企业的标志:制定的计划是有效的且与实际的工作进展一致;软件过程在必要时可按照一定规则和程序加以修改;编辑ppt软件过程管理成熟企业的标志:编辑ppt34软件过程管理成熟企业的标志:软件产品和过程具有一定的可控性:1.管理者能够监督软件产品的质量和生产过程;2.具有客观的和定量化的措施来判断产品质量并分析产品与生产过程中的问题;3.计划和预算有章可循,它是基于历史数据的,从而是实际可行的;4.预算的结果,包括成本、时间表、产品功能和质量等,通常能够达到;5.有关的参与者完全理解遵循软件过程的价值并认真地遵循之;6.具有支撑软件过程的基础设施,如标准过程库、历史数据库等。

编辑ppt软件过程管理成熟企业的标志:编辑ppt35软件过程管理软件能力成熟度模型(CapabilityMaturityModel,CMM)软件能力成熟度模型提美国大学CarnegieMellonUniversity软件工程研究所出的一套系统、规范的对软件生产过程进行管理的模型,其有效性已为大量实践所证实,并已成为对一个软件企业的生产能力和产品质量进行衡量的事实标准。编辑ppt软件过程管理软件能力成熟度模型编辑ppt36软件过程管理软件能力成熟度模型(CMM)CMM被用来确定一个机构的软件过程的成熟程度以及指明如何提高该成熟度的参考模型。CMM描述了软件过程从无序到有序、从特殊到一般、从定性管理到定量管理、最终到达可动态优化的成熟过程,给出了该过程中五个成熟阶段的基本特征和应遵循的原则、采取的行动,以帮助软件机构改进其软件过程。编辑ppt软件过程管理软件能力成熟度模型(CMM)编辑ppt37软件过程管理CMM的主要作用

CMM可以指导软件机构如何控制软件产品的开发和维护过程,以及如何向成熟的软件工程体系演化,并形成一套良性循环的管理文化。具体说来,一个企业要想改进其生产过程,应该采取如下策略和步骤:确定软件企业当前所处的过程成熟级别;了解对改进软件生产质量和加强生产过程控制起关键作用的因素;将工作重点集中在有限几个关键目标上,有效达到改进机构软件生产过程的效果,进而可持续地改进其软件生产能力。

编辑ppt软件过程管理CMM的主要作用编辑ppt38软件过程管理CMM的基本前提软件质量在很大程度上取决于产生软件的软件过程的质量和能力;软件过程是一个可管理、可度量并不断改进的过程;软件过程的质量受到用以支撑它的技术和设施的影响;企业在软件过程中所采用的技术层次应适应于软件过程的成熟度。编辑ppt软件过程管理CMM的基本前提编辑ppt39软件过程管理CMM的基本原理CMM强调连续的软件过程改进。该连续的改进基于多个演化步骤。CMM将这些演化步骤划分成五个级别。这种分级结构的理论依据是软件质量原理。每一级别都包括若干目标。当满足某一目标后,软件过程的相应部分便确定下来。五级成熟度定义了一个标准,用以度量机构的软件过程成熟度和评价其软件过程能力。

编辑ppt软件过程管理CMM的基本原理编辑ppt40软件过程管理CMM的基本内容机构和资源的管理:涉及机构本身的责任,人员和其它资源设施。软件工程过程及其管理:涉及软件工程过程,即软件过程的深度、范围和完整性以及如何度量、管理和改进这样的过程。工具和技术:软件工程过程中使用的开发工具和技术。编辑ppt软件过程管理CMM的基本内容编辑ppt41软件过程管理CMM的五个成熟度级别初始级可重复级:有规章的过程定义级:标准化、一致的过程管理级:可预测过程优化级:可持续改进的过程编辑ppt软件过程管理CMM的五个成熟度级别编辑ppt42软件过程管理CMM的初始级(第一级)成功来源于个人英雄主义而非机构行为,因此它不可重复,更换人员后成功便难以维持。编辑ppt软件过程管理CMM的初始级(第一级)编辑ppt43软件过程管理CMM的可重复级(第二级)针对特定软件项目建立管理该项目的策略和实现这些策略的过程。新项目的计划和管理基于类似项目的经验。软件过程能力主要通过管理单个项目的软件生产过程来得到提高和增强。不同的项目可有不同的软件过程,机构应当建立一定的方针和策略以针对具体的项目选择合适的软件生产过程并进行管理。编辑ppt软件过程管理CMM的可重复级(第二级)编辑ppt44软件过程管理CMM的可重复级(第二级)

可重复级的主要特点在于确定了基本的软件生产管理和控制,具体来讲有:结合已有项目的经验和新项目的特点来确定本项目的责任和承诺;软件生产成本、时间表和实现的功能被有效跟踪;识别实现承诺所需解决的关键问题;定义软件项目过程标准,机构要确保其被遵守。

编辑ppt软件过程管理CMM的可重复级(第二级)编辑ppt45软件过程管理CMM的可重复级(第二级)概括来说,第二级的主要特点是项目计划和跟踪是确定且有效的,项目的软件过程是可控的,以及已有的成功经验是可重复的。编辑ppt软件过程管理CMM的可重复级(第二级)编辑ppt46软件过程管理CMM的定义级(第三级)有一个机构范围内标准的软件过程,软件工程活动和管理活动被集成为一个有机的整体。标准化的目的是使高层管理者和软件技术人员能够有效合作。有一个组例如软件工程组(SEPG)专门负责订立机构的标准软件过程,并且在机构中制定培训计划来确保相关人员和管理者有足够的知识和技能完成标准过程所赋予的角色。标准的软件过程结合具体项目的特点经过裁剪即形成项目定义软件过程,它是一组集成的完善定义的软件工程和管理过程。

编辑ppt软件过程管理CMM的定义级(第三级)编辑ppt47软件过程管理CMM的定义级(第三级)一个完善定义的软件过程应包括就绪准则、输入、工作过程、验证机制、输出和完成准则。对于已建立的产品生产线,其成本、时间表和实现功能均可跟踪和控制,软件产品的质量可以得到保证。软件过程能力的实现主要基于在机构范围内对一个定义软件过程的活动、角色和责任的共同理解。

编辑ppt软件过程管理CMM的定义级(第三级)编辑ppt48软件过程管理CMM的定义级(第三级)概括来说,第三级的主要特征在于软件过程已被提升成标准化过程,从而更加具有稳定性、重复性和可控性。编辑ppt软件过程管理CMM的定义级(第三级)编辑ppt49软件过程管理CMM的管理级(第四级)软件的过程和产品有定量的质量指标:重要的软件过程活动均配有生产率和质量方面的度量指标;应用数据库来收集和分析定义软件过程中涉及的各种数据;对项目软件过程和软件质量的评价有定量的基准。编辑ppt软件过程管理CMM的管理级(第四级)编辑ppt50软件过程管理CMM的管理级(第四级)软件项目的产品和生产过程的控制具有可预测性:将软件过程效能可能出现的偏差控制在可接受的量化界限内;具体区分影响过程效能发生偏差的有效因素和偶然因素;向新领域拓展的风险是可预知的并被仔细管理和权衡。编辑ppt软件过程管理CMM的管理级(第四级)编辑ppt51软件过程管理CMM的管理级(第四级)概括来说,第四级的主要特征是定量化、可预测、异常控制和高质量。编辑ppt软件过程管理CMM的管理级(第四级)编辑ppt52软件过程管理CMM的优化级(第五级)机构集中于持续的过程改进:具有标识过程缺陷和增强过程能力的有效手段。利用试验数据分析使用新技术所需的代价和带来的效益,然后再有选择地采用。当出现偏差时,软件项目人员能够分析出错原因并采取有效手段防止其再次出现。防止不必要的浪费是第五级的重点。

编辑ppt软件过程管理CMM的优化级(第五级)编辑ppt53软件过程管理CMM的优化级(第五级)改进的途径有两个,一个是对已有过程的渐进式改进;另一个则是有选择地使用新技术和新方法所带来的革新。概括来说,第五级的主要特征是新技术的采用和软件过程的改进被作为日常的业务活动来加以计划和管理。编辑ppt软件过程管理CMM的优化级(第五级)编辑ppt54软件过程管理如何看待CMM:梯子镜子牌子补药编辑ppt软件过程管理如何看待CMM:编辑ppt55软件质量软件质量定义明确声明的功能和性能需求、明确文档化过的开发标准、以及专业人员开发的软件所应具有的所有隐含特征都得到满足。编辑ppt软件质量软件质量定义编辑ppt56软件质量软件质量定义软件需求是进行“质量”度量的基础。与需求不符就是质量不高。指定的标准定义了一组指导软件开发的准则。如果不能遵守这些准则,就极有可能导致质量不高。通常有一组“隐含需求”是不被提及的(如对维护性的需求)。如果软件符合了明确的需求却没有满足隐含需求,软件质量仍然值得怀疑。编辑ppt软件质量软件质量定义编辑ppt57软件质量软件质量质量要素质量要素衡量标准衡量标准衡量标准衡量标准度量度量度量度量度量度量度量度量编辑ppt软件质量软件质量质量要素质量要素衡量标准衡量标准衡量标准衡量58软件质量McCall模型中的软件质量要素产品修改产品变迁产品运行易维护性灵活性易测试性易移植性易复用性互用性正确性可靠性高效率完整性易使用性编辑ppt软件质量McCall模型中的软件质量要素产品产品产品易维护性59软件质量保证

软件质量保证(SQA)是一种应用于整个软件过程的保护性活动。SQA包括:一种质量管理方法有效的软件工程技术(方法和工具)在整个软件过程中采用的正式技术复审一种多层次的测试策略对软件文档及其修改的控制保证遵从软件开发标准的规程度量和报告机制编辑ppt软件质量保证软件质量保证(SQA)是一种60SQA小组在一个组织中有多个机构负有保证软件质量的责任,包括软件工程师、项目管理者、客户、销售人员和SQA小组成员。SQA小组负责质量保证的计划、监督、记录、分析及报告工作。SQA小组充当客户在公司内部的代表。这就是说,SQA小组的成员必须以客户的观点看待软件。编辑pptSQA小组在一个组织中有多个机构负有保证软件质量的责任,包61SQA计划

SQA计划为建立软件质量保证提供一张行路图,其由SQA小组和项目组共同制定,充当软件项目中SQA活动的模板。需要进行的评价;需要进行的审计和复审;项目可采用的标准;错误报告和跟踪过程;由SQA小组产生的文挡;为软件项目组提供的反馈数量。编辑pptSQA计划SQA计划为建立软件质量保证62SQA活动为项目准备SQA计划;参与开发该项目的软件过程描述;复审各项软件工程活动、对其是否符合定义好的软件过程进行核实;审计指定的软件工作产品、对其是否符合定义好的软件过程中的相应部分进行核实;确保软件工作及工作产品产品中的偏差已被记录在案,并根据预定规程进行处理;记录所有不符合的部分,并报告给高级管理者;协调变化的控制和管理,并帮助收集和分析软件度量信息。编辑pptSQA活动为项目准备SQA计划;编辑ppt63软件配置管理当开发软件系统的过程中,变化是不可避免的。这些变化使得在同一个项目中工作的软件开发人员之间的彼此不理解程度更加增大。当变化进行前没有经过分析、变化实现前没有被记录、没有向那些需要知道的人报告变化、或变化没有以可以改善质量及减少错误的方式被控制时,大量的不理解问题将会产生。协调软件开发以减少由变化带来的不理解性到最小程度的技术称为配置管理。软件配置管理(SCM)是贯穿于整个软件过程中的保护性活动。编辑ppt软件配置管理当开发软件系统的过程中,变化是不可避免的。这些变64软件配置管理SCM活动内容:标识变化控制变化保证变化被适当地实现向其他可能感兴趣的人报告变化。编辑ppt软件配置管理SCM活动内容:编辑ppt65软件配置管理明确地区分软件维护和软件配置管理是很重要的:维护是发生在软件已经被交付给客户、并且投入运行后的一系列软件工程活动。软件配置管理则是当软件项目开始时就开始、并且仅仅当软件退出运行后才终止的一组跟踪和控制活动。编辑ppt软件配置管理明确地区分软件维护和软件配置管理66软件配置软件过程的输出信息可以分为三个主要的类别:计算机程序(源代码和可执行程序)描述计算机程序的文档(针对技术开发者和用户)数据(包含在程序内部和程序外部)。

它们包含了所有在软件过程中产生的信息,总称为软件配置。编辑ppt软件配置软件过程的输出信息可以分为三个67变化的起源有四种基本的变化源:新的商业或市场条件,引起产品需求和业务规则的变化。新的客户需要,要求修改信息系统产生的数据、产品提供的功能、或基于计算机的系统提供的服务。改组和/或企业规模减小,导致项目优先级或软件工程队伍结构的变化。预算或进度的限制,导致系统或产品的重定义。编辑ppt变化的起源有四种基本的变化源:编辑ppt68软件配置项软件配置项(SoftwareConfigurationItems,SCI)定义为部分软件工程过程中创建的信息,在极端情况下,一个SCI可被考虑为某个大的规约中的某个单独段落,或在某个大的测试用例集中的某种测试用例,更实际地,一个SCI是一个文档、一个全套的测试用例、或一个已命名的程序构件(例如,C++函数或Ada95软件包)。编辑ppt软件配置项软件配置项(Softwar69基线基线是一个软件配置管理的概念,它帮助我们在不严重阻碍合理变化的情况下来控制变化。IEEE(IEEEStd.610.12-1990)定义基线如下:已经通过正式复审审核批准的某规约或产品,它因此可以作为进一步开发的基础,并且只能通过正式的变化控制过程而改变。编辑ppt基线基线是一个软件配置管理的概念,它帮助我们在不严重70基线在软件配置项变成基线前,变化可以迅速而非正式地进行,然而,一旦基线已经建立,我们就得象通过一个单向开的门那样,变化可以进行,但是,必须应用特定的、正式的规程来评估和验证每个变化。在软件工程的范围内,基线是软件开发中的里程碑,其标志是有一个或多个软件配置项的交付,且这些SCI已经经过正式技术复审而获得认可。编辑ppt基线在软件配置项变成基线前,变化可以迅速而非正式地进71常见的软件基线系统工程需求定义软件设计编码测试发布系统规约软件需求规约设计规约源代码测试计划/过程/数据可操作的系统编辑ppt常见的软件基线系统工程需求定义软件设计编码测72产生基线的流程SCIsSCIsSCIsSCIsSCIs正式技术复审SCM控制软件工程任务修改认可提取存储项目数据库编辑ppt产生基线的流程SCIsSCIsSCIsSCIsSCIs正式S73成为基线的SCIs系统规约软件项目计划软件需求规约图形分析模型;处理规约;原型;数学规约初步的用户手册编辑ppt成为基线的SCIs系统规约编辑ppt74成为基线的SCIs设计规约

数据设计描述;体系结构设计描述;模块设计描述;界面设计描述;对象描述(如果使用面向对象技术)源代码清单测试规约测试计划和过程;测试用例和结果记录操作和安装手册编辑ppt成为基线的SCIs设计规约编辑ppt75成为基线的SCIs可执行程序模块的可执行代码;链接的模块数据库描述模式和文件结构;初始内容联机用户手册维护文档软件问题报告;维护请求;工程变化命令软件工程的标准和规约编辑ppt成为基线的SCIs可执行程序编辑ppt76成为基线的SCIs除了上面列出的SCI,很多软件工程组织也将软件工具列入配置管理之下,即,特定版本的编辑器、编译器和其他CASE工具被“固定”作为软件配置的一部分。因为这些工具被用于生成文档。源代码和数据,所以当对软件配置进行改变时,必然要用到它们。虽然问题并不多见,但有可能某工具的新版本(如,编译器)可能产生和原版本不同的结果。为此,工具就象它们辅助生产的软件一样,可以被基线化,并做为综合的配置管理过程的一部分。编辑ppt成为基线的SCIs除了上面列出的SCI,很多软件工程组织也将77SCM过程软件配置管理是软件质量保证的重要一环,其主要责任是控制变化。然而,SCM也负责个体SCI和软件的各种版本的标识、软件配置的审计(以保证它已被适当地开发)、以及配置中所有变化的报告。编辑pptSCM过程软件配置管理是软件质量保证的重要一78SCM过程任何关于SCM的讨论均涉及一系列复杂问题:一个组织如何标识和管理程序(及其文档)的很多现存版本,以使得变化可以高效地进行?一个组织如何在软件被发布给客户之前和之后控制变化?谁负责批准变化,并给变化确定优先级?我们如何保证变化已经被恰当地进行?采用什么机制去告知其他人员已经实行的变化?编辑pptSCM过程任何关于SCM的讨论均涉及一系列复杂问题:编辑pp79SCM过程SCM五大任务:标识版本控制变化控制配置审计报告。编辑pptSCM过程SCM五大任务:编辑ppt80SCM中对象的标识为了控制和管理软件配置项,每个配置项必须被独立命名,然后用面向对象的方法组织。有两种类型的对象可以被标识:基本对象和聚集对象。基本对象是软件工程师在分析、设计、编码或测试中创建的“文本单元(unitoftext)”,例如,一个基本对象可能是需求规约的一个段落、模块的源程序清单或一组用于测试代码的测试用例。一个聚集对象是基本对象和其他聚集对象的集合。编辑pptSCM中对象的标识为了控制和管理软件配置项,每个配置项必须被81SCM中对象的标识每个对象均具有一组唯一地标识它的、独特的特征:名字、描述、资源表、以及“现实”。对象名是无二义性地标识对象的一个字符串;对象描述是一个数据项的列表,它们标识:该对象所表示的SCI类型(如,文档、程序、数据);项目标识符;以及变化和/或版本信息;资源是由对象提供、处理、引用或需要的实体,例如,数据类型、特定函数、或甚至变量名也可以作为对象资源;现实是一个指针,对基本对象而言指向“文本单元”,对聚集对象而言则指向null。编辑pptSCM中对象的标识每个对象均具有一组唯一地标识它的、独特的特82SCM中对象的标识配置对象的标识也必须考虑存在于命名对象之间的关系,一个对象可被标识为某聚集对象的<part-of>,关系<part-of>定义了一个对象层次。对于软件对象的标识模式必须认可对象在整个软件过程中的演化,在一个对象被确定为基线前,它可能会变化很多次,甚至在基线已经建立后,变化也可能经常发生。有可能为任意对象创建一个演化图,演化图描速了对象的变化历史。编辑pptSCM中对象的标识配置对象的标识也必须考虑存在于命名对象之间83SCM中对象的标识obj1.0obj1.1obj1.2obj1.3obj1.4obj2.0obj2.1obj1.1.1Obj1.1.2对象演化图编辑pptSCM中对象的标识objobjobjobjobjobjobj84SCM中的版本控制版本控制结合了规程和工具以管理在软件工程中所创建的配置对象的不同版本。SCM中的版本控制可以描述如下:配置管理使得用户能够通过对适当版本的选择来指定可选的软件系统的配置,这一点的实现是通过将属性关联到每个软件版本上,然后通过描述一组所期望的属性来指定(和构造)配置的。编辑pptSCM中的版本控制版本控制结合了规程和工具以管理在软件工程中85SCM中的变化控制对于大型的软件开发项目,无控制的变化将迅速导致混乱,SCM变化控制结合人的规程和自动化工具以提供一个变化控制的机制。编辑pptSCM中的变化控制对于大型的软件开发86SCM中的变化控制一个变化请求被提交和评估,以评价技术指标、潜在副作用、对其他配置对象和系统功能的整体影响、以及对于变化的成本预测。评估的结果以变化报告的形式给出,该报告被变化控制审核者(changecontrolauthority,CCA)----对变化的状态及优先级作最终决策的人或小组----使用。对每个被批准的变化生成一个过程变化命令(engineeringchangeorder,ECO),ECO描述了将要进行的变化、必须注意的约束、以及复审和审计的标准。将被修改的对象从项目数据库“提取(checkout)”出来,进行修改,并应用于合适的SQA活动,然后,将对象“提交(checkin)”进数据库,并使用合适的版本控制机制去建立软件的下一个版本。编辑pptSCM中的变化控制一个变化请求被提交和评估,以评价技术指标、87SCM中的变化控制“提交”和“提取”过程实现了两个主要的变化控制要素----访问控制和同步控制:访问控制管理哪个软件工程师有权限去访问和修改某特定的配置对象。同步控制帮助保证由两个不同人员完成的并行修改不会互相覆盖。编辑pptSCM中的变化控制“提交”和“提取”过88SCM中的变化控制基于一个被批准的变化请求和ECO,软件工程师提取出配置对象,访问控制功能保证该软件工程师有权限提取该对象,而同步控制对项目数据库中的该对象加锁,使得当前提取出的版本在被放回以前不能对它作任何其他修改。注意,可以提取出其他的备份,但是,不能进行其他修改。编辑pptSCM中的变化控制基于一个被批准的变化89SCM中的变化控制非正式变化控制:

在SCI变成基线以前,只需要进行非正式的变化控制。配置对象(SCI)的开发者可以进行任何被管理和技术需求证明是合适的修改(只要修改不会影响到在开发者工作范围之外的更广的系统需求),一旦对象已经经过正式的技术复审并已被认可,则创建了一个基线。编辑pptSCM中的变化控制非正式变化控制:编辑ppt90SCM中的变化控制项目级变化控制:

一旦SCI变成基线,则项目级的变化控制就开始实施了。这时,为了进行修改,开发者必须获得项目管理者的批准(如果变化是“局部的”),或CCA的批准(如果该变化影响到其他SCI)。在某些情况下,变化需求、变化报告和ECO的正式生成可以省略,然而,需要管理对每个变化的评价,并对所有变化进行跟踪和复审。编辑pptSCM中的变化控制项目级变化控制:编辑ppt91SCM中的变化控制正式的变化控制:

当软件产品发布给客户时,正式的变化控制就开始实施了编辑pptSCM中的变化控制正式的变化控制:编辑ppt92SCM中的变化控制变化控制审核者(CCA)在第二和第三层控制上扮演了活跃的角色,依赖于软件项目的规模和性质,CCA可能包含一个人----项目管理者----或一组人(如,来自软件、硬件、数据库工程、支持、市场等五方面的代表)。CCA的角色是从全局的观点来评估变化对SCI之外的事务的影响:变化将如何影响硬件?变化将如何影响性能?变化将如何改变客户对产品的感觉?变化将如何影响产品的质量和可靠性?这些和很多其他的问题需被CCA处理。编辑pptSCM中的变化控制变化控制审核者(CC93SCM中的配置审计标识、版本控制和变化控制帮助软件开发者维持秩序,否则情况可能将是混乱和不固定的。然而,即使最成功的控制机制也只能在ECO产生后才可以跟踪变化。我们如何帮助变化被合适的实现呢?回答是两方面的:(1)正式的技术复审;(2)软件配置审计。编辑pptSCM中的配置审计标识、版本控制和变化控制帮94SCM中的配置审计正式的技术复审关注已经被修改的配置对象的技术正确性,复审者评估SCI以确定它与其他SCI的一致性、遗漏、及潜在的副作用,正式的复审应该对所有的变化进行,除了那些最琐碎的变化之外。编辑pptSCM中的配置审计正式的技术复审关注已经被修95SCM中的配置审计

软件配置审计通过评估配置对象的通常不在复审中考虑的特征,而形成正式复审的补充。审计询问并回答如下问题:在ECO中说明的变化已经完成了吗?加入了任意附加的修改吗?是否已经进行了正式的技术复审,以评估技术的正确性?是否适当地遵循了软件工程标准?变化在SCI中被“显著地强调(highlighted)”了吗?是否指出了变化的日期和变化的作者?配置对象的属性反应了变化吗?是否遵循了标注变化、记录变化并报告变化的SCM规程?所有相关的SCI被适当修改了吗?在某些情况下,审计问题被作为正式的技术复审的一部分而询问,然而,当SCM是一个正式的活动时,SCM审计由质量保证组单独进行。编辑pptSCM中的配置审计软件配置审计通过评估配96SCM中的状态报告配置状态报告(Configurationstatusreporting,有时称为statusaccounting)是一个SCM任务,它回答下列问题:发生了什么事?谁做的此事?此事是什么时候发生的?将影响别的什么吗?编辑pptSCM中的状态报告配置状态报告(Con97SCM中的状态报告配置状态报告(CSR)的信息流如下:每次当一个SCI被赋上新的和修改后的标识时,则一个CSR条目被创建;每次当一个变化被CCA批准时(即,一个ECO产生),一个CSR条目被创建;每次当配置审计进行时,其结果作为CSR任务的一部分被报告。CSR的输出可以放置到一个联机数据库中,使得软件开发者或维护者可以通过关键词分类访问变化信息。此外,CSR报告被定期生成,并允许管理者和开发者评估重要的变化。编辑pptSCM中的状态报告配置状态报告(CSR)的信息流如下:编辑p98SCM中的状态报告配置状况报告在大型软件开发项目的成功中扮演了重要角色,当涉及到很多人员时,有可能会发生“左手不知道右手在做什么”的综合症:两个开发者可能试图以不同的或冲突的意图去修改同一个SCI;软件工程队伍可能花费几个月的工作量针对过时的硬件规约建造软件;能认识到被建议的修改有严重副作用的人并不知道该修改已经进行。CSR通过改善所有相关人员之间的通信,帮助排除这些问题。编辑pptSCM中的状态报告配置状况报告在大型软件开99SCM标准在过去20年中,已经提出了一系列的软件配置管理标准。很多早期的SCM标准,如MIL-STD-483、DOD-STD-480A、和MIL-STD—1521A,主要用于为军事用途而开发的软件。然而,最近的ANSI/IEEE标准,如ANSI/IEEEStd.No.828-1983,No.1042-1987,和Std.No.1028-1988,可应用于商业软件,并被向大型的和小型的软件工程组织推荐。编辑pptSCM标准在过去20年中,已经提出了100软件项目管理项目管理的基本概念软件项目估算风险管理项目进度安排及跟踪编辑ppt软件项目管理项目管理的基本概念编辑ppt101软件项目管理软件项目管理是软件工程的保护性活动,它先于任何技术活动之前开始,并且持续贯穿于整个计算机软件的定义、开发和维护之中。编辑ppt软件项目管理软件项目管理是软件工程的保102项目管理的范围有效的项目管理集中于三个P上:人员(people)问题(problem)过程(process)其顺序不是任意的。任何管理者如果忘记了软件工程是人的智力密集的劳动,他就永远不可能在项目管理上取得成功;任何管理者如果在项目开发早期没有支持有效的用户通信,他有可能为错误的问题构造一个不错的解决方案。最后,对过程不在意的管理者可能冒把有效的技术和工具插入到真空中的危险。编辑ppt项目管理的范围有效的项目管理集中于三个P上:编辑ppt103项目管理的人员项目参与者项目负责人软件项目组编辑ppt项目管理的人员项目参与者编辑ppt104项目参与者高级管理者:负责确定商业问题,这些问题往往对项目产生很大影响。项目(技术)管理者:必须计划、激励、组织和控制软件开发人员。开发人员:负责开发一个产品或应用软件所需的专门技术人员。客户:负责说明待开发软件的需求的人员。最终用户:一旦软件发布成为产品,最终用户是直接与软件进行交互的人。编辑ppt项目参与者高级管理者:负责确定商业问题,这些问题往往对项目产105项目负责人解决问题:一个有效的软件项目负责人应该能够准确地诊断出技术的和管理的问题;系统地计划解决方案;适当地激励其他开发人员实现解决方案;把从以前的项目中学到的经验应用到新的环境下;如果最初的解决方案没有结果,能够灵活地改变方向。管理能力:一个好的项目负责人必须掌管整个项目,他在必要时必须有信心进行控制,必须保证让优秀的技术人员能够按照他们的本性行事。编辑ppt项目负责人解决问题:一个有效的软件项目负责人应该能够准确地诊106项目负责人激励能力:为了提高项目组的生产率,项目负责人必须奖励具有主动性和作出成绩的人。并通过自己的行为表明约束下的冒险不会受到惩罚。理解和控制能力:一个有效的项目负责人必须能够“读懂”人;他必须能够理解语言的和非语言的信号,并对发出这些信号的人的要求做出反应。项目负责人必须在高压力环境下保持良好的控制能力。编辑ppt项目负责人激励能力:为了提高项目组的生产率,项目负责人必须奖107软件项目组项目分配人力资源的若干可选方案,设该项目需要n个人工作k年:n个人被分配来完成m个不同的功能任务,相对而言几乎没有合作的情况发生;协调是软件管理者的责任,而他可能同时还有六个其他项目要管。n个人被分配来完成m个不同的功能任务(m<n),建立非正式的小组;指定一个专门的小组负责人;小组之间的协调由软件管理者负责。n个人被分成t个小组;每一个小组完成一个或多个功能任务;每一个小组有一个特定的结构,该结构是为同一个项目的所有小组定义的;协调工作由小组和软件项目管理者共同控制。编辑ppt软件项目组项目分配人力资源的若干可选方案,设该项目需108软件项目组软件工程小组的组织方式:民主分权式(DemocraticDecentralized,DD):这种软件工程小组没有固定的负责人。任务协调者是短期指定的,之后就由其他协调不同任务的人取代。问题和解决方法的确定是由小组讨论决策的。控制分权式(ControlledDecentralized,CD):这种软件工程小组有一个固定的负责人,他协调特定的任务及负责子任务的二级负责人关系。问题解决仍是一个群体活动,但解决方案的实现是有小组负责人在子组之间进行划分的。子组和个人间的通信是平行的,但也会发生沿着控制层产生的上下级的通信。控制集权式(ControlledCentralized,CC):顶层的问题解决和内部小组协调是由小组负责人管理的。负责人和小组成员之间的通信是上下级式的。编辑ppt软件项目组软件工程小组的组织方式:编辑ppt109软件项目组计划软件工程小组结构时应该考虑的因素:待解决问题的困难程度;要生成的程序的规模,以代码行或功能点来衡量;小组成员需要待在一起的时间(小组生命期);问题能够被模块化的程度;待开发系统所要求的质量和可靠性;交付日期的严格程度;项目所需要的社交性(通信)的程度。编辑ppt软件项目组计划软件工程小组结构时应该考虑的因素:编辑ppt110软件项目组因为集中式的结构能够更快地完成任务,因此最适合处理简单问题。而分散式的小组比起个人而言能够产生更多更好的解决方案,因此这种小组在处理复杂问题时成功的可能性更大。因为CD小组是集中式地解决问题,所以CD或CC小组结构能够成功地用来解决简单的问题。而DD结构则适合于解决难度较大的问题。因为小组的性能与必须进行的通信量成反比,所以如果子组很容易协调的话,很大的项目最好采用CC或CD结构的小组组织方式。编辑ppt软件项目组因为集中式的结构能够更快地完成任务,因此最适合处理111软件项目组DD小组结构最适合于解决模块化程度较低的问题,因为它需要更多的通信。如果有可能要较高的模块化程度,则CC或CD结构更加合适。CC和CD小组已被发现能够产生比DD小组更少的缺陷,但这与小组所采用的质量保证活动密切相关。分散式结构通常需要比集中式结构更多的时间来完成一个项目,但是如果要求高社交性,它是最合适的。编辑ppt软件项目组DD小组结构最适合于解决模块化程度较低的问题,因为112软件项目组软件工程小组的组织范型:封闭式范型:按照传统的权利层次来组织小组(类似CC小组)。这种小组在开发与过去已经做过的产品类似的软件时十分有效,但这种封闭式范型下难以进行创新式的工作。随机式范型:松散地组织小组,并依赖于小组成员个人的主动性。当需要创新或技术上的突破时,按照这种随机式范型组织的小组很有优势。但当需要“有次序的执行”才能完成工作时,这种小组组织范型就会陷入困境。编辑ppt软件项目组软件工程小组的组织范型:编辑ppt113软件项目组软件工程小组的组织范型:开放式范型:试图以一种既具有封闭式范型的控制性、又包含随机式范型的创新性的方式来组织小组。工作的执行结合了大量的通信和基于小组一致意见的决策。开放式范型小组结构特别适合于解决复杂问题,但可能不象其他类型小组那么效率高。同步式范型:依赖于问题的自然划分,组织小组成员各自解决问题的片段,他们之间没有什么主动的通信需求。编辑ppt软件项目组软件工程小组的组织范型:编辑ppt114协调和通信问题有很多原因会使软件项目陷入困境。许多开发项目规模宏大,以至于使小组成员间的关系复杂性高混乱、难以协调。不确定性是经常存在的,它会引起困扰项目组的一连串的改变。软件工程小组必须建立有效的方法,以协调参与工作的人员之间的关系。要完成这项任务,必须建立小组成员之间及多个小组之间的正式的和非正式的通信机制。正式的通信是通过文字、会议及其他相对而言非交互和非个人的通信渠道来实现。非正式的通信则更加个人化。软件工程小组的成员在一个特别的基础上共享想法,出现问题时相互帮助,且每天相互交流。编辑ppt协调和通信问题有很多原因会使软件项目陷入困境。许多开发项目规115项目协调技术正式的、非个人的方法:包括软件工程文档和交付物(如源程序)、技术备忘录、项目里程碑、进度和项目控制工具、修改请求及相关文档、错误跟踪报告、中心库数据。正式的、个人间的规程:集中表现于软件工程工作中产品的质量保证活动中,包括状态复审会议及设计和代码检查。非正式的、个人间的规程:包括信息传播、问题解决的小组会议。电子通信:包括电子邮件、电子公告栏、Web站点以及基于视频的会议系统。个人间的网络:与项目组之外的人进行的非正式的讨论,这些人可能有足够的经验或见解,能够帮助项目组成员。编辑ppt项目协调技术正式的、非个人的方法:包括软件工程文档和交付物(116项目管理的问题

软件项目管理者从软件项目一开始就面临着进退两难的局面。需要定量的估算成本和有组织的计划项目的进展,但却没有可靠的信息可以使用。对软件需求的详细分析可以提供必要的估算信息,但分析常常要花数周甚至数月的时间才能完成。更糟糕的是,随着项目的进展经常发生改变,需求可能是不固定的。编辑ppt项目管理的问题软件项目管理者从软件项目117软件范围

软件项目管理的第一个活动是软件范围的确定。范围是通过回答下列问题来定义的:背景:待开发的软件如何适应大型的系统、产品或商业的背景,在该背景下要加什么约束?信息目标:软件要产生什么样的客户可见的数据对象来作为输出使用?需要什么样的数据对象作为输入?功能和性能:软件要执行什么样的功能使得输入数据才能变换为输出数据?需要满足什么特殊的性能特征吗?编辑ppt软件范围软件项目管理的第一个活动是软件范围的118软件范围软件项目范围在管理层和技术层都必须是无二义性的和可理解的。对软件范围的描述必须是确定的。即,明确给出定量的数据(如并发用户数目、邮件列表的大小、允许的最大响应时间);说明约束和/或限制(如产品成本、内存大小);描述其他的特殊因素(如要用的算法能够很好地理解,并写成C++程序)。编辑ppt软件范围软件项目范围在管理层和技术层都119问题分解问题分解,有时称为划分,是一个软件需求分析的核心活动。在确定软件范围的活动中并没有完全分解问题。分解一般用于两个主要领域:(1)必须交付的功能;(2)交付所用的过程。面对复杂的问题人们常常采用分而治之的策略。简单讲,就是将一个复杂的问题划分成若干较易处理的小问题。这是项目计划开始时所采用的策略。在估算开始之前,范围中所描述的软件功能必须被评估和精化,以提供更多的细节。因为成本和进度估算都是面向功能的,所以某种程度的分解是很有用的。编辑ppt问题分解问题分解,有时称为划分,是一个软件需求分析的核心活动120项目管理的过程软件过程的一般阶段(定义、开发和维护)适用于所有软件项目。问题在于如何选择一个合适项目组要开发的软件过程模型。项目管理者必须决定哪一个过程模型最适合待开发项目,然后基于公共过程框架活动集合,定义一个初步的计划,便可以开始进行过程分解,即建立一个完整的计划,以反映框架活动中所需要的工作任务。编辑ppt项目管理的过程软件过程的一般阶段(定义、开发和维护)适用于所121合并问题和过程项目计划开始于问题和过程的合并。软件项目组要开发的每一个功能都必须通过为软件组织定义的框架活动集合来完成。编辑ppt合并问题和过程项目计划开始于问题和过程122项目疲惫不堪的产业专家们在讨论特别困难的软件项目时,常常提及90-90规则:一个系统的第一个90%花费了所分配工作量和时间的90%,系统最后10%也会花费所分配工作量和时间的90%。编辑ppt项目疲惫不堪的产业专123项目评估进度所采用的方法是有缺陷的(很显然,如果90-90规则是真的,90%的完成度就不是一个准确的指标)。没有办法测定进度,因为没有可用的、量化的度量。项目计划在项目结束时没有考虑协调所需要的资源。没有明确地考虑风险,没有建立缓解、监控和管理风险的计划。进度计划是不现实或有缺陷的。为了克服这些问题,在项目开始时必须花时间建立一个现实的计划,在项目进行中监控该计划,并在项目整个过程中控制质量和变化。编辑ppt项目评估进度所采用的方法是有缺陷的(很显然124软件项目估算软件项目管理过程从一组称为项目计划的活动开始,这些活动中的第一个就是估算。无论何时进行估算,我们都是在预测未来,并会接受某种程度的不确定性。虽然估算是一门科学,但它更是一门艺术,但这个重要的活动不能以随意的方式进行,因为估算是所有其他项目计划活动的基础。编辑ppt软件项目估算软件项目管理过程从一组称为项目计划的活动开始,这125软件项目估算项目管理者应该具备的素质:具有在错误真正发生之前就知道它的能力。在未来还是一团迷雾的时候就有勇气进行估算。编辑ppt软件项目估算项目管理者应该具备的素质:编辑ppt126软件项目估算估算一个软件开发工作的资源、成本和进度需要:经验了解以前的有用信息当仅存在定性的数据时进行定量测量的勇气估算具有与生俱来的风险,而正是这种风险导致了不确定性。编辑ppt软件项目估算估算一个软件开发工作的资源127软件项目估算影响估算的因素:项目复杂性对计划中固有的不确定性产生重大影响,复杂性是一个受到对以前工作的熟悉程度影响的相对的测量。项目规模影响估算准确性,随着规模的增长,软件中各个元素之间的相互依赖性也迅速增加。项目规模的增长会对项目成本和进度产生几何级数的影响。结构不确定性的程度也会对估算的风险产生影响。这里结构是指:需求能被确定的程度,功能能被分解的容易程度,以及需要加工的信息的层次性。编辑ppt软件项目估算影响估算的因素:编辑ppt128软件项目估算影响估算的因素:历史信息的可用程度也决定了估算的风险。当存在大量可用的关于过去项目的软件度量时,估算就会有更大的保证。风险是由为资源、成本及进度建立的定性估算中存在的不确定性来测量的。如果对项目范围理解很差或需求不断变化,不确定性及风险就会很高。应该满足于事物的本性所能容许的精确度,当只能近似于真理时,不要去寻求绝对的准确。编辑ppt软件项目估算影响估算的因素:编辑ppt129软件项目估算软件项目计划的目标是提供一个框架,使得管理者能够对资源、成本及进度进行合理的估算。估算是在软件项目开始时在一个限定的时间框架内所做的,并且随着项目的进展不断更新。估算应该定义“最好的情况”和“最坏的情况”,使得项目的结果能够限制在一定范围内。编辑ppt软件项目估算软件项目计划的目标是提供一个框架,使得管理者能够130软件项目估算软件成本及工作量估算永远不会是一门精确的科学。太多的变化--人员、技术、环境、策略影响了软件的最终成本及开发所需的工作量。编辑ppt软件项目估算软件成本及工作量估算永远不会是一门精确的科学。编131软件项目估算途径将估算拖延到项目的最后阶段(显然,如果在项目完成之后进行估算,能够赢得100%的准确率)。基于已经完成的类似的项目进行估算。使用简单的“分解技术”进行项目成本和工作量估算。使用一个或多个经验模型进行软件成本和工作量的估算。编辑ppt软件项目估算途径将估算拖延到项目的最后阶段(显然,如果在项目132软件项目估算途径分解技术采用“分而治之”的策略进行软件项目估算。将项目分解成若干主要的功能及相关的软件工程活动,通过逐步求精的方式进行成本及工作量估算。经验估算模型可用于补充分解技术,并提供一种潜在有价值的估算方法。该模型是基于经验(历史数据)来进行的,可以用以下公式表示:d=f(v)其中d是要估算的值(如工作量、成本、项目持续时间),v是选择出来的独立参数(如被估算的代码行或功能点)。软件的估算参量取决于用于估算的历史数据。若没有历史数据存在,成本估算也就建立在一个很不稳定的基础之上。编辑ppt软件项目估算途径分解技术采用“分而治之”的策略进行软件项目估133风险管理风险关注未来将要发生的事情。风险涉及改变(如思想、观念、行为或地点的改变)。风险涉及选择及选择本身所包含的不确定性。编辑ppt风险管理风险关注未来将要发生的事情。编辑ppt134风险管理当没有办法消除风险,甚至连试图降低该风险也存在疑问时,这些风险就是真正的风险了。在能够标识出软件项目中的“真正风险”之前,识别出所有对管理者及开发者而言均为明显的风险是很重要的。编辑ppt风险管理当没有办法消除风险,甚至连试图降低该风险也存在疑问时135被动和主动的风险策略被动策略:风险变成现实后才处理,“救火模式”。主动策略:预防为主。标识出潜在风险,评估它们出现的概率和产生的影响,且按重要性加以排序。然后,软件项目组建立一个计划来管理风险。编辑ppt被动和主动的风险策略被动策略:风险变成现实后才处理,“救火模136软件风险不确定性:刻划风险的事件可能发生也不可能发生。损失:如果风险变成了现实,就会产生恶性后果或损失。进行风险分析时,重要的是量化不确定性的程度及与每个风险相关的损失的程度。编辑ppt软件风险不确定性:刻划风险的事件可能发生也不可能发生。编辑p137软件风险项目风险

潜在的预算、进度、人力、资源、客户及需求等方面的问题以及它们对软件项目的影响。技术风险

潜在的设计、实现、接口、验证和维护等方面的问题,威胁待开发软件的质量和交付时间。编辑ppt软件风险项目风险编辑ppt138软件风险商业风险(威胁待开发软件的生存能力):开发了一个没有人真正需要的优秀产品或系统(市场风险)。开发的产品不再符合公司的整体商业策略(策略风险)。建造了一个销售部门不知道如何去卖的产品。由于重点的转移或人员的变动而失去了高级管理层的支持(管理风险)。没有得到预算或人力上的保证(预算风险)。编辑ppt软件风险商业风险(威胁待开发软件的生存能力):编辑ppt139软件风险可预测风险能够从过去项目的经验中推断出来。不可预测风险它们可能、也会真的出现,但很难实现识别。编辑ppt软件风险可预测风险编辑ppt140软件风险一般性风险对每一个软件项目而言都是一个潜在的威胁。特定产品的风险只有那些对当前项目的技术、人员及环境非常了解的人才能识别出来。编辑ppt软件风险一般性风险编辑ppt141识别风险试图系统化地确定风险对项目计划(估算、进度、资源分配)的威胁,在可能时避免风险,在必要时控制风险。编辑ppt识别风险试图系统化地确定风险对项目计划(估算、进度、资源分配142识别风险识别下列常见子类型中的已知的及可预测的风险:产品规模:与要建造或要修改的软件的总体规模相关的风险。商业影响:与管理或市场所加诸的约束相关的风险。客户特性:与客户的素质以及开发者和客户定期通信的能力相关的风险。过程定义:与软件过程被定义的程度以及它们被开发组织所遵守的程度相关的风险。开发环境:与用以建造产品的工具的可用性及质量相关的风险。建造的技术:与待开发软件的复杂性及系统所包含技术的“新奇性”相关的风险。人员数目及经验:与参与工作的软件工程师的总体技术水平及项目经验相关的风险。编辑ppt识别风险识别下列常见子类型中的已知的及可预测的风险:编辑pp143产品规模风险项目风险直接与产品规模成正比。以何种方法估算产品的规模?对于估算出的产品规模的信任程度如何?是否以程序、文件或事务处理的数目来估算产品规模?产品规模与以前产品规模的平均值的偏差百分比是多少?产品创建或使用的数据库大小如何?产品的用户数有多少?产品的需求改变多少?交付之前有多少?交付之后有多少?复用的软件有多少?在每一种情况下,待开发产品的信息必须与过去的经验加以比较。若出现了较大的百分比偏差,或如果数字相近但过去的结果很不令人满意,则风险较高。编辑ppt产品规模风险项目风险直接与产品规模成正比。编辑ppt144商业影响风险销售部门是受商业驱动的,而商业考虑有时会直接与技术现实发生冲突。本产品对公司的收入有何影响?本产品是否得到公司高级管理层的重视?交付期限的合理性如何?将会使用本产品的用户数及本产品是否与用户的需要相符合?本产品必须能与之互操作的其它产品/系统的数目?最终用户的水平如何?必须产生并交互给用户的产品的量与质如何?政府对本产品开发的约束?延迟交付所造成的成本消耗是多少?产品缺陷所造成的成本消耗是多少?编辑ppt商业影响风险销售部门是受商业驱动的,而商业考虑有时会145客户相关的风险并非所有客户都是一样的。客户有不同的需要客户有不同的个性客户与他们的供应商之间也有各种不同的通信方式。客户常常是矛盾的编辑ppt客户相关的风险并非所有客户都是一样的。编辑ppt146客户相关的风险你以前是否曾与这个客户合作过?该客户是否很清楚需要什么?他能否花时间把需求写出来?该客户是否同意花时间召开正式的需求收集会议以确定项目范围?该客户是否愿意建立与开发者之间的快速通信渠道?该客户是否愿意参加复审工作?该客户是否具有该产品领域的技术素养?该客户是否愿意让你的人来做他们的工作(当你的人在做具体的技术工作时,该客户是否会坚持在旁边监视)?该客户是否了解软件过程?如果对于以上任何一个问题的答案是否定的,则需要进行进一步的调研,以评估潜在的风险。编辑ppt客户相关的风险你以前是否曾与这个客户合作过?编辑ppt147过程风险如果软件过程定义得不清楚;如果分析、设计、测试以无序的方式进行;如果质量是每个人都认为是很重要的概念,但没有人切实地采取行动来保证它,那么,这个项目就处于风险之中。过程风险

过程问题技术问题编辑ppt过程风险如果软件过程定义得不清楚;如果分析、设计、测试以无序148过程风险过程问题你的高级管理层是否支持一份已经写好的政策综述,该综述中强调了软件开发标准过程的重要性吗?你的组织是否已经建立了一份已经成文的、用于本项目的软件过程的说明?开发人员是否“签约”同意按照文档所写的软件过程进行开发工作,并自愿使用它?该软件过程是否可用于其他项目?你的组织是否已经为管理及技术人员开设了一系列的软件工程培训课程?是否为每一个软件开发者和管理者都提供了印好的软件工程标准?是否为作为软件过程一部分而定义的所有交付物建立了文档概要及示例?编辑ppt过程风险过程问题编辑ppt149过程风险过程问题是否定期对需求规约、设计和编码进行正式的技术复审?是否定期对测试过程和测试情况进行复审?是否对每一次正式技术复审的结果要建立文档,其中包括发现的错误及使用的资源?是否有什么机制来保证软件工程标准的方案指导的工作开展正常?是否使用配置管理来维护系统/软件需求、设计、编码及测试用例之间的一致性?是否使用一个机制来控制用户需求的变化及其对软件的影响?对于每一个承包出去的子合同,是否有一份文档化的工作说明、一份软件需求规约及一份软件开发计划?是否有一个可遵循的规程来跟踪及复审子合同承包商的工作?编辑ppt过程风险过程问题编辑ppt150过程风险技术问题是否使用方便易用的规格说明技术来辅助客户与开发者之间的通信?是否使用特定的方法进行软件分析?是否使用特定的方法进行数据和体系结构的设计?是否90%以上的代码都是采用高级语言编写的?是否定义及使用特定的规则进行代码编写?是否使用特定的方法进行测试用例设计?是否使用软件工具来支持计划和跟踪活动?是否使用配置管理软件工具来控制和跟踪软件过程中的变化活动?是否使用软件工具来支持软件分析和设计过程?编辑ppt过程风险技术问题编辑ppt151过程风险技术问题是否使用工具来创建软件原型?是否使用软件工具来支持测试过程?是否使用软件工具来支持文档的生成和管理?是否收集所有软件项目的质量度量值?是否收集所有软件项目的生产率度量值?如果对于上述问题中大多数的答案是否定的,则软件过程是薄弱的,且风险很高。编辑ppt过程风险技术问题编辑ppt152技术风险该技术对于你的组织而言是新的吗?客户的需求是否需要创建新的的算法或输入、输出技术?软件是否需要使用新的或未经证实的硬件接口?待开发软件是否需要与开发商提供的未经证实的软件产品接口?待开发软件是否需要与其功能及性能均未在本领域中得到证实的数据库系统接口?产品的需求中是否要求采用特定的用户界面?编辑ppt技术风险该技术对于你的组织而言是新的吗?编辑ppt153

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论