【发布时间】:2015-08-09 14:48:10
【问题描述】:
在给定 h 文件中的 LOC 数量的情况下,我能否估算出最佳代码(桌面应用程序)中 C++ LOC 的数量是多少?
背景: 我正在做一个将 C++ 软件移植到 C# 的工作量估算和计划。
我的第一个想法是根据 LOC 进行粗略估计,并使用移植到剩余 LOC 的 LOC 来跟踪流程。假设移植速度为 200LOCs/day 我来到 1,5 人年。如果我把这个数字给客户,我肯定不会得到合同。
仔细查看代码后发现,代码效率非常低,使用多对多 C&P 代码,实现自己的容器类等。 所以 C++ 的 LOC-Number 似乎没有反映实现相同功能的努力。现在我的假设是,头文件应该更好地反映功能。
【问题讨论】:
-
LOC 总是最糟糕的指标。静态代码分析有更好的启发式方法。
-
没有上下文且未清除代码 - 是的,您不能依赖 LOC。但是清除 LOC(删除 cmets、未使用、冗余代码、根据样式指南实现代码等)并了解上下文(程序语言、应用程序类型、行业), LOC 仍然是很好的衡量标准。
-
“使用自己的容器类”的问题是它们通常有问题。不一定,但是那种聪明到可以正确编写它们的程序员也足够聪明,可以不首先编写它们。这意味着您将花费大量时间来处理这些代码行,要么重写该容器的用途,要么模仿其损坏的行为。