Über den Umfang des OpenEstate-Projektes

Ankündigungen der Moderatoren & Entwickler

Über den Umfang des OpenEstate-Projektes

Postby Andreas Rudolph » Fri 19. Feb 2010, 03:15

Mit Hilfe des Programmes SLOCCount habe ich aus Neugier mal eine Analyse der OpenEstate-API gemacht. Ich möchte Ihnen das Ergebnis nicht vorenthalten und ein paar Gedanken dazu formulieren.

Zahlen über Zahlen

Lines of Code (Quelltextzeilen)

In der folgenden Übersicht werden die physischen Quelltextzeilen (Spalte SLOC) eines jeden Teilprojektes (Spalte Directory) dargestellt.

Code: Select all
SLOC    Directory   SLOC-by-Language (Sorted)
78502   OpenEstate-Impl java=78431,sh=71
31569   OpenEstate-Tool-Agency java=31470,php=99
22481   OpenEstate-Tool java=22435,sh=46
9728    OpenEstate-Tool-Calendar java=9728
4559    OpenEstate-Tool-Agency-Addons java=4559
4394    OpenEstate-Tool-Contacts java=4394
2162    OpenEstate-Tool-Contacts-Addons java=2162

Gruppiert nach verwendeten Programmiersprachen bedeutet dies:

Code: Select all
Totals grouped by language (dominant language first):
java:        153179 (99.86%)
sh:             117 (0.08%)
php:             99 (0.06%)

Wenn das Programm richtig gerechnet hat, besteht die OpenEstate-API zur Zeit aus 153.395 physischen Quelltextzeilen. Der Löwenanteil davon wurde in Java programmiert (99,86%).


Kostenmodell

Unter Verwendung des 'Constructive Cost Model' (COCOMO) kann aus den Quelltextzeilen der betriebswirtschaftliche Aufwand für ein Softwareprojekt dieser Größenordnung abgeschätzt werden.

Code: Select all
Total Physical Source Lines of Code (SLOC)                = 153,395
Development Effort Estimate, Person-Years (Person-Months) = 36.84 (442.13)
 (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months)                         = 1.66 (19.88)
 (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Total Estimated Cost to Develop                           = $ 4,977,109
 (average salary = $56,286/year, overhead = 2.40).

Die geschätzten Gesamt-Entwicklungskosten für ein Projekt der aktuellen Größenordnung von $ 4.977.109 (US-Dollar) sind schon erstaunlich. Es ist jedoch anzumerken, dass im COCOMO der komplette Software-Entwicklungsprozess (vom Reißbrett bis zur Inbetriebnahme) berücksichtigt wird. Die OpenEstate-API (bzw. das ImmoTool) hat kein solches 'starres Konzept'. Viel mehr handelt es sich um einen 'stetig wachsenden' Entwicklungsprozess, der offen für Einflüsse von Außen ist.

Anmerkungen, Schlussfolgerungen & Interpretationen

Die Anzahl der Quelltextzeilen ist kein Maß für die Qualität eines Programmes

Die Qualität einer Software kann nicht mit Quelltextzeilen gemessen werden. In Wikipedia wird der Sachverhalt wie folgt beschrieben:

Computerprogramme können aus nur wenigen Dutzend bis zu hunderten von Millionen Programmzeilen bestehen. Der Umfangs eines Programmes muss nicht zwangsläufig Rückschlüsse auf die Komplexität des Programms erlauben, da die Zählweise der Zeilen nicht einheitlich ist und das Ergebnis außerdem von der Formatierung des Quelltextes, der Programmiersprache und anderen Faktoren abhängt. Je nach Zählweise sind insbesondere Rückschlüsse auf die investierte Arbeitszeit meistens sinnfrei.


Das ImmoTool stellt weniger als 50% des gesamten Quelltext-Umfangs dar

Das ImmoTool (inkl. Add-Ons) belegt mit 74.893 Zeilen weniger als 50% des gesamten Projektes. Die andere Hälfte wird allein von der Bibliothek 'OpenEstate-Impl' in Anspruch genommen. In diesem Teilprojekt sind die Lese- & Schreibfunktionen für die verschiedenen Immobilienformate (OpenEstate, OpenImmo, IS24, etc.) programmiert worden. Diese große Zahl verdeutlicht den Entwicklungsaufwand für solche vermeintlich selbstverständlichen Funktionen und erklärt vermutlich auch, warum die meisten Softwarelösungen nur wenige Immobilienformate unterstützen. ;)


Der Umfang des Projektes wird in den Zahlen nur unvollständig erfasst

Das Analyseprogramm verarbeitet nur die Quelltextdateien und leitet unter verschiedenen Annahmen (Lohnkosten, 152 Arbeitsstunden pro Monat, etc.) den Gesamtaufwand des Projektes ab. Dies stellt aber nur einen Bruchteil des gesamten Projektes dar. Verschiedene wichtige Aspekte bleiben unberücksichtigt:

  • Übersetzungsarbeit
  • Dokumentation im Wiki
  • Support / Betreuung der Anwender
  • Spezifikation von OpenEstate in XML & SQL
  • Organisation der internen Abläufe / Entwicklung von Hilfsprogrammen


Wer trägt nun die Kosten am OpenEstate-Projekt?

Die im COCOMO errechneten Kosten kann man sicherlich je nach Sichtweise höher oder niedriger ansetzen. Dennoch verdeutlicht diese Zahl, dass eine Softwareentwicklung in dieser Größenordnung für ein betriebswirtschaftlich agierendes Unternehmen durchaus ein wirtschaftliches Risiko darstellen kann. Hier wird der enorme Vorteil eines gemeinschaftlich entwickelten Projektes deutlich. Jeder Anwender, Supporter, Übersetzer, Sponsor & Entwickler trägt seinen Teil zur 'Wertsteigerung' des Projektes bei - eine klassische Win-Win-Situation.
Mit freundlichem Gruß / Yours sincerely
Andreas Rudolph
User avatar
Andreas Rudolph
 
Posts: 3738
Joined: Tue 16. Feb 2010, 21:48
Location: Berlin, Germany

Über den Umfang des OpenEstate-Projektes (2)

Postby Andreas Rudolph » Sat 19. Mar 2011, 23:30

Mehr als ein Jahr nach der letzten Quellcode-Zählung habe ich aus Neugier erneut die Analyse mit SLOCCount durchgeführt.

ImmoTool 0.9.x

  • Anzahl der Quelltextzeilen, gruppiert nach Teilprojekten:
    Code: Select all
    SLOC    Directory                        SLOC-by-Language (Sorted)
    84936   OpenEstate-Impl                  java=84795,sh=141
    50591   OpenEstate-Tool-Agency           java=39792,php=10799
    23273   OpenEstate-Tool                  java=23273
    10391   OpenEstate-Tool-Calendar         java=10391
    6406    OpenEstate-Tool-Contacts         java=6406
    4973    OpenEstate-Tool-Agency-Addons    java=4973
    2385    OpenEstate-Tool-Contacts-Addons  java=2385
    35      share                            sh=35

  • Anzahl der Quelltextzeilen, gruppiert nach Programmiersprachen:
    Code: Select all
    java:   172015 (94.00%)
    php:     10799  (5.90%)
    sh:        176  (0.10%)

  • Betriebswirtschaftlicher Aufwand gemäß COCOMO:
    Code: Select all
    Total Physical Source Lines of Code (SLOC)                = 182,990
    Development Effort Estimate, Person-Years (Person-Months) = 47.49 (569.85)
     (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
    Schedule Estimate, Years (Months)                         = 2.32 (27.87)
     (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
    Estimated Average Number of Developers (Effort/Schedule)  = 20.45
    Total Estimated Cost to Develop                           = $ 6,414,907
     (average salary = $56,286/year, overhead = 2.40)

Im Vergleich zu den 153.395 Zeilen aus dem Vorjahr hat sich ImmoTool 0.9.x um ca. 30.000 Zeilen auf 182.990 Zeilen vergrößert.

ImmoTool 1.x

Im 1.x Versionsstrang wurde eine Aufteilung auf mehrere Teilprojekte vorgenommen. Dies macht den Vergleich etwas komplizierter - aber nicht unmöglich...

Teilprojekt 'OpenEstate-Impl'

  • Anzahl der Quelltextzeilen, gruppiert nach Teilprojekten:
    Code: Select all
    SLOC    Directory                        SLOC-by-Language (Sorted)
    29184   OpenEstate-Impl                  java=29184
    25883   OpenEstate-Impl-is24             java=25883
    12541   OpenEstate-Impl-openimmo         java=12541
    10694   OpenEstate-Impl-immoxml          java=10694
    3129    OpenEstate-Impl-Utils            java=3129
    2797    OpenEstate-Impl-immobiliare.it   java=2797
    1348    OpenEstate-Impl-wis.it           java=1348
    1101    OpenEstate-Impl-trovit           java=1101
    592     OpenEstate-Impl-casa.it          java=592

  • Anzahl der Quelltextzeilen, gruppiert nach Programmiersprachen:
    Code: Select all
    java:   87269 (100.00%)

  • Betriebswirtschaftlicher Aufwand gemäß COCOMO:
    Code: Select all
    Total Physical Source Lines of Code (SLOC)                = 87,269
    Development Effort Estimate, Person-Years (Person-Months) = 21.82 (261.89)
     (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
    Schedule Estimate, Years (Months)                         = 1.73 (20.74)
     (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
    Estimated Average Number of Developers (Effort/Schedule)  = 12.63
    Total Estimated Cost to Develop                           = $ 2,948,116
     (average salary = $56,286/year, overhead = 2.40).

Der Unterschied zum Projekt 'OpenEstate-Impl' in ImmoTool 0.9.x ist nur marginal, da beide Bibliotheken derzeit parallel entwickelt und miteinander abgeglichen werden. Auch der Zugewinn aus dem Vorjahr ist mit ca. 9.000 überschaubar. Dies ist darauf zurückzuführen, dass sich an den implementierten Immobilienstandards nichts Wesentliches geändert hat.

Teilprojekt 'OpenEstate-Tool'

  • Anzahl der Quelltextzeilen, gruppiert nach Teilprojekten:
    Code: Select all
    SLOC    Directory                        SLOC-by-Language (Sorted)
    56554   OpenEstate-Tool-Agency           java=45742,php=10812
    39412   OpenEstate-Tool                  java=39112,sh=300
    14828   OpenEstate-Tool-Mail             java=14828
    10860   OpenEstate-Tool-Calendar         java=10860
    7730    OpenEstate-Tool-Contacts         java=7730
    7649    OpenEstate-Tool-Agency-Addons    java=7649
    4380    OpenEstate-Tool-Contacts-Addons  java=4380
    2101    OpenEstate-Tool-News             java=2101
    1011    OpenEstate-Tool-Manual           java=917,php=94
    43      OpenEstate-Tool-I18N-bg          java=43
    43      OpenEstate-Tool-I18N-en          java=43
    43      OpenEstate-Tool-I18N-es          java=43
    11      share                            sh=11

  • Anzahl der Quelltextzeilen, gruppiert nach Programmiersprachen:
    Code: Select all
    java:   133448 (92.25%)
    php:     10906  (7.54%)
    sh:        311  (0.21%)

  • Betriebswirtschaftlicher Aufwand gemäß COCOMO:
    Code: Select all
    Total Physical Source Lines of Code (SLOC)                = 144,665
    Development Effort Estimate, Person-Years (Person-Months) = 37.10 (445.24)
     (Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
    Schedule Estimate, Years (Months)                         = 2.11 (25.37)
     (Basic COCOMO model, Months = 2.5 * (person-months**0.38))
    Estimated Average Number of Developers (Effort/Schedule)  = 17.55
    Total Estimated Cost to Develop                           = $ 5,012,141
     (average salary = $56,286/year, overhead = 2.40).

Im ImmoTool-Framework und dessen Modulen gab es den größten Zugewinn, von vormals 74.964 auf 144.665 Zeilen.

Anmerkungen, Schlussfolgerungen & Interpretationen

Grundsätzlich gelten auch weiterhin die Anmerkungen aus dem ersten Beitrag dieses Themenstranges (siehe oben). Darüber hinaus ist anzumerken:

  • Wir haben die Grenze von 200.000 Zeilen mittlerweile locker übersprungen. 8-)
  • Der Umfang des ImmoTools wächst in einem gesundem Maße, gemessen an den hinzugewonnenen Funktionen.
  • Die Arbeitsabläufe konnten mittlerweile mit Maven so weit optimiert werden, dass wir gut auf die nächsten 200.000 Zeilen vorbereitet sind.

Nebenbei - zum Vergleich finden Sie bei Wikipedia einige Beispiele für Quelltextzeilen von richtig großen Projekten. So komplex wird es mit dem ImmoTool hoffentlich nicht werden. ;)
Mit freundlichem Gruß / Yours sincerely
Andreas Rudolph
User avatar
Andreas Rudolph
 
Posts: 3738
Joined: Tue 16. Feb 2010, 21:48
Location: Berlin, Germany


Return to Ankündigungen

Who is online

Users browsing this forum: No registered users and 2 guests

cron