如何认识软件项目估算.doc
如何认识软件项目估算 虽然估算是一门科学,更是一门艺术,这个重要的活动不能以随意的方式来进行……因为估算是所有其他项目计划活动的基础,而项目计划又提供了通往成功的软件工程的道路图,所以,没有它我们就会搭错车。 —— Roger S. Pressman 《软件工程 —— 实践者的研究方法》 1、估算前的规划 当我们的办公室内堆满了杂乱无章的文件时,恐怕无法知道对于我们真正有用的文件在哪里,当我们的软件相目中收集了各种需求、意见、问题时,我们也很难从中估算出整个项目的规模、工作量以及成本。因此,在估算之前我们首先要对众多信息进行整理、归类分析,从而得到一个条理清晰的项目计划,在这个计划提供的框架内,才可能开始正确的估算。精心的规划是任何一个软件开发项目成功与否的关键,有了规划就有如成竹在胸,之后无论风云变幻,都有应对入流的方法。当然只有正确的规划,才能给软件开发指引正确的方向。 软件项目规划的重点是对人员 角色、任务进度、经费、设备资源、工作成果等等做出合适的安排,制定出一些计划 (包括高层的和细节的 ),使大家按照计划行事,最终顺利地达到预定的目标。 1.1、规划的第一步:确定软件范围 确定软件范围,就是确定目标软件的数据和控制、功能、性能、约束、接口以及可靠性。这项工作和需求分析是很类似的,如果之前已经达成需求分析规约,那么可以直接从《需求分析说明书》中把有用的部分拿来使用。如果还没有开始需求分析,关于确定软件范围的方法方面,我们可以采用许多需求分析技术 (如需求诱导 ),从客户那里得到一个具体的软件范围 。当然如果是一次全新的软件边界探索,就应当考虑软件本身可行性问题,包括团队是否具备在技术、财务、时间、资源上游可靠的保障,软件本身在市场上是否有可靠的竞争优势 ,等等。 获得软件范围,最直接最可靠的来源就是用户对软件的需求描述。例如,在开发一个 C/S 架构的铁路供电段数据上报系统中,客户向我们提供了以下的目标软件需求描述: 在供电站总部每天结束前要审核下属节点操作员 (30~40 个 )的供电安全数据报表,要求每个节点必须在下午 5: 30~6: 00 之间上传数据。总部系统通过自动分析,整理出整个区内的安全形势报 表,并自动反馈到每个节点。各个节点之间通过调制解调器拨号 (MODEM)用内部电话线相连,每个节点电脑主机配备一个MODEM。上传数据为制式报表出了