-1

有人对如何估计评论和重组整个项目的代码需要多长时间有任何建议吗?

我刚开始和另一位程序员一起为一家公司做合同工作:他正在修复错误,而我正在重新组织代码。我想估计一下我需要多长时间才能逐行浏览代码并评论和/或重新组织代码。这是一个非常大的解决方案:它有两个项目,每个项目都有多个文件。

有人建议我计算每个文件中的所有代码行数,把它们加起来,然后加倍你的时间来给你填充。还建议我在估计之前对代码的大小进行平方。但是我不知道注释 100 行代码需要多长时间。

任何建议都会受到欢迎。如果有所作为,项目是使用 Visual Studio 2012 在 Windows 窗体中创建的。

谢谢!

4

4 回答 4

3

我建议你选择一个小的随机样本(20 行)并尝试重新组织它。这会让你知道它需要多长时间(如果你乘法),并且不会被低估,因为样本的随机性实际上会使工作稍微复杂一些。也可以做两三次,看看方差是否小。任何其他不基于的方法可能会在时间上更便宜,但不会产生为您量身定制的结果。在我看来,这种方法是一项不错的投资。

于 2013-02-16T18:37:18.443 回答
1

首先,这是一个估计值——估计值不是精确的数字,它们是近似值和范围。一旦你开始进入它,你一开始的估计可能会大大偏离,估计需要改进。在进行估算时要考虑不确定性代码。

存在许多完善的软件估计模型。COCOMO II 就是其中之一。我相信这种特殊方法为其技术增加了价值,因为它可以在已知数量的基础上发挥作用。

可在usc找到COCOMO II的网络工具。数一数你现在拥有的代码行数。估算一下您需要多少行新注释,有多少可以重复使用,有多少需要修改。插入这些数字。COCOMO II 工作原理的定义和所有术语都可以在usc ftp 站点中找到

假设您有一个 10k SLOC 现有代码,其中 75% 可以重用,25% 需要修改(75% 设计修改,100% 代码修改......),另外 10% 用于注释。有支持和反对调整各种成本驱动因素的争论(改变“名义”或保持原样)。

将其插入,您将获得 2825 SLOC 的等效大小,然后转化为 9.2 个人月的工作量(请记住,这不仅仅是逐行遍历代码 - 还要确保您重新设计正确并对其进行测试) . 九个月大约是 1500 个工作小时。

考虑获取软件估算:揭开黑艺术的神秘面纱,它涉及估算的更多方面以及进行估算的其他技术(这是通过代理进行的估算,只是众多技术中的一种)。

请记住保存有关花费多长时间和您的估计的数据 - 随着时间的推移,历史数据可以帮助改进估计。

进一步阅读 Wikipedia软件工程中的成本估算

于 2013-02-16T22:20:42.133 回答
0

您可能可以通过使用某种代码分析来找到令人讨厌的位,这些代码分析向您展示了类的复杂性。

检查单元测试未涵盖的代码也将帮助您找到更难重构的代码。

于 2013-02-16T18:45:15.567 回答
0

就注释代码而言,大概意味着阅读每一行并描述每个方法/有趣的部分?忽略所有关于这个的通常辩论,首先,你有我的同情,其次,我建议选择一些课程,做这项工作,并测量需要多长时间:你应该能够从那里推断(并加上 30 % 然后)

至于重组,除非您已经知道需要进行某些特定的大规模重构,否则我通常对“需要多长时间”的回答是“您希望它变得更好多少?” - 最终的答案,总是以你和老板/客户都同意的有时间限制的金额而告终。提出x天的建议,并在那段时间内尽你所能做好。另外,有人提到集成测试:如果这是一个可行的选择,那么它肯定有助于控制时间

于 2013-02-16T19:38:57.803 回答