软件工程与软件工程经济学课件.ppt
软件工程与件工程与软件工程件工程经济学学第1页,此课件共64页哦 第第第第2 2 2 2页页页页在课程学习过程中应注意以下几个方面:在课程学习过程中应注意以下几个方面:1 1、明确技术、经济和管理之间的关系,本课程应突出经济分、明确技术、经济和管理之间的关系,本课程应突出经济分析与论证、计算与比较。析与论证、计算与比较。作为商品的软件,在其生命周期中,只有应用系统的技术、经济和管理作为商品的软件,在其生命周期中,只有应用系统的技术、经济和管理的方法才能满足人们对其功能、性能、成本、质量、工期、效率和效益的方法才能满足人们对其功能、性能、成本、质量、工期、效率和效益等各种需求,这个系统的方法论,我们称之为软件工程学。等各种需求,这个系统的方法论,我们称之为软件工程学。经济与技术和管理的关系:经济与技术和管理的关系:不论是采取技术活动,或是进行管理活动,只要有活动就会发生资源的投入,不论是采取技术活动,或是进行管理活动,只要有活动就会发生资源的投入,自然不可避免的涉及经济,因为经济就是解决资源的使用效率问题。自然不可避免的涉及经济,因为经济就是解决资源的使用效率问题。经济度量和分析还为管理提供依据。经济度量和分析还为管理提供依据。第2页,此课件共64页哦 第第第第3 3 3 3页页页页在课程学习过程中应注意以下几个方面:在课程学习过程中应注意以下几个方面:2 2、学习时,除了运用严密的逻辑思维,形象、学习时,除了运用严密的逻辑思维,形象思维也是必不可少的思维也是必不可少的 本课程中涉及的内容有高等数学中的微积分、本课程中涉及的内容有高等数学中的微积分、应用统计学中的建模、运筹中的最优化等,这些应用统计学中的建模、运筹中的最优化等,这些内容需要有严密的逻辑思维。内容需要有严密的逻辑思维。对经济学和管理学中涉及的其他内容,则需要必对经济学和管理学中涉及的其他内容,则需要必要的形象思维来展现其艺术性。要的形象思维来展现其艺术性。第3页,此课件共64页哦 第第第第4 4 4 4页页页页在课程学习过程中应注意以下几个方面:在课程学习过程中应注意以下几个方面:3 3、掌握方法比掌握计算过程更重要,而且掌、掌握方法比掌握计算过程更重要,而且掌握方法时要紧密联系实际,即学会分析实际握方法时要紧密联系实际,即学会分析实际问题,选择适当的方法解决问题。问题,选择适当的方法解决问题。t任何一门学科都是方法论的集合,方法固然重要,任何一门学科都是方法论的集合,方法固然重要,但应注意在实际中是先有问题后有方法,方法是但应注意在实际中是先有问题后有方法,方法是为了解决问题而产生的。为了解决问题而产生的。t 而方法包含许多,重点应放在问题的分析思路而方法包含许多,重点应放在问题的分析思路和结论的应用,而不追求冗长的论证过程。和结论的应用,而不追求冗长的论证过程。第4页,此课件共64页哦 第第第第5 5 5 5页页页页在课程学习过程中应注意以下几个方面:在课程学习过程中应注意以下几个方面:1 1、明确技术、经济和管理之间的关系,本课程应突出、明确技术、经济和管理之间的关系,本课程应突出经济分析与论证、计算与比较。经济分析与论证、计算与比较。2 2、学习本课程时,除了运用严密的逻辑思维,形象思维、学习本课程时,除了运用严密的逻辑思维,形象思维也是必不可少的也是必不可少的3 3、掌握方法比掌握计算过程更重要,而且掌握方法时要、掌握方法比掌握计算过程更重要,而且掌握方法时要紧密联系实际,即学会分析实际问题,选择适当的方法。紧密联系实际,即学会分析实际问题,选择适当的方法。第5页,此课件共64页哦 第第第第6 6 6 6页页页页v 理解基本概念:理解基本概念:软件、产业、项目、项目管理、软件工程、软件开发模型、软软件、产业、项目、项目管理、软件工程、软件开发模型、软件质量、经济学、工程经济学件质量、经济学、工程经济学v 了解软件产业、软件企业等相关内容了解软件产业、软件企业等相关内容v 掌握软件规模、复杂性度量掌握软件规模、复杂性度量v 掌握软件工程经济学的内涵、任务、研究特点与方法体系掌握软件工程经济学的内涵、任务、研究特点与方法体系 v 了解软件工程经济学的研究与发展了解软件工程经济学的研究与发展第第1章章 软件工程与软件工程经济学软件工程与软件工程经济学学习目标学习目标第6页,此课件共64页哦 第第第第7 7 7 7页页页页软件、软件产业与软件企业软件、软件产业与软件企业 1.1软件工程软件工程 1.2第第1章章 软件工程与软件工程经济学软件工程与软件工程经济学 软件工程经济学的概念与任务软件工程经济学的概念与任务 1.3第7页,此课件共64页哦 第第第第8 8 8 8页页页页1.1 软件、软件产业与软件企业软件、软件产业与软件企业 从技术的角度,如何定从技术的角度,如何定义软件呢?义软件呢?指令的集合(计算机程序),通过执行这些指令可指令的集合(计算机程序),通过执行这些指令可以满足预期的特征、功能和性能需求;以满足预期的特征、功能和性能需求;数据结构,它使得程序可以充分利用信息;数据结构,它使得程序可以充分利用信息;描述程序操作和使用的文档。描述程序操作和使用的文档。第8页,此课件共64页哦 第第第第9 9 9 9页页页页1.1 软件、软件产业与软件企业软件、软件产业与软件企业 按功能分类:按功能分类:按规模分类:按规模分类:按标准化程度分类:按标准化程度分类:按与有关硬件和软件的关联程度分类:按与有关硬件和软件的关联程度分类:软件分类:软件分类:根据不同的需要确定不同的分类标准,清根据不同的需要确定不同的分类标准,清楚不同分类中的软件产品楚不同分类中的软件产品第9页,此课件共64页哦 第第第第10101010 1.1 软件、软件产业与软件企业软件、软件产业与软件企业 软件作为一种产品和服务,与其他产品的软件作为一种产品和服务,与其他产品的区别是什么呢?区别是什么呢?存在形式存在形式软件是一种逻辑的实体而非物理实体软件是一种逻辑的实体而非物理实体生产方式生产方式软件是设计开发的,而不是传统意义上生产制造的;软件是设计开发的,而不是传统意义上生产制造的;虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是采用虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是采用用户定制的方式。用户定制的方式。使用过程使用过程软件不会软件不会“磨损磨损”但会退化但会退化成本构成成本构成软件需开发成本、销售成本、维护成本,但无需库存成本;软件需开发成本、销售成本、维护成本,但无需库存成本;人力成本占开发成本中绝大比例。人力成本占开发成本中绝大比例。其他:其他:软件生产的进入壁垒低、销售采用捆绑式营销策略等。软件生产的进入壁垒低、销售采用捆绑式营销策略等。第10页,此课件共64页哦 第第第第11111111 失失效效率率时间时间“初期失效率初期失效率”“磨损磨损”时间时间失失效效率率变更变更理想曲线理想曲线实际曲线实际曲线由于变更的副作用而导由于变更的副作用而导致失效率提高致失效率提高硬件失效曲线图硬件失效曲线图软件失效曲线图软件失效曲线图第11页,此课件共64页哦 第第第第12121212 1.1.2 软件产业及其发展软件产业及其发展软件产业、特征、现状软件产业、特征、现状什么是产业?什么是产业?http:/产业是对能够带来增加值(附加值)的社会经济领域的总称,属于经济学概念。第12页,此课件共64页哦 第第第第13131313 1.1.3 软件企业及其管理软件企业及其管理1 1、前面我们分析了软件产品的特点,那、前面我们分析了软件产品的特点,那么作为提供软件产品和服务的软件企么作为提供软件产品和服务的软件企业又具有什么特点呢?业又具有什么特点呢?2 2、什么是企业管理?、什么是企业管理?第13页,此课件共64页哦 第第第第14141414 1.1.3 软件企业及其管理软件企业及其管理t软件企业的特点软件企业的特点市场准入门槛低市场准入门槛低高收益和高风险高收益和高风险资产结构特殊资产结构特殊资产是企业拥有和控制的,能给企业带来经济效益的资源。资产是企业拥有和控制的,能给企业带来经济效益的资源。分为流动资产、固定资产、无形资产分为流动资产、固定资产、无形资产无形资产:技术、专利、商标、商誉等无形资产:技术、专利、商标、商誉等成本结构中人力成本大成本结构中人力成本大成本结构:劳动资料消耗、劳动对象消耗、劳动力成本成本结构:劳动资料消耗、劳动对象消耗、劳动力成本技术更新速度快技术更新速度快注重售前和售后服务等注重售前和售后服务等第14页,此课件共64页哦 第第第第15151515 1.1.3 软件企业及其管理软件企业及其管理t企业管理的定义企业管理的定义是指在企业特定的生产方式下,管理者按照某些原则、程序和方法,使用一是指在企业特定的生产方式下,管理者按照某些原则、程序和方法,使用一定的手段(工具、方法),针对生产的各要素(人力、物力、设备、资金、定的手段(工具、方法),针对生产的各要素(人力、物力、设备、资金、信息)进行计划、组织、指导、协调和控制,以使其发挥最大的经济效果,信息)进行计划、组织、指导、协调和控制,以使其发挥最大的经济效果,达到预期目标的一种筹划和过程。达到预期目标的一种筹划和过程。t企业管理的分类企业管理的分类战略管理战略管理生产运作管理生产运作管理市场营销管理市场营销管理财务管理财务管理人力资源管理人力资源管理采购管理采购管理信息管理信息管理第15页,此课件共64页哦 第第第第16161616 1.1.3 软件企业及其管理软件企业及其管理软件企业的企业管理和经常使用的软软件企业的企业管理和经常使用的软件项目管理存在什么关系呢?件项目管理存在什么关系呢?第16页,此课件共64页哦 第第第第17171717 1.1.3 软件企业及其管理软件企业及其管理v安排一个演出活动安排一个演出活动v组织一次培训活动组织一次培训活动v组织一次市场调查组织一次市场调查v阿波罗登月计划阿波罗登月计划v开发开发Windows XPv开发一个证券交易系统开发一个证券交易系统v上班上班v批量生产批量生产v每天的卫生保洁每天的卫生保洁上述活动中哪些用上述活动中哪些用“项目项目”来描来描述更合适呢?述更合适呢?第17页,此课件共64页哦 第第第第18181818 1.1.3 软件企业及其管理软件企业及其管理v项目的定义项目的定义所所谓谓项项目目,是是在在既既定定的的资资源源和和需需求求约约束束下下,为为实实现现某某种种目目的的而而相相互互联联系系的一次性的有计划的工作任务。的一次性的有计划的工作任务。v项目的特征项目的特征目标性目标性相关性相关性时限性时限性独特性独特性约束性约束性不确定性、变更性不确定性、变更性结果的不可逆转性结果的不可逆转性第18页,此课件共64页哦 第第第第19191919 1.1.3 软件企业及其管理软件企业及其管理项目管理的重要意义是什么?项目管理的重要意义是什么?第19页,此课件共64页哦 第第第第20202020 1.1.3 软件企业及其管理软件企业及其管理 根据根据1999年美国的年美国的Standish Group对当年美国的软件项目的统计数对当年美国的软件项目的统计数字表明,字表明,26%的软件项目是真正成功,的软件项目是真正成功,28%彻底失败;这些存在问题的或是彻底失败;这些存在问题的或是失败的项目带来的直接损失是失败的项目带来的直接损失是970亿美元,占美国全年亿美元,占美国全年IT投资的近投资的近40%,而间接损失是无法估量的;在全部项目中平均超期而间接损失是无法估量的;在全部项目中平均超期27个月,更有个月,更有80%的资源被开销在对应用的维护上。的资源被开销在对应用的维护上。在在2003年的一份分析报告中,通过分析年的一份分析报告中,通过分析13522个项目得出的结论:个项目得出的结论:只有只有1/3的项目是成功的,的项目是成功的,82%的项目延期,的项目延期,43%的项目超出预算。的项目超出预算。先来看一份统计数据:先来看一份统计数据:第20页,此课件共64页哦 第第第第21212121 1.1.3 软件企业及其管理软件企业及其管理v软件危机是一种矛盾,就是弱的软件生产能力与强的业务软件危机是一种矛盾,就是弱的软件生产能力与强的业务需求之间的矛盾,既有技术上的问题,又有经济上的问题,需求之间的矛盾,既有技术上的问题,又有经济上的问题,通常可以找到的导致项目缺陷的原因都与项目管理有关,通常可以找到的导致项目缺陷的原因都与项目管理有关,项目管理的重要性显现出来,可以有效解决下列问题:项目管理的重要性显现出来,可以有效解决下列问题:v需求不明确,变化比较多,不可实现的期望值需求不明确,变化比较多,不可实现的期望值v工作量估计过低工作量估计过低 v团队成员职责划分不清团队成员职责划分不清 v开发计划不充分开发计划不充分 v项目经理的管理能力不足项目经理的管理能力不足 v对风险的认识不足对风险的认识不足v来自高层管理者的支持不够,对项目所依赖的外部因素无法控制等来自高层管理者的支持不够,对项目所依赖的外部因素无法控制等v第21页,此课件共64页哦 第第第第22222222 1.1.3 软件企业及其管理软件企业及其管理项目管理的定义项目管理的定义v项项目目管管理理就就是是在在项项目目活活动动中中运运用用专专门门的的知知识识、技技能能、工工具具和和方方法法,使使项项目目达达到到预预期期目目标标的的过过程程,是是以以项项目目作作为为管管理理对对象象,通通过过一一个个临临时时性性的的、专专门门的的组组织织,对对项项目目进进行行计计划划、组组织织、执执行行和和控控制制,并并在在时时间间、成成本本、性性能能、质质量量等等方方面面达到预期目标的一种系统管理方法。达到预期目标的一种系统管理方法。第22页,此课件共64页哦 第第第第23232323 按照按照PMI的体系可以划分为如下九个主要的方面的体系可以划分为如下九个主要的方面 项目管理知识体系(项目管理知识体系(PMBOK)第23页,此课件共64页哦 第第第第24242424 PMBOK(Project Management Body Of Knowledge)t现代项目管理知识体系现代项目管理知识体系所所谓谓现现代代项项目目管管理理知知识识体体系系是是指指在在现现代代项项目目管管理理中中所所要要开开展展的的各各种种管管理理活动中要使用的各种理论、方法和工具等一系列内容的总称。活动中要使用的各种理论、方法和工具等一系列内容的总称。现现代代项项目目管管理理知知识识体体系系是是PMI从从1984年年开开始始研研究究,1996年年推推出出并并投投入入使使用用,2000年年新新版版修修订订,并并以以此此为为蓝蓝本本制制订订了了ISO10006标标准准的的一一整整套套现现代代项项目目管管理的程序、技术、工具和方法理的程序、技术、工具和方法。t项目干系人:项目干系人:项项目目经经理理、客客户户、用用户户、项项目目执执行行组组织织、项项目目团团队队成成员员、项项目目出出资资人人、项项目目业主、项目承包人、供应商业主、项目承包人、供应商第24页,此课件共64页哦 第第第第25252525 1.1.3 软件企业及其管理软件企业及其管理 PMP(Project Management Professional)PMP是项目管理专业人员资格的缩写,它是美国项目管理学会是项目管理专业人员资格的缩写,它是美国项目管理学会(PMI)开发并负责组织实施的一种专业资格认证。)开发并负责组织实施的一种专业资格认证。该项认证已经获得世界上该项认证已经获得世界上100多个国家的承认,是目前全多个国家的承认,是目前全球认可程度最高的项目管理专业认证,也是项目管理资球认可程度最高的项目管理专业认证,也是项目管理资格最重要的标志之一。格最重要的标志之一。第25页,此课件共64页哦 第第第第27272727 1.1 小结:小结:概念结构图概念结构图 软件产业软件企业特点企业管理项目项目管理软件第27页,此课件共64页哦 第第第第28282828 软件、软件产业与软件企业软件、软件产业与软件企业 1.1软件工程软件工程 1.2第第1章章 软件工程与软件工程经济学软件工程与软件工程经济学 软件工程经济学的概念与任务软件工程经济学的概念与任务 1.3第28页,此课件共64页哦 第第第第29292929 1.2.1 软件工程概念和分类软件工程概念和分类软件工程:软件工程:将系统的、规范的、可度量的将系统的、规范的、可度量的工程化方法工程化方法应用应用于软件开发、运行和维护的全过程及上述方法的研究。于软件开发、运行和维护的全过程及上述方法的研究。软件软件工程学工程学软件工程软件工程技术学技术学软件工程软件工程经济学经济学软件工程软件工程管理学管理学为满足用户功能与性能需求而采用的为满足用户功能与性能需求而采用的工程技术方法工程技术方法 为满足用户的成本、质量、时间(工期)、为满足用户的成本、质量、时间(工期)、效益需求而采用的工程经济方法效益需求而采用的工程经济方法 为满足用户对资金、人员、设备的计划、组织、为满足用户对资金、人员、设备的计划、组织、协调、控制需求而采取的工程管理方法协调、控制需求而采取的工程管理方法在软件开发、运行和维护的全过程中在软件开发、运行和维护的全过程中第29页,此课件共64页哦 第第第第31313131 t生存周期生存周期t定义:定义:t是是20世纪世纪70年代提出的,将软件以概念形成开始,经过开发、使用和维护,直到最后退役年代提出的,将软件以概念形成开始,经过开发、使用和维护,直到最后退役的全过程。的全过程。t作用:作用:t在生存周期中有七个阶段的划分,相应有了每个阶段的活动、任务、人员,使用的方法和工具,以及任在生存周期中有七个阶段的划分,相应有了每个阶段的活动、任务、人员,使用的方法和工具,以及任务的结果(程序、数据或文档)务的结果(程序、数据或文档),这样就能简化每一步的工作内容,使因软件规模增长而大大增加的复杂性变这样就能简化每一步的工作内容,使因软件规模增长而大大增加的复杂性变得较易控制和管理。得较易控制和管理。例:例:分析活动:包括一组工作任务(需求获取、细化、协商、规格说明和确认),最终产生需求规格说明书。分析活动:包括一组工作任务(需求获取、细化、协商、规格说明和确认),最终产生需求规格说明书。设计活动:包括一组工作任务(数据库设计、体系结构框架设计、接口设计和构件层设计等)最终产生设计活动:包括一组工作任务(数据库设计、体系结构框架设计、接口设计和构件层设计等)最终产生设计规格说明。设计规格说明。t1995年,年,ISO正式公布了正式公布了“软件生存周期过程的开发标准软件生存周期过程的开发标准”1.2.2 软件生存周期、开发模型与任务分解软件生存周期、开发模型与任务分解第31页,此课件共64页哦 第第第第32323232 1.2.2 软件生存周期、开发模型与任务分解软件生存周期、开发模型与任务分解t软件开发模型软件开发模型定义:定义:根据软件生存周期为各项开发活动的流程确定合理的框架。根据软件生存周期为各项开发活动的流程确定合理的框架。开发模型的选择与成本和工期密切相关开发模型的选择与成本和工期密切相关作用:作用:给软件开发过程提供原则和方法(技术)给软件开发过程提供原则和方法(技术)给软件工程管理提供里程碑和进度表(管理)给软件工程管理提供里程碑和进度表(管理)便于各阶段成本估算、核算、控制(经济)便于各阶段成本估算、核算、控制(经济)第32页,此课件共64页哦 第第第第33333333 软件开发模型的相关概念软件开发模型的相关概念t基线:基线:基线是已经通过正式评审和批准的规格说明或产品,它可以作基线是已经通过正式评审和批准的规格说明或产品,它可以作为进一步开发的基础,并且只有通过正式的变更控制规程才能为进一步开发的基础,并且只有通过正式的变更控制规程才能修改它。修改它。基线包括:系统规格说明,软件需求、设计规格说明,源代码,测基线包括:系统规格说明,软件需求、设计规格说明,源代码,测试计划试计划/规程规程/数据,可运行的系统数据,可运行的系统t里程碑:里程碑:在软件工程范畴中,基线是软件开发中的里程碑。在软件工程范畴中,基线是软件开发中的里程碑。第33页,此课件共64页哦 第第第第34343434 1.2.2 软件生存周期、开发模型与任务分解软件生存周期、开发模型与任务分解t任务分解任务分解定义:定义:将软件项目的工作任务进行逐级逐层的分解将软件项目的工作任务进行逐级逐层的分解作用:作用:为了进行团队组织、制定进度计划,控制计划的执行为了进行团队组织、制定进度计划,控制计划的执行(管理)(管理)为了成本估算和控制(经济)为了成本估算和控制(经济)第34页,此课件共64页哦 第第第第35353535 1.2.3 软件规模与复杂性度量软件规模与复杂性度量v软件项目度量软件项目度量-实现量化管理的关键实现量化管理的关键v软件度量的三个主要作用:软件度量的三个主要作用:理解软件项目、预测软件项目、控制软件项目。理解软件项目、预测软件项目、控制软件项目。具体体现在以下方面:具体体现在以下方面:1.1.软件度量能为项目估算、计划提供基础数据,也提供了控制项目的量化信息。软件度量能为项目估算、计划提供基础数据,也提供了控制项目的量化信息。2.2.软件度量为质量管理提供指标,推动企业过程改进。软件度量为质量管理提供指标,推动企业过程改进。3.3.度量为软件组织提供客观的信息,是帮助项目经理进行项目交流的有力工具。度量为软件组织提供客观的信息,是帮助项目经理进行项目交流的有力工具。4.4.度量可促进主动性的管理策略,度量指标的各种指示,就像质量目标的红绿指示灯一样,帮助项度量可促进主动性的管理策略,度量指标的各种指示,就像质量目标的红绿指示灯一样,帮助项目经理进行决策,以便对费用、进度、质量等进行权衡,以满足项目目标。目经理进行决策,以便对费用、进度、质量等进行权衡,以满足项目目标。第35页,此课件共64页哦 第第第第36363636 软件项目度量软件项目度量-实现量化管理的关键实现量化管理的关键度度量量指指标标项目管理的项目管理的计划和控制计划和控制软件工程软件工程过程组的过程组的过程改进过程改进高层管理对高层管理对项目的可见度项目的可见度客户对项目客户对项目的跟踪的跟踪研究机构的研究机构的研究对象研究对象项项目目管管理理者者项目度量过程度量第36页,此课件共64页哦需求需求设计设计编码编码功能测试功能测试系统测试系统测试现场使用现场使用10%40%50%3%5%7%25%50%10%1KDM1KDM1KDM6KDM12KDM20KDM缺陷的缺陷的来源来源发现的发现的缺陷缺陷解决缺解决缺陷的成陷的成本本缺陷与成本关系度量结果缺陷与成本关系度量结果KDM=(千德国马克千德国马克)第37页,此课件共64页哦 第第第第38383838 1.1.规模度量规模度量程序源代码行(程序源代码行(LOCLOC)、功能点)、功能点(FP)(FP)2.2.复杂性度量复杂性度量可执行代码的词汇量可执行代码的词汇量3.3.差错差错/缺陷度量缺陷度量缺陷数缺陷数/KLOC/KLOC4.4.可靠性度量可靠性度量软件寿命、可靠度、软件寿命概率密度、软件寿命的期望值软件寿命、可靠度、软件寿命概率密度、软件寿命的期望值5.5.质量度量质量度量ISO/IEC9126ISO/IEC9126质量特性国际标准质量特性国际标准在软件工程经济学中涉及的软件度量在软件工程经济学中涉及的软件度量第38页,此课件共64页哦 第第第第39393939 软件规模度量软件规模度量t程序源代码行(程序源代码行(LOC Lines of code LOC Lines of code、KLOCKLOC)是从软件程序量的角度定义项目规模是从软件程序量的角度定义项目规模使用使用LOCLOC要求功能分解够详细,而且有一定的经验数据要求功能分解够详细,而且有一定的经验数据不同的开发语言代码行不一样不同的开发语言代码行不一样可用人工和软件工具直接测量可用人工和软件工具直接测量根据历史经验数据提供的如下经济参数:根据历史经验数据提供的如下经济参数:成本费用率:元成本费用率:元/千行千行劳动生产率:千行劳动生产率:千行/人月人月工时费用率:元工时费用率:元/人月人月可以计算:可以计算:工期、工作量:人月、人年工期、工作量:人月、人年成本:元成本:元第39页,此课件共64页哦 第第第第40404040 软件规模度量软件规模度量t功能点(功能点(FP Function Point FP Function Point)是用系统的功能数量来测量其规模是用系统的功能数量来测量其规模,是一种间接的度量方法是一种间接的度量方法以一个标准的单位来度量软件产品以一个标准的单位来度量软件产品的功能,与技术和语言无关的功能,与技术和语言无关基本思路:基本思路:首先计算软件的五个基本信息量:外部输入数、外部首先计算软件的五个基本信息量:外部输入数、外部输出数、外部查询数、内部逻辑文件数、外部接口文输出数、外部查询数、内部逻辑文件数、外部接口文件数的加权和件数的加权和然后对其通过然后对其通过14个环境复杂性因子做如下修正个环境复杂性因子做如下修正注意:注意:尽管功能点的计算是结构化的,但是权重的确定尽管功能点的计算是结构化的,但是权重的确定是主观的,另外要求计算人员要仔细地将需求映是主观的,另外要求计算人员要仔细地将需求映射为外部和内部的行为,必须避免双重计算,所射为外部和内部的行为,必须避免双重计算,所以该方法也存在一定的主观性。以该方法也存在一定的主观性。第40页,此课件共64页哦 第第第第41414141 FP度量使用案例度量使用案例为说明为说明FPFP度量的使用,我们考虑一个简单的分析模型。度量的使用,我们考虑一个简单的分析模型。该软件管理用户交互,接收一个用户密码来启动和关闭系统,并且该软件管理用户交互,接收一个用户密码来启动和关闭系统,并且允许对安全区状态和不同安全传感器进行查询。该功能显示了一系允许对安全区状态和不同安全传感器进行查询。该功能显示了一系列的提示信息且发送合适的控制信号到安全系统的不同构件。列的提示信息且发送合适的控制信号到安全系统的不同构件。三个外部输入:密码、紧急按钮、启动三个外部输入:密码、紧急按钮、启动/关闭关闭两个外部查询:区域查询、传感器查询两个外部查询:区域查询、传感器查询内部逻辑文件:系统配置数据内部逻辑文件:系统配置数据两个外部输出:消息和传感器的状态两个外部输出:消息和传感器的状态四个外部接口文件:测试传感器、区域设置、启动四个外部接口文件:测试传感器、区域设置、启动/关闭、报警关闭、报警第41页,此课件共64页哦 第第第第42424242 SAFEHOME软件的数据流模型软件的数据流模型用户用户交互功能交互功能传感器传感器用户用户监控与响应监控与响应子系统子系统用户用户系统配置数据系统配置数据区域查询区域查询紧急按钮紧急按钮传感器查询传感器查询启动启动/关闭关闭密码密码测试传感器测试传感器区域设置区域设置消息消息传感器状态传感器状态启动启动/关闭关闭报警报警密码,传感器密码,传感器第42页,此课件共64页哦 第第第第43434343 利用历史数据,功能点度量可用于:利用历史数据,功能点度量可用于:估算设计编码和测试软件所需估算设计编码和测试软件所需开销或工作量开销或工作量 预计测试期间将遇到的错误数预计测试期间将遇到的错误数 预测实现系统中的构件数和预测实现系统中的构件数和预计的源代码行数预计的源代码行数 FP度量的使用度量的使用第43页,此课件共64页哦 第第第第44444444 2.软件复杂性度量软件复杂性度量软件复杂性描述软件复杂性描述:理解程序的难度理解程序的难度纠错、维护程序的难度纠错、维护程序的难度向他人解释程序的难度向他人解释程序的难度按指定方法修改程序的难度按指定方法修改程序的难度根据设计文件编写程序工作量的大小程度根据设计文件编写程序工作量的大小程度执行程序时需要资源的多少程度执行程序时需要资源的多少程度从统计学和心理学的角度来研究软件复杂性问题,提出用程序中可执行代码的词从统计学和心理学的角度来研究软件复杂性问题,提出用程序中可执行代码的词汇量(操作符与操作数)来计算和分析软件复杂性的方法,并在此基础上将其转汇量(操作符与操作数)来计算和分析软件复杂性的方法,并在此基础上将其转换成软件规模的测算换成软件规模的测算.第44页,此课件共64页哦 第第第第45454545 1.2.4 软件差错与可靠性度量软件差错与可靠性度量1.软件差错与可靠性软件差错与可靠性 A 软件差错(软件差错(Software Error)A 软件缺陷(软件缺陷(Software Defect)缺陷数缺陷数/KLOC/KLOCA 软件故障软件故障(Software Fault)2.软件可靠性度量指标软件可靠性度量指标A 软件可靠性软件可靠性t定义:软件产品在规定的条件下,在规定的时间内,完成规定功定义:软件产品在规定的条件下,在规定的时间内,完成规定功能(或无故障运行)的概率。能(或无故障运行)的概率。t软件可靠性可以通过历史数据和开发数据直接测量和估算出来。软件可靠性可以通过历史数据和开发数据直接测量和估算出来。第45页,此课件共64页哦 第第第第46464646 1.2.4 软件差错与可靠性度量软件差错与可靠性度量t例:如果某软件在例:如果某软件在8个处理小时的可靠性估计是个处理小时的可靠性估计是0.96.如果软件运行如果软件运行100次,每次运行次,每次运行8小时,小时,100次中正确运行的次数为次中正确运行的次数为96次。次。第46页,此课件共64页哦 第第第第47474747 软件可靠性度量指标软件可靠性度量指标E寿命分布函数寿命分布函数 F(x)=p(x)E可靠度函数可靠度函数 R(x)=p(t)=1-F(t)E寿命寿命的概率密度的概率密度 f(t)=d F(t)/dtE失效率失效率 (t)=f(t)/R(t)E 推导出的结论:推导出的结论:R(t)=exp-E软件的平均寿命软件的平均寿命R(t)F(t)E(t)f(t)可靠性指标关联图可靠性指标关联图第47页,此课件共64页哦 第第第第48484848 改正一个错误的相对成本改正一个错误的相对成本1101001000需求分析需求分析设计设计编码编码开发测试开发测试系统测试系统测试交付后交付后1倍倍3-6倍倍10倍倍15-40倍倍30-70倍倍40-1000倍倍第48页,此课件共64页哦 第第第第49494949 1.2.5 软件质量软件质量如何定义软件质量呢?如何定义软件质量呢?软件工程的目标就是生产出高质量的软件产品。软件工程的目标就是生产出高质量的软件产品。软件质量:软件质量:v符合明确规定的功能和性能需求符合明确规定的功能和性能需求v符合已清晰文档化的开发标准符合已清晰文档化的开发标准v具有专业人员开发软件所应有的隐含特征具有专业人员开发软件所应有的隐含特征第49页,此课件共64页哦 第第第第50505050 1.2.5 软件质量软件质量软件质量评价软件质量评价ISO软件质量度量模型软件质量度量模型软件质量需求准则SQRC软件质量设计评价准则 SQDC软件质量设计评价准则 SQDC软件质量度量评价准则SQRC软件质量度量评价准则SQRC8 8个个2323个个2323个个第50页,此课件共64页哦 第第第第51515151 软件项目的质量管理软件项目的质量管理首先明确:首先明确:软件工程涉及的每个人都要对质量负责软件工程涉及的每个人都要对质量负责质量管理是适用于整个软件过程的一种普适性活动质量管理是适用于整个软件过程的一种普适性活动然后:然后:明确给出明确给出“软件质量软件质量”的涵义的涵义软件团队必须确定一组软件团队必须确定一组SQA活动来过滤掉软件项目实施中的错误,活动来过滤掉软件项目实施中的错误,在错误变为缺陷前发现它!也就是说,尽量提高缺陷排除效率,进在错误变为缺陷前发现它!也就是说,尽量提高缺陷排除效率,进而减少软件团队不得不付出的返工量。而减少软件团队不得不付出的返工量。最后:最后:运用度量技术来制定软件过程改进的策略,进而提高最终产品的质量。运用度量技术来制定软件过程改进的策略,进而提高最终产品的质量。第51页,此课件共64页哦 第第第第52525252 软件质量保证软件质量保证(SQA)#软件质量保证(软件质量保证(Software Quality Assurance)推行与确认推行与确认软件工程软件工程质量标准质量标准研究与采用各种技术手段来保证软件质量研究与采用各种技术手段来保证软件质量对软件的各种对软件的各种变更变更进行控制进行控制制订并执行软件测试策略测试计划制订并执行软件测试策略测试计划按照软件质量标准对软件的质量进行度量按照软件质量标准对软件的质量进行度量组织各种组织各种技术评审技术评审会或评审活动会或评审活动对软件质量的度量情况及时记录和生成对软件质量的度量情况及时记录和生成SQA报告报告第52页,此课件共64页哦 第第第第53535353 软件质量保证软件质量保证 SQAv变更管理变更管理(软件配置管理)软件配置管理)识别识别可能发生变更的工作产品,建立这些工作产可能发生变更的工作产品,建立这些工作产品之间的关系,制定管理这些工作产品的不同版品之间的关系,制定管理这些工作产品的不同版本的机制,本的机制,控制控制所施加的变更,所施加的变更,审核审核和和报告报告所发生所发生的变更。的变更。软件配置(变更)管理是一组跟踪和控制活动软件配置(变更)管理是一组跟踪和控制活动,可以可以看作是应用于整个软件周期过程的软件质量保证活看作是应用于整个软件周期过程的软件质量保证活动。动。第53页,此课件共64页哦 第第第第54545454 软件质量保证软件质量保证 SQAv 变更的四个基本原因:变更的四个基本原因:新的业务或市场条件导致产品需求或业务规则的变更新的业务或市场条件导致产品需求或业务规则的变更新的客户需求,要求修改信息系统产生的数据、产品提供的新的客户需求,要求修改信息系统产生的数据、产品提供的功能或系统提供的服务功能或系统提供的服务企业改组或扩大企业改组或扩大/缩小规模,导致项目优先级或软件工程团队的变缩小规模,导致项目优先级或软件工程团队的变更更预算或进度安排的限制,导致系统或产品的重新定义。预算或进度安排的限制,导致系统或产品的重新定义。第54页,此课件共64页哦 第第第第55555555 软件质量保证软件质量保证 SQAv软件评审软件评审是软件过程中的是软件过程中的“过滤器过滤器”,在软件工程的不同阶,在软件工程的不同阶段进行软件评审,可以起到发现错误和缺陷,进而段进行软件评审,可以起到发现错误和缺陷,进而消除它们的作用。消除它们的作用。-正式技术评审正式技术评审v研究表明:正式技术评审在发现设计错误(占软件过研究表明:正式技术评审在发现设计错误(占软件过程中发现的所有错误和最终缺陷数量的程中发现的所有错误和最终缺陷数量的50%-65%)方)方面最高可达面最高可达75%的有效性。的有效性。第55页,此课件共64页哦 第第第第56565656 1.2 概念结构图概念结构图可靠性度量质量度量软件质量含义软件质量保证质量评价软件变更质量评审软件工程开发周期软件技术学软件经济学软件管理学开发模型任务分解软件度量规模度量复杂性度量LOC、FP可靠性N第56页,此课件共64页哦 第第第第57575757 1.3 软件工程经济学的概念和任务软件工程经济学的概念和任务E 什么是经济学?什么是经济学?t定义:是研究人类在从事生产、交换以及产品和劳务消费过程中,如何有效地利用定义:是研究人类在从事生产、交换以及产品和劳务消费过程中,如何有效地利用和合理地配置可供选择的各种和合理地配置可供选择的各种有限资源(稀缺资源有限资源(稀缺资源)来满足人们的需要。)来满足人们的需要。x研究我们社会中的个人、厂商、