Pega código para contar líneas en blanco, de comentario y de código como lo hace cloc, ve su composición y estima el esfuerzo con COCOMO 81 Básico.
No se sube nada; el conteo se ejecuta en tu navegador. Hasta 2000 líneas.
Un equipo pequeño y experimentado, con un problema conocido y un entorno estable. Boehm señala que muy pocos proyectos en modo orgánico han superado los 50 KSLOC.
Cada regla verificada contra cloc 2.10 en archivos de seis lenguajes. Cuando una regla es discutible, esta tabla lo indica.
| Tipo de línea | Cuenta como | cloc coincide |
|---|---|---|
| Una línea con código y un comentario al final | Código, una vez | Sí |
| Una línea en blanco dentro de un comentario de bloque o docstring | En blanco | Sí |
| Una línea #! al principio del archivo | Código | Sí |
| #include, #define y otras directivas de C/C++ | Código | Sí |
| Una línea entera que solo contiene una cadena literal | Comentario en Python, código en el resto | Sí |
Las bandas son potencias de diez, elegidas aquí por legibilidad y no tomadas de un estándar. Como referencia real, SQLite publica su propio tamaño: 155,8 KSLOC (155.800 SLOC), contado igual que lo cuenta esta página.
| Banda | SLOC |
|---|---|
| Diminuto | hasta 1000 |
| Pequeño | hasta 10.000 |
| Mediano | hasta 100.000 |
| Grande | hasta 1.000.000 |
| Muy grande | hasta 10.000.000 |
| Enorme | más de 10.000.000 |
Esfuerzo = a x (KSLOC)^b, de Boehm, Software Engineering Economics (1981). Son los coeficientes del modelo Básico; el Intermedio usa otro conjunto más quince factores de coste.
| Modo | a | b | Cuándo se aplica |
|---|---|---|---|
| Orgánico | 2,4 | 1,05 | Equipo pequeño y experimentado; problema conocido |
| Semiacoplado | 3,0 | 1,12 | Experiencia mixta; algo de novedad |
| Empotrado | 3,6 | 1,20 | Restricciones estrictas; requisitos cambiantes |
El conteo de líneas describe tamaño, no valor ni calidad. COCOMO 81 se calibró con 63 proyectos en 1981; toma sus cifras de esfuerzo, duración y coste como un punto de partida de orden de magnitud para la conversación, nunca como un plan ni un presupuesto.
También podrías encontrar útiles estas calculadoras
Pega tu código y obtén su complejidad ciclomática por función
Cobertura por criterio, comparada con requisitos que sí podemos citar
Pega tu código y obtén su Big-O de tiempo y espacio
Mide el rendimiento DevOps con cuatro métricas clave
Pega un archivo y esta página lo cuenta como lo hacen cloc, scc y sloccount: líneas en blanco, líneas de comentario y líneas de código fuente, con cada convención declarada para que puedas comprobar los números en lugar de confiar en ellos. Si ya tienes los conteos de una herramienta, cambia de modo e introdúcelos. En ambos casos obtienes además una estimación de esfuerzo con COCOMO 81 Básico, eligiendo tú el modo de desarrollo en vez de darlo por supuesto.
SLOC (líneas de código fuente) es el recuento de las líneas de un archivo que contienen código, excluyendo las líneas en blanco y los comentarios. Es una medida de tamaño, no de calidad. Dos recuentos del mismo archivo difieren sobre todo porque las reglas de conteo difieren, y por eso el marco de medición del SEI considera la lista de reglas parte de la propia medida, y por eso esta página enumera las suyas. El SLOC físico cuenta líneas; el SLOC lógico cuenta sentencias, así que una línea física con tres sentencias cuenta una vez en físico y tres en lógico. No existe una proporción fija entre ambos.
SLOC a partir de las líneas físicas de un archivo
Cuenta lo que hay realmente antes de estimar una migración o una reescritura, y separa el código escrito a mano del generado y de las dependencias importadas.
Pasa tu cifra de SLOC por COCOMO en los tres modos. Si la horquilla es más ancha que la estimación que te dieron, esa estimación depende de supuestos que nadie ha escrito.
Compara la proporción de comentarios entre módulos para encontrar los archivos que llevan lógica poco obvia sin ninguna explicación.
Publica un conteo de líneas junto a sus reglas de conteo, como SQLite publica sus 155,8 KSLOC, para que la cifra se pueda reproducir.
COCOMO, las conversiones de puntos de función y casi todos los estimadores paramétricos toman el tamaño en KSLOC. Sin una cifra de tamaño obtenida con una regla declarada, la estimación no tiene anclaje.
La parte de las líneas documentadas que son comentarios indica dónde se sitúa un código entre lo evidente y lo inexplicado, y delata los archivos donde los comentarios son en realidad código comentado.
«Grande» no es un tamaño. Saber que un código tiene 40 000 SLOC y no 400 000 cambia la incorporación de personas, la carga de revisión y cuántas pueden abarcarlo mentalmente.
Un conteo de líneas solo significa algo junto a las reglas que lo produjeron. Ajustarse a las convenciones de una herramienta de referencia es lo que hace tu número comparable con el de otros.
Para un solo archivo, pégalo arriba. Para un repositorio completo, usa un contador que recorra directorios como cloc, scc o tokei: esta página cuenta un archivo pegado a la vez, hasta 2000 líneas, y sigue las convenciones por línea de cloc para que ambos coincidan. Si ya tienes la salida de una herramienta, cambia a «Ya tengo los conteos» e introduce sus columnas de blanco, comentario y código.
Una línea que contiene al menos un carácter de código después de quitar los comentarios. Las líneas en blanco y las puramente de comentario no cuentan. Una línea con código y un comentario al final cuenta una sola vez, como código, así que las tres clases siempre suman el total de líneas físicas.
No. Cuenta una vez, como código. Esta página también informa de cuántas líneas de ese tipo había, para que veas qué parte del archivo mezcla las dos cosas: esa cifra es un subconjunto del conteo de código, no una clase adicional.
El SLOC físico cuenta líneas; el lógico cuenta sentencias. Una línea con tres sentencias separadas por punto y coma es una línea física y tres lógicas, y una sentencia repartida en cuatro líneas es el caso contrario. Esta página cuenta SLOC físico. No hay conversión fija entre ambos: depende por completo del lenguaje y del estilo de formato, así que cualquier multiplicador único sería inventado.
Lo habitual es que se esté suponiendo otro lenguaje, porque los marcadores de comentario cambian. Comprueba la etiqueta del lenguaje detectado y fíjalo a mano si hace falta. Más allá de eso, las herramientas difieren de verdad en casos límite: si un shebang es código, si un docstring es comentario y cómo se tratan las cadenas literales que ocupan una línea entera. Las reglas de esta página están en la tabla de convenciones, cada una indicando si cloc coincide.
Divide entre 1000. 12 500 SLOC son 12,5 KSLOC. Los artículos originales de COCOMO llaman KDSI a la misma magnitud, miles de instrucciones fuente entregadas. Los tres nombres se refieren a la misma medida; lo que varía entre estudios es la regla de conteo detrás de ellos, no la aritmética.
No. El conteo de líneas mide tamaño, así que indica cuánto hay que leer, revisar y mantener: un coste, no un logro. La misma funcionalidad con menos líneas suele ser el mejor resultado. Precisamente por eso el conteo de líneas es una mala métrica de productividad y una métrica de tamaño razonable.
COCOMO 81 Básico se calibró con 63 proyectos en 1981, antes de las herramientas, los lenguajes y las prácticas de entrega que usan hoy la mayoría de los equipos. Tómalo como una comprobación de orden de magnitud y no como un plan: sirve para preguntar por qué una estimación es cinco veces el modelo, no para comprometer una fecha. Su propio autor lo sustituyó por COCOMO II, que necesita muchas más entradas que un conteo de líneas.