软件工程 第二章

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

纯收入=累计的当前值(5年)-系统投资额 累计的当前值(
=36172.7-30000=6172.7元 36172. 30000=6172. 36172
每年效益折算的当前值 每年效益折算的当前值
n年 效益:元 利率(1+i)n (1+i) 1 10000 1.12 2 3 4 5 10000 10000 10000 10000 1. 25 1.40 1.57 1.76 当前值:元 10000÷1.12 =8928.6 10000÷ 10000÷ 10000÷1. 25 =8000.0 10000÷ 10000÷1. 40 =7142.9 10000÷ 10000÷1. 57 =6369.4 10000÷1. 76 =5681.8 10000÷ 累计当前值 8928.6 16928.6 24071.5 30440.9 36172.7
成本/ 2.3.2 成本/效益分析
目的:通过估计开发新系统所需的成本和新系统 目的: 可能产生的效益, 可能产生的效益,以便从经济上衡量项目的开发 价值。 价值。 系统成本,包括: 系统成本,包括:
(1) 开发成本 (2) 运行维护成本
系统效益,包括: 系统效益,包括:
(1) 经济效益(有形效益):可按货币的当前值计算 经济效益(有形效益) 社会效益(无形效益) (2) 社会效益(无形效益)
Walston和 Felix在1973-1977的 例如 C.Walston 和 C.Felix 在 1973-1977 的3-5 年间收 集和分析了60个不同性质的软件(4000-467000行 1260个不同性质的软件 集和分析了 60 个不同性质的软件( 4000-467000 行, 1211758人月 28种语言 人月, 种语言) 得出一组经验方程: 11758人月,28种语言),得出一组经验方程: E=5 E=5.2L0.91 T=4 T=4.1L0.36 T=2.4E0.35 T=2 P=0 54E P=0.54E0.6 DOC=49L DOC=49L1.01 49 其中L 千行)作为估计特征。DOC为文档页长 为文档页长。 其中L (千行)作为估计特征。DOC为文档页长。
(3)运行可行性 考虑待开发软件的运行方式在用户组织内是否 行得通? 行得通? 现有管理制度、人员素质、操作方式是否可行? 现有管理制度 、人员素质、操作方式是否可行? 与原有的系统是否有冲突? 与原有的系统是否有冲突? (4)法律可行性 合同责任 探讨系统开发可能导致的任何侵权、 探讨系统开发可能导致的任何侵权 、破坏和其 它责任。 它责任。
/(1 /(1 /(1 P=F1/(1+r)+F2/(1+r)2 + …… + Fn/(1+r)n
当前投资额 投资回收率 第n年年底的效益
2.3.2.2 成本估计
软件成本估计的困难
软件度量方面的困难 软件的复杂度 软件生产率估算的困难 各阶段历史数据的收集与统计 软件生产率是一个平均量 软件生产率影响因素给软件估算带来的困难 影响软件生产率的因素是多种多样的
(1)成本估计基础 )
估算的前提是系统的规模可通过功能点、 估算的前提是系统的规模可通过功能点、复杂度或代码行等 技术确定; 技术确定; 项目的功能点数是几个测量参数(用户输入数、用户输出数、 项目的功能点数是几个测量参数(用户输入数、用户输出数、 用户查询数、文件数、外部接口数)的功能点之和。 用户查询数、文件数、外部接口数)的功能点之和。 估算的范围包括软件生命周期的各阶段 如果有类似项目的开发经验(即历史基线完备), ),则生产率 如果有类似项目的开发经验(即历史基线完备),则生产率 等数据可直接使用这些数据; 等数据可直接使用这些数据; 如果没有类似项目的开发经验, 如果没有类似项目的开发经验,则生产率等数据可由历史基 线的平均值得出,或者用专家问卷的方法( Delphi法 线的平均值得出,或者用专家问卷的方法(即Delphi法)得 到;
可行性研究主要包括四个方面 可行性研究主要包括四个方面
经济可行性 技术可行性 运行可行性 法律可行性
(1)经济可行性 (1)经济可行性 进行开发成本的估算和可能取得效益的评估, 进行开发成本的估算和可能取得效益的评估, 确定待开发的项目是否值得投资开发。 确定待开发的项目是否值得投资开发。 (2)技术可行性 (2)技术可行性 基本任务:进行技术风险评价。 基本任务:进行技术风险评价。从开发者的 技术实力、以往工作基础、问题的复杂性等出发, 技术实力、以往工作基础、问题的复杂性等出发, 判断系统开发在时间、 判断系统开发在时间、费用等限制条件下成功的 可能性。技术可行性研究包括: 可能性。技术可行性研究包括: 开发的风险 资源的有效性 技术发展的支持
系 统 定 义 和 分 析
调查研究
确定系统目标 功能性能
系统方案设计
可行性分析
计划
复审 硬件、软件工程
2.2 方案设计
任何一个系统均可能存在多种解决方案, 任何一个系统均可能存在多种解决方案,而每种方案 在实现思想,技术路线,造价等方面均有所不同, 在实现思想,技术路线,造价等方面均有所不同,因此需 要对可能的方案进行全面分析。 要对可能的方案进行全面分析。 基本步骤包括: 基本步骤包括: 确定候选方案 分析候选方案 从技术、经济性、 从技术、经济性、时间开销性等角度 比较候选方案
(3)软件成本估计的计量单位
源代码行(LOC、KLOC) 源代码行(LOC、KLOC) 劳动量:表示一个人参加劳动时间的长短。 劳动量:表示一个人参加劳动时间的长短。
人月PM( Month)、人年PY 人日PD PY、 人月PM(Person Month)、人年PY、人日PD PM
软件生产率: 表示单位劳动量所能完成软件的数量, 软件生产率 : 表示单位劳动量所能完成软件的数量 , 一般指开发全过程的一个平均值。 一般指开发全过程的一个平均值。
方案: 方案: 对未来系统实现的整体设计与考虑, 对未来系统实现的整体设计与考虑,包 括:
开发方式 软件配置规划 硬件与网络规划 流程规划 功能规划 实现技术
例如: 例如:总公司与分公司之间的信息交换 基于网络实时交换, (基于网络实时交换,MQ) )
确 定 候 选 方 案
分 析 候 选 方 案
2.3.2.1 效益分析
货币时间价值
“今天的一元钱比一年后的一元钱更值钱” 今天的一元钱比一年后的一元钱更值钱” 如 果 存入 可 以得 数为 设 年 利 率 为 i, 如果 现 存 入 P 元 , 则 n 年 后 可以得 到的 钱 数 为 F ( 效 益 ) n 。反之,如果n年后能收入F元钱,那么这些钱的现在值是 =P(1 =P(1+i) P=F/(1 P=F/(1+i)n 。
要明确这2个问题, 要明确这 个问题,必须从更高层的角度出发 个问题
不能孤立地、 不能孤立地、单纯地从软件的角度考虑 应该从计算机系统 计算机系统的角度考虑 应该从计算机系统的角度考虑
计算机系统的开发流程
(1)制定系统总体目标 ) 基于生产和市场需要 基于改善劳动条件、提高产品质量、 基于改善劳动条件、提高产品质量、提高经济效益等方面 适应技术进步、 适应技术进步、提高社会效益等方面
LOC/PM
ห้องสมุดไป่ตู้
工作量:是对完成一项任务所需劳动量的计量单位。 工作量:是对完成一项任务所需劳动量的计量单位。
人月/ 人月/每行代码(PM/LOC) 人月/每个项目 或 人月/每行代码(PM/LOC) 在许多估算模型中用E(人月)表示工作量 在许多估算模型中用E 人月)
成本率: 不同地区、 不同阶段的工作, 成本率 : 不同地区 、 不同阶段的工作 , 其成本率有所 不同。通常可用元/LOC /LOC、 /KLOC、 人月等表示。 不同。通常可用元/LOC、元/KLOC、元/人月等表示。
投资回收分析
某计算机系统投入使用后, 年内每年可节约人民币10000 10000元 例 某计算机系统投入使用后 , 5 年内每年可节约人民币 10000 元 。 假设系 统的投资额为30000 30000元 系统运行寿命为5 试计算其效益。 统的投资额为30000元,系统运行寿命为5年。试计算其效益。 表面上看, 年共节约10000 10000× 50000元 扣除投资30000 30000元 解 表面上看,5年共节约10000×5=50000元,扣除投资30000元,可产 生纯收入20000元,其实不然。因为这50000元要分5年产生,每年年底 生纯收入20000元 其实不然。因为这50000元要分5年产生, 20000 50000元要分 10000元 若按年利率12 计算,则折合到当前值可见下表。 12% 为10000元,若按年利率12%计算,则折合到当前值可见下表。
(2)初步可行性论证 ) 条件是否具备 成功的可能性有多大 从技术进步、社会效益、经济效益看是否值得 从技术进步、社会效益、
(3)系统定义和分析 ) 依据系统总目标, 依据系统总目标 , 定义系 统的详细目标 功能、 详细目标、 统的 详细目标 、 功能 、 性 界面、 能、界面、资源 确定系统与环境的界面 确定硬件、软件功能的合 确定硬件 、 理分担 进行多种方案设计 对方案进行可行性论证 制定开发进度计划和投资 计划
2.3 可行性研究
2.3.1 可行性研究的目的和内容
可行性研究的目的
用最小的代价, 在尽可能短的时间内, 用最小的代价 , 在尽可能短的时间内 , 确定该软件项目 是否能够开发,是否值得开发。 是否能够开发,是否值得开发。 不是开发一个软件, 不是开发一个软件 , 而是研究这个项目是否值得去开 是否有能力解决它。 发,是否有能力解决它。
(4)软件成本估计模型 动态多变量模型( (二)动态多变量模型(Putnam)
L 3 c 3T
L = cK
(4)软件成本估计模型
(一)静态单变量模型
资源= C 1 × ( 估计的软件特征 ) C 2
其中资源可以是: 其中资源可以是: 开发工作量( 单位: 开发工作量(E) Effort 单位:人-月 开发时间( 单位: 开发时间(T) Time 单位:月 开发人数(P) 开发人数( Person 单位:人 单位: 依赖于开发环境和应用领域的2个常数。 C1 、 C2 :依赖于开发环境和应用领域的2个常数。 可从历史数据导出。 可从历史数据导出。 估计的软件特征:可以是源程序长度L(千行) L(千行 估计的软件特征 : 可以是源程序长度 L( 千行 ) 、 工 作量E( E(人 作量E(人-月)等。
(2)软件成本估计基本方法
自顶向下 依据以前的项目总成本-推算本项目的总成本依据以前的项目总成本-推算本项目的总成本-按比 例分配到各任务中去例分配到各任务中去-检验是否满足要求 差别估计 与以前已完成的项目类比, 从其开发的各个子任务 与以前已完成的项目类比 , 中区分出类似和不同的2 部分, 中区分出类似和不同的 2 部分 , 然后对类似的和不同 的部分分别进行计算和估算。 的部分分别进行计算和估算。 自底向上 先把软件进行细分, 先把软件进行细分 , 直到每个子任务都已明确所需 要的开发工作量,然后求出总的工作量。 要的开发工作量,然后求出总的工作量。
软件工程
第二章
第2讲 可行性研究与软件计划
2.1 2.2 2.3 2.4 2.5 问题定义 方案设计 可行性研究 软件计划 软件项目计划说明书
2.1 问题定义
进入软件开发阶段之前,必须明确 个问题 进入软件开发阶段之前,必须明确2个问题
软件工程要解决的问题是什么? 软件工程要解决的问题是什么? 所关心的问题有可行的解决方案吗? 所关心的问题有可行的解决方案吗?
投资回收期=收回投资年之前的年数+收回投资年当年收 收回投资年之前的年数+
回投资额÷当年的效益(折算成当前值) 回投资额÷当年的效益(折算成当前值) 30000-24071. 6369. = 3(年)+(30000-24071.5)÷6369.4 = 3.93 年
投资回收率r≈20%,其中r 可从下列方程中算得: 20% 其中r 可从下列方程中算得:
相关文档
最新文档