© Excellent backgrounds/Shutterstock.com
Java Magazin
Softwarequalität: Architekturmodelle und Metriken mit Sonargraph

Jede Software hat eine Architektur!

Jede Software hat eine Architektur, heißt es. Doch wie sieht die Architektur aus, und wie kann sie beschrieben werden? Wie lässt sich die Qualität einer Software beurteilen, und wie kann sichergestellt werden, dass getroffene Architekturentscheidungen auch eingehalten werden? Am konkreten Beispiel der Webapplikation „Softwarekoch“ wird mithilfe des Werkzeugs Sonargraph Quality gezeigt, wie sich die Qualität von Software bewerten lässt.

Arkadius Czarnik, Thorsten Kamann, Niklas Bulitta, Patrick Lehmann


Eine weit verbreitete und allgemein akzeptierte Defini­tion von Softwarearchitektur ist:

„The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components and the relationships among them.“ (Bass, Clements und Kazman 1998)

Jede Software besitzt eine Architektur. Das ist jedoch nicht immer offensichtlich. Jedes vernünftige Softwareprojekt wird in seiner Entwurfsphase versuchen, eine den Anforderungen entsprechende Softwarearchitektur zu definieren. Die Wahl dieser Architektur hat einen entscheidenden Einfluss auf die Qualität der Software, doch was ist der richtige Maßstab, um sie anschließend zu bewerten? Der Grad der Softwarequalität wird davon bestimmt, inwieweit eine Software den an sie gestellten Anforderungen genügt. Man unterscheidet dabei nichtfunktionale und funktionale Anforderungen. Die Erfüllung letzterer wird durch Software-Testing gemessen und soll hier nicht näher betrachtet werden. Die Erfüllung der nichtfunktionalen Anforderungen wird wesentlich durch die gewählte Struktur, also durch die Architektur bestimmt.

Leider ist es mit der einmaligen Festlegung einer geeigneten Architektur vor dem Beginn der eigentlichen Implementierung nicht getan. Denn zum einen können sich die Anforderungen während der Entwicklung verändern und zum anderen tendiert jede Software dazu, im Verlauf ihrer Weiterentwicklung die vorgesehene Struktur zu verlieren („The software starts to rot“, [1]). In der Regel liegt das daran, dass die umsetzenden Entwickler entweder die vorgegebene Architektur nicht kennen oder sie nicht vollständig verstanden haben. In jeden Fall gibt es für Softwareprojekte den Bedarf, Softwarearchitektur initial zu definieren und deren Einhaltung im Laufe der Entwicklung kontinuierlich zu überprüfen. Der Hersteller hello2morrow des kommerziellen Produkts Sonargraph Quality behauptet, für diese Problemstellung die geeignete Lösung anzubieten. Als Nachfolger der Produkte SonarJ und Sotograph vereint es dessen umfangreiche Möglichkeiten zur statischen Codeanalyse. Wir werden in diesem Artikel seine Fähigkeiten genauer beleuchten, doch zuerst möchten wir auf die Grundlagen der Analyse zu sprechen kommen.

Codequalität und Metriken

Ein Entwickler hat sich noch nicht mit Codequalität auseinandergesetzt. Er erhält den Auftrag, ein bestehendes, ihm unbekanntes Softwaresystem zu analysieren. Bei der Recherche nach den üblichen M...

Java Magazin
Softwarequalität: Architekturmodelle und Metriken mit Sonargraph

Jede Software hat eine Architektur!

Jede Software hat eine Architektur, heißt es. Doch wie sieht die Architektur aus, und wie kann sie beschrieben werden? Wie lässt sich die Qualität einer Software beurteilen, und wie kann sichergestellt werden, dass getroffene Architekturentscheidungen auch eingehalten werden? Am konkreten Beispiel der Webapplikation „Softwarekoch“ wird mithilfe des Werkzeugs Sonargraph Quality gezeigt, wie sich die Qualität von Software bewerten lässt.

Arkadius Czarnik, Thorsten Kamann, Niklas Bulitta, Patrick Lehmann


Eine weit verbreitete und allgemein akzeptierte Defini­tion von Softwarearchitektur ist:

„The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components and the relationships among them.“ (Bass, Clements und Kazman 1998)

Jede Software besitzt eine Architektur. Das ist jedoch nicht immer offensichtlich. Jedes vernünftige Softwareprojekt wird in seiner Entwurfsphase versuchen, eine den Anforderungen entsprechende Softwarearchitektur zu definieren. Die Wahl dieser Architektur hat einen entscheidenden Einfluss auf die Qualität der Software, doch was ist der richtige Maßstab, um sie anschließend zu bewerten? Der Grad der Softwarequalität wird davon bestimmt, inwieweit eine Software den an sie gestellten Anforderungen genügt. Man unterscheidet dabei nichtfunktionale und funktionale Anforderungen. Die Erfüllung letzterer wird durch Software-Testing gemessen und soll hier nicht näher betrachtet werden. Die Erfüllung der nichtfunktionalen Anforderungen wird wesentlich durch die gewählte Struktur, also durch die Architektur bestimmt.

Leider ist es mit der einmaligen Festlegung einer geeigneten Architektur vor dem Beginn der eigentlichen Implementierung nicht getan. Denn zum einen können sich die Anforderungen während der Entwicklung verändern und zum anderen tendiert jede Software dazu, im Verlauf ihrer Weiterentwicklung die vorgesehene Struktur zu verlieren („The software starts to rot“, [1]). In der Regel liegt das daran, dass die umsetzenden Entwickler entweder die vorgegebene Architektur nicht kennen oder sie nicht vollständig verstanden haben. In jeden Fall gibt es für Softwareprojekte den Bedarf, Softwarearchitektur initial zu definieren und deren Einhaltung im Laufe der Entwicklung kontinuierlich zu überprüfen. Der Hersteller hello2morrow des kommerziellen Produkts Sonargraph Quality behauptet, für diese Problemstellung die geeignete Lösung anzubieten. Als Nachfolger der Produkte SonarJ und Sotograph vereint es dessen umfangreiche Möglichkeiten zur statischen Codeanalyse. Wir werden in diesem Artikel seine Fähigkeiten genauer beleuchten, doch zuerst möchten wir auf die Grundlagen der Analyse zu sprechen kommen.

Codequalität und Metriken

Ein Entwickler hat sich noch nicht mit Codequalität auseinandergesetzt. Er erhält den Auftrag, ein bestehendes, ihm unbekanntes Softwaresystem zu analysieren. Bei der Recherche nach den üblichen M...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang