第二章 软件项目计划(缩节版,去掉COCOMO 2)_第1页
第二章 软件项目计划(缩节版,去掉COCOMO 2)_第2页
第二章 软件项目计划(缩节版,去掉COCOMO 2)_第3页
第二章 软件项目计划(缩节版,去掉COCOMO 2)_第4页
第二章 软件项目计划(缩节版,去掉COCOMO 2)_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章软件项目计划问题定义可行性研究项目实施计划目录0.软件项目计划1.问题定义《系统目标与范围的说明》2.可行性研究(1)可行性研究的内容(2)可行性研究的步骤(3)系统流程图(4)成本—效益分析成本计算系统的成本的组成开发成本估计使用的几个概念开发成本估计的方法估算方法估算模型效益分析货币的时间价值纯收入投资回收期(5)方案选择(6)可行性论证报告3.项目计划问题:软件项目计划是做什么?1.一个软件是否值得开发需多长开发时间和多少投资成本?使用多少资源?存在哪些风险,如何预防这些风险?——可行性分析2.如何制定计划,安排人员?分配任务?安排进度?——项目计划

这些问题都要开发前预先研究,才能减少失误这就是计划时期的主要任务用最小的代价,在尽可能短的时间内确定问题能否解决?计划时期的工作流程开始问题定义可行性研究可行否项目实施计划终止项目的建议停止转开发时期目录1.问题定义ProblemDefinition目的弄清用户需要解决的问题——系统总目标是什么?项目所需的资源和经费(粗略估计)任务编写“系统目标与范围的说明”例:学生到教材课购书人工教材销售中,学生购教材,要先到系里根据教学计划用书开购书证明,然后去教材科购买学生要跑两个地方——烦!系里——烦!如果直接到教材科,为防止学生多买或错买,影响计划供应,教材科在开发票前要审查购书单,(书种类多,学生专业多!),手续繁琐效率低下!

————求助计算机管理!!《系统目标与范围的说明》-示例

系统目标和范围说明书

1.项目:教材销售系统2.问题:人工发售教材手续繁琐,且易出错。3.项目目标:建立一个高效率、无差错的微机教材销售系统。4.项目范围:利用现有微型计算机,软件开发费用不超过50000元。5.初步想法:建议在系统中增加对缺书的统计与采购功能。6.可行性研究:建议进行大约10天的可行性研究,研究费用不超过1000元。StatementofScopeandObjective目标不是一下子就能确定的!系统分析员要同用户多次交流、还应收集阅读资料确定目标:系统将产生什么信息?期望功能和性能如何?投资的估计是粗略的——心中有数!注意:目录2.软件开发中的资源需求资源涉及人员、环境、可重用复件对资源的分析用途:将在计划阶段中可行性分析中经济可行性(成本效益估计)中用到(资源人员不同,造价不同)也将写入项目计划报告中,因为资源关乎到项目的进度和任务、人员的分配软件工程环境硬件与软件工具软件工程环境硬件与软件工具人员软件工程环境硬件与软件工具可复用软件1)人员:软件生命周期中各阶段人力资源的安排P15

HumanResources软件生命周期的不同阶段,所需人员的技术水平、专业知识、和所参与项目的程度多少都是不同的。高级技术人员和管理人员在开发初期和后期参与较多,而初级的技术人员主要从事编码和单元测试高低高级技术人员初级技术人员管理人员时间软件计划需求分析概要设计详细设计编码单元测试集成测试确认测试参与项目的程度图2-2软件生命周期中各阶段人员的参与情况2)可复用软件资源可供软件计划中考虑的可复用软件资源1)成品构件已有的、或由其他厂家开发的,可以直接使用如POS机2)具有完全经验的构件已有的,以前开发的(规约、计划、代码或测试数据),与现在开发的类型,稍作修改即可使用的如:商品数据库、对登陆界面的测试数据等等3)具有部分经验的构件需做实质性修改的4)新构件3)软件工程环境资源SEE

SoftwareEngineeringEnviroment软件环境硬件环境开发系统目标机器硬件接口3.可行性研究目的研究项目是否可能实现和值得进行?回答Whytodo?&YesorNo开销可行性研究的成本只占预期工程总成本的5%-10%不是解决用户提出的问题,而是分析存在风险,确定是否值得投入巨大的人力物力去作这个项目?目录3.1可行性研究的步骤推陈出新、几套方案备选、可行性分析1.细化和修改“系统目标和范围”,得出新系统逻辑模型复查“系统目标和范围”,弄清用户意图研究目前正在使用的系统流程图导出新系统逻辑模型—数据流图简化版2.导出新系统的几种可能的解决方案提供多种开发方案,评价,择一3.提出推荐的方案本项目的开发价值推荐这个方案的理由4.可行性分析(经济可行性、技术可行性、法律可行性、用户使用可行性)5.书写文档提交审查,给出结论意见(作or放弃?)目录第1阶段:推陈出新

使用系统流程图描述系统物理模型表达了数据在系统各部件之间的流动情况包含人员、硬件、软件等子系统符号借用程序流程图符号举例见系统流程图符号1基本符号加工输入输出2系统符号汇合跨页汇合控制流向卡片联机存储磁盘、磁鼓、软盘海量存储器等显示器或类似设备脱机辅助操作文档磁盘人工输入通信链路磁带磁鼓人工操作例:人工销售教材的系统流程图系里开教材科例:待开发的计算机售书系统的系统流程图仍旧采用手添发票作业:1.扩充加入机打发票功能2.扩充加缺书统计和简单的采购功能。包含计算机打印发票的售书系统流程图(P27图2.9)收书费目录第2阶段:推荐方案,方案选择系统的分解和实现方案是不唯一的,不同方案开发出的系统在系统功能和性能方面会有很大差异(精度,安全性,可靠性)不同方案对成本、时间、人员、技术、设备的要求不同(设计,开发,设备,编码,测试,评审,运行,维护成本。。。)直接购买类似的商业软件VS自行开发(钱!)反复比较,折衷选择!!例:教材销售系统的方案选择买现成的还是自行开发?只包括销售?销售和采购教材并存?只作单机版?(价格低)还是作网络版?(web的是否加上学生可以查询余书,或预订?)目录第3阶段:可行性分析的内容1.可行性分析(1)经济可行性这个系统有无经济效益,多久能收回开发成本?(投资-回报期)通过成本—效益估算,确定系统是否值得投资开发(2)技术可行性风险分析:给定约束下能否设计并实现系统所需功能?资源分析:现有资源下(硬、软件,技术力量)能否实现?技术分析:现有科学技术能否实现?有哪些技术难点?(3)法律可行性:侵权、破坏、责任,是否与法律相抵触?目录3.2成本—效益分析估计新系统所需的成本和可能产生的效益,以便从经济上衡量这个项目的价值系统成本开发成本运行维护成本系统效益经济效益-有形(按货币)社会效益-无形(学生节约购书时间)如,高考招生系统的建立原来一个全国招生的学校在全国32个省市招生招收规模小的时候,每个省至少2个老师,一个老师至少呆半个月,若一个老师坐火车的话,来回路费平均1000/人食宿60元/天,共1000+60*15=1900元,一个老师平均就1900元;1900*2*32=12.1万,不算通讯费用,光上面的一所高校就12.1万,全国几百所高校,就算100所,也要1210万!而作一个网上的高招系统,省去车马劳顿,以节省大量人力物力。Cost-BenefitAnalysis3.2.1成本—效益分析内容成本估计计算系统的成本的组成成本估计使用的几个概念成本估计方法1)基于代码行技术2)基于工作量的任务分解技术3)基于经验公式的估算模型a)静态单变量模型b)动态多变量模型C)COCOMO模型效益分析(a)货币的时间价值(b)纯收入(c)投资回报期计算系统的成本的组成一个计算系统的成本由以下四部分组成购置并安装软,硬件及其相关设备成本系统开发费用--见下面的成本估计要算一笔经济账,能否拿下?怎么安排人和时间?程序的规模?

代码行数L需多少人干多久?工作量E(人月)

工期为多长?

开发时T(月)人员培训费用系统安装、运行和维护费用返回案例:购销系统成本组成费用名称数量单价金额(万元)1.软、硬件设备成本

网络服务器111防火墙133网络打印机10.50.5打印机10.120.12普通交换机50.060.3微机30.551.65杀毒软件网络版1222.开发费用待估3.安装

0.14.培训费用

0.2成本合计8.87成本估计的方法开发成本估计使用的几个单位代码行L(行数)工作量(人-月,人-年)人员数量(人)开发时间(月)成本率(元/行)生产率(行/月)工资(元/人-月)估算的方法1)基于代码行技术2)基于工作量的任务分解技术3)基于经验公式的估算模型1)基于代码行技术思想:简单自底向上的定量的估算方法,把开发每个软件功能的成本和源程序代码行数联系起来.若有历史数据作参考的话,方法还是有效的。1.最佳期望行数为:L=(a+4m+b)/6

a:可能最小行数,b:可能最大行数,m1:最可能的行数2.行数的总误差为:

Ld=

其中n为所划分的子系统数。3.计算成本软件成本(元)=代码行(行数)×成本率(元/行)其中成本率取决于软件的复杂程度和工资水平。例:基于代码行的CAD软件包成本估计功能ambL每行成本(元/行)生产率(行/人月)成本(万元)工作量(人月)用户界面及控制1750240025002300109502.32.4二维几何分析3900520071005300136006.98.8三维几何分析4600690086006800136008.911.3数据库管理2900340036003350126604.15.1计算机图形显示4000490061004950145007.09.9外设控制功能1900210023002100193504.06.0设计分析66008500980084001280010.110.5总计3320043.354代码行为开发前大致估出的数据用户接口控制成本:2300行×10元/行=2.3万元用户接口控制工作量2300行/950行/人月=2.4人月2300530068003350495021008400332002.32.46.98.94.17.04.010.143.38.811.35.19.96.010.554返回也是自底向上的分析方法把软件开发工程分解为若干个相对独立的子任务,再分别估计每个子任务的成本,最后累加起来得到软件工程的总成本。

T=∑αBT:软件总成本B:每个单独开发任务的成本α:系数因为B=C*D,令C:完成该子任务所需人力(人-月)D:每人每月的平均工资(元/月-人)所以

T=∑α·C·D2)基于工作量的任务分解技术40-20-40rule

AnalysisTestingand40%design40%Coding20%例:基于工作量的CAD软件包成本估计任务功能工作量用户交流计划风险分析需求设计编码测试客户评价总计(人月)用户界面及控制0.502.500.405.00二维几何分析0.754.000.602.00三维几何分析0.504.001.003.00数据库管理0.503.001.001.50计算机图形显示0.503.000.751.508.407.358.506.005.75外设控制功能0.252.000.501.50设计分析0.52.000.502.00Totals0.30.50.253.5020.504.7516.500.5工作量百分比%1%1%1%8%45%10%36%1%工资(万元/人月)1.001.201.000.950.820.700.760.3成本(万元)474.255.000.212.63.40.30.60.316.93.4各个阶段的工作量不同:需求分析子任务成本=0.5+2.5+0.4+5.0=8.4人月总成本=需求+设计+编码+测试=37.7万元返回0.5+2.5+0.4+5.0=8.4人月37.71(工资万元)*0.3工作量=0.3成本(元)3)基于经验公式的估算模型a)静态单变量模型Walston_Felix模型b)动态多变量模型b.1Putnam模型3)COCOMO模型返回a)静态单变量模型

面向KLOC的估算模型(1)Walston_Felix模型(教材P20)(LE和T)E=5.2×(KLOC)0.91(人月) T=2.5×E0.35其中,KLOC为代码行数的单位(千行)(2)Doty模型(在KLOC>9时适用(教材P21(五))E=5.288×(KLOC)1.047

返回b)动态多变量模型

人力资源的Rayleigh-Norden曲线

——Putnam模型提出的基础Reyleigh曲线:横坐标表示距开发起点的时间,纵坐标代表在不同时间点需要的人力td位于曲线的峰点从Rayleigh曲线上看出,若平均使用人力(如虚线所示),则:开始阶段人力过剩,如图中的①,中间人手不足,如图中②,后期后期补偿已为时过晚,如图中③,又造成人员浪费。信息系统的人力分配大致如Rayleigh曲线,td两次约为4:6td开发与计划占40%维护占60%NO!人力和时间是成正比的线性关系么?b)动态多变量模型

b.1Putnam模型(P22)基于Raleigh曲线,Putanam结合4000多个当代软件项目中收集的生产率数据,推导出来动态多变量模型(也成为软件方程式)工作量是软件规模和开发时间这两个变量的函数。E=(LOC×B0.333/P)3×(1/t)4 LOC:由前面基于LOC估算除的代码行(行)

E:工作量单位:(人月)或(人年) t>1:开发时间(月)或(年)

B:特殊技术因子,随规模和要求的增加而缓慢增加:小的程序(KLOC=5~15),B=0.16,超过70KLOC的程序,B=0.39;P:生产率参数

(2000-30000),P=

2000 实时嵌入式开发:

P=10000 电信及系统软件P=12000 科学计算软件P=28000 商业系统应用软件返回Putnam揭示的是什么?

人力和资源是等价互换的么?例如,有一软件估计源程序L长为98475行,假定两年完成开发工作量,用Putanam模型计算每年需多少人,若开发时间压缩为1.8年时,需多少人每年?E=(LOC×B0.333/P)3×(1/t)4B取0.39(超过70KLOC的程序)电信及系统软件

P取10000,若t=2年则E=(98475×0.390.333/10000)3×(1/2)4=23(人-年)若提前到1.8年,则:E‘=(98475×0.390.333/10000)3×(1/1.8)4=35(人-年)(35-23)/23=52%即工期想提前10%,却需要增加52%的工作量putnam模型揭示了工作量与时间的4次方成反比!NO!C)COCOMO模型是改进的单变量估算模型LE和T以静态单变量模型为基础,加入2点改进:1)软件分类:软件应用领域不同,经验常数不同

三种项目开发模式

基本COCOMO2)考虑开发因素的影响,考虑开发阶段的影响

三种COCOMO模型

工作量调节因子EAF:考虑15种对软件开发的影响的有关因素(产品属性,计算机、人员、项目等)

中级COCOMO返回COCOMO模型的三种开发模式该模型是Boehm提出的结构性成本估算模型,他将现有的项目分成了三种开发模式:模式产品规模项目/团队规模革新期限和约束开发环境组织型2~50KLOC小型项目/团队很少不严格稳定,内部半独立型50~300KLOC中型项目/团队中等中等中等嵌入型大于300KLOC大型项目/团队许多约束严格复杂的硬件/客户接口难度增加COCOMO模型的三个等级基本COCOMO仅使用规模和模式来确定工作量和进度适于中小规模的项目,快速而粗略的评估。中等COCOMO使用规模、模式和15个成本驱动因子确定工作量这些因子与产品、人员、计算机和增加或减少软件项工作量的项目属性相关。详细COCOMO基于中等COCOMO之上,引入了结合了成本驱动因子对软件工程过程中每一个步骤(分析、设计等)的影响的评估工作量系数以及一个3层产品结构。1)基本COCOMO公式工作量E=a×(规模L)b

开发时间TDEV=c(E)d开发模式abcd工作量公式(人月)开发时间(月)组织型2.41.052.50.38E=2.4(KLOC)1.05TDEV=2.5(E)0.38高级语言程序,如科学计算、数据处理半独立型3.01.122.50.35E=3.0(KLOC)1.12TDEV=2.5(E)0.35大多数事务处理系统对于终端硬件和数据库软件有确定需求嵌入型3.61.202.50.32E=3.6(KLOC)1.20TDEV=2.5(E)0.32与硬件关系密切相关的如OS,DBMS,实时控制等飞机的航空控制系统)估算出E和T后:很容易得到生产率: P=KLOC/E(代码行/人月)完成项目的平均全职人员FSP=E/TDEV(人)COCOMO估算例 一个32KLOC的中型项目:工作量: E=2.4(32)1.05=91人月进度: TDEV=2.5(91)0.38=14个月生产率: 平均安置人员:效益分析系统效益经济效益-有形(按货币)社会效益-无形(学生节约购书时间)一般设生命周期为5年经济效益分析涉及的重要概念(a)货币的时间价值(b)纯收入(c)投资回报期(a)货币的时间价值成本估算的目的是要对项目投资,但投资在前取得效益在后,因此,要考虑货币的时间价值通常用利率来表示货币的时间价值设年利率为i,现存入钱为P,则n年后可以获得的钱数为:F=P(1+i)n这就是P元钱在n年后的价值反之,若n年后能收入F元,则这些钱折合到现在价值为P=F/(1+i)nCAD系统每年能节省多少钱(9.6万),如何计算?分析员对现行人工系统和待开发系统(CAD)定义可度量的特性——绘图时间t_draw:平均绘图时间=4小时c:每个绘图小时的成本=20元n:每年的绘图量=80000p:CAD系统中已完成的绘图比=60%采用CAD系统后绘图时间缩减比为1/4则每年节省的绘图费用为:缩减比×t_draw*c*n*p=9.6万元例:CAD系统的效益分析在工程设计中采用CAD来代替人工设计,每年可节省9.6万元,若软件生存期为5年,则可节省9.6*5=48万,已知开发这个CAD系统共投资20万效益=48-20=28?——错!20万是现在投资的钱,而48万是5年后的钱!5年节省多少钱?第3年9.6折合到现在:9.6/1.576=8.2928年份将来值(万)(1+i)n现在值(万)折合到现在值的累计值(万)19.61.059.14299.142929.61.10258.707517.851339.61.15768.292826.143249.61.21557.897934.041159.61.27637.521941.5630设年利率为5%目录(b)纯收入是指在整个生存周期之内系统的累计经济效益(折合成现在值)与投资之差。

例如上例中:纯收入=41.5630-20=21.5630目录(c)投资回报期使累计的经济效益等于最初投资所需的时间。显然投资回收期越短,就能越快地获得利润,因此这项工程也就越值得投资上例CAD系统中,投资20万,到第2年,效益已经为17.8513,离最初投资还差2.15万,而第三年的效益是26.14万,折合的每个月上,得投资回报期为2+2.15/8.2928=2.259年年份将来值(万)(1+i)n现在值(万)折合到现在值的累计值(万)19.61.059.14299.142929.61.10258.707517.851339.61.5768.292826.1432CAD成本效益-分析图目录附:可行性研究报告(FAR)(国标GB8567-2006)1

引言(编写目的,背景,定义,参考资料)2引用文件(应列出本文档引用的所有文档的编号、标题、修订版本和日期)3

可行性研究的前提 要求,目标,条件,假定和限制,进行可行性研究的方法,评价尺度4可选择的其他系统方案4.1

对现有系统的分析 数据流程和处理过程,工作负荷,费用开支,人员,设备,局限性、存在问题4.2可重用系统与要求之间的差距4.3可选择的方案14.4可选择的方案24.5选择最终方案的准则5

所建议的系统 说明,数据流程和处理流程,改进之处,影响,局限性,技术条件可行性6

经济可行性——投资及收益分析投资:(基本建设投资投资(如开发环境、设备、软件和资料等),其他一次性和非一次性投资(如技术管理费、培训费、管理费、人员工资、奖金和差旅费等)。收益(一次性、

非一次性收益,不可定量的收益)收益/投资比投资回收周期7技术可行性(技术风险评价)8法律可行性(系统开发可能导致的侵权、违法和责任等)9.用户使用可行性方面(社会条件方面的可行性,即用户使用方面)10

结论附录目录小结:可行性论证报告系统概述简述当前系统及其问题新系统功能及新旧系统的比较可行性分析经济、技术、法律上的可行性建立新系统的主客观条件分析结论意见YesorNo3.软件计划想法:都有哪些任务,需要多少时间?相互之间的依赖关系?

像日历一样画出来?

甘特图哪些是关键任务?Pert图在这样的安排下最短的工期是多久?可以微调进度么?软件开发进度的安排甘特图(GanttChar)Pert图(工程网络图)1)甘特图通过日历形式列出项目活动及其相应的开始和结束日期它为反映项目进度信息提供了一种标准形式2)PERT工程网络图项目网络图是项目的所有活动以及它们之间逻辑关系或排序的图形显示。项目网络图是活动排序的输出,它有以下作用:(1)能表示项目活动,并表示活动之间的依赖关系。(2)表明项目活动将以什么顺序继续。(3)在进行工期估计时,表明项目将需要多长时间。(4)当改变某项活动工期时,表明项目工期将如何变化。项目网络图有两种表示形式:(1)前导图法(PDM:PrecedenceDiagrammingMethod)(2)箭线图法(ADM:ArrowDiagrammingMethod)工程网络图的表现形式【法1】箭线图法(ADM)活动,节点将活动连接,表示依赖关系【法2】前导图法(ADM)活动依赖关系任务PERT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论