软件工程经济学笔记
[TOC]
第1章 软件工程与软件工程经济学
1.1 软件、软件产业与软件企业
1.1.1 软件及其分类与特点
软件的定义:软件是计算机系统中与硬件相互依存的另一部分,它是 包括程序、数据及其相关文档的完整集合 。
1)程序是指按事先设计的功能和性能要求执行的指令序列
2)数据是指使程序能正常操纵信息的数据结构 ;
3)文档是与程序开发、维护和使用有关的图文资料 。
1.1.2 软件产业及其发展
软件产业是指软件产品和软件服务相关的 一切经济活动和关系的总称。
根据中国软件行业协会发表的《2000年中国软件产业研究报告》, 软件产业包括软件产品和软件服务两大部分。
国际数据公司IDC将软件产业细分为: 系统基础软件、应用开发和配 置软件、应用解决方案 。
1.1.3 软件企业及其管理
作为软件产业的基本单元,从市场角度出发,软件企业可分为软件产品企业和软件服务企业两类,而软件产品企业又可分为开发标准化软件的企业和 开发半定制软件的企业

1.2 软件工程
1.2.1 软件工程的概念与分类
软件工程程是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过及上述方法的研究。
1.2.2 软件生存周期、开发模型与任务分解
1.生存周期
通常我们将软件以概念形成开始,经过开发、使用和维护,直 到最后退役的全过程称为软件的生存周期。

2.开发模型
软件开发模型的特点:
- 瀑布模型:具有各阶段定义清晰,采用文档驱动,便于管理的优点,适合 于中小型项目开发管理。
- 螺旋模型:适用于面向过程和面向对象的软件开发,并强调了开发中的潜 在风险,因而采用了在开发过程中的逐步迭代方式来进行组织。
1.2.3 软件规模与复杂性度量
目前在软件工程界中影响较大的软件规模度量单位有程序源代码行(Lines Of Code,LOC)和功能点(Functional Point,FP)。
- 源代码行 由于可用人工或软件工具直接测量 ,因而其估算简易可行。
- 与统计源代码行的直接度量方法不同,功能点 是一种间接度量方法 。
1.3 软件工程经济学的概念与任务
**经济学:**研究人类在从事生产、交换以及对产品和劳务消费过程中,如何 有效地利用和合理地配置可供选择的各种有限资源(稀缺资源),以使人 类的现在和将来的无限欲望得到最大满足的一门学科。 经济学可划分为宏 观经济学和微观经济学 。
**宏观经济学:**通过对国家(地区、部门)的产量、收入、价格水平和失业 来分析上述主体的整体经济行为的一门经济学分支学科。
微观经济学:研究厂商、家庭、个人等特定经济单位的市场行为和如何作 出决策(生产与消费决策)及分析其影响因素的一门经济学分支学科。
1.3.1 软件工程经济学的内涵与任务
软件工程经济学的定义:以软件工程领域中的经济问题和经济规律为研究对象的一门经济学分支学科
具体地说,就是研究为实现特定功能需求的软件工程项目而提出的在技术方案 、生产(开发)过程、产品或服务等方面所作的经济分析与论证, 计算与比较的一门系统方法论学科.
第2章 软件工程经济学基础
由软件工程经济学的定义知,上述各工程经济活动的系统分析与评价 是软件工程经济学研究的主要任务,这种经济活动的系统分析与评价具有如下特征:
- 系统分析的目的是为了提高工程经济活动的经济效果 ,在有限的资源(人 力、资金、工期、设备或工具)约束条件下,对各项工程经济活动进行有效的 计划、组织、协调和控制,以最大限度地提高工程经济活动的效益与效果。
- 工程经济活动所讨论的**经济效果大多与“未来”有关。**这种对未来经济效 果的认识必须考虑在不确定性因素或随机因素影响下的风险的存在 ,并寻找经 济效果与风险的合理权衡。
- 系统分析强调的是在技术可行性基础上的经济分析,而不包括技术可行性 的分析与论证内容。后者将由软件工程技术学这一分支来解决。
- 各种工程经济活动的系统评价是通过**“比较”**来完成的。这就要求在对这 些工程经济活动的研究中要形成多种技术经济备选方案 ,以便从中通过比较来 作方案选择
- 考虑到各技术经济方案在按照多指标的比较中,其表现常存在一定的矛盾与对立性 ,因此系统评价应是各利益主体目标的相互协调与均衡。
2.1 软件工程经济分析的基本要素
2.1.1 投资、融资与项目可行性分析
投资是企业为了实现某种特定的目标通常是为了获得收益或 避免风险)而进行的某种资金投放或运行的经济活动 。
投资活动包括:
- 生产性投资 :为了保证生产与经营活动的正常运行,或为了扩大企业再生产力,提高企业技术装备水平,提高劳动生产率,开发新产品。
- 非生产性投资: 主要作证券投资 ,即通过购买股票 、债券、期货及其他金融衍生工具或委托贷款以获取收益 ,但不直接参与经营活动的一种投资活动。
1.建设项目投资及其构成
建设项目投资:指人们在社会生产活动中,为实现某项目(如软件项目、 基本建设项目)特定的生产与经营目标而预先垫付的资金 。
建设项目投资包括:固定资产投资、流动资金投资、无形资产投资。
- 固定资产投资:为建造或购置固定资产所预先垫付的部分资金。
- 流动资金投资:需要一定数量的周转资金以供生产经营活动展开使用, 经营活动预先垫付 、供周转使用的资金。
- 无形资产:企业长期使用但没有实物形态的资产,包括专利权 、著作权、专有技术 、商标权、商誉、土地使用权等。
3. 项目可行性分析
项目的可行性分析:解决项目的必要性、可实现性、效果性与风险性的 分析与研究工作。
可行性研究的最终成果是编写与提交**(可行性研究)报告。**
2.1.2 成本、收入、税金、利润及其关联
1.成本
成本是为取得各项生产要素、商品及劳务以及为实现某些特定经济目的而发生的各种耗费。
按照我国财务制度规定,总成本费用由生产成本、管理费用、财务费用、销售费用组成:
2.收入
收入是指企业在销售商品、提供劳务及其他使用本企业资产等经济活动中所形成经济利益的总流入,包括商品的销售收入、劳务收入、使用费收入、股利收入、利息收入等。
3.税金
税金是国家为了实现其发展经济、提高人民生活等职责需要,依据法律规定对具有纳税义务的单位和个人征收的财政资金。既是国家筹集财政资金的手段,又是国家参与国民收入分配和再分配的一种形式。
与我国企业特别是软件企业有关的税种有:增值税、营业税、企业所得税、城乡维护建设税、教育费附加等
4.利润
利润是企业经营所追求的主要目标。它体现了企业在一定时期的经营成果,也是工程经济分析的重点。根据企业工程经济分析的不同要求,利润分为销售利润、利润总额、税后利润等内容。其计算公式如下:
【销售利润】 = 销售收入 - 总成本费用 - 销售税金及附加 【利润总额】 = 销售利润 + 投资净收益 + 营业外收入 - 营业外支出
【税后利润】 = 利润总额 - 所得税
2.2 基于资金时间价值的现金流的贴现与预计
2.2.1 资金的时间价值
在市场经济中,资金若锁住不用,虽然其资金数额将保持不变,然而将 随着通货膨胀而产生贬值;相反,若存入银行或投资工程项目,则该资金将 进入一个循环和周转的过程,它的绝对金额将随时间而转移,并将发生相应 的增额或减额的变化,其增加或减少的金额部分称为资金的时间价值。
1.利息与利率
2. 通货膨胀率与贴现率
通货膨胀:指纸币发行量超过商品流通实际需要的货币量所引起的货币贬值 现象。通货膨胀一般包含了如下三个方面的含义.
- 通货膨胀是货币超量发行而形成的货币(纸币)贬值后的物价上涨现象
- 通货膨胀是指市场商品和劳务价格的总体性的普遍上涨和持续上涨
- 通货膨胀是由于货币(纸币)超量发行而引起的,当货币超量发行时,市场机制的正常运转将受到阻碍,从而迫使政府采取干预手段
贴现率:
考虑到现金的流量如Sn会受到n期银行利率in与n期通货膨胀率fn的双重影响, 为了综合这两种因素 的影响效果,人们提出了一种被称为n期贴现率(折现率) qn的参数,并认为有
2.2.2 资金的等值与现金流量图
1.资金的等值
在资金的时间价值计算中,等值的概念是重要的。所谓资金的等值,是 指在时间因素的作用下,不同时点的不等货币值可能会具有相等的价值,
例 如现在的100元与一年后的105元从币值来看是不相等的,然而如果 一年后的 年利率为 4%,通货膨胀率为1%,则我们可认为这两笔资金(即100元与105元) 是等值的,这是由于有:

2.现金流量图
为了考察软件项目 在整个生命周期内各阶段 重要概念 的投入费用与收益,以分析 它们的经济效果,人们常利用现金流量图来直观、形象地描述。 在现金流量图中,横坐标表示时间尺度 ,单位常用“年”(特殊情况下也 可用季或半年、月等),垂直线则代表不同时点的现金流量状况 。其中箭头向上者表示现金流入(或正现金流),箭头向下者表示现金流出(或负现金流), 而带有箭头之垂线的长度 则是依据现金流量的大小按比例画出的
2.2.3 现金流的贴现与预计
为了解决不同投资方案实施效果的比较问题,常利用等值的概念,将现金流量序列中不同时点发生的金额换算成同一时点的金额,然后再进行比较。
- 将现金流量序列中将来发生在不同时点的金额全部换算成当前时刻t=0时的金额,这一换算过程称为“**折现”**或“贴现”,并将未来时点上的资金折现到现在时点上的资金之价值称为“现值”。
- 将当前时点上的资金金额换算到将来某一时点(通常是某一时间区间的终点)的金额,这一过程称为“预计”,而将当前时点上的资金金额换算到将来某一时点上的资金之价值称为“终值”。
2.3 招标与投标
软件项目的经费来源一般分为三类:
- 国家、省自然科学基金,国家信息化工程、国防科研基金申请获准的 项目。此类项目的软件一般应在理论与方法上带有前瞻性,并具有国内先 进与领先水平的特点。
- 企业(或部门,如学校、研究所)自行筹资(或合资),然后独立 (或合作)完成设计与构建工作,最后将该软件项目推向市场,并寻求用 户的购买。此类软件的特点一般是经过事前论证获知具有较大的市场需求 的系统,如证券投资分析系统、物流管理信息系统等。
- 通过其他企业或政府部门的招标,经过投标竞争获取。此类软件项目 的特点一般是应用性较强并带有较强的时间约束的软件,如电子政务系统、 电子商务系统等。本节将介绍第三类即有关软件招标与投标的有关内容 。
2.3.1 招标/投标的特征与分类
招标与投标的特征
(1)招标的组织性。有固定的招标组织人,有固定的招标场所,有固定的招标时间,有固定的招标规划或程序细则。
(2)招、投标的公开性。招标机构一般通过各种途径(如网站、电视台、报刊、发送通知)作广泛通告来寻求有能力、有兴趣的承包商或供货商
(3)招、投标的一次性决定。即交易活动的主动权掌握在招标人手中,由招标机构对最后的众多投标商作出选择,而投标商没有讨价还价的权利。
(4)招、投标的公平性。招标机构按照预先给定的招标规则,并本着公平竞争的原则来对中标人(中标单位)作出最后选择。
第3章 软件的成本、工期与定价分析
3.1软件的成本构成及其影响因素分析
成本:取得各项生产要素、商品或劳务以及为实现特定经济目的而发生的耗费
包括以下:
- 劳动资料方面的消耗,固定资产折旧费,设备运转所需的动力费,为保持设备 正常工作状态所需的修理费,设备购买与安装、运输等费用;
- 劳动对象方面的消耗,各类损耗材料费,材料的仓储、运输费等
- 人工方面的消费的消耗,工资及与此相关的福利费,为职工支付的保险费等
成本的分类
- 按照企业主要经营活动来划 分,成本可分为五类,研究与开发成本、采购成本、生产成本、 经营成本、管理费用,五种成本
- 按成本与产量的对应关系来划分,可分为变动成本与固定成本
- 按成本的确定时间来划分,可分为预测成本、定额成本、 计划成本、实际成本
3.2软件成本与工期的测算方法
功能分解法
功能分解法的基本思想:从结构上将软件成本 按功能/性能和生存周期 阶段两个维度进行分解,若设系统的生存周期为n个阶段,软件按功能/性能 分为m个子系统,则该系统的功能分解示意图见图3.2。



影响因子法
影响因子法又名驱动因子法,是一种在统计模型的基础上通过引入更多的对𝑦有影响的要素来完成对统计模型估计值的修正的一种定性与定量 相结合的方法。
求解方法是:
- 确定对因变量𝑦作出估计的统计模型𝑦=𝑔(𝑥_1,𝑥_2,…,𝑥_𝑛),其 中𝑥_j是指通过定量估算法求得的对𝑦有较大影响的几个影响要素;
- 引入综合影响要素U,U是指除了𝑥_j以外对𝑦有影响的估计值。
COCOMO模型
COCOMO模型是构造性成本模型(Constructive Cost Model)的缩写,该 模型是采用影响因子法原理所建立的一种适用于系统规划阶段作软件成本估 算的预测成本估算模型 。该模型的数学形式如下,它是一个由五个算术表达 式构成的组合模型,组合模式的求解流程见图3.8

| 变量名 | 含义 |
|---|---|
| C |
软件开发成本 |
| a | 软件开发阶段的工时费用率。 |
| M |
软件开发阶段的修正工作量。 |
| M |
软件开发阶段的基本工作量。 |
| L | 软件开发规模。 |
| U | 软件综合影响因子。 |
| U |
对成本有一定影响的第j个影响因子。 |
| T |
工期(开发周期)。 |
| r,k,h,d | 形式参数。 |
例题


类比法
任何一个软件机构,其开发的目标软件一般有如下两种状况:
- 目标软件是全新的,即相对于该软件的开发机构而言,目标软件的结构、 功能是从未接触过的,或开发人员有了很大的变化;
- 目标软件与过去已开发过的某一软件有相同或类似的功能与结构,而开 发人员变化较小,此时可利用类比法来估计新的目标软件的成本
设开发机构过去已开发过一个软件SA,其规模为LA,现欲开发的目标软 件为SB,其规模为LB,由于目标软件SB的结构、功能与原软件SA有类似之处, 故SB可通过对SA软件的改编来完成。现引入改编调整系数AAF,并认为改编 的工作是通过设计修改 、编码修改、集成修改三部分工作来完成的。
DM表示为适应新目标,对原开发软件SA所作的设计修改百分比;
CM表示为适应新目标,对原开发软件SA所作的代码修改百分比;
IM表示为适应新目标,对原开发软件SA所作的集成修改百分比;
权系数建议取W1 0.4,W2 =W3= 0.3
新规模有:
例题

设备折旧
直线折旧法
直线折旧法的基本思想:设备在使用期内,平均地分摊 设备价值来作为 设备的折旧额。若设Ab表示一年设备的折旧额 ,k0表示设备的原始价值 O表示设备若干年后的残值 ,T表示设备的最终使用年限,α表示 折旧率 ,则其基本算法如下:
加速折旧法
加速折旧法的基本思想:设备在使用过程中,其效能是变化的,其中使 用的前几年,设备处于良好状态,效能较高,可为企业提供较高的效益,而 在使用后期,由于设备的各种有形磨损(如摩擦、振动、介质腐蚀、材料老 化等导致)与无形磨损(如由于技术进步而不断出现新的高性能、低价格的设 备,而使原设备价值降低),从而为企业提供的效益相对较低。因此设备使 用的前几年分摊的折旧费应比后期分摊的折旧费更多一些 ,方为合理。为 此人们又提出了如下一些新的设备折旧算法
第t年的折旧费用:
例题:

3.3软件成本与价值工程分析
价值工程分析(价值工程)是一种通过对产品的功能与成本间的关系 研究,来改进产品经济效益的一种技术经济与管理方法。
价值工程分析的作用:通过对产品或作业的功能与成本的关系研究,力 求以最低的寿命周期成本 来实现产品或作业的必要功能,进而使企业获得 大利润 最 。它是通过对如下的功能、成本、价值三要素的关联来展开研究和组 织一系列改进活动的。
价值系数法
判断一个产品所具有的功能是否与其所支付的成本相匹配是价值工程分析 中需要解决的一大问题,为了解决此问题,人们引进了功能系数FI、成本系数 CI、价值系数VI来作为度量指标
价值跟功能成正比与成本成反比。
价值系数VIj实际上可理解为该系统的功能成本比,它类似于性能价格比 一样是反映各子系统功能与成本是否匹配的一项指标。利用价值系数可进行 各子系统的功能/成本分析。
- 如果VI
j=1,说明该子系统j的功能与成本配置恰当 ,相对合理; - 如果VI
j>1,说明该子系统j的功能系数FIj大于成本系数CIj,这意味着实现 该子系统功能的实际成本偏小 ,应适当加大该子系统的成本 的功能 ; 以 完善其对应 - 如果VI
j<1,说明该子系统j的功能系数FIj小于成本系数CIj,这意味着实现 该子系统功能分配的成本过高 ,需要对该子系统的结构设计进行改进 低相应的硬件设备价格 、软件开发费用,以达到最终降低子系统成本 降 的目 的,并促使功能与成本的匹配
ABC分类法
ABC分类法是一种可应用于软件成本控制、质量控制等方面的一种有效的统计方法。它通过对被考察对象的有序组织、排列与相应计算,将被考察的对象划分为A、B、C三类,进而使图形(又称ABC分类图)上呈现出人们需要寻找的重要部件的范围


70%A ,70%~90%~B,90%~100%C

3.3.3 价值工程分析与成本控制
运用价值分析作软件成本控制的基本思想是:
首先,对被考察的对象进行ABC分类,从中选出重点考察对象;
然后,对每一个重点考察对象引入一些与成本、进度有关的工程经济参数, 在开发过程中对这些工程经济参数进行不断的观察,并根据这些工程经济 参数的状态采取相应的措施,以达到成本控制的目的。
3.4软件产品的定价与营销
软件产品定价的一般步骤

作为定价的第一个步骤,首先要确定软件的定价目标(或定价准则)。 一般来说,产品的定价目标有六类。
- 利润导向目标。将追求最大可能利润 为目标来作为价格制定的主要 准则,在追求最大利润目标时,要处理好短期利润与长期利润的关系和企 业局部与整体的关系。
- 收益导向目标。投资收益率反映着企业的投资效益,企业对于所投 入的资金,都期望在预期内能分批收回,因此,在定价时应在成本的基础 上考虑预期的投资收益率 这一因素。
- 销售导向目标。企业以达到一定的产品销售量 或市场占有率 为目标 来作为价格制定的准则。企业获得更大的市场份额,不仅能获得短期利润, 而且由于取得对市场更为有利的控制权,进而获得长期利润。
- 竞争导向目标。企业在价格决策时主要应付激烈的市场竞争 争导向为目标的产品定价可采用低价竞争等策略来实施定价。
- 品牌导向目标。软件产品的品牌 或企业形象 。以竞 构成了企业的无形资产, 以此为定价目标可收到较好的效果。要实现该目标,需综合运用多种营销 策略与价格策略。
- 维持生存导向目标。企业由于经营不善或人员外流等原因造成产品 积压、资金周转困难、濒临破产,此时只能以维持生存避免破产 为目标, 在此目标指导下,应尽量采取压低价格,甚至价格定的低于成本,以便回 收资金,克服财政困难。
第4章软件项目的经济效益、社会效益 与风险分析
4.1软件项目的经济效果评价
4.1.1 软件项目的现金流量及其特征
根据不同类型软件的特性及项目投资与收益的时间特性,软件项 目投资的现金流量常表现为如下三种不同形式:
1)对于现金流量主体为投资方的定制型软件项目,由于其投入 (支出)的分期性以及其产出(收益)必须在软件运行以后才能获得这一 特性,同时考虑到系统运行与维护费用的支出,故其对应的项目投资 现金流量具有如图4.1(a)所示的特征。

2)对于现金流量主体为承制方的定制型软件而言,由于其收益 (合同付款)的分期性和投入的连续性以及系统运行、维护的支出,故 其对应的项目投资现金流量具有如图4.1(b)所示的特征。

3)对于集投资方与承制方为一体的市场投放型软件而言,由于其 软件项目构建及运行各阶段资金投入的连续性以及项目收益应在投放 市场后的特点,项目投资现金流量具有如图4.1(c)所示的特征。

4.1.2 单方案项目评价
单方案项目评价,是指对某一给定的软件项目投资方案从技术经济角度出发来作出是否可行的判断或评价。
1.净现值法
净现值法的基本思想是,将软件项目寿命期内不同时期的投资(支 出)和收益(收入)的现金流量根据资金的时间价值将其转换到参考点 t=0(即贴现),并将这一系列贴现值累加起来并定义其称为该项目现金 流的净现值NPV,然后根据 NPV的数值是否大于零来作为该软件项目从 经济效益角度出发来看是否值得投资的依据。

2.内部收益率法
内部收益率法是一种通过求解使工程项目方案达到收支平衡时的 对应临界贴现率i0,并将i0与基准贴现率或最低期望盈利率(由投资者确 定)i相比较来决定工程项目是否值得投资的一种评价方法。
项目的净现值NPV由(4.1)式知一般为i的单调降函数,故NPV(i0)=0 则表示该工程项目方案在i0水平下收支平衡,并知当 i>i0 时该项目将亏损,i<i0时该项目将盈利,从而将该项目盈亏临界点 i=i0称为该工程项目的内部收益率,常记i0为IRR。
4.1.3 多方案项目排序
在软件项目的招、投标及项目规划与设计时,通常需要解决多个 软件项目投资方案的比较与选优问题,此类问题常称为多方案排序问题。软件项目的多方案排序可采用净现值法 、净年值法 、研究期法 特殊的多方案组合排序法 ,如费用现值法 和年费用法等
净年值法
净现值法是在项目寿命期相同的前提下作多方案比较的有效方法, 当各个投资方案有不同的寿命期时,该方法就无法进行经济效果的比 较。
科学的比较方法是采用相对比较法,即采用年均效益来作比较应 该比采用总效益来作比较更合理。
考虑到资金的时间价值,因而这种“年均”的概念可以通过首先将各时间点上的净现金流量贴现在初始点(=0),获得该项目方案的净现值,然后再将此净现值分摊到寿命期内各年的等额年值A上。
这种投资方案对应的等额年值A体现了**“年均效益”的经济含义故人们将这种通过资金等值换算而将项目净现值分摊到寿命期内各年的等额年值称为净年值(简称NAV)**


研究期法进行多方案比较

4.2软件项目的经济与社会效益分析
4.3软件项目的风险分析与控制
第6章 软件项目的进度计划制订 与团队组织
6.1基本概念与工作流程
软件项目的开发,作为一个产品的“生产”或“制造”,人们主要关心的产品目标是**质量、成本、进度、团队,**这四个目标构成了如图6.1所示的产品生产要素四边形,在此四边形中的四个生产要素是相互影响、相互制约的。
软件项目的进度计划:为执行软件项目的各项活动(任务)和里程碑所制订的工作计划日程表,它是项目组工作进度安排的出发点、管理人员跟踪和监控项目进展状态是否异常的判断标准、跟踪变更(进度、人力、设备)对项目影响的依据
软件项目的进度计划制订的基础 是项目工作(任务)分解与计划网络图
6.1.1 项目工作(任务)分解结构
软件项目的规划 、分析、设计、开发、测试等任务的实施通常是由 一系列的项目活动或项目任务构成,为了更好地完成软件项目的计划与 控制,将这一系列项目活动组成一定的层次结构是十分有用的。
由一系列软件项目活动所组成的层次结构称为工作分解结构WBS。
WBS是一种分层的树形结构:
- 由一系列软件项目活动所组成的层 次结构 称为工作分解结构WBS。
- 该结点下的分支 则是对该活动的更细致的描述;
- 树形结构的最底层结点一般是可交付的工作包,即可交付的软件模块,或其他计划、测试、文档等任务集合。
6.1.2 活动的逻辑顺序与计划网络图
WBS给出了每个特定软件项目的活动及其层次结构,这种活动之间的 层次结构 反映了不同活动之间的地位或重要性 的不同以及**相互依赖与制约关系 ** 。
然而,要使一个软件项目按时保质地顺利完成开发任务,仅有上述这种依 赖与制约关系是不够的,它还需要各项活动实施过程中的逻辑顺序先后关系。 一般来说,任何两项活动A与B存在着如下四种逻辑顺序关系

活动的逻辑顺序
- 若活动B的开始必须在活动A结束以后才能执行,则称B是A的后行活动,A 是B的先行活动;
- 若活动A结束后紧接着可以允许实施B活动,则称A是B的紧前活动,B是A 的紧后活动。

计划网络图及其绘制规则与特性
为了系统、全面、直观、形象地反映软件项目所有活动的逻辑顺序关系, 人们引进了计划进度网络图 (计划网络图)
箭线法计划网络图的绘制规则
- 每一活动用一个箭线 及其前后两个结点 连结来描述,箭线的上方表明 代号 活动 (可用英文字母表述),箭线的下方标明该活动的完成所耗费的时间长度 (单位:周、月或年),两端的结点圆圈内注明结点编号 。
- 一对结点间只能有一条箭线 ,不允许出现回路 (如图6.5(a)所示),这是由于 回路的存在意味着该活动要按正反顺序执行两次,这在计划上是无意义的。
- 一对结点间若出现两项以上的并行活动 (如图6.5(b)所示)时,可人为地将其 中之一活动一分为二 或引入虚工序
- 其中,虚工序用虚线构成的箭线表述,如图6.5(b)中由于结点1和结点2间出 现了并行活动 a与b,将活动a分成两个子活动 a1和a2,(如图6.5(c)所示),也可引入虚活动c(如图6.5(d)所示),以满足规则2的要求。

在软件开发过程中,若出现必要的反复过程,应将活动的过程拉长或采用等效活动处理(如图6.6所示)。

为加快工程进度,有时可引入交叉活动,如在图6.7(a)中,b是a的紧后活动但为了加快工程进度,可将活动a分成三段a、a、a进行,这些子活动间出现了如图6.7(b)所示的交叉过程,然而由于引进了虚工序c,从而既满足了b是a的紧后活动的要求,又满足了规则(3)的要求

计划网络图具有如下特性


活动明细表与活动时长估计
软件项目经工作任务分解后,各项目活动的延续时间或活动时长可通过如 下两种方式之一来完成
经验法(专家法)。它适用于不少软件项目的公共模块。开发人员 曾多次实践 过 ,不确定因素较少。如数据库模块、报表生成等办公自动化模块等,其 模块时长估计可采用若干专家的经验,估计并取算术平均的方法来解决。 即若设T e 表示某活动 e的活动时长估值(单位:周、月或年),tj表示第j个专家 对活动e的时长估计值,则有:
三点估计法。它适用于一些开发人员对其功能与性能或环境属性了解不多 或不确定因素较多的模块 , ,此时可将活动e时长Te视作服从β分布的随机变量, 并用如下公式计算:
计划网络图生成流程

6.2进度计划的分析与求解
求得软件项目的时间计划网络图只是求解软件项目进度计划的第一步 ,作 为项目管理人员,为了更好地对该软件项目的开发进程进行管理与控制,还需 要解决如下问题:
- 确定每个活动的开始时间和结束时间,且这样的活动开始时间与结束时间 不应是硬性规定的,应允许其有一定的机动余地。
- 在开发方已有的资源投入下求解该软件项目的交付日期(工期),或给定工期 条件下来安排各活动的开始时间和结束时间。
- 为了完成工期Td目标,在整个软件项目开发过程中哪些活动是关键的?
- 由于开发过程中各相关活动是延续进行的,因此前一活动的耽误必将影响 紧后活动的完成,从而构成了一条关键线路。
6.2.1 进度计划中关键线路的分析与求解
1.时间参数及其关联
计划网络图的任一箭线表述活动,而箭线的左右各有一个结点分别表示此 活动的开始事项和结束事项(如图6.11所示),故此活动又可用 (i,j)来表示,其 中,i 为箭线(活动)的起始事项,j 为箭线(活动)的结束事项

以下引进活动(i,j)的8个时间参数,它们的标示符与对应的物理含义如下:
- ES(i,j)表示活动(i,j)的最早开始时间 ES;
- EF(i,j)表示活动(i,j)的最早完成时间 EF;
- LS(i,j)表示活动(i,j)的最晚开始时间 LS;
- LF(i,j)表示活动(i,j)的最晚完成时间 LF;
- TE(i)表示结点i的最早开始时间 ;
- TL(i)表示结点i的最晚完成时间 ;
- R(i,j)表示活动 (i,j)的时差(反映活动(i,j)的机动时间);
- R(i)表示结点 i的时差(反映结点的机动时间)。
2.关键线路、关键活动及其特性
在一个计划网络图G中,由于只允许有一个起始结点和一个终止结点,故 在G中从起始结点开始经过一系列活动 直到终止结点为止的一个结点 、边(箭线) 序列 称为G的一条通路或路线P。
通路P中经过的各活动时长之和 称为该通路的路长。
在G的所有通路中,路长最大时对应的通路 称为关键路线或关键通路。在 关键路线上所途经的活动称为关键活动。

6.3软件项目开发团队的组织与建设
6.3.1 开发团队的特点
作为一个有组织的群体,不同的团队间仍然有着一些共同的特点,这些共同 的特点包括如下四个方面:
- 共同的系统目标。任何一个组织都有其自己的目标,正是在这一共同的系统目 标的感召下,项目开发团队的每一个成员凝聚在一起,并为之共同奋斗。
- 合理的分工与协作。项目团队中的每一个成员都应明确自己在整个团队中的角 色、任务、职责和权利
- 高度的凝聚力。所谓凝聚力,是指为维系项目团队为完成共同目标时所有团队 成员之间的共同协作精神。
- 团队成员的相互信任和有效沟通。作为团队的管理者,要鼓励团队成员自由地 发表自己的见解,大胆地提出一些可能产生争议或冲突的问题,然后通过相互 讨论与协商来解决冲突,形成共识。
团队人员的选择
软件项目的开发工作不仅仅是计算机程序的编写 ,计划编制、成本、质 量、进度的控制、手册的编制、硬件人员的支持等均不可缺少。因此,一个组 织有序、行动高效的开发团队对团队人员素质的要求除必要的技术素质要求 外,下列两个条件是必不可少的:
- 开发团队必须有一个具备领导才能的项目经理
- 开发团队必须有一个相对合理的人员技术结构

公式汇总
功能点计算
功能点计算方法的基本思想为首先计算软件的五个基本信息量的加权和CT,然后对其通过14个环境复杂性因子作修正。



eg 例题

利息与利率
利率
贴现率:
考虑到现金的流量如Sn会受到n期银行利率in与n期通货膨胀率fn的双重影响, 为了综合这两种因素 的影响效果,人们提出了一种被称为n期贴现率**(折现率**) qn的参数,并认为有
一次性支付现金流的贴现与预计
$$
\left{
\right.
$$
多次性支付现金流的贴现与预计
设有现金流A1,A2,…,An,其中Aj为j期末之现金支付值(详见图2.8), 欲求此现金流的现值P0及n期预计值Sn。
将每期的资金Aj贴现然后求和
同理可以求预计值Sn
当每期等额时有:
以上本质是等比公式求和
eg
