第1章软件工程与软件工程经济学.ppt

上传人:laozhun 文档编号:2880347 上传时间:2023-03-01 格式:PPT 页数:64 大小:1.39MB
返回 下载 相关 举报
第1章软件工程与软件工程经济学.ppt_第1页
第1页 / 共64页
第1章软件工程与软件工程经济学.ppt_第2页
第2页 / 共64页
第1章软件工程与软件工程经济学.ppt_第3页
第3页 / 共64页
第1章软件工程与软件工程经济学.ppt_第4页
第4页 / 共64页
第1章软件工程与软件工程经济学.ppt_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《第1章软件工程与软件工程经济学.ppt》由会员分享,可在线阅读,更多相关《第1章软件工程与软件工程经济学.ppt(64页珍藏版)》请在三一办公上搜索。

1、软件工程经济学Software Engineering Economics,主讲教师:张德平,第2页,在课程学习过程中应注意以下几个方面:,1、明确技术、经济和管理之间的关系,本课程应突出经济分析与论证、计算与比较。作为商品的软件,在其生命周期中,只有应用系统的技术、经济和管理的方法才能满足人们对其功能、性能、成本、质量、工期、效率和效益等各种需求,这个系统的方法论,我们称之为软件工程学。经济与技术和管理的关系:不论是采取技术活动,或是进行管理活动,只要有活动就会发生资源的投入,自然不可避免的涉及经济,因为经济就是解决资源的使用效率问题。经济度量和分析还为管理提供依据。,第3页,在课程学习过程

2、中应注意以下几个方面:,2、学习时,除了运用严密的逻辑思维,形象思维也是必不可少的 本课程中涉及的内容有高等数学中的微积分、应用统计学中的建模、运筹中的最优化等,这些内容需要有严密的逻辑思维。对经济学和管理学中涉及的其他内容,则需要必要的形象思维来展现其艺术性。,第4页,在课程学习过程中应注意以下几个方面:,3、掌握方法比掌握计算过程更重要,而且掌握方法时要紧密联系实际,即学会分析实际问题,选择适当的方法解决问题。任何一门学科都是方法论的集合,方法固然重要,但应注意在实际中是先有问题后有方法,方法是为了解决问题而产生的。而方法包含许多,重点应放在问题的分析思路和结论的应用,而不追求冗长的论证过

3、程。,第5页,在课程学习过程中应注意以下几个方面:,1、明确技术、经济和管理之间的关系,本课程应突出经济分析与论证、计算与比较。2、学习本课程时,除了运用严密的逻辑思维,形象思维也是必不可少的3、掌握方法比掌握计算过程更重要,而且掌握方法时要紧密联系实际,即学会分析实际问题,选择适当的方法。,第6页,理解基本概念:软件、产业、项目、项目管理、软件工程、软件开发模型、软件质量、经济学、工程经济学 了解软件产业、软件企业等相关内容 掌握软件规模、复杂性度量 掌握软件工程经济学的内涵、任务、研究特点与方法体系 了解软件工程经济学的研究与发展,第1章 软件工程与软件工程经济学,SEE,学习目标,第7页

4、,软件、软件产业与软件企业,1.1,软件工程,第1章 软件工程与软件工程经济学,软件工程经济学的概念与任务,1.3,第8页,1.1 软件、软件产业与软件企业,从技术的角度,如何定义软件呢?,指令的集合(计算机程序),通过执行这些指令可以满足预期的特征、功能和性能需求;数据结构,它使得程序可以充分利用信息;描述程序操作和使用的文档。,第9页,1.1 软件、软件产业与软件企业,按功能分类:按规模分类:按标准化程度分类:按与有关硬件和软件的关联程度分类:,软件分类:根据不同的需要确定不同的分类标准,清楚不同分类中的软件产品,第10页,1.1 软件、软件产业与软件企业,软件作为一种产品和服务,与其他产

5、品的区别是什么呢?,存在形式软件是一种逻辑的实体而非物理实体生产方式软件是设计开发的,而不是传统意义上生产制造的;虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是采用用户定制的方式。使用过程软件不会“磨损”但会退化成本构成软件需开发成本、销售成本、维护成本,但无需库存成本;人力成本占开发成本中绝大比例。其他:软件生产的进入壁垒低、销售采用捆绑式营销策略等。,第11页,失效率,时间,“初期失效率”,“磨损”,时间,失效率,变更,理想曲线,实际曲线,由于变更的副作用而导致失效率提高,硬件失效曲线图,软件失效曲线图,第12页,1.1.2 软件产业及其发展,软件产业、特征、现状什么是产业?,

6、http:/,产业是对能够带来增加值(附加值)的社会经济领域的总称,属于经济学概念。,第13页,1.1.3 软件企业及其管理,1、前面我们分析了软件产品的特点,那么作为提供软件产品和服务的软件企业又具有什么特点呢?2、什么是企业管理?,第14页,1.1.3 软件企业及其管理,软件企业的特点市场准入门槛低高收益和高风险资产结构特殊资产是企业拥有和控制的,能给企业带来经济效益的资源。分为流动资产、固定资产、无形资产无形资产:技术、专利、商标、商誉等成本结构中人力成本大成本结构:劳动资料消耗、劳动对象消耗、劳动力成本技术更新速度快注重售前和售后服务等,第15页,1.1.3 软件企业及其管理,企业管理

7、的定义是指在企业特定的生产方式下,管理者按照某些原则、程序和方法,使用一定的手段(工具、方法),针对生产的各要素(人力、物力、设备、资金、信息)进行计划、组织、指导、协调和控制,以使其发挥最大的经济效果,达到预期目标的一种筹划和过程。企业管理的分类战略管理生产运作管理市场营销管理财务管理人力资源管理采购管理信息管理,第16页,1.1.3 软件企业及其管理,软件企业的企业管理和经常使用的软件项目管理存在什么关系呢?,第17页,1.1.3 软件企业及其管理,安排一个演出活动组织一次培训活动组织一次市场调查阿波罗登月计划开发Windows XP开发一个证券交易系统,上班批量生产每天的卫生保洁,上述活

8、动中哪些用“项目”来描述更合适呢?,第18页,1.1.3 软件企业及其管理,项目的定义所谓项目,是在既定的资源和需求约束下,为实现某种目的而相互联系的一次性的有计划的工作任务。项目的特征目标性相关性时限性独特性约束性不确定性、变更性结果的不可逆转性,第19页,1.1.3 软件企业及其管理,项目管理的重要意义是什么?,第20页,1.1.3 软件企业及其管理,根据1999年美国的Standish Group对当年美国的软件项目的统计数字表明,26%的软件项目是真正成功,28%彻底失败;这些存在问题的或是失败的项目带来的直接损失是970亿美元,占美国全年IT投资的近40%,而间接损失是无法估量的;在

9、全部项目中平均超期27个月,更有80%的资源被开销在对应用的维护上。在2003年的一份分析报告中,通过分析13522个项目得出的结论:只有1/3的项目是成功的,82%的项目延期,43%的项目超出预算。,先来看一份统计数据:,第21页,1.1.3 软件企业及其管理,软件危机是一种矛盾,就是弱的软件生产能力与强的业务需求之间的矛盾,既有技术上的问题,又有经济上的问题,通常可以找到的导致项目缺陷的原因都与项目管理有关,项目管理的重要性显现出来,可以有效解决下列问题:,需求不明确,变化比较多,不可实现的期望值工作量估计过低 团队成员职责划分不清 开发计划不充分 项目经理的管理能力不足 对风险的认识不足

10、来自高层管理者的支持不够,对项目所依赖的外部因素无法控制等,第22页,1.1.3 软件企业及其管理,项目管理的定义项目管理就是在项目活动中运用专门的知识、技能、工具和方法,使项目达到预期目标的过程,是以项目作为管理对象,通过一个临时性的、专门的组织,对项目进行计划、组织、执行和控制,并在时间、成本、性能、质量等方面达到预期目标的一种系统管理方法。,第23页,按照PMI的体系可以划分为如下九个主要的方面,项目管理知识体系(PMBOK),第24页,PMBOK(Project Management Body Of Knowledge),现代项目管理知识体系所谓现代项目管理知识体系是指在现代项目管理中

11、所要开展的各种管理活动中要使用的各种理论、方法和工具等一系列内容的总称。现代项目管理知识体系是PMI从1984年开始研究,1996年推出并投入使用,2000年新版修订,并以此为蓝本制订了ISO10006标准的一整套现代项目管理的程序、技术、工具和方法。项目干系人:项目经理、客户、用户、项目执行组织、项目团队成员、项目出资人、项目业主、项目承包人、供应商,第25页,1.1.3 软件企业及其管理,PMP(Project Management Professional)PMP是项目管理专业人员资格的缩写,它是美国项目管理学会(PMI)开发并负责组织实施的一种专业资格认证。该项认证已经获得世界上100

12、多个国家的承认,是目前全球认可程度最高的项目管理专业认证,也是项目管理资格最重要的标志之一。,项目管理知识领域,第27页,1.1 小结:概念结构图,软件产业,软件企业,特点,企业管理,项目,项目管理,软件,第28页,软件、软件产业与软件企业,1.1,软件工程,第1章 软件工程与软件工程经济学,软件工程经济学的概念与任务,1.3,第29页,1.2.1 软件工程概念和分类,软件工程:将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。,软件工程学,软件工程技术学,软件工程经济学,软件工程管理学,为满足用户功能与性能需求而采用的工程技术方法,为满足用户的成本、质量

13、、时间(工期)、效益需求而采用的工程经济方法,为满足用户对资金、人员、设备的计划、组织、协调、控制需求而采取的工程管理方法,在软件开发、运行和维护的全过程中,第30页,“软件工程包括:过程、方法和工具”,,软件工程概念,第31页,生存周期定义:是20世纪70年代提出的,将软件以概念形成开始,经过开发、使用和维护,直到最后退役的全过程。作用:在生存周期中有七个阶段的划分,相应有了每个阶段的活动、任务、人员,使用的方法和工具,以及任务的结果(程序、数据或文档),这样就能简化每一步的工作内容,使因软件规模增长而大大增加的复杂性变得较易控制和管理。例:分析活动:包括一组工作任务(需求获取、细化、协商、

14、规格说明和确认),最终产生需求规格说明书。设计活动:包括一组工作任务(数据库设计、体系结构框架设计、接口设计和构件层设计等)最终产生设计规格说明。1995年,ISO正式公布了“软件生存周期过程的开发标准”,1.2.2 软件生存周期、开发模型与任务分解,第32页,1.2.2 软件生存周期、开发模型与任务分解,软件开发模型定义:根据软件生存周期为各项开发活动的流程确定合理的框架。开发模型的选择与成本和工期密切相关作用:给软件开发过程提供原则和方法(技术)给软件工程管理提供里程碑和进度表(管理)便于各阶段成本估算、核算、控制(经济),第33页,软件开发模型的相关概念,基线:基线是已经通过正式评审和批

15、准的规格说明或产品,它可以作为进一步开发的基础,并且只有通过正式的变更控制规程才能修改它。基线包括:系统规格说明,软件需求、设计规格说明,源代码,测试计划/规程/数据,可运行的系统里程碑:在软件工程范畴中,基线是软件开发中的里程碑。,第34页,1.2.2 软件生存周期、开发模型与任务分解,任务分解定义:将软件项目的工作任务进行逐级逐层的分解作用:为了进行团队组织、制定进度计划,控制计划的执行(管理)为了成本估算和控制(经济),第35页,1.2.3 软件规模与复杂性度量,软件项目度量-实现量化管理的关键软件度量的三个主要作用:理解软件项目、预测软件项目、控制软件项目。具体体现在以下方面:软件度量

16、能为项目估算、计划提供基础数据,也提供了控制项目的量化信息。软件度量为质量管理提供指标,推动企业过程改进。度量为软件组织提供客观的信息,是帮助项目经理进行项目交流的有力工具。度量可促进主动性的管理策略,度量指标的各种指示,就像质量目标的红绿指示灯一样,帮助项目经理进行决策,以便对费用、进度、质量等进行权衡,以满足项目目标。,第36页,软件项目度量-实现量化管理的关键,度量指标,项目管理的计划和控制,软件工程过程组的过程改进,高层管理对项目的可见度,客户对项目的跟踪,研究机构的研究对象,项目管理者,项目度量,过程度量,缺陷的来源,发现的缺陷,解决缺陷的成本,缺陷与成本关系度量结果,KDM=(千德

17、国马克),第38页,1.规模度量程序源代码行(LOC)、功能点(FP)2.复杂性度量可执行代码的词汇量3.差错/缺陷度量缺陷数/KLOC4.可靠性度量软件寿命、可靠度、软件寿命概率密度、软件寿命的期望值5.质量度量ISO/IEC9126质量特性国际标准,在软件工程经济学中涉及的软件度量,第39页,软件规模度量,程序源代码行(LOC Lines of code、KLOC)是从软件程序量的角度定义项目规模使用LOC要求功能分解够详细,而且有一定的经验数据不同的开发语言代码行不一样可用人工和软件工具直接测量根据历史经验数据提供的如下经济参数:成本费用率:元/千行劳动生产率:千行/人月工时费用率:元/

18、人月可以计算:工期、工作量:人月、人年成本:元,第40页,软件规模度量,功能点(FP Function Point)是用系统的功能数量来测量其规模,是一种间接的度量方法以一个标准的单位来度量软件产品的功能,与技术和语言无关基本思路:首先计算软件的五个基本信息量:外部输入数、外部输出数、外部查询数、内部逻辑文件数、外部接口文件数的加权和然后对其通过14个环境复杂性因子做如下修正注意:尽管功能点的计算是结构化的,但是权重的确定是主观的,另外要求计算人员要仔细地将需求映射为外部和内部的行为,必须避免双重计算,所以该方法也存在一定的主观性。,第41页,FP度量使用案例,为说明FP度量的使用,我们考虑一

19、个简单的分析模型。该软件管理用户交互,接收一个用户密码来启动和关闭系统,并且允许对安全区状态和不同安全传感器进行查询。该功能显示了一系列的提示信息且发送合适的控制信号到安全系统的不同构件。三个外部输入:密码、紧急按钮、启动/关闭两个外部查询:区域查询、传感器查询内部逻辑文件:系统配置数据两个外部输出:消息和传感器的状态四个外部接口文件:测试传感器、区域设置、启动/关闭、报警,第42页,SAFEHOME软件的数据流模型,用户交互功能,传感器,用户,监控与响应子系统,用户,系统配置数据,区域查询,紧急按钮,传感器查询,启动/关闭,密码,测试传感器,区域设置,消息,传感器状态,启动/关闭,报警,密码

20、,传感器,第43页,利用历史数据,功能点度量可用于:估算设计编码和测试软件所需开销或工作量 预计测试期间将遇到的错误数 预测实现系统中的构件数和预计的源代码行数,FP度量的使用,第44页,2.软件复杂性度量,软件复杂性描述:理解程序的难度纠错、维护程序的难度向他人解释程序的难度按指定方法修改程序的难度根据设计文件编写程序工作量的大小程度执行程序时需要资源的多少程度从统计学和心理学的角度来研究软件复杂性问题,提出用程序中可执行代码的词汇量(操作符与操作数)来计算和分析软件复杂性的方法,并在此基础上将其转换成软件规模的测算.,第45页,1.2.4 软件差错与可靠性度量,软件差错与可靠性 软件差错(

21、Software Error)软件缺陷(Software Defect)缺陷数/KLOC 软件故障(Software Fault)软件可靠性度量指标 软件可靠性定义:软件产品在规定的条件下,在规定的时间内,完成规定功能(或无故障运行)的概率。软件可靠性可以通过历史数据和开发数据直接测量和估算出来。,第46页,1.2.4 软件差错与可靠性度量,例:如果某软件在8个处理小时的可靠性估计是0.96.,如果软件运行100次,每次运行8小时,100次中正确运行的次数为96次。,第47页,软件可靠性度量指标,寿命分布函数 F(x)=p(x)可靠度函数 R(x)=p(t)=1-F(t)寿命的概率密度 f(t

22、)=d F(t)/dt失效率(t)=f(t)/R(t)推导出的结论:R(t)=exp-软件的平均寿命,可靠性指标关联图,第48页,改正一个错误的相对成本,1,10,100,1000,需求分析,设计,编码,开发测试,系统测试,交付后,1倍,3-6倍,10倍,15-40倍,30-70倍,40-1000倍,第49页,1.2.5 软件质量,如何定义软件质量呢?,软件工程的目标就是生产出高质量的软件产品。,软件质量:符合明确规定的功能和性能需求符合已清晰文档化的开发标准具有专业人员开发软件所应有的隐含特征,第50页,1.2.5 软件质量,软件质量评价ISO软件质量度量模型,软件质量需求准则SQRC,软件

23、质量设计评价准则 SQDC,软件质量设计评价准则 SQDC,软件质量度量评价准则SQRC,软件质量度量评价准则SQRC,8个,23个,23个,第51页,软件项目的质量管理,首先明确:软件工程涉及的每个人都要对质量负责质量管理是适用于整个软件过程的一种普适性活动然后:明确给出“软件质量”的涵义软件团队必须确定一组SQA活动来过滤掉软件项目实施中的错误,在错误变为缺陷前发现它!也就是说,尽量提高缺陷排除效率,进而减少软件团队不得不付出的返工量。最后:运用度量技术来制定软件过程改进的策略,进而提高最终产品的质量。,第52页,软件质量保证(SQA),软件质量保证(Software Quality As

24、surance)推行与确认软件工程质量标准研究与采用各种技术手段来保证软件质量对软件的各种变更进行控制制订并执行软件测试策略测试计划按照软件质量标准对软件的质量进行度量组织各种技术评审会或评审活动对软件质量的度量情况及时记录和生成SQA报告,第53页,软件质量保证 SQA,变更管理(软件配置管理)识别可能发生变更的工作产品,建立这些工作产品之间的关系,制定管理这些工作产品的不同版本的机制,控制所施加的变更,审核和报告所发生的变更。软件配置(变更)管理是一组跟踪和控制活动,可以看作是应用于整个软件周期过程的软件质量保证活动。,第54页,软件质量保证 SQA,变更的四个基本原因:新的业务或市场条件

25、导致产品需求或业务规则的变更新的客户需求,要求修改信息系统产生的数据、产品提供的功能或系统提供的服务企业改组或扩大/缩小规模,导致项目优先级或软件工程团队的变更预算或进度安排的限制,导致系统或产品的重新定义。,第55页,软件质量保证 SQA,软件评审是软件过程中的“过滤器”,在软件工程的不同阶段进行软件评审,可以起到发现错误和缺陷,进而消除它们的作用。-正式技术评审,研究表明:正式技术评审在发现设计错误(占软件过程中发现的所有错误和最终缺陷数量的50%-65%)方面最高可达75%的有效性。,第56页,1.2 概念结构图,可靠性度量,质量度量,软件质量含义,软件质量保证,质量评价,软件变更,质量

26、评审,软件工程,开发周期,软件技术学,软件经济学,软件管理学,开发模型,任务分解,软件度量,规模度量,复杂性度量,LOC、FP,可靠性,N,第57页,1.3 软件工程经济学的概念和任务,什么是经济学?定义:是研究人类在从事生产、交换以及产品和劳务消费过程中,如何有效地利用和合理地配置可供选择的各种有限资源(稀缺资源)来满足人们的需要。研究我们社会中的个人、厂商、政府和其他组织如何进行选择,以及这些选择如何决定社会稀缺资源的使用方式。稀缺性担当重要的角色,选择之所以关系重大,正是因为资源是稀缺的。经济学分类宏观经济学和微观经济学工程经济学、管理经济学、区域经济学等,第58页,1.3 软件工程经济

27、学的概念和任务,什么是软件工程经济学(SEE)?工程经济学和软件工程的交叉学科以软件工程领域中的经济问题和经济规律为研究对象的一门经济学分支学科具体说:就是研究为实现特定功能的软件项目而提出的在技术方案、生产(开发)过程、产品或服务等方面所作的经济分析和论证,计算和比较的一门系统方法论学科。软件工程经济学研究的内容:P23,第59页,1.3 软件工程经济学的概念和任务,软件工程经济学的研究特点研究重点始终环绕软件产品的质量、工期、成本/效益、时间/进度、效率等目标要素的关联分析及其人的组织与协调对上述个目标的影响分析进行。研究思想来自于系统工程。研究方法采用了定量分析和定性分析相结合、理论分析

28、与实证验证相结合在数学分析的思路与方法的通用性基础之上来寻找适合于我国国情的研究结果。,第60页,软件工程经济学的方法体系,SEE,社会学、管理学等,软件工程(技术学、管理学),经济学(宏观经济学、微观经济学),系统工程、运筹学等,计算机通信、信息系统等,第61页,1.3 概念结构图,经济学,工程经济学,软件工程经济学,软件工程经济学研究内容,软件工程经济学研究特点,软件工程经济学研究方法体系,软件,软件产业,软件企业,特点,企业管理,项目,项目管理,软件,1.2,1.1,经济学,工程经济学,软件工程经济学,软件工程经济学研究内容,软件工程经济学研究特点,软件工程经济学研究方法体系,1.3,THE END!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号