计划和估计
在《构建之法》一书的第八章中(P160)就讲到了计划和估计。
估计:以当前了解的情况和掌握的资源,要花费多少的人力物力时间才能实现某事。
软件时间的估计是多个估计值的乘除法——估计的需求,估计的需求复杂度,估计的技术难度,估计的人员能力。
常用的估计方法有以下几种(仅从书中查阅的):
- 参考前人的经验;
- 快速原型法——先让一个人写一个简单的应用,给项目估计提供更好的数据支持。
整个软件项目的时间估计也可以从下面的两个方面来看:
- 自底向上:团队成员各自估计底层模块和单个功能(及单元测试)所需时间,再加上集成及基本测试的时间,就是大概的开发时间(此时不考虑各个模块之间的相互依赖性);
- 回溯:团队从整个项目最终交付之日往回倒推。
在我们的这个项目中采用的是多种估计方法相结合,然后得出的一个项目开发期限:
开发时间 | 开发内容 |
第一周 | 完成“软件工程知识树”立项说明书、需求分析说明书 |
第二周 | 完成“软件工程知识树”概要设计说明书 |
第三周 | 完成“软件工程知识树”数据库设计、详细设计说明书 |
第四周 | 完成“软件工程知识树”编码、测试文档 |
1.采用回溯的方法:“软件工程知识树”这一个网站项目的提出是在第三周左右,而我们构建之法的课程在第八周结课,所以我们需要在第八周之前将项目弄完,所以就有了上面时间上的估计;
2.采用参考前面的经验:在以前人机交互、基于pc端的验证码、基于Android的开发课程设计中做过类似的团队项目,开发所用时间差不多,流程也差不多,所以有了上面的开发时间内容估计也进行了参考;
3.基于人员的考虑:上面的开发内容之间是十分的紧凑的,虽然要做的网站不是特别庞大,但是工作量也不小,因为我们团队有12人,每个人的技术水平都不一样,理解能力也不一样,中间必定会出现一些问题,这需要时间来进行调整;
4.基于变更的考虑:变更在整个项目中都是存在的,除了项目文档的规范说明在变更,项目里面的一些内容也在变更,比如说,在用户的模块中添加一个动态功能,这就需要对数据库、详细设计说明书都要进行修改。