软件工程经济学.ppt

上传人:李司机 文档编号:4096130 上传时间:2023-04-04 格式:PPT 页数:68 大小:1,011.50KB
返回 下载 相关 举报
软件工程经济学.ppt_第1页
第1页 / 共68页
软件工程经济学.ppt_第2页
第2页 / 共68页
软件工程经济学.ppt_第3页
第3页 / 共68页
软件工程经济学.ppt_第4页
第4页 / 共68页
软件工程经济学.ppt_第5页
第5页 / 共68页
点击查看更多>>
资源描述

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

1、软件工程经济学,软件工程经济学:在软件开发、运行和维护全过程中,为满足用户的成本、质量、时间(工期)、效益需求而采用的工程经济方法的全体称为软件工程经济学。,1.1软件、软件产业与软件企业,1.1.1 软件目前学术界对软件的普遍性解释为:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合。程序是指按事先设计的功能和性能要求执行的指令序列数据是指使程序能正常操纵信息的数据结构文档是与程序开发、维护和使用有关的图文资料,2023/4/4,1.1软件、软件产业与软件企业,软件作为一个产品或服务,与其他产品相比具有很大的区别,具体表现出如下特点:(1)软件是信息产品,

2、具有无形性、抽象性、可复制性和共享性。与硬件相比,软件是一种逻辑实体而非物理实体,它可以记录在纸面上,保存在计算机的软、硬、光盘里,但必须通过使用、测试、分析等途径才能了解它的功能、性能和其它特性。,2023/4/4,1.1软件、软件产业与软件企业,(2)软件的生产过程独特,经历规划与计划、需求分析、设计、编程、测试、运行和维护等环节来形成产品使用的,而不像硬件的生产过程是以原材料器件采购、运输、库存开始,然后经规划、设计、研制、生产、销售、运行与维护来形成产品使用的。(3)软件产品是知识的结晶,创新已成为软件产品发展的动力和企业竞争的焦点。产品周期短,技术更新快,集成化程度高,已成为软件产品

3、的重要特征。,2023/4/4,1.1软件、软件产业与软件企业,(4)软件生产基于开发人员的思维与认识的片面性,经验与技术的不足,长时间的开发劳动造成的心理和体力的疲乏以及与用户的相互沟通的不足等原因,软件在提交使用时,各种潜在的固有差错是无法避免的,且这种潜在的固有差错数将随着软件规模的增大而增大。(5)软件的成本构成与硬件产品相比,无需库存成本。由于软件可以通过因特网进行销售,故其销售成本较低,且伴随着软件向服务方向的转移,开发成本的比例越来越低,而使用维护成本的比例越来越高。,2023/4/4,1.1软件、软件产业与软件企业,(6)软件产品与硬件相比而言,市场的进入壁垒一般较低,软件企业

4、竞争十分激烈,这就迫使软件企业不能固守传统产品,而要不断地推陈出新,更新换代。,2023/4/4,1.1软件、软件产业与软件企业,1.1.2 软件产业软件产业是指软件产品和软件服务相关的一切经济活动和关系的总称。软件产业包括软件产品和软件服务两大部分软件产品:系统软件、支撑软件和应用软件软件服务:信息系统集成,信息系统运行和维护服务,数据中心与资源外包服务,数据加工与处理服务,软件测试服务,信息系统咨询和评估服务,信息系统监理,软件与信息系统管理与人才工程化培训等,2023/4/4,1.1软件、软件产业与软件企业,软件产业具有如下特征:(1)高技术、高附加价值与高效益。软件产业是典型的技术密集

5、、知识密集的高技术产业。(2)与其他产业的高度关联性。软件产业由于其“服务性”的宗旨,其服务领域涉及到国民经济的任何一个部门。(3)国际化特征明显。一批跨国公司正在兴起,并领导着国际软件市场和软件技术标准的发展,同时也为国际间的软件加工和业务外包提供了空间。,2023/4/4,1.1软件、软件产业与软件企业,(4)专业化分工越来越细。(5)规模经济效益日益明显。软件产业的服务化趋势越来越明确,产业集中度越来越高,规模经济效益正在日益明显。以美国为代表的少数国家掌握着软件的核心技术和知识产权,处于产业发展的中心地位,处于价值链的高端。,2023/4/4,1.1软件、软件产业与软件企业,国际软件产

6、业在经过不断的产业创新与发展后,分别形成了以下四种具有特色的软件产业类型:(1)美国的技术与服务领导型;(2)印度的国际加工服务型;(3)爱尔兰的生产本地化型;(4)西欧和日本的嵌入式系统开发型。,2023/4/4,1.1软件、软件产业与软件企业,1.1.3 软件企业及其管理从市场角度出发,软件企业可分为软件产品企业和软件服务企业两类软件更像一个特殊的项目(Project)。而软件企业管理就可用项目管理(Project Management)的理论和方法来进行指导。,2023/4/4,1.2 软件工程1.2.1 软件工程概念,软件工程的诞生源于“软件危机”软件危机是指在计算机软件开发中的一系列

7、问题。软件技术问题:如怎样开发软件?怎样维护现有的、容量又在不断增加的软件?我们怎样做才能满足人类对软件需求的不断增长等等经济问题:如软件开发过程中成本和进度估计往往不精确,软件质量与可靠性的概念十分可疑,如何来处理一些相互对立的软件目标,如成本、工期、可靠性等,软件测试究竟需要多长时间才能投放市场等等。,2023/4/4,1.2 软件工程,软件工程是一门适用于软件开发全过程的系统工程方法论的学科,其目的是为满足人们对软件生产的成本、质量、时间(工期)和效率、效益和管理等的需求。根据系统工程的理论,任何一个工程学科,其方法论均可划分为三大部分:工程技术学方法、工程经济学方法和工程管理学方法。,

8、1.2.1 软件工程概念,2023/4/4,1.2 软件工程1.2.1 软件工程概念,软件项目与硬件产品生产一样,为了获得高效率的生产和质优、价低的产品,必须运用科学的理论与方法,如系统工程、工程经济学、项目管理的理论与方法来指导软件开发的全过程,并进行必要的定量分析与评价。软件工程经济学中所涉及的软件基本度量包括:软件规模、软件复杂性、软件可靠性、软件安全性与软件质量等的度量。,2023/4/4,软件作为一个特殊产品与其他产品一样有其自生到灭的生存过程。通常我们将软件以概念形成开始,经过开发、使用和维护,直到最后退役的全过程称为软件的生存周期(Software life Cycle)。,1.

9、2 软件工程 1.2.2 软件生存周期、开发模型与任务分解,2023/4/4,基于产品质量控制的需求,人们需要对上述各阶段的工作成果进行评价,因而除可行性研究评审外,人们还需要作单元测试与评价,组装测试与评价,集成测试(确认测试)与评审,运行测试与评价等活动。有关上述各阶段活动的相互关联见下图。,1.2 软件工程 1.2.2 软件生存周期、开发模型与任务分解,2023/4/4,1.2 软件工程 1.2.2 软件生存周期、开发模型与任务分解,2023/4/4,软件生存周期中各阶段活动的关联图示称为软件的开发模型。,1.2 软件工程 1.2.2 软件生存周期、开发模型与任务分解,2023/4/4,

10、1.2 软件工程 1.2.2 软件生存周期、开发模型与任务分解,螺旋模型,2023/4/4,工作任务分解所形成的层次结构被称为工作(任务)分解结构(Work Breakdown Structure,WBS),1.2 软件工程 1.2.2 软件生存周期、开发模型与任务分解,2023/4/4,1.2 软件工程 1.2.2 软件生存周期、开发模型与任务分解,2023/4/4,1.2 软件工程 1.2.2 软件生存周期、开发模型与任务分解,2023/4/4,1.2.3软件规模度量,目前在软件工程界中影响较大的软件规模度量单位有程序源代码行(Lines Of Code.,LOC)和功能点(Functio

11、nal Point,FP)两种。,2023/4/4,1.2.3软件规模度量,功能点计算方法的基本思想为首先计算软件的五个基本信息量:外部输入数(External Input.,EI)、外部输出数(External Output.,EO)、外部查询数(External Query.,EQ)、内部逻辑文件数(Internal Logical File.,ILF)、外部接口文件数(External Interface File.,EIF)的加权和CT,然后对其通过14个环境复杂性因子作如下修正。,2023/4/4,1.2.3软件规模度量,2023/4/4,1.2.3软件规模度量,wj为第j个基本信息

12、量dj的加权系数或复杂程度系数;d1即为外部输入数(EI),它包括了每个用户为软件提供的输入参数个数(不包括查询数),体现了软件面向用户服务的数量特征;d2即外部输出数(EO),它指软件为用户提供的输出参数个数,如报告数、屏幕帧数、错误信息个数等;d3即外部查询数(EQ),它规定一个联机输入确定一次查询,软件以联机输出的形式实时地产生一个响应,统计各种查询个数;d4即内部逻辑文件数(ILF),它要求统计内部逻辑主文件数;,2023/4/4,1.2.3软件规模度量,d5即外部接口文件数,通常指所有机器可读的界面(如磁盘或磁带上的数据文件),利用此接口界面可以将信息从一个系统传送到另一个系统;CT

13、称为软件的功能数,PCA称为系统功能的复杂性调整因子。,2023/4/4,1.2.3软件规模度量,2023/4/4,1.2.3软件规模度量,2023/4/4,1.2.3软件规模度量,例1.1 某软件根据需求分析,对照表1.11的各项要求,得到环境复杂性因子,五个信息量的数值dj及其对应权系数wj之取值见表1.12,于是由(1.1)式可得软件系统其需求功能点为:,2023/4/4,1.2.3软件规模度量,若功能点与源代码行的转换率为=15 kLOC/FP则该软件系统有规模LS=FP15=8210LOC=8.21 kLOC,2023/4/4,1.2.4 软件复杂性度量,复杂性是软件的重要属性之一,

14、任何一个有经验的程序员都知道。对于同种规模而复杂性不同的软件,其花费的成本和工期会有很大的差异。如下的六个方面可作为软件复杂性描述的依据:(1)理解程序的难度;(2)纠错、维护程序的难度;(3)向他人解释程序的难度;(4)按指定方法修改程序的难度;(5)根据设计文件编写程序工作量的大小程度;(6)执行程序时需要资源的多少程度。,2023/4/4,1.2.4 软件复杂性度量,20世纪70年代M.Halstead从统计学和心理学的角度来研究软件复杂性问题,提出用程序中可执行代码的词汇量(操作符与操作数)来计算和分析软件复杂性的方法,并在此基础上还可将其转换成软件规模的测算。,2023/4/4,1.

15、2.4 软件复杂性度量,通过数学推导,可以证明程序语言的符号长度(又称词汇总数)N可近似地由下式确定:N=n1 lbn1+n2 lbn2(1.2)式中,n1为程序中不同操作符的个数;n2为不同操作数的个数;lbn即log2n。此外,利用转换公式,2023/4/4,1.2.4 软件复杂性度量,还可将程序语言的符号长度N转换成源程序行数L(不含注释性语句),其中C为转换系数,它与所使用的程序设计语言有关,同时也与软件类型以及程序员的编程风格等因素有关,可以通过对历史数据的统计分析来估计。在一般情况下,FORTRAN语言编程时有C=7.5,用PASCAL语言编程时有C=4.0。,2023/4/4,1

16、.2.5 软件差错与可靠性度量,衡量产品质量高低的指标有技术性能指标和可靠性指标,其中技术性能指标用来反映产品所具有的功能与性能的技术水平,如计算机的字长、容量、运算速度等,而可靠性指标则用来反映产品维持良好功能与性能的持久能力或经久耐用的能力。,2023/4/4,1.2.5 软件差错与可靠性度量,硬件产品由于设计错误,制造流程与工艺问题,使用时元器件所承担的载荷过大,环境(温度、工作电流)发生突变以及机械磨损等原因都可能导致硬件故障。随着人们对硬件可靠性的认识重视和研究的深入,提出了一系列科学的可靠性设计,可靠度分配方法,电子信息产品在生产过程中的实验、验证和鉴定方法以及在包装、贮存和运输等

17、方面规范要求,从而使硬件产品可靠性水平有了极大的提高。与硬件相比,由于软件生产更多地依赖于人的劳动。,2023/4/4,1.2.5 软件差错与可靠性度量,设程序按照规格说明从初始时刻t=0 开始运行直到发生故障为止这一连续时间段称为软件的寿命。易知软件寿命是一个非负随机变量,其分布函数F(x)=p(x)称为软件产品的寿命分布函数,而软件产品在时刻t的生存概率R(t)=P(t)=1F(t)称为该软件产品的可靠度函数或可靠度。分布函数完整的描述了随机变量的统计规律性。,2023/4/4,1.2.5 软件差错与可靠性度量,若软件寿命的概率密度为f(t),则由概率论知有:随机数据的概率密度函数:表示瞬

18、时幅值落在某指定范围内的概率,因此是幅值的函数。它随所取范围的幅值而变化。,2023/4/4,1.2.5 软件差错与可靠性度量,若软件寿命的概率密度存在,则在t时刻软件产品的失效率(或故障率)(t)被定义为:失效率(t)可理解为:软件产品在正常工作一直到时刻t的条件下,它在(t,t+t区间内失效的概率。当t很小时,(t)还可理解为软件产品在t前正常工作的条件下,而在t+瞬间发生失效的概率密度。,2023/4/4,1.2.5 软件差错与可靠性度量,软件寿命的期望值E()称为软件的平均寿命。可证明E()与R(t)有如下关系式:,2023/4/4,1.2.5 软件差错与可靠性度量,F(t)、f(t)

19、、R(t)、E()的相互关系,这种相互的关联关系可由下图来表示。图 可靠性指标关联图,2023/4/4,1.2.5 软件差错与可靠性度量,2023/4/4,1.2.6 软件质量,1.产品质量的概念在20世纪6070年代,美国质量管理学家Juran所提出产品质量的定义首先为人们所接受。他认为“产品质量就是产品的适用性”,并对产品的适用性做了进一步解释:“该产品在使用时能成功满足用户需要的程度”。,2023/4/4,1.2.6 软件质量,在软件质量的概念研究中,人们发现参与软件开发、管理、维护、使用的人员由于他们在软件生存周期中所处的地位不同,对软件质量的理解和要求也不同。例如,开发人员主要关心软

20、件的功能性和工期,管理人员则关心软件的开发标准、成本和时间进程,维护人员则关心软件的正确性、可理解性和可维修性,用户则更关心软件的性能和可靠性。因此,给软件质量给出一个客观、科学的定义,并尽量予以量化,这对于统一人们的认识是十分必要的。,2023/4/4,1.2.6 软件质量,2.软件质量评价由三个层次构成的软件质量度量模型。其中,最高层的元素称为质量要素(Quality Factor),共11个;中层的元素称为评价准则(Evaluation Criteria),共30个;底层元素称为质量度量(Quality Metric),详见下图。,2023/4/4,1.2.6 软件质量,ISO软件质量度

21、量模型,软件质量需求准则(SQRC)软件质量设计评价准则(SQDC)软件质量度量评价准则(SQMC),2023/4/4,1.2.6 软件质量,第三层(软件质量度量评价准则)量度标准:可由各使用单位自定义内容:根据软件的需求分析、概要设计、详细设计、编码、测试、确认、维护与使用等阶段,针对每一个阶段制定问卷表,以此实现软件开发过程的质量度量,2023/4/4,1.2.6 软件质量,3.软件质量保证软件质量保证(Software Quality Assurance,SQA)包括如下多种工作:(1)推行与确认软件工程质量标准;(2)研究与采用各种技术手段来保证软件质量;(3)对软件的各种变更进行控制

22、;(4)制订并执行软件测试策略测试计划;(5)按照软件质量标准对软件的质量进行度量;(6)组织各种技术评审会或评审活动;(7)对软件质量的度量情况及时记录和生成SQA报告。,2023/4/4,1.3 软件工程经济学,经济学(Economics)是研究人类在从事生产、交换以及对产品和劳务消费过程中,如何有效地利用和合理地配置可供选择的各种有限资源(又称稀缺资源),以使人类的现在和将来的无限欲望得到最大满足的一门学科。按照研究的范畴不同,经济学可划分为宏观经济学(Macro Economics)和微观经济学(Micro Economics)。,2023/4/4,1.3 软件工程经济学,宏观经济学是

23、通过对国家(地区、部门)的产量、收入、价格水平和失业来分析上述主体的整体经济行为的一门经济学分支学科。而微观经济学则是研究厂商、家庭、个人等特定经济单位的市场行为和如何作出决策(生产与消费决策)及分析其影响因素的一门经济学分支学科。,2023/4/4,1.3 软件工程经济学,1.3.1软件工程经济学的内涵与任务软件工程经济学(Software Engineering Economics,SEE)是以软件工程领域中的经济问题和经济规律为研究对象的一门经济学分支学科,具体地说,就是研究为实现特定功能需求的软件工程项目而提出的在技术方案、生产(开发)过程、产品或服务等方面所作的经济分析与论证,计算与

24、比较的一门系统方法论学科。,2023/4/4,1.3 软件工程经济学,软件工程经济学至少应该包括如下四个部分:(1)学科研究的对象、任务、特征、研究范围和研究方法;(2)软件系统的内部构成要素和经济活动及其关联分析,如投资、成本、利润、效益、工期、效率、质量及研制、开发、维护、管理活动及其关联分析;(3)软件系统的组织结构、管理决策及其与经营活动的关系;(4)软件系统的物流、资金流、信息流的输入与输出及其对系统外部国家、地区经济、社会、国防、人民生活的影响。,2023/4/4,1.3 软件工程经济学,其中(1)为软件系统的基础概念与理论部分,(2)、(3)为软件系统的微观经济分析部分,(4)为

25、软件系统的宏观经济分析部分。微观经济分析细化,研究内容具体如下:软件工程经济分析基本原理及应用,如价值工程原理、规模经济与生产函数原理、成本效益分析与边际分析原理,项目开发的时间、成本/效益、质量、效率的均衡原理、优化原理与敏感性分析等。软件项目的成本估算、成本控制与融资。软件项目开发的风险与不确定性分析和投资可行性分析。,2023/4/4,1.3 软件工程经济学,软件产品的质量评价、经济效益评价、财务评价以及主要质量指标软件可靠性、维护性等的经济评价方法。软件生存周期中各种生产(开发)与管理活动的经济分析与决策,如软件工具与设备的采购决策、信息获取决策、开发技术方案的评价与决策、成本的阶段分

26、配决策、软件发行决策、产品定价决策等。软件项目的工作任务分解与计划制订、组织与协调及其经济分析与优化。软件开发效率(劳动生产率)的影响因素分析及改进策略研究。,2023/4/4,1.3 软件工程经济学,1.3.2 软件工程经济学研究特点1.注意到软件产品的人工制作的特点,故其工程经济分析的重点是成本/效益、质量、时间进度/工期、生产效率、组织/协调、而以人的组织与协调、控制为主线。,2023/4/4,组织/协调,成本/效益,时间进度/工期,生产效率,质量,2023/4/4,1.3 软件工程经济学,软件工程经济学研究特点:2.SEE的研究思想来源于系统工程,因而工程技术分析、工程经济分析的研究要

27、注意系统目标的整体性、构成要素的层次性、生产活动的关联性、组织结构的合理性、系统环境的适应性。(整体、有序、协调),2023/4/4,1.3 软件工程经济学,软件工程经济学研究特点:3.考虑到人的组织、协调度量的复杂性,故SEE的研究采用定性与定量相结合、理论推导与实验实证分析相结合的思路。4.由于我国与欧美国家在文化与价值观念、经济发展道路与经济体制、企业经营机制与管理水平的不同,决定了软件的开发环境有很大的不同,因此欧美SEE理论的直接引用产生“水土不服”在所难免,必须进行适合于我国的“国情”“企情”的“本地化”研究。,2023/4/4,1.3 软件工程经济学,SEE理论与方法关联图,20

28、23/4/4,1.3 软件工程经济学1.3.3软件工程经济学研究的发展道路,我国SEE尚处于欧美理论消化、零星(非系统)内容研究发展阶段,尚无专门机构从事SEE的的本地化研究工作,“软件危机”,通过SE范例研究、构造模型,做成本、工期预测,模型的比较评价,要素的均衡优化,系统动力学方程、生产函数、生产率,企业决策的经济分析,2023/4/4,1.3 软件工程经济学1.3.3软件工程经济学研究的发展道路,系统动力学(简称SDsystem dynamics)的出现于1956年,创始人为美国麻省理工学院(MIT)的福瑞斯特(JWForrester)教授。系统动力学对问题的理解,是基于系统行为与内在机

29、制间的相互紧密的依赖关系,并且透过数学模型的建立与操弄的过程而获得的,逐步发掘出产生变化形态的因、果关系,系统动力学称之为结构。,2023/4/4,生产函数可以用一个数理模型、图表或图形来表示。换句话说,就是一定技术条件下投入与产出之间的关系,在处理实际的经济问题时,生产函数不仅是表示投入与产出之间关系的对应,更是一种生产技术的制约。例如,在考虑成本最小化问题时,必须要考虑到技术制约,而这个制约正是由生产函数给出的。另外,在宏观经济学的增长理论中,在讨论技术进步的时候,生产函数得到了很大的讨论。,1.3 软件工程经济学1.3.3软件工程经济学研究的发展道路,2023/4/4,软件工程生存周期的

30、工程经济活动及其关联,可行性分析,成本质量工期与进度控制,风险控制,投标与招标,时间资源成本计划,投资与融资,设备工具原料厂房的购买或租赁,团队组织与建设,生产过程设计与分析,测试计划与组织,软件发行,软件定价,软件销售,销售收入,效益/利润,税金,设备折旧,项目成本,2023/4/4,由软件工程经济学的定义知,上述各工程经济活动的系统分析与评价是软件工程经济学研究的主要任务,且进一步的研究还认识到,这种经济活动的系统分析与评价还具有如下的特征:系统分析的目的是为了提高工程经济活动的经济效果,亦即在有限的资源(人力、资金、工期、设备或工具)约束条件下,对各项工程经济活动进行有效的计划、组织、协

31、调和控制,以最大限度地来提高工程经济活动的效益与效果。工程经济活动所讨论的经济效果大多与“未来”有关。因此,这种对未来经济效果的认识必须考虑在不确定性因素或随机因素影响下的风险的存在,并寻找经济效果与风险的合理权衡。,SEE研究中的系统分析与评价,2023/4/4,系统分析强调的是在技术可行性基础上的经济分析,而不包括技术可行性的分析和论证内容。后者将由软件工程技术学这一分支来解决。各种工程经济活动的系统评价是通过“比较”来完成。这就要求在对这些工程经济活动的研究中要形成多种技术经济备选方案,以便从中通过比较来作方案选择。此外,考虑到不同的利益主体追求目标的差异性以及比较的系统性与层次性,故常采用具有一定递阶层次结构的指标体系来完成方案比较的工作考虑到各技术经济方案在按照多指标的比较中,其表现常存在一定的矛盾与对立性,因此系统评价应是各利益主体目标的相互协调与均衡。,THANK YOU,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号