


单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第5章 软件策划,本章导读,软件项目管理始于软件,立项,,终于软件,交付,,中间进程是软件计划的制订、执行、跟踪、修改软件策划,既是为软件开发者和管理者制定合理的,计划,,又是为软件项目跟踪和监控提供,考核依据,软件,估计,既是软件策划的,核心,,又是软件策划的重点与,难点,本章首先论述软件策划方法,重点介绍,软件项目工作量和开发费用的估计方法,,然后介绍软件策划文档5.1 软件策划概论,软件策划和软件项目策划是一个意思,既是为软件开发者和管理者制定合理的,工作计划,,又是为软件项目跟踪和监控提供,考核依据,软件策划,或者说软件计划,英文单词都是指Planning但是,策划包含有出谋划策和做计划两个意思,计划只是策划的一个主要结果软件策划属于软件管理和软件决策的范畴,是项目经理以上人员的职责范围,是软件企业管理的重大事件之一软件策划的输入/输出,合同,/,立项建议书,2),用户需求报告,策划过程,1)软件开发计划书,2)质量保证计划,3)配置管理计划,4)里程碑及评审计划,软件策划的目的,软件策划的目的,是为软件开发和软件管理制定,合理的,工作计划。
由于项目的管理者,是按照计划确定的内容和进度对项目进行管理的,所以计划的合理性将直接关系到项目管理的成败软件策划的理论基础,软件策划的基础,是,软件生命周期模型,的选取软件组织和项目经理,要根据项目的特点,在瀑布模型、增量模型、迭代模型、原型模型中选取一种,并经过适当的裁剪后,列入项目计划,作为软件项目策划的理论依据之一软件策划的步骤,步骤,步骤名称,步骤内容,1,估计软件工作产品的规模及所需的资源,软件工作产品,包括需求规格说明书,概要设计说明书,详细设计说明书,源代码,测试计划和测试报告,质量保证计划,软件配置管理计划,里程碑及评审点计划,2,制定时间表,包括开发进度时间表和管理进度时间表:软件开发计划、质量保证计划、软件配置管理计划、测试计划、评审计划,3,鉴别和评估风险,政策风险,资源风险,市场突变风险,技术风险和技能风险等,4,与相关组或人协商策划中的有关约定,策划的结果要实事求是,要得到各有关方面的同意和认可,软件策划的目标,(1)对项目策划和跟踪用的三个软件估计已建立文档这三个估计是:,工作产品规模估计,工作量及成本估计,计算机资源估计;,(2)软件项目活动和约定,是有计划的并巳建立文档。
这里的活动,包括开发活动和管理活动这里的约定,是指对项目的各种标准、规范、规程的约束;,注:,标准是对,产品,的约束规范是对,行,的约束规程是对,操作,的约束,软件策划的目标,(3)受影响的组和个人,同意他们对软件项目的约定受影响的组和个人有:,软件工程组(项目组),软件估计组,系统测试组,质量保证组,配置管理组,合同管理组,文档支持组,软件策划的时机,对软件项目进行策划的时机,中国人习惯的作法与国际通用的作法不大一致美国人,要先做需求分析,后做软件策划,因为需求不清楚,项目的功能点个数、性能点个数、接口个数、界面个数、实体个数、文档页数都心中无数,策划人员是无法估计工作量、进度、经费和其他资源的,完成项目策划是不现实的与美国人相反,,中国人,习惯在用户需求报告之前策划,不习惯在用户需求报告之后策划不管怎么样,调查研究是十月怀胎,软件策划是一朝分娩,心中无数是不能作软件策划的因此,我们要逐渐与向国际接轨5.2 软件策划方法,直到目前为止,软件策划的方法仍然是采用经验数据加结构化方法,这些方法有三个要点:,(1)粒度由粗到细的分解:自顶向下、逐步细化、逐项逐条逐日安排计划2)粒度由细到粗的综合:自底向上、逐步归纳、逐日逐周逐月安排计划。
3)同类项目经验数据类比法、同行专家协商策划法软件策划是以用户确认的,需求为基础,,以软件组织内部的,软件标准为依据,,把组织内部类似项目的成功经验作为策划时的参考策划阶段主要进行的活动,1.,定义软件过程,就是根据选定的生命周期模型,规定每一开发阶段的工作步骤及文档标准2.,进行软件估计,就是指对软件项目进行量化估计,并记录估计结果的过程3.,进行风险分析,就是对政策风险、技术风险、技能风险、资源风险等进行逐个分析与分解4.,进行项目跟踪与监督,就是对策划阶段输出的软件开发计划,进行动态跟踪与实时监督,一旦发现偏差,必须立即纠正5.,完成软件开发计划书,6.使参与软件开发计划制定的组或个人,意见统一,1定义软件过程,开发计划是对项目定义软件过程的规模、工作量、成本、进度、质量、人员配置和其他资源的具体描述由于软件项目能共享过程数据,所以在制定计划时,能吸取软件组织中积累的经验教训为此,要建立较完善的“软件测量数据库”和“文档库”,这一工作称作,过程财富积累,,一般在CMMI2级就要开始考虑,在CMMI3级就必须做到2,进行,软件估计,项目组要对项目的规模、工作量、成本、进度、关键计算机资源等方面进行量化估计,然后,使用估计数据进行软件策划,。
在以后的项目执行过程中,若发现估计数据严重,偏离,实际数据,则要重新进行软件估计这些收集的实际项目数据与估计数据,要及时地,录入,到“软件测量数据库”之中,日积月累,就建立了强大的软件过程数据库,为日后的软件策划和CMM升级准备了雄厚的财富软件估计的内容和方法包括如下三个方面:,(1)对软件工作产品的规模进行量化估计,软件工作产品规模和工作量的估计方法,序号,规模估计方法,工作量估计方法,工作量估计方法说明,1,功能点个数,N,个功能点/人月,一个人的月工作量,能完成的功能点个数,2,性能点个数,N,个性能点/人月,一个人的月工作量,能完成的性能点个数,3,代码行数,N,行代码/人月,一个人的月工作量,能完成的代码行数,4,实体个数,N,个实体/人月,一个人的月工作量,能完成的实体个数,5,需求个数(Use Case个数),N,个需求数/人月,一个人的月工作量,能完成的Use case个数,6,文档页数,N,页文档/人月,一个人的月工作量,能完成的文档页数,对代码行的估计方法,LOC,指所有的可执行的源代码行数1 LOC,的价值和人月代码行数,体现软件组织的生产力可以根据历史项目的审计,来核算组织的单行代码价值。
例如,统计发现某公司每一万行 C 语言源代码形成的源文件为 250 K某项目的源文件大小为 3.75 M,则可估计该项目源代码大约为 15 万行,该项目累计投入工作量为 240 人月,每人月费用为 10000 元(包括人均工资,福利,办公费用公滩等),1 LOC 的价值为:,(24010000)/150000 16 元/1 LOC,项目的,人月均代码行数,为:,150000/240=625 LOC/人月目前,IT企业软件项目规模估计方法有以下,四种:,方法1:希腊古都法,(,Delphi法),在没有历史数据的情况下,,希腊古都法是流行的专家评估法它要求有多种软件相关经验的人参与,互相说服对方其步骤是:,1、协调人向各专家提供项目需求规格和估计表格;,2、协调人召集小组会,专家讨论与规模相关的因素;,3、专家匿名填写迭代估计表格;,4、协调人整理出一个估计,以迭代表形式返回专家;,5、协调人召集小组会,讨论较大的估计差异;,6、专家复查估计,在迭代表上提交另一个匿名估计;,7、重复 4-6,直到最低估计和最高估计一致为止方法2:类比法,在有历史数据的情况下,,类比法适合评估一些与历史项目在应用领域、环境、复杂度方面相似的估计项目,通过估计项目与历史项目的比较,得到规模估计。
其步骤是:,1、整理出历史项目功能点列表和实现每个功能点的代码行;,2、标识出估计项目的功能点列表与历史项目功能点列表的差异;,3、按照历史项目每个功能点的代码行,确定估计项目每个功能点的代码行;,4、通过步骤1和3 的循环,得出所有功能点的估计;,5、产生总的规模估计方法2:类比法(续),注:,用类比法中,往往,还要,解决可重用代码的估算问题估算出新项目可重用的代码中,需重新设计的百分比、需重新编码的百分比、需重新测试的百分比根据这三个百分比,可用下面的公式计算等价新代码行:,等价新代码行=(重新设计%+重新编码%+重新测试%)/3已有的旧代码行,比如有10000行旧代码,假定30%要重新设计,50%要重新编码,70%要重新测试,那么其等价的新代码行为:,(30%+50%+70%)/310000=5000(新代码行),意即:重用这 10000 代码相当于新编写 5000 代码行的工作量方法3:功能点估计法,功能点(实体数、构件数、屏幕数、报表数、文档数)估计方法通过研究需求来确定各种输入、输出、计算和数据库需求的数量和特性通常的步骤是:,1、计算输入、输出、查询、主控文件和接口需求的数目;,2、将这些数据进行加权乘,得到总的功能点数;,3、估计每个功能点的规模,得出总的规模估计;,4、估计者根据对复杂度的判断,总数可以用+25%、0、或-25%调整。
注:,对一个软件产品的开发,功能点对项目早期的规模估计很有帮助然而,在了解产品越多后,功能点可以转换为软件规模测量更常用的 LOC代码行法和功能点法的比较,LOC代码行法和FP功能点法,它们之间的区别和关系如下:,FP功能点估算法常用在项目开始或项目需求基本明确时使用,这时进行估算其结果的准确性比较高,假如这个时候使用LOC代码行估算法,则误差会比较大使用FP功能点估算法无需懂得软件使用何种开发技术LOC代码行估算法与软件开发技术密切相关FP功能点法是从用户为角度进行估算,LOC代码行估算法则是从开发者角度进行估算的通过一些行业标准或企业自身度量的分析,FP功能点估算法是可以转换为LOC代码行的方法4:无礼估计法,无礼估计法对各个项目活动的完成工作量(规模),按三种不同情况估计:,一个期望规模估计,一个最低可能估计,一个最高可能估计,用这三个估计用来得到一个产品期望规模和标准偏差,称为无礼统计估计法无礼的估计法可得到代码行的期望值E和标准偏差SD2)对软件工作产品成本的费用进行量化估计,软件工作产品成本估计的方法,序 号,估 计 方 法,估计单位,方 法 说 明,1,直接的劳务费,人民币元,开发人员的工资和福利,2,管理费,人民币元,技术管理和行政管理人员的工资和福利,3,差旅费,人民币元,售前、售中、售后的人员差旅费,4,计算机使用费,人民币元,网络设备的折旧费和房租水电费,5,其他招待费和公关费,人民币元,控制在总费用的15%以内,(3)对关键计算机资源进行量化估计,关键计算机资源估计的方法,序号,估 计 方 法,方 法 说 明,1,软件工作产品的规模,对存储能力(磁盘容量和内存大小)的要求,2,运行处理的负载,对处理器速度的要求,3,通信量,对网络通道和带宽的要求,3.风险分析,所谓风险分析,是指对项目及团队的政策风险、技术风险、技能风险、资源风险等因素,进行逐个分析与,分解,,制定用于,跟踪,和监控风险的风险管理计划。
风险分析活动,是通过对项目的各个方面可能存在的,风险进行识别和分析,,逐步,降低与化解风险,,确定避免或减轻风险的策略及措施,以达到回避风险,保证项目顺利进行的目的五种风险风险分析,序号,风险名称,风险内容,1,政策风险,IT企业外部和内部两个方面的政策及政策的变化,将会给项目带来什么风险,2,技术风险,新技术的成熟程度及难度系数,将会给项目带来什么风险,3,技能风险,项目组成员学习、领会、掌握、运用新技术的能力,将会给项目带来什么风险,4,资源风险,保证项目正常进行所需的各种资源的供应程度,将会给项目带来什么风险,5,其他风险,目前意想不到的风险,即不可预测的风险,如天灾人祸,4软件项目跟踪与监督,所谓软件项目跟踪与监督,就是,对软件开发计划进行动态跟踪。