Líneas de código fuente


Líneas de código fuente

La definición de línea de código fuente es, para la mayor parte del mundo del software, esencialmente ambigua. Su significado varía de un lenguaje de programación a otro, pero también dentro de un mismo lenguaje de programación.

En el lenguaje de programación C, por ejemplo, una línea de código puede ser (1) una instrucción acabada en un salto de línea, (2) una instrucción acabada en un punto y coma o (3) cualquier línea del programa que acabe en un salto de línea (comentarios incluidos).

Por ejemplo:

for (i=0; i<100; ++i) {printf("hola");} /* ¿Cuántas líneas tiene este programa? */

Proviene de las siglas en inglés de Source Lines of Code, en español, Líneas de Código Fuente

Contenido

El uso de medidas de LoC

De acuerdo a Andrew Tanenbaum, los valores SLOC para diferentes sistemas operativos de la línea de productos de Microsoft Windows NT son las siguientes:

Año Sistema Operativo SLOC (en millones)
1993 Windows NT 3.1 4-5[1]
1994 Windows NT 3.5 7-8[1]
1996 Windows NT 4.0 11-12[1]
2000 Windows 2000 mas de 29[1]
2001 Windows XP 40[1]
2005 Windows Vista Beta 2 mas de 50

David A. Wheeler ha estudiado el sistema operativo Red Hat (distribución de los sistemas operativos de Linux) e informó que Red Hat versión 7.1 (lanzado en abril de 2001) contiene cerca de 30 milliones de SLOC físicos. También extrapoló que, de haber sido desarrollado por medios convencionales de propiedad (medida de tiempo-persona) habría requerido de unos 8.000 años-persona de esfuerzo y desarrollo y hubiesen costado más de $1 billón de dólares (cotizados en el año 2000)

Un estudio similar reveló que Debian version 2.2 (conocido también como "Papa") contiene unos 55 millones de SLOC y de haber sido realizado mediante las propiedades convencionales, hubiese tardado unos 14005 años-persona y costado unos $1.9 billones de dólares. Más tarde se ejecutó una de las herramientas utilizadas en el informe para la siguiente versión de y se reportó que Debian posee 104 millones de SLOC, y a partir del año 2005, las siguientes versiones poseerán, al menos, más de 213 millones de SLOC.

Se pueden encontrar las cifras de los principales sistemas operativos (las distintas versiones de Windows se han presentado en una tabla de arriba)

Sistema Operativo SLOC (en milliones)
Red Hat Linux 6.2 17[cita requerida]
Red Hat Linux 7.1 30[cita requerida]
Debian 2.2 55-59[2] [3]
Debian 3.0 104[3]
Debian 3.1 215[3]
Debian 4.0 283[3]
OpenSolaris 9.7
FreeBSD 8.8
Mac OS X 10.4 86[4]
Núcleo Linux 2.6.0 5.2

En comparación, las cifras de algunas herramientas gráficas.

Graphics Program SLOC (Million)
OpenOffice.org ~10[cita requerida]
Blender 2.42 ~1[cita requerida]
GIMP v2.3.8 0.65[cita requerida]
Paint.NET 3.0 0.13[cita requerida]

Programas para contar líneas de código

Existen diversas aplicaciones disponibles con el propósito de contar las líneas de código contenidas en el código fuente en forma automática. Entre los requerimientos necesarios para una herremienta métrica de este tipo debería incluir la habilidad necesaria para procesar varios lenguajes de código fuente y no depender de un sistema operativo específico.

Las compañías que usan una herramienta en C para Windows, otra en C para UNIX y una tercera en Java para Linux, no desarrollan una estimación básica para sus medidas del CMMI.

Free/Open Source

  • El comando más simple en UNIX para contar las líneas de cógido es wc. Por ejemplo, para contar el número de líneas en todos los archivos .cxx, .cpp, .h y .c dentro y debajo del directorio actual, se pueden usar los comandos POSIX: find y wc
find . \( -name '*.[ch]' -o -name '*.cxx' -o -name '*.cpp' \) -exec wc -l {} \;
Herramienta Plataforma / Interfaz Lenguajes analizados Tipo de análisis Licencia Detalles
CCCC Cygwin, FreeBSD, Linux, Mac OS X, Microsoft Windows / Línea de comandos C, C++, y Java Solo físico GPL Metrics supported include lines of code, McCabe's cyclomatic complexity and metrics proposed by Chidamber&Kemerer and Henry&Kafura.
cloc Perl Más de seis lenguajes de programación y de marcado. Sólo físico GPL Cuenta las líneas físicas del código, las líneas negras y los comentarios. Comment definitions may be read from a file. Report summation features allow line counts to be aggregated by language and by project.
CodeCount Cygwin, FreeBSD, Linux, Mac OS X / Command line interface Ada, Assembly, C and C++, COBOL, FORTRAN, Java, JOVIAL, Pascal, PL1, C#, JavaScript, MUL, Perl, SQL Físco y lógico Limited Public License Requires significant manual steps to build and configure
c_count Cygwin, FreeBSD, Linux, Mac OS X / Command line interface C, C++, Java Física y lógica Licencia MIT
kloc Cygwin, FreeBSD, Linux, Mac OS X / Command line interface C, C++, Java Sólo física GPL The line comment marker and block comment marker can be configured using a configuration file, allowing user to count effective lines of code and lines of comments for C, C++, Java, etc.
Metrics Eclipse IDE / Interfaz gráfica de usuario Java Sólo física CPL
SLOCCount Cygwin, FreeBSD, Linux, Mac OS X / Command line interface Más de dos docenas de lenguajes de programación Sólo física GPL Sólo informa de las líneas de código. Para instalarlo con apt-get: "sudo apt-get install sloccount"

Freeware (código abierto)

  • K-LOC Calculator es una herramienta para Windows para contar líneas de código físicas.
  • Code Analyzer es una herramienta escrita en Java para contar líneas de código. Para varios lenguajes.
  • LinesOfCodeWichtel es una herramienta escrita en java para contar LoC. Para varios lenguajes
  • LocMetrics es una herramienta gratuita para LoC en Windows en los lenguajes C#, Java, o C++ code.
  • Source Line of Code Counter Una herramienta para contar LoC basada en .net, admite concordancias en expresiones, trae un navegador de directorio.
  • Source Monitor es una herramienta gratuita para Windows que cuenta las líneas de código y medidas derivadas de los lenguajes C++, C, C#, Java, y de otro código fuente
  • Dos maneras de contar SLOC en Windows PowerShell en todos los archivos .cxx, .cpp, .h, and .c dentro y debajo del directorio.
Get-ChildItem -recurse -include *.cxx,*.cpp,*.h,*.c | Get-Content | Measure-Object -line
ls -r -i *.cxx,*.cpp,*.h,*.c | gc | measure-object -l

Comerciales

  • EZ-Metrix is a commercial web-based source code counting utility that measures more than 75 different languages, and compares two file lists to quantify differences (i.e., new, modified, deleted, unmodified).
  • Resource Standard Metrics is a commercial tool designed to process ANSI C, ANSI C++, C#, and Java 2.0+ while operating on Windows, UNIX, Linux and Mac OS X.
  • Another program for Windows, Code Counter Pro, which counts physical KLOCs and supports languages like C, C++, C#, Java, Cobol, Delphi, VB, ASP, PHP and Fortran.

Basados en web

  • Ohloh extracts LOC and other software metrics of open source projects from publicly accessible revision control repositories. It generates analyses and reports of development activity available as graphs and API-based web-services.

Véase también

Referencias

  1. a b c d e How Many Lines of Code in Windows?, Knowing.NET, December 06, 2005, http://www.knowing.net/PermaLink,guid,c4bdc793-bbcf-4fff-8167-3eb1f4f4ef99.aspx, consultado el 2007-10-18 
    This in turn cites Vincent Maraia's The Build Master as the source of the information.
  2. González-Barahona, Jesús M., Miguel A. Ortuño Pérez, Pedro de las Heras Quirós, José Centeno González, and Vicente Matellán Olivera. «Counting potatoes: the size of Debian 2.2». debian.org. Consultado el 12-08-2003.
  3. a b c d Robles, Gregorio. «Debian Counting». Consultado el 16-02-2007.
  4. Jobs, Steve (August de 2006). «Live from WWDC 2006: Steve Jobs Keynote». Consultado el 16-02-2007. «86 million lines of source code that was ported to run on an entirely new architecture with zero hiccups.».

Enlaces externos


Wikimedia foundation. 2010.

Mira otros diccionarios:

  • Código fuente — Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar al …   Wikipedia Español

  • Código fuente — Definición El código fuente es un conjunto de líneas de código que conforman un bloque de texto que normalmente genera otro código mediante un compilador o intérprete para ser ejecutado por una computadora. Normalmente se refiere a la… …   Enciclopedia Universal

  • Línea de código fuente — Se ha sugerido que este artículo o sección sea fusionado en Líneas de código fuente (discusión). Una vez que hayas realizado la fusión de artículos, pide la fusión de historiales aquí. Son cada una de las líneas de un archivo de código fuente de… …   Wikipedia Español

  • Línea de código fuente — Son cada una de las líneas de un archivo de código fuente de un programa informático. Habitualmente en cada línea se ejecuta una instrucción que tiene que ejecutar el software programado. Tambien es habitual tabular las estructuras de control del …   Enciclopedia Universal

  • código — {{#}}{{LM C09132}}{{〓}} {{SynC09356}} {{[}}código{{]}} ‹có·di·go› {{《}}▍ s.m.{{》}} {{<}}1{{>}} Conjunto de leyes dispuestas de forma sistemática y ordenada: • En el código de circulación vienen indicadas las velocidades máximas permitidas en cada …   Diccionario de uso del español actual con sinónimos y antónimos

  • Código — (Del lat. codex, libro.) ► sustantivo masculino 1 Conjunto de reglas o normas sobre cualquier materia: ■ no se sabe el código de la circulación. SINÓNIMO reglamento 2 Sistema de signos o señales que permite formular y comprender un mensaje: ■… …   Enciclopedia Universal

  • Código Civil de Chile — Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar …   Wikipedia Español

  • Estación de Valencia-Fuente San Luis — Saltar a navegación, búsqueda Valencia Fuente San Luis …   Wikipedia Español

  • Página de código 437 — Saltar a navegación, búsqueda La página de código 437 (code page 437, en inglés) de IBM PC o MS DOS, a menudo abreviado CP437 y también conocida como DOS US, OEM US o a veces incorrectamente referida como el OEM font, High ASCII o Extended… …   Wikipedia Español

  • Lenguaje ensamblador — Para otros usos de este término, véase Ensamblador (desambiguación). Lenguaje de máquina del Intel 8088. El código de máquina en hexadecimal se resalta en rojo, el equivalente en lenguaje assembler en magenta, y las direcciones de memoria donde… …   Wikipedia Español