1概述
软件开发周期估算IT员常提概念究竟什软件开发周期估算呢定义:根软件开发容开发工具开发员等素需求调研程序设计编码测试等整开发程花费时间做预测定义中预测两字非常关键突出体现估算含义时隐含表明结果确定性效软件开发周期估算软件开发中非常困难工序说困难软件开发涉素仅异常复杂便类似软件项目完全搬估算握定难度估算软件开发中重环节果低估项目周期会造成力低估成预算低估日程短终力资源耗成超出预算完成项目赶工影响项目质量甚导致项目失败项目周期估计长表面影响实际会带成估计高力资源利充分效率低果种情况项目理控制整项目会带影响周期估算盖楼房中基续工作基础完成质量坏带影响会贯穿整项目见开发周期正确估算重性
2国外软件估算较 国软件开发理目前正逐步规范化发展开发周期估算绝部分处手工作坊状态谓手工作坊指两方面方面理员意识没认识估算重性认估算概估计受限商业行签订合惜减少开发工作量未评审方面没专门工具辅助估算者说没专门进行研究软件开发周期究竟长基验判断验估算出周期相差更糟糕种开发周期判断完全验意见间难沟通谁没确切量化标准支持判断终结果专家估算准类似中式烹调放少作料没般少许少许验高级厨师新手根量炒出菜味道差远实际国软件开发需正定量估算样做仅规范精确十分助软件事业健康发展国际接轨
国外发达国家软件估算国成熟仅先进方法代码行估算法功点估算法力估算法形成专业化估算工具辅助项工作微软公司开发项目理工具软件Project加Software Productivity Center Inc公司开发Estimate较成熟估算辅助工具Project采估算法Estimate更属专业化工具包含常种估算方法校正方法Putnam MethodologyCocomo II Monte Carlo Simulation种成熟算法估算结果项目花费时间力包括十种分析报告模
拟发散图计划编制选项图力图预计缺陷图缺陷方差图等等种角度辅助理员进行分析
采辅助工具软件开发周期进行估算具明显优势辅助工具量类型项目数研究基础总结开发出采算法估算方法已成熟估算结果准确性保障种估算量化非验直接出结果结果评审长期工具辅助估算量项目数估算结果积累形成历史验库知识成果保存便利
3 软件估算中素探讨 软件开发项非常复杂工程仅包含需求分析设计编码测试实施维护等完整程涉开发工具开发员项目理风险等众素素估算产生影响相进行软件估算时(包括利工具辅助估算)必须考虑方面否终结果会实际结果偏差影响项目控制中常见素做探讨
31估算软件规模 软件规模通常指软件通方式描述程序代码行长度功函数数量数库中表数量数库等等般言软件规模越花费开发周期越长简单线形函数关系表详细列举实际开发中数开发台Lotus DominoNotes
表单模块开发周期
序号 模块 开发周期(中级程序员) 代码行长度 数库(数)1 办事指南 025月 300 1170K2 名片簿 025月 300 1039K3 合理 025月 460 2110K4 物控理 05月 850 2560K5 组织机构 05月 900 1318K6 流程理 08月 1000 2304K7 公告板 05月 1400 2560K8 事理 1月 1800 3840K9 公文理 18月 2500 2304K10 事务审批 15月 3750 2110K11 考勤理 18月 4800 3840K12 资源理 18月 5800 3840K13 会议理 25月 11000 4608K
表二软件项目开发周期
软件项目 开发周期 包含模块 备注某政府客户 3月 10 定制开发量较某媒体客户 6月 17 3模块完全重新开发某金融客户 10月 14 80完全重新开发某保险客户 16月 18 完全重新开发
表中出模块代码行越长开发周期越长开发工具言基线形关系中考虑代码重问题模块代码长包含公函数估算时应适减少代码行数量表中会议理例子模
块代码行超万行中公函数素真正代码行9000行左右
表二软件项目实际开发周期(考虑系统实施)普通意义说软件项目中包含功模块越越复杂者说软件越开发周期增长越快时间绝模块开发时间简单叠加模块功数量增加直接带软模块间相互关联度复杂度成倍增加直接导致需求设计等阶段需花费更时间单独考虑模块复杂表二中着模块数量增加开发周期增加特明显产品化程度高引起相数量模块完全重实际开发量减少例子完全重新开发开发周期长
实际进行软件开发周期估算时候软件规模肯定首先考虑素根面讨情况考虑软件规模时定重部分软件设计重视点部分会占相重外软件功间关联造成复杂性必须足够重视样估算会产生重偏差
32估算项目风险 项目少存风险软件项目开发程中避免种情况类项目特点常见风险种:技术风险项目技术难度花费时间超原先估计客户风险客户需求定增加需求组织协调畅员风险开发员突然更换离职理风险项目理理善决策失误风险控制项目理中通常提前做风险分析预测制定风险应措施样风险真时措手提高整项目控性
软件项目潜风险开发周期影响情况非常然项目控制会限度减少种影响绝避免开发周期估算时项目风险应该适考虑尤技术风险客户风险
技术风险软件身技术难度果套成熟产品定制开发技术风险相非常重技术已成型客户少新带高难度技术问题需求种风险予考虑完全重新开发项目研发类项目技术风险必须特重视中应该考虑细节包括面
开发台否适合项目涉软件开发否满足终需求台错误选择导致庞开发工作量便满足户需求造成系统效率低扩展性差致命问题软件会快淘汰功实现难度切实解需求基础仔细分析采开发工具否实现中难点否会耗费量时间
实际估算中建议技术难度分十级级初次估算代码行增加10终估算代码长度初始估算代码长度×(1+01×n)假设模块A初次估计代码行15000行考
虑技术难度高风险设定技术难度级二级终代码行估算数量15000X(1+20)18000
技术风险分析项技术性强工作求做技术风险分析必须技术专家相关技术领域着丰富验重技术风险分析结果必须评审保证准确性
客户风险存客户化项目中行业客户特点相技术理解水相差甚远历开发项目中80项目延期属客户方原种风险控性低项目影响超技术风险开发周期估算前项目理仔细分析客户具体状况包括客户计算机水理水沟通程度基础结合验综合判断否会开发带明显影响述技术风险方式客户分级终确定开发周期程中项目理验极重客户分析基赖验做判断求理员量客户验行业分析力
33估算力资源 软件开发项目说力资源核心力量软件开发类型项目电脑需利工具终结果产生完全取决脑中知识知识济特点
力资源估算影响表现技术水理解力沟通力等方面编程水高低速度快慢否适应团队否成员保持良沟通会开发进度产生影响中技术水关键素评价程序员技术水编程熟练程度编程速度解决技术问题力素考虑编程熟练程度指程序员否畅编程工具实现软件功编程速度指完成某功时间解决技术问题力反映程序员遇技术难点时表现出技术功底果100作总三素分占701515样例
软件开发周期估算前应开发员定级建议新手初级程序员中级程序员高级程序员划分级员评定述三素初次估算时假定开发员中级程序员然项目组实际员水做修正样结果精确度提高
4 历史数估算法运 历史数估算软件开发周期种较常见方法种方法历史软件开发周期估算时前软件项目情况历史数加出终结果历史数估算开发周期准确度相高种方法适某类软件开发某行业业务系统开发估算软件历史软件相差太开发工具完全者类型完全赖种方法起码应该辅助估算法果没历史数开发种新领域软件代码行功点估算法基础通方法校正
事实目前项目理员开发周期估算部分属力时间估算法验验越估算结果越精确部分项目理员前价值历史数缺乏纳整理估算时候感觉成分精确度相低求项目理员仅量软件开发验断总结积累历史项目数软件开发周期估算非常价值
实际历史数估算法时建议项目理建立历史项目数库库中包含前项目开发周期项目规模开发员状况客户状况等详细数估算时根前项目状况库中寻找类似历史项目然较两项目间项目规模项目风险力资源间区假定历史项目开发周期A前项目周期列公式出
BA×(2×S+R+P+2×C)6
S:代表软件规模 R:代表风险 P:代表力资源 C:代表客户
值均指前项目历史项目率
实际较素应该止软件规模风险力资源客户状况中重软件开发影响公式中考虑素中软件规模客户两项占权重根项目理验出实际历史数估算法时灵活加入素
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档