软件工程经济学PPT学习课件.ppt
《软件工程经济学PPT学习课件.ppt》由会员分享,可在线阅读,更多相关《软件工程经济学PPT学习课件.ppt(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程经济学Software Engineering Economics专业必修课,32学时1Software Engineering Economics(SEE)l教材:赵玮,软件工程经济学,西安电子科技大出版社,2008.9l参考书:l1 B.W.Boehm,Software Engineering Economics,Prentice-Hall.Inc,1981l2 B.W.Boehm,Software Cost Estimation with COCOMII,Prentice-Hall.Inc,2000l3 L.Bernard,Cost Estimation of Software
2、Develop,北京,清华大学出版社,1991软件工程经济学(目录)l第1章 软件工程与软件工程经济学1.1软件、软件产业与软件企业1.2 软件工程1.3 软件工程经济学的内涵、特点与任务l第2章 软件工程经济学基础2.1 软件工程经济分析的基本要素2.2 现金流的贴现与预计2.3 招标与投标2.4 项目评价与决策方法软件工程经济学(目录)l第3章 软件的成本、工期与定价分析3.1 软件成本构成及其影响因素分析3.2 软件成本、工期的测算方法3.3 软件成本与价值工程分析3.4 软件定价与销售分析l第4章 软件项目的经济、社会效益与风险分析4.1 软件项目的经济效果评价4.2 软件项目的经济与
3、社会效益分析4.3 软件项目的风险分析与控制软件工程经济学(目录)l第5章 软件生产过程经济分析5.1 软件生产函数与软件生产率5.2 软件生产过程经济分析5.3 不同规模的软件生产过程经济分析5.4 软件的理论生存周期长度及其关联分析l第6章 软件项目的进度计划制订与团队组织6.1 基本概念与工作流程6.2 进度计划的分析与求解6.3 软件项目开发团队的组织与建设软件工程经济学(目录)l第7章 软件测试的资源分配、进度管理与最优发行7.1 软件测试与可靠性增长7.2 软件测试的资源分配与进度管理7.3 软件最优发行问题7.4 软件系统信息库建设l软件工程技术学软件工程技术学:在软件开发、运行
4、和维护全过程中,为满足用户功能与性能需求而采用的工程技术方法的全体称为软件工程技术学l软件工程管理学软件工程管理学:在软件开发、运行和维护全过程中,为满足用户对人员、设备的计划、组织、协调、控制需求而采用的工程管理方法的全体称为软件工程管理学l软件工程经济学软件工程经济学:在软件开发、运行和维护全过程中,为满足用户的成本、质量、时间(工期)、效益需求而采用的工程经济方法的全体称为软件工程经济学1.1软件、软件产业与软件企业1.1.1 软件l目前学术界对软件的普遍性解释为:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序程序、数据数据及其相关文档文档的完整集合。程序是指按事先设计的功能和
5、性能要求执行的指令序列数据是指使程序能正常操纵信息的数据结构文档是与程序开发、维护和使用有关的图文资料1.1软件、软件产业与软件企业l软件作为一个产品或服务,与其他产品相比具有很大的区别,具体表现出如下特点:(1)软件是信息产品信息产品,具有无形性、抽象性、可复制性和共享性。与硬件相比,软件是一种逻辑实体而非物理实体,它可以记录在纸面上,保存在计算机的软、硬、光盘里,但必须通过使用、测试、分析等途径才能了解它的功能、性能和其它特性。1.1软件、软件产业与软件企业 (2)软件的生产过程独特生产过程独特,经历规划与计划、需求分析、设计、编程、测试、运行和维护等环节来形成产品使用的,而不像硬件的生产
6、过程是以原材料器件采购、运输、库存开始,然后经规划、设计、研制、生产、销售、运行与维护来形成产品使用的。(3)软件产品是知识的结晶知识的结晶,创新已成为软件产品发展的动力和企业竞争的焦点。产品周期短,技术更新快,集成化程度高,已成为软件产品的重要特征。1.1软件、软件产业与软件企业(4)软件生产基于开发人员的思维与认识的片面性基于开发人员的思维与认识的片面性,经验与技术的不足,长时间的开发劳动造成的心理和体力的疲乏以及与用户的相互沟通的不足等原因,软件在提交使用时,各种潜在的固有差错潜在的固有差错是无法避免是无法避免的,且这种潜在的固有差错数将随着软件规模的增大而增大。(5)软件的成本构成与硬
7、件产品相比,无需库存成本。由于软件可以通过因特网进行销售,故其销售成本较低,且伴随着软件向服务方向的转移,开发成本的比例越来越低,而使用维护成本的比开发成本的比例越来越低,而使用维护成本的比例越来越高例越来越高。1.1软件、软件产业与软件企业(6)软件产品与硬件相比而言,市场的进入市场的进入壁垒一般较低壁垒一般较低,软件企业竞争十分激烈,这就迫使软件企业不能固守传统产品,而要不断地推陈出新,更新换代。1.1软件、软件产业与软件企业1.1.2 软件产业l软件产业是指软件产品和软件服务相关的一切经济活动和关系的总称。l软件产业包括软件产品软件产品和软件服务软件服务两大部分软件产品:系统软件、支撑软
8、件和应用软件软件服务:信息系统集成,信息系统运行和维护服务,数据中心与资源外包服务,数据加工与处理服务,软件测试服务,信息系统咨询和评估服务,信息系统监理,软件与信息系统管理与人才工程化培训等1.1软件、软件产业与软件企业软件产业具有如下特征:软件产业具有如下特征:(1)高技术、高附加价值与高效益。高技术、高附加价值与高效益。软件产业是典型的技术密集、知识密集的高技术产业。(2)与其他产业的高度关联性与其他产业的高度关联性。软件产业由于其“服务性”的宗旨,其服务领域涉及到国民经济的任何一个部门。(3)国际化特征明显。国际化特征明显。一批跨国公司正在兴起,并领导着国际软件市场和软件技术标准的发展
9、,同时也为国际间的软件加工和业务外包提供了空间。1.1软件、软件产业与软件企业(4)专业化分工越来越细。专业化分工越来越细。(5)规模经济效益日益明显规模经济效益日益明显。软件产业的服务化趋势越来越明确,产业集中度越来越高,规模经济效益正在日益明显。以美国为代表的少数国家掌握着软件的核心技术和知识产权,处于产业发展的中心地位,处于价值链的高端。1.1软件、软件产业与软件企业 国际软件产业在经过不断的产业创新与发展后,分别形成了以下四种具有特色的软件产业类型:(1)美国的技术与服务领导型;(2)印度的国际加工服务型;(3)爱尔兰的生产本地化型;(4)西欧和日本的嵌入式系统开发型。1.1软件、软件
10、产业与软件企业1.1.3 1.1.3 软件企业及其管理软件企业及其管理l从市场角度出发,软件企业可分为软件产品企业软件产品企业和软件服务企业软件服务企业两类l软件更像一个特殊的项目(Project)。而软件企业管理就可用项目管理(Project Management)的理论和方法来进行指导。1.2 软件工程软件工程1.2.1 软件工程概念l软件工程的诞生源于“软件危机”l软件危机是指在计算机软件开发中的一系列问题。软件技术问题:软件技术问题:如怎样开发软件?怎样维护现有的、容量又在不断增加的软件?我们怎样做才能满足人类对软件需求的不断增长等等经济问题:经济问题:如软件开发过程中成本和进度估计往
11、往不精确,软件质量与可靠性的概念十分可疑,如何来处理一些相互对立的软件目标,如成本、工期、可靠性等,软件测试究竟需要多长时间才能投放市场等等。1.2 软件工程软件工程l软件工程是一门适用于软件开发全过程的系统工程方法论的学科,其目的是为满足人们对软件生产的成本、质量、时间成本、质量、时间(工期工期)和效率、效益和管理和效率、效益和管理等的需求。l根据系统工程的理论,任何一个工程学科,其方法论均可划分为三大部分:工程技术工程技术学方法、工程经济学方法和工程管理学方学方法、工程经济学方法和工程管理学方法法。1.2 软件工程软件工程1.2.1 软件工程概念1.2 软件工程软件工程1.2.1 软件工程
12、概念l软件项目与硬件产品生产一样,为了获得高效率的生产和质优、价低的产品,必须运用科学的理论与方法,如系统工程、工程经济学、项目管理的理论与方法来指导软件开发的全过程,并进行必要的定量定量分析与评价。l软件工程经济学中所涉及的软件基本度量包括:软件规模、软件复杂性、软件可靠软件规模、软件复杂性、软件可靠性、软件安全性与软件质量等的度量。性、软件安全性与软件质量等的度量。l软件作为一个特殊产品与其他产品一样有其自生到灭的生存过程。通常我们将软件以概念形成开始,经过开发、使用和维护,直到最后退役的全过程称为软件的生存周期(Software life Cycle)。1.2 软件工程软件工程 1.2.
13、2 软件生存周期、开发模型与任务分解l基于产品质量控制的需求,人们需要对上述各阶段的工作成果进行评价,因而除可行性研究评审外,人们还需要作单元测试与评价,组装测试与评价,集成测试(确认测试)与评审,运行测试与评价等活动。有关上述各阶段活动的相互关联见下图。1.2 软件工程软件工程 1.2.2 软件生存周期、开发模型与任务分解1.2 软件工程软件工程 1.2.2 软件生存周期、开发模型与任务分解l软件生存周期中各阶段活动的关联图示称为软件的开发模型。1.2 软件工程软件工程 1.2.2 软件生存周期、开发模型与任务分解1.2 软件工程软件工程 1.2.2 软件生存周期、开发模型与任务分解螺旋模型
14、l工作任务分解所形成的层次结构被称为工作(任务)分解结构(Work Breakdown Structure,WBS)1.2 软件工程软件工程 1.2.2 软件生存周期、开发模型与任务分解1.2 软件工程软件工程 1.2.2 软件生存周期、开发模型与任务分解1.2 软件工程软件工程 1.2.2 软件生存周期、开发模型与任务分解1.2.3软件规模度量软件规模度量l目前在软件工程界中影响较大的软件规模度量单位有程序源代码行(Lines Of Code.,LOC)和功能点(Functional Point,FP)两种。1.2.3软件规模度量软件规模度量l功能点计算方法的基本思想为首先计算软件的五个基本
15、信息量:外部输入数(External Input.,EI)、外部输出数(External Output.,EO)、外部查询数(External Query.,EQ)、内部逻辑文件数(Internal Logical File.,ILF)、外部接口文件数(External Interface File.,EIF)的加权和CT,然后对其通过14个环境复杂性因子作如下修正。1.2.3软件规模度量软件规模度量1.2.3软件规模度量软件规模度量lwj为第j个基本信息量dj的加权系数或复杂程度系数;ld1即为外部输入数(EI),它包括了每个用户为软件提供的输入参数个数(不包括查询数),体现了软件面向用户服
16、务的数量特征;ld2即外部输出数(EO),它指软件为用户提供的输出参数个数,如报告数、屏幕帧数、错误信息个数等;ld3即外部查询数(EQ),它规定一个联机输入确定一次查询,软件以联机输出的形式实时地产生一个响应,统计各种查询个数;ld4即内部逻辑文件数(ILF),它要求统计内部逻辑主文件数;1.2.3软件规模度量软件规模度量ld5即外部接口文件数,通常指所有机器可读的界面(如磁盘或磁带上的数据文件),利用此接口界面可以将信息从一个系统传送到另一个系统;lCT称为软件的功能数,PCA称为系统功能的复杂性调整因子。1.2.3软件规模度量软件规模度量1.2.3软件规模度量软件规模度量1.2.3软件规
17、模度量软件规模度量l例例1.11.1 某软件根据需求分析,对照表1.11的各项要求,得到环境复杂性因子 ,五个信息量的数值dj及其对应权系数wj之取值见表1.12,于是由(1.1)式可得软件系统其需求功能点为:1.2.3软件规模度量软件规模度量若功能点与源代码行的转换率为 =15 kLOC/FP则该软件系统有规模LS=FP15=8210LOC=8.21 kLOC1.2.4 软件复杂性度量软件复杂性度量l复杂性是软件的重要属性之一,任何一个有经验的程序员都知道。对于同种规模而复杂性不同的软件,其花费的成本和工期会有很大的差异。l如下的六个方面可作为软件复杂性描述的依据:(1)理解程序的难度;(2
18、)纠错、维护程序的难度;(3)向他人解释程序的难度;(4)按指定方法修改程序的难度;(5)根据设计文件编写程序工作量的大小程度;(6)执行程序时需要资源的多少程度。1.2.4 软件复杂性度量软件复杂性度量l20世纪70年代M.Halstead从统计学和心理学的角度来研究软件复杂性问题,提出用程序中可执行代码的词汇量(操作符与操作数)来计算和分析软件复杂性的方法,并在此基础上还可将其转换成软件规模的测算。1.2.4 软件复杂性度量软件复杂性度量l通过数学推导,可以证明程序语言的符号长度(又称词汇总数)N可近似地由下式确定:N=n1 lbn1+n2 lbn2 (1.2)式中,n1为程序中不同操作符
19、的个数;n2为不同操作数的个数;lbn即log2n。此外,利用转换公式1.2.4 软件复杂性度量软件复杂性度量l还可将程序语言的符号长度N转换成源程序行数L(不含注释性语句),其中C为转换系数,它与所使用的程序设计语言有关,同时也与软件类型以及程序员的编程风格等因素有关,可以通过对历史数据的统计分析来估计。在一般情况下,FORTRAN语言编程时有C=7.5,用PASCAL语言编程时有C=4.0。1.2.5 软件差错与可靠性度量软件差错与可靠性度量l衡量产品质量高低的指标有技术性能指标和可靠性指标,其中技术性能指标用来反映产品所具有的功能与性能的技术水平,如计算机的字长、容量、运算速度等,而可靠
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 经济学 PPT 学习 课件
限制150内