软件估算与规划
软件估算与规划旨在预测软件项目所需投入的精力、成本、时间表和资源,并组织工作以在这些限制内交付项目。
用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
Learn & explore
视频即将推出
Definition
软件估算是对开发或维护软件所需精力、持续时间和成本的预测,而规划则是在这些估算范围内组织活动、里程碑和资源以实现项目目标。
Scope
本主题涵盖了代码行数和功能点等规模度量;COCOMO等算法成本模型;专家判断、类比和规划扑克估算;工作分解和进度安排技术,包括关键路径和燃尽图;使用速度和故事点的敏捷规划;以及通过范围和不确定性锥体处理估算不确定性。
Core questions
- 如何衡量软件规模以进行估算?
- 算法、类比和专家判断方法有何异同?
- 项目进展过程中如何表示和减少不确定性?
- 敏捷规划中的速度与预先排定的进度有何不同?
Key theories
- 算法成本模型
- COCOMO等模型将工作量和进度表示为估算规模和项目成本驱动因素的校准函数,提供可重复的估算,并可通过历史数据进行调整。
- 功能点规模度量
- 功能点分析通过独立于实现语言地计数和加权其功能组件来衡量软件规模,为估算提供技术中立的规模输入。
Clinical relevance
现实的估算和规划是向利益相关者做出承诺和进行资源决策的基础;长期的低估会导致软件项目普遍存在的进度和预算超支,因此,严谨的方法和明确的不确定性处理至关重要。
Evidence & guidelines
关于估算准确性和COCOMO II等模型的实证研究提供了基于证据的指导,功能点计数则受IFPUG和ISO/IEC功能规模度量标准的管辖。
History
功能点由Albrecht在20世纪70年代末引入,COCOMO由Boehm在1981年引入,为估算奠定了量化基础;随后的工作改进了模型(COCOMO II),研究了估算偏差,并引入了用于敏捷规划的轻量级相对规模方法。
Debates
- 估算与“无估算”运动
- 一些敏捷实践者认为详细估算浪费精力,小步稳定交付使预测比估算更可靠,而另一些人则认为估算对于规划和承诺仍然是必要的;争论的焦点在于情境和利益相关者的需求。
Key figures
- Barry Boehm
- Allan Albrecht
- Steve McConnell
Related topics
Seminal works
- boehm1981
- albrecht1983
- mcconnell2006
Frequently asked questions
- 为什么软件估算常常出错?
- 估算是在信息最少时进行的,需求会发生变化,而且人类倾向于乐观;不确定性锥体表明早期估算不可避免地存在较大范围,这就是为什么偏好使用范围和重新估算而不是单一固定数字的原因。
- 故事点只是伪装的时间吗?
- 不是。故事点表示相对规模和复杂性,而非绝对时间;结合团队观察到的速度,它们可以产生预测,但将一个点等同于固定小时数会破坏其捕捉相对工作量的目的。