SLOC

SLOC

Lines of Code (abgekürzt LOC oder auch LoC, im Englischen auch "SLOC - Source Lines of Code" ) ist ein Begriff aus der Informationstechnik beziehungsweise dem Programmiererjargon. Er kommt aus dem Englischen und heißt übersetzt soviel wie „Anzahl an Programmzeilen“.

Die Messung der „Lines of Code“ kann als Metrik für die Größe oder für das Wachstum eines Programms verwendet werden.

Die Metrik darf dazu nicht missbraucht werden, um die Effizienz eines Programmierers an der Anzahl von Programmzeilen zu messen. Da die Anzahl von unterschiedlichsten Faktoren abhängt (gewählte Architektur, Erfahrung des Programmierers, gewählte Lösung, Formatierung des Quellcodes, verwendete Programmiersprache, ...), besitzt diese Metrik keinerlei Aussagekraft im Bezug zur Leistung des Programmierers. Zudem besagt die 80/20-Regel, dass 80 % der Zeilen in 20 % der Zeit geschrieben werden. Das Testen eines Programms kann, sofern es seriös gemacht wird, sehr viel Zeit in Anspruch nehmen, während die Anzahl geänderter oder ergänzter Programmzeilen nur sehr gering ist.

“Measuring programming progress by lines of code is like measuring aircraft building progress by weight.”

Bill Gates

Verwendung

Die meisten Vergleiche von Programmen über die LOC betrachten nur die Größenordnungen der Anzahl Zeilen verschiedener Projekte. Computerprogramme können aus nur wenigen Dutzend bis zu hunderten von Millionen Programmzeilen bestehen. Der Vergleich des Umfangs eines Programmes mit 10.000 Zeilen mit einem mit 100 Millionen Zeilen ist viel aussagekräftiger als jener zwischen 20.000 und 21.000 Zeilen, da die Zählweise der Zeilen auch nicht einheitlich ist und das Ergebnis außerdem von der Formatierung des Quelltextes, der Programmiersprache und anderen Faktoren abhängt. Unterschiede in Größenordnungen können einen Hinweis auf die Komplexität oder die zu investierende Arbeitszeit geben.

Es gibt zwei Varianten, LOC zu messen: physische Zeilen oder logische Zeilen. Bei der physischen Zählweise wird tatsächlich einfach die Zahl der Zeilen im Quelltext, inklusive Kommentar- und Leerzeilen, gezählt. Bei der logischen Zählweise wird versucht, die Anzahl der Anweisungen zu zählen. Diese sind von der verwendeten Sprache abhängig und benötigen einen passenden Parser. Der Vorzug ist hier, dass für das Funktionieren des Programms irrelevante Formatierungen, Kommentare und Ähnliches, nicht mitgezählt werden.

Die Aussagekraft der LOC wird zusätzlich eingeschränkt, da einige Compiler bei entsprechenden Einstellungen versuchen, den Programmcode zu optimieren.

Das folgende Beispiel zeigt die auftretende Problematik. Es werden vier unterschiedliche Anweisungen gezählt, allerdings nur drei werden auch wirklich übernommen.

meinobject t = new meinobject();
t.einfeld = "hallo welt";
Console.WriteLine(t.einfeld);
t = null; // Unter der Voraussetzung, dass t nie mehr verwendet wird, 
//ignoriert der C#-Compiler diese Anweisung. 
//In der CIL taucht die Anweisung nicht mehr auf.

Das folgende Beispiel zeigt den Unterschied der Bewertungsmethoden:

for (i=0; i<100; ++i) printf("hello"); /* Wieviele Zeilen Code sind das? */

Hier haben wir:

  • 1 physische Codezeile (LOC),
  • 2 zwei logische Codezeilen (lLOC, for-Anweisung und printf-Anweisung),
  • 1 Kommentarzeile.

Abhängig vom Programmierer und den verwenden Formatierungsrichtlinien kann und wird die obige Zeile oft wie folgt geschrieben:

for (i=0; i<100; ++i)
{
    printf("hello");
} /* Wie viele Zeilen sind das? */

Hier haben wir:

  • 4 physische Codezeilen: Was kostet das Platzieren einer Klammer?
  • 2 logische Programmzeilen,
  • 1 Kommentarzeile: Kommentare sind für das Verständnis essenziell, für den Compiler sind sie Luft.

Literatur

  • S. H. Kan. 2002. Metrics and Models in Software Quality Engineering. 2nd Edition. Addison-Wesley.

Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • SLOC — is an acronym for:* Sea lines of communication * Source lines of code * System location * Schenectady Light Opera Company …   Wikipedia

  • SLOC — sea line of communications …   Military dictionary

  • SLOC — Source Lines Of Code (Governmental » Military) Source Lines Of Code (Academic & Science » Electronics) * Sea Line Of Communication (Governmental » Transportation) * Sea Line Of Communication (Governmental » Military) …   Abbreviations dictionary

  • SLOC — 1. Source Line of Code Contributor: GSFC 2. Source Lines of Code Contributor: CASI, MSFC …   NASA Acronyms

  • SLOC — • Sea Lines of Communication …   Maritime acronyms and abbreviations

  • Schenectady Light Opera Company (SLOC) — is a nonprofit community theater organization in Schenectady, NY, established in 1926 . The current location of the 260 seat theater is at 826 State Street, in downtown Schenectady. In 2006 2007, SLOC celebrated it s 80th Anniversary of community …   Wikipedia

  • Standby Letter of Credit - SLOC — A guarantee of payment issued by a bank on behalf of a client that is used as payment of last resort should the client fail to fulfill a contractual commitment with a third party. Standby letters of credit are created as a sign of good faith in… …   Investment dictionary

  • Source lines of code — (SLOC) is a software metric used to measure the size of a software program by counting the number of lines in the text of the program s source code. SLOC is typically used to predict the amount of effort that will be required to develop a program …   Wikipedia

  • Líneas de código fuente — El texto que sigue es una traducción defectuosa o incompleta. Si quieres colaborar con Wikipedia, busca el artículo original y mejora o finaliza esta traducción. Puedes dar aviso al autor principal del artículo pegando el siguiente código en su… …   Wikipedia Español

  • COCOMO — Not to be confused with Docomo or Kokomo. The Constructive Cost Model (COCOMO) is an algorithmic software cost estimation model developed by Barry W. Boehm. The model uses a basic regression formula with parameters that are derived from… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”