软件工程经济学期末复习总结
第一章 软件工程与软件工程经济学
本章目标
- 理解基本概念:软件、产业、项目、项目管理、软件工程、软件开发模型、软件质量、经济学、工程经济学 了解软件产业、软件企业等相关内容
- 掌握软件规模、复杂性度量 掌握软件工程经济学的内涵、任务、研究特点与方法体系
- 了解软件工程经济学的研究与发展
1.1 软件、软件产业与软件企业
1.2 软件工程
1.3 软件工程经济学的基本概念与任务
什么是软件?
1.指令的集合(计算机程序),通过执行这些指令可以满足预期的特 征、功能和性能需求;
2.数据结构,它使得程序可以充分利用信息;
3.描述程序操作和使用的文档。
软件的分类?
软件特点?
存在形式
软件是一种逻辑的实体而非物理实体
生产方式
软件是设计开发的,而不是传统意义上生产制造的;虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是采用用户定制的方式。
使用过程
软件不会“磨损”但会退化
成本构成
软件需开发成本、销售成本、维护成本,但无需库存成本;
人力成本占开发成本中绝大比例。
其他:软件生产的进入壁垒低、销售采用捆绑式营销策略等
软件企业:
软件企业的特点
市场准入门槛低
高收益和高风险
资产结构特殊
资产是企业拥有和控制的,能给企业带来经济效益的资源。
分为流动资产、固定资产、无形资产
无形资产:技术、专利、商标、商誉等
成本结构中人力成本大
成本结构:劳动资料消耗、劳动对象消耗、劳动力成本
技术更新速度快
注重售前和售后服务等
企业管理的定义
是指在企业特定的生产方式下,管理者按照某些原则、程序和方法,使用一定的手段(工具、方法),针对生产的各要素(人力、物力、设备、资金、信息)进行计划、组织、指导、协调和控制,以使其发挥最大的经济效果,达到预期目标的一种筹划和过程。
企业管理的分类
战略管理
生产运作管理
市场营销管理
财务管理
人力资源管理
采购管理
信息管理
项目的定义
所谓项目,是在既定的资源和需求约束下,为实现某种目的而相互联系的一次性的有计划的工作任务。
项目的特征
目标性
相关性
时限性
独特性
约束性
不确定性、变更性
结果的不可逆转性
软件危机是一种矛盾,就是弱的软件生产能力与强的业务需求之间的矛盾,既有技术上的问题,又有经济上的问题,通常可以找到的导致项目缺陷的原因都与项目管理有关
项目管理的定义
项目管理就是在项目活动中运用专门的知识、技能、工具和方法,使项目达到预期目标的过程,是以项目作为管理对象,通过一个临时性的、专门的组织,对项目进行计划、组织、执行和控制,并在时间、成本、性能、质量等方面达到预期目标的一种系统管理方法。
小结思维图
软件工程:将系统的、规范的、可度量的工程化方法应用
于软件开发、运行和维护的全过程及上述方法的研究。
软件开发模型
定义:
根据软件生存周期为各项开发活动的流程确定合理的框架。
开发模型的选择与成本和工期密切相关
作用:
给软件开发过程提供原则和方法(技术)
给软件工程管理提供里程碑和进度表(管理)
便于各阶段成本估算、核算、控制(经济)
任务分解
定义:
将软件项目的工作任务进行逐级逐层的分解
作用:
为了进行团队组织、制定进度计划,控制计划的执行(管理)
为了成本估算和控制(经济)
软件项目度量----实现量化管理的关键
软件度量的三个主要作用:
理解软件项目、预测软件项目、控制软件项目。
具体体现在以下方面:
软件度量能为项目估算、计划提供基础数据,也提供了控制项目的量化信息。
软件度量为质量管理提供指标,推动企业过程改进。
度量为软件组织提供客观的信息,是帮助项目经理进行项目交流的有力工具。
度量可促进主动性的管理策略,度量指标的各种指示,就像质量目标的红绿指示灯一样,帮助项目经理进行决策,以便对费用、进度、质量等进行权衡,以满足项目目标。
度量分类
- 规模度量 程序源代码行(LOC)、功能点(FP)
- 复杂性度量 可执行代码的词汇量
- 差错/缺陷度量 缺陷数/KLOC
- 可靠性度量 软件寿命、可靠度、软件寿命概率密度、软件寿命的期望值
- 质量度量 ISO/IEC9126质量特性国际标准
程序源代码行(LOC Lines of code 、KLOC)
是从软件程序量的角度定义项目规模
使用LOC要求功能分解够详细,而且有一定的经验数据
不同的开发语言代码行不一样
可用人工和软件工具直接测量
功能点(FP Function Point )
是用系统的功能数量来测量其规模,是一种间接的度量方法
以一个标准的单位来度量软件产品的功能,与技术和语言无关
软件复杂性描述:
理解程序的难度
纠错、维护程序的难度
向他人解释程序的难度
按指定方法修改程序的难度
根据设计文件编写程序工作量的大小程度
执行程序时需要资源的多少程度
软件差错与可靠性
软件差错(Software Error)
软件缺陷(Software Defect)缺陷数/KLOC
软件故障 (Software Fault)
软件可靠性度量指标
软件可靠性
定义:软件产品在规定的条件下,在规定的时间内,完成规定功能(或无故障运行)的概率。
软件可靠性可以通过历史数据和开发数据直接测量和估算出来
软件质量:
符合明确规定的功能和性能需求
符合已清晰文档化的开发标准
具有专业人员开发软件所应有的隐含特征
软件质量保证(Software Quality Assurance)
推行与确认软件工程质量标准
研究与采用各种技术手段来保证软件质量
对软件的各种变更进行控制
制订并执行软件测试策略测试计划
按照软件质量标准对软件的质量进行度量
组织各种技术评审会或评审活动
对软件质量的度量情况及时记录和生成SQA报告
小结思维图
什么是软件工程经济学(SEE)?
工程经济学和软件工程的交叉学科
以软件工程领域中的经济问题和经济规律为研究对象的一门经济学分支学科
具体说:就是研究为实现特定功能的软件项目而提出的在技术方案、生产(开发)过程、产品或服务等方面所作的经济分析和论证,计算和比较的一门系统方法论学科。
软件工程经济学研究的内容:
(1)学科研究的对象、任务、特征、研究范围和研究方法;
(2) 软件系统的内部构成要素和经济活动及其关联分析,如投资、成本、利润、效益、工期、效率、质量及研制、开发、维护、管理活动及其关联分析;
(3) 软件系统的组织结构、管理决策及其与经营活动的关系;
(4) 软件系统的物流、资金流、信息流的输入与输出及其对系统外部——国家、地区经济、社会、国防、人民生活的影响。
软件工程经济学研究的内容:具体如下
· 软件工程经济分析基本原理及应用,如价值工程原理、规模经济与生产函数原理、成本效益分析与边际分析原理,项目开发的时间、成本/效益、质量、效率的均衡原理、优化原理与敏感性分析等。
· 软件项目的成本估算、成本控制与融资。
· 软件项目开发的风险与不确定性分析和投资可行性分析。
· 软件产品的质量评价、经济效益评价、财务评价以及主要质量指标——软件可靠性、维护性等的经济评价方法。
· 软件生存周期中各种生产(开发)与管理活动的经济分析与决策,如软件工具与设备的采购决策、信息获取决策、开发技术方案的评价与决策、成本的阶段分配决策、软件发行决策、产品定价决策等。
· 软件项目的工作任务分解与计划制订、组织与协调及其经济分析与优化。
· 软件开发过程的动态规律描述及其各经济要素的关联分析。
· 软件开发效率(劳动生产率)的影响因素分析及改进策略研究。
小结思维图