软件工程第二章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.3.1、 2.3.1、成本估算技术
为了得到可靠的成本及工作量的估算,可采用如下 方法: (1) 将软件价格计算延迟到工程设计的最后,可得 到精确计算的价格。 (2) 基于已完成的类似项目进行估算。 (3) 使用相对简单的分解技术,生成项目成本和工 作量的估算。 (4) 使用一个或多个经验模型,进行软件成本和工 作量的估算。
2.2、可行性研究的方法步骤 2.2、可行性研究的方法步骤
2、研究目前正在使用的系统: 通过对现有系统的文档资料的阅读、分析 和研究,再如实地考虑该系统,总结出现 有系统的优点和不足,从而得出新系统的 雏形
2.2、可行性研究的方法步骤 2.2、可行性研究的方法步骤
3、导出新系统的高层逻辑模型: 在逐步明确目标系统应该具有的基本功能、 处理流程和所受的约束的基础上,可利用 建立逻辑模型的工具,定义新系统的逻辑 模型
1、货币的时间价值 通常以利率的形式表示货币的时间价值。假设年利 率为i ,如果现在存入P元,则n年后可以得到的钱数 为:
反之可以得到:
2.3.2、 2.3.2、几种度量效益的方法
2、投资回报期 所谓投资回收期就是使累计的经济效益等于最初投 资所需要的时间,我们通常其衡量一项开发工程的 价值。 显然,投资回收期越短获得利润就越快, 这项工程也就越值得投资。
3、运行可行性 4、法律可行性 5、开发方案可行性----选择最优 可行性研究最根本的任务是对以后的行动 路线提出建议
2.2、可行性研究的方法步骤 2.2、可行性研究的方法步骤
1、确定系统规模和目标: 通过对关键人员进行调查访问,仔细阅读 和分析有关的材料,确认目标系统的规模 和目标,并清晰地描述对目标系统的一切 限制和约束
2.1、可行性研究的任务 2.1、可行性研究的任务
可行性研究的目的是用最小的代价在尽可 能短的时间内确定问题是否能够解决。该 过程中,分析员给出系统的逻辑模型,然 后从系统逻辑模型出发,寻找可供选择的 解法,研究每一种解法的可行性。
2.1、可行性研究的任务 2.1、可行性研究的任务
1、经济可行性 “成本—效益”分析:估算软件开发成本、 系统交付后的运行维护成本以及效益,确 定系统的经济效益是否能超过各项花费。 “短期—长远利益”分析:分析该软件的 短期和长远利益,估算系统的整体经济效 益是否满足要求。
2.2、可行性研究的方法步骤 2.2、可行性研究的方法步骤
5、导出和评价供选择的方案: 分析员从系统的逻辑模型出发,导出若干 较高层次的(较抽象的)物理解供比较和选择。 从各方面进行分析比较,并估算开发成本、 运行费用和纯收入,对每个可能的系统进 行成本/效益分析
2.2、可行性研究的方法步骤 2.2、可行性研究的方法步骤
8、书写计划任务的可行性论证报告: ① 引言 ② 系统技术描述 ③ 系统经济效益 ④ 系统技术评价 ⑤ 法律上的可行性 ⑥ 其他 ⑦ 结论
2.2、可行性研究的方法步骤 2.2、可行性研究的方法步骤
9、提交审查: 用户、使用部门负责人、及有关方面的专 家,对方案进行论证,最后由论证会成员 签署意见,指明该计划任务的可行性论证 报告是否通过
2.4.1、 2.4.1、系统规格说明
系统规格说明是作为硬件工程、软件工程、数据库 工程、人类工程的基础而使用的一个文档。它描述 了系统本身及与其相关的一系列说明。
一般的系统规格说明主要包括6方面的内容。
2.4.1、 2.4.1、系统规格说明
系统规格说明的6大方面内容: (1) 引言 (2) 功能和数据描述 (3) 子系统描述 (4) 系统模型化和模拟结果 (5) 项目问题 (6) 附录 注:实际的格式和内容可以根据软件或系统工程标准 (如DOD/STD 2167A)或者根据本地用户和优先选 择来决定
2.3、 2.3、成本/效益分析
这一节包括两大方面的内容:
2.3.1、成本估算技术 2.3.1、成本估算技术 2.3.2、几种度量效益的方法 2.3.2、几种度量效益的方法
2.3.1、 2.3.1、成本估算技术
软件的生产率数据是软件价格的基础。但是,软件 生产率是一个很难度量的量。软件生产是一次性事 件,软件生产率必须反映软件生产进程中的所有阶 段,但是很难提出一种关于整个软件工程进程的宏 观度量。
2.3.1、 2.3.1、成本估算技术
常用的成本估算方法: (3)、经验统计估算模型 (c) COCOMO 模型(Constructive Cost Model) COCOMO 模型是一个结构化成本估计模型,是一 种精确的、易于使用的成本估计方法
2.3.1、 2.3.1、成本估算技术
常用的成本估算方法: (3)、经验统计估算模型 (c) COCOMO 模型(Constructive Cost Model) 基本COCOMO公式如下:
2.1、可行性研究的任务 2.1、可行性研究的任务
2、技术可行性
风险分析:在给出的限制范围内,能否设计出系 统,并实现必要的功能和性能。 资源分析:研究开发系统的人员是否存在问题; 可用于建立系统的其他资源,如硬 件、软件等是否具备。 技术分析:相关技术的发展是否支持这个系统。
2.1、可行性研究的任务 2.1、可行性研究的任务
第二章
可行性研究
可行性研究
教学提示: 教学提示:
本章我们将介绍软件生存周期中可行性研 究阶段的内容,包括可行性研究的任务和 方法、成本/效益分析,以及系统规格说明 与评审等内容。 。
可行性研究
教学目标: 教学目标:
了解可行性研究的任务,掌握可行性研究 的方法以及成本/效益分析的方法,了解系 统规格说明与评审的相关内容。
2.3.2、 2.3.2、几种度量效益的方法
3、纯收入 纯收入是整个生命周期之内系统的累计经济效益 (折合成现在值)与投资之差。相当于比较投资开发 一个软件系统和把钱存在银行中(或贷给其他企业) 这两种方案的优劣
2.3.2、 2.3.2、几种度量效益的方法
4、投资回收率 若将资金存入银行或贷给其他企业来获得利息, 通常使用年利率衡量获利多少。 投资回收率的计算:
常用的成本估算方法: (2)、任务分解成本估算
2.3.1、 2.3.1、成本估算技术
常用的成本估算方法: (3)、经验统计估算模型 (a) 参数方程。静态单变量模型的一般形式: 式中,代价可以是工作量、需要人数、项目持续时 间等;估计特点通常是估计源代码行数。
2.3.1、 2.3.1、成本估算技术
2.3.1、 2.3.1、成本估算技术
常用的成本估算方法: (3)、经验统计估算模型 (c) COCOMO 模型(Constructive Cost Model) D——源指令条数,不包括注释。。 M——开发工作量(以人月计)。 T——开发进度(以月计)。 a、b、c、r为经验常数
2.3.2、 2.3.2、几种度量效益的方法
2.3.1、 2.3.1、成本估算技术
第一种方法可靠准确,但是不实用。 第二种方法在没有与当前项目完全相同的经验时, 也很难实施。 所以软件估算可采用其余两个方法,而且在理想的 情况下,可将两种方法同时使用,互相进行交叉检 验。
2.3.1、 2.3.1、成本估算技术
经验估算模型:
是基于历史数据的,是一些由经验导出的公式
2.3.1、 2.3.1、成本估算技术
常用的成本估算方法: (2)、任务分解成本估算
任务分解成本估算的典型办法是根据生命周期的瀑 布模型,对开发工作进行任务分解,分别估计每个 任务的成本,然后累加得到总成本。每个任务的成 本估计通常指估计工作量(通常以PM 为单位)
2.3.1、 2.3.1、成本量、成本或项目 持续时间等); Vi是所选取的影响价格的独立参数
2.3.1、 2.3.1、成本估算技术
常用的成本估算方法: (1)、基于代码行的成本估算方法
关键词:
源代码行、工作量(PM、PY、PD等)、软件生产 率
2.3.1、 2.3.1、成本估算技术
常用的成本估算方法: (1)、基于代码行的成本估算方法
例:
2.3.1、 2.3.1、成本估算技术
常用的成本估算方法: (1)、基于代码行的成本估算方法
若共交付源码3800 行,其中包括400 行系统演示 和测试代码,则软件生产率是:
(3800-400)LOC/(2.0+3.0+1.5+4.0)PM=324 LOC/PM (LOC:Line Of Code,即代码行)
2.3.2、 2.3.2、几种度量效益的方法
4、投资回收率
式中:P是现在的投资额; Fi是第i年年底的效益 ( i =1,2,…,n );n是系统的使用寿命; J即是投资回收率。
2.4、 2.4、系统规格说明与评审
这一节包括两大方面的内容:
2.3.1、系统规格说明 2.3.1、系统规格说明 2.3.2、系统定义的评审 2.3.2、系统定义的评审
2.2、可行性研究的方法步骤 2.2、可行性研究的方法步骤
4、重新定义问题: 信息系统的逻辑模型实质上表达了分析员 对新系统的看法。分析员和用户一起再次 复查问题定义,再次确定工程规模、目标 和约束条件,并修改已发现的错误
2.2、可行性研究的方法步骤 2.2、可行性研究的方法步骤
可行性研究的前4 个步骤构成一个循环: 分析员定义问题,分析问题,导出一个试 探性的解,在此基础上再次定义问题,再 次分析,再次修改……,继续这个过程, 直到推出的逻辑模型完全符合系统目标为 止
6、推荐一个方案并说明理由: (1)、本项目的开发价值 (2)、推荐这个方案的理由 (3)、制定实现进度表
2.2、可行性研究的方法步骤 2.2、可行性研究的方法步骤
7、推荐行动方针: 作出一个关键性的决定,表明是否进行这 项开发工程;以及较详细地分析开发此项 工程的成本/效益情况
2.2、可行性研究的方法步骤 2.2、可行性研究的方法步骤
常用的成本估算方法: (3)、经验统计估算模型 (b) Putnam 模型 Putnam 模型是一个基于Norden-Rayleigh 曲线的 动态多变量模型,在工作量、提交时间、程序规模 之间有一个非线性的折中平衡功能。
2.3.1、 2.3.1、成本估算技术
常用的成本估算方法: (3)、经验统计估算模型 (b) Putnam 模型 式中:L为源代码行数(以LOC 计);K为整个开发过 程所花费的工作量(以PY 计); Td 为开发持续时间 (以年计); Ck为技术状态常数
2.4.2、 2.4.2、系统定义的评审
(1)、“系统定义评审”评价在“系统规格说明”中所作 出规定的正确性 (2)、 系统定义评审分两步走。先从管理的角度进 行审查,再对系统元素和功能进行技术评估 (3)、系统技术评审时考虑的详细程度随功能分配 工作时考虑的详细程度而改变
小结
在问题定义之后,进行可行性的研究。通过可行性 研究可以知道问题有无可行的解,进而避免人力、 物力和财力上的浪费。 可行性研究的目的是用最小的代价在尽可能短的时 间内确定问题是否能够解决,即可行性研究的目的 是确定问题是否值得去解,而不是解决问题。 本章主要介绍了可行性研究的任务、可行性研究的 方法,还对成本/效益分析以及系统规格说明与评 审的内容作了介绍。