29.10.2013 Aufrufe

Schriftliche Ausarbeitung - Alexander Willner | Masterarbeit

Schriftliche Ausarbeitung - Alexander Willner | Masterarbeit

Schriftliche Ausarbeitung - Alexander Willner | Masterarbeit

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

5. Implementierung und Test<br />

von möglichen Deadlocks. Des Weiteren beinhaltet das Programm Analysen für Abhängigkeiten<br />

von Threads innerhalb einer Applikation.<br />

PMD. Die Funktionsweise von PMD 5 entspricht grundsätzlich der von FindBugs und<br />

JLint, jedoch ohne Datenflussanalyse. PMD untersucht den Quelltext aber zusätzlich nach<br />

Kodierungsrichtlinien, die ebenfalls eine fehlerhafte, oder aber zumindest eine unsaubere<br />

Programmierung vermuten lassen.<br />

Lint4J. Auch Lint4J 6 untersucht den Quelltext und Bytecode nach Problemen bzgl. der<br />

Performance, Skalierbarkeit und Threadsicherheit, analysiert den Datenfluss und erstellt<br />

Blockierungsgraphen. Die durchgeführten Analysen basieren laut Aussagen des Herstellers<br />

auf Erfahrungswerten, die während der Implementierung von Performance- und sicherheitskritischen<br />

Anwendungen gewonnen wurden.<br />

Neben diesen Programmen existieren weitere Überprüfungssysteme wie z.B. Bandera 7 [62]<br />

und ESC/Java 8 [63], welche jedoch deutlich weitergehende Ansätze verfolgen. Diese basieren<br />

auf Beweisen von zuvor bestimmten, formalen Vor- und Nachbedingungen (vgl.<br />

[64, 65]) und Verifikation von Zustandsmodellen. Aufgrund der hohen Komplexität und<br />

des wissenschaftlichen Schwerpunkts dieser Möglichkeiten wurde von deren Nutzung im<br />

Rahmen dieser Arbeit abgesehen.<br />

5.2.3. Bewertung<br />

Der Einsatz statischer, automatisierter Analyseverfahren hat deutlich zur Lesbarkeit und<br />

Qualität der geschriebenen Quelltexte beigetragen. Insbesondere die Integration in die Entwicklungsumgebung<br />

erleichterte den Umgang wesentlich und Hinweise konnten sofort<br />

umgesetzt werden. Diese Hinweise waren aufgrund der hohen Zahl an formalisierten Erfahrungen<br />

zu weit verbreiteten und häufig gemachten Fehlern sehr zahlreich und führten<br />

zu einem ständigen Lernprozess während der Entwicklung. So wurden insbesondere<br />

robustere und effizientere Lösungen implementiert, deren Funktionsweise im Anschluss<br />

durch dynamische Testfälle überprüft werden konnten.<br />

Es liegt jedoch in der Natur der Sache, dass nicht alle Meldungen zu Quelltextabschnitten<br />

auf existierende Probleme oder Fehler hinweisen. Je nach Kontext sind verschiedene,<br />

gleichwertige Lösungsansätze möglich und Falschmeldungen sind nicht gänzlich zu vermeiden.<br />

5 http://pmd.sourceforge.net<br />

6 http://www.jutils.com<br />

7 http://bandera.projects.cis.ksu.edu<br />

8 http://secure.ucd.ie/products/opensource/ESCJava<br />

54

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!