Herunterladen

Neuerscheinung: GnuCash 2.4 Small Business Accounting, Autor: Ashok Ramachandran

GnuCash 2.4 small business accounting

Das GnuCash Entwicklungsteam hat eine Notiz erhalten, dass (leider nur in englisch) ein neues Buch erschienen ist bei PacktPub, GB:

GnuCash 2.4 Small Business Accounting, Autor: Ashok Ramachandran.

Dies ist ein Leitfaden für Anfänger, der hilft Ihre Konten zu verwalten.

Einer unserer Entwickler, Christian Stimming, hat bei diesem Buch als Lektor mitgewirkt und wir freuen uns über diese fruchtbare Zusammenarbeit. Sie können einen kleinen Auszug aus diesem Buch anlesen unter packtpub.com. Der Autor hat zugesagt einen kleinen Prozentsatz des Erlöses aus diesem Buch dem GnuCash Projekt zufließen zu lassen.

Programmgröße

Es kann bisweilen recht interessant sein, die Größe des Quelltext hinter einem Softwareprojekt zu untersuchen. Es mag nicht überraschen, daß es sich immer noch um Buchhaltung handelt. Aber GnuCash ist über die Jahre von einem handlichen elektronischen Scheckbuch zu einer ziemlich großen Buchhaltungsanwendung mit vielen Merkmalen gewachsen.

GnuCash besteht inzwischen aus über einer Drittelmillion Zeilen Anweisungen verteilt über mehr als tausend Dateien. Es wurde in 36 Sprachen übersetzt und über 200 Menschen haben Beiträge geleistet.

[code size graph]

Falls Sie Schwierigkeiten haben, durch diese Menge Quelltext zu schwimmen, stellen Sie sich bitte folgendes vor: Ausgedruckt und gebunden wären es mehrere Dutzend Exemplare von Tolstois "Krieg und Frieden", ungefähr ein Bücherregal breit, voll mit Quelltext.

Mind you, this is source code (and docs) crafted and debugged by actual humans, this is *not* autogenerated code. Tools (such as glade or swig) can generate gazillions of lines of code automatically; I'm not counting those. Every last line counted here was typed in, edited, indented, tweaked, multiple times, by human hands.

Angenommen, wir haben ca. 400 offene Fehlermeldungen in Bugzilla, dann ergibt das etwa einen Fehler pro tausend Zeilen Code oder einen Fehler pro 50 Seiten eines Ausdrucks. Diese Fehlerzahl ist nicht untypisch für Software-Projekte; sie ist nah an der Norm.

Die folgende Tabelle zeigt einige historische Maße für Quelltextzeilen und Dateienzahl für das GnuCash-Projekt. Man beachte, daß nicht alle Zeilen gezählt wurden: z.B. die Makefiles, configure.in und autogen.sh wurden nicht mitgezählt. Ebenso wurden weder Dateien mitgezählt, die automatisch erzeugt wurden, noch Dateien, die von anderen Projekten "ausgeliehen" wurden. Ebenfalls nicht gezählt wurden experimentelle Dateien, verschiedene Perl-Skripte, diverse Konverter, Add-Ons und Utilities. Schließlich wurden glade-Dateien nicht gezählt, obwohl weite Teile der graphischen Oberfläche in glade-Dateien definiert wurden.

Beachten Sie auch, daß weder KLOC's (1000 Zeilen Quelltext) ein gutes Maß sind, um die Produktivität von Programmierern zu bestimmen, noch .wc eine gute Methode ist, um KLOC's zu messen. Viel bessere Maße sind Komplexitätsmaße, welche beispielsweise die Anzahl und Größe von if-then-else-Blöcken, die Anzahl und Größe aller Blöcke, oder die Anzahl der mathematischen Operatoren pro Anweisungszeile. Möglicherweise werden wir eines Tages eine derartiges Werkzeug auf den Quelltext anwenden. Zur Zeit ist dies aber, was wir zur Verfügung haben - andererseits haben wir versucht, nur die Dateien mit tatsächlich direkt von Menschen editiertem Code zu zählen.

Tabelle 1: Historische Entwicklungsstatistik

Version engine backend register ledger motif gnome verschiedene Aplikationen import-export reports scheme business test docs internal txt Summe Sprachen genannte Autoren
xacc-0.9 Sept 97 - - - - 34 files (7.5+0.9) - - - - - - - 5 files (0.4) 1 file (0.1) 40 files (8.8) 1 1
xacc-0.9w Dec 97 - - - - 51 files (13.8+1.5) - - - - - - - 9 files (0.8) 1 file (0.1) 61 files (16.2) 1 2
xacc-1.0.17 Feb 98 - - - - 52 files (14.8+1.8) - - - - - - - 12 files (1.4) 4 files (0.3) 68 files (18.3) 1 7
gnucash-1.1.15 Aug 98 24 files (6.2+1.5) - 31 files (6.1+1.7) 5 files (1.4+0.4) 30 files (7.4+0.7) 17 files (3.4+0.5) - - - 3 files (0.3) - - 16 files (1.9) 17 files (1.8) 159 files (34.7) 1 (0.17) 25
gnucash-1.2.2 Aug 99 41 files (10.2+3.6) - 28 files (5.5+1.7) 14 files (2.4+0.6) 26 files (8.7+0.5) - - - - 14 files (1.4) - - 30 files (2.6) 15 files (1.8) 168 files (39.0) 3 (0.54) 41
gnucash-1.3.6 April 2000 41 files (12.9+4.0) - 32 files (6.8+2.1) 19 files (4.0+0.8) - 78 files (32.2+3.0) - - - 74 files (4.0+0.7+12.3) - - 33 files (7.8) 25 files (4.5) 302 files (95.1) 5 (4.3) 61
gnucash-1.4.6 Sept 2000 43 files (13.0+3.6) - 27 files (5.9+2.0) 24 files (5.4+1.8) - 82 files (33.8+3.0) - - - 68 files (4.0+0.7+15.5) - - 36 files (9.3) 36 files (4.8) 316 files (101.9) 7 (6.0) 82
gnucash-1.4.12 April 2001 43 files (13.1+3.6) - 27 files (5.9+2.0) 24 files (5.4+1.8) - 82 files (33.5+3.0) - - - 73 files (4.0+0.7+17.7) - - 43 files (11.5) 39 files (6.0) 331 files (108.2) 12 (17.8) 97
gnucash-1.5.2 Sept 2000 46 files (14.9+3.7) - 29 files (6.3+2.0) 25 files (5.7+1.8) - 83 files (35.8+2.9) - - - 73 files (4.6+0.8+16.8) - - 37 files (10.7) 48 files (8.2) 341 files (114.2) 8 (7.8) 89
gnucash-1.6.0 June 2001 139 files (42.8+8.3) - 28 files (5.7+2.0) 23 files (10.1+1.5) - 132 files (60.0+4.2) - - - 102 files (6.2+0.8+27.3) - - 64 files (12.1) 69 files (12.9) 455 files (193.9) 11 (18.7) 123
gnucash-1.7.2 November 2002 104 files (28.7+7.8+3.3) 89 files (30.0+3.3) 34 files (5.2+2.0)
29 files (10.5+1.2)
17 files (9.4+0.7) - 143 files (56.0+4.7+0.9) 75 files (17.0+2.5+5.1) 78 files (11.1+1.5+7.3) 38 files (2.4+0.1+14.2) 17 files (3.4) 94 files (19.9+1.9+4.5) 72 files (7.9+0.1+0.7) 83 files (22.2) 62 files (11.6) 935 files (297.1) 21 (56.1) 130
gnucash-1.8.4 June 2003 100 files (29.7+8.3+3.4) 89 files (30.1+3.3) 35 files (5.3+2.0)
31 files (10.7+1.2)
17 files (10.2+0.8) - 151 files (58.7+5.1+1.1) 71 files (16.9+2.6+5.2) 86 files (13.3+1.8+7.5) 52 files (2.4+0.2+15.1) 17 files (4.1) 98 files (21.5+2.0+5.1) 76 files (8.6+0.2+0.7) 24 files (13.8)
199 files (80.3)
69 files (14.3) 1115 files (385.5) 23 (62.4) 139

Jede Zelle enthält folgendes:

Anzahl von *.c-, *.h- und *.scm-Dateien (KLOCS in *.c + KLOCS in *.h + KLOCS in *.scm). Wenn keine *.scm-Dateien in dem Verzeichnis sind, werden nur (KLOCS in *.c + KLOCS in *.h) angezeigt. Wenn nur eine Zahl in den Klammern ist, handelt es sich um die zugehörige KLOC-Zahl für die Statistik.

wobei KLOC == kilo-lines-of-code (1000 Zeilen Code), wie von wc berichtet. Wie zuvor bemerkt, ist wc kein besonders gutes Codemaß, aber es ist das, welches wir griffbereit haben.

Legende der Tabellenspalten



engine
Inhalt von src/engine und Unterverzeichnisse. Die Maschine wurde in Version 1.1 aus dem Motif-Code ausgegliedert. Das Datenspeicher-Modul (file-io, sql) wurde im Verlauf von Version 1.5 abgetrennt.

backend
Inhalt des src/backend Verzeichnisses (Version 1.7 und später) oder von src/engine/file, src/engine/sql (Version 1.6 und früher)

register
Inhalt von src/register directory (Version 1.6 und früher) oder src/register/register-core (Version 1.7 und später). Das Register wurde als separates Modul aus dem Motif-Code in Version 1.1 herausgelöst. Wie man in der Statistik sieht, hat sich das Register als ziemlich stabil erwiesen. Ab Version 1.7 zeigt die Zelle einen 2. Eintrag: die Anzahl der Codezeilen in src/register/register-gnome, welches zuvor als Teil von Gnome gezählt wurde.

ledger
*.c, *.h files im src Verzeichnis allein (Version 1.6 und früher) or src/register/ledger-core (version 1.7 und später)

motif
Inhalt des src/motif Verzeichnisses (Version 1.2 und früher). Die Motif-Version des Codes wurde nach Version 1.2 aufgegeben, nachdem der größte Teil des nicht die Oberfläche betreffenden Codes verschoben war, enweder in die Engine, das Register oder nach Ledger.

gnome
Inhalt von src/gnome plus src/register/gnome (Version 1.6 und früher). Für Version 1.7 und später, besteht dies aus src/gnome, src/gnome-search und src/gnome-util

verschiedene Aplikationen
Inhalt von verschiedenen anwendungsbezogenenen Verzeichnissen (Ab Version 1.7): src/app-file, src/app-utils, src/calculation, src/core-utils, src/gnc-module, src/network-utils, src/tax/us

import-export
Code, um verschiedene Dateiformate zu im- und exportieren: Inhalt des src/import-export Verzeichnisses.

reports
Code zur Erzeugung von Berichten und Graphiken: Inhalt des src/reports Verzeichnisses.

scheme
Scheme- und Guile-Code in den Verzeichnissen src/scm plus src/guile (bis Version 1.6). Ab Version 1.7 wanderte viel von diesem Code nach reports, import/export und in individuelle Module; so daß nur vermischter Code übrig blieb.

business
Code des Geschäftsmoduls in src/business.

test
Code, um automatisierte Regressionstests durchzuführen: Inhalt des src/*/test Verzeichnisses.

docs
Englischsprachige Benutzerdokumentation einschließlich Online-Hilfe und Handbuch in HTML, SGML und/oder XML. Ab Version 1.8.4 enthält die Zahl unter dem Strich die übersetzten, nicht englischen Dokumente (de, es, fr, pt ...) Diese beiden Zahlen sind etwas schwierig zu bestimmen, wegen der Durchmischung mit Format-Anweisungen und teilweise mehreren konkurrierenden Versionen.

internal txt
Die Anzahl der Design-Dokumente und Readme-Dateien, welche zur Unterstützung der Entwickler gedacht sind. Dies schließt *.txt-, *.texinfo- und README.*-Dateien in allen Unterverzeichnissen ein. Ab Version 1.7 werden nur jene im src-Verzeichnis gezählt, wodurch etliche zerstreute ausgelassen werden.

Sprachen
Die Anzahl der Sprachen, in welche die Meldungen des Programms übersetzt wurden, also die Anzahl der po/*.po-Dateien. In Klammern die Anzahl der Meldungen in den Übersetzungsdateien (grep msgstr po/*.po |wc), in Tausend.

genannte Autoren
Die Anzahl der Personen, welche in der Autoren-Datei AUTHORS (ab Version 1.6) oder davor in der Liesmich-Datei README genannt werden. Diese schließt führende Entwickler, Einsenderinnen von Verbesserungen und die jeweiligen Übersetzer ebenso ein wie zusätzlich in gnucash-docs/AUTHORS genannte Personen, die nicht bereits in gnucash/AUTHORS genannt sind.

Valid XHTML + RDFa

Copyright © 2001-2014 The GnuCash Project

Anfragen zu Server-Problemem an: gnucash-devel@gnucash.org

Übersetzungsprobleme? Kontaktiere: gnucash-devel@gnucash.org