XITASO Tech Talk: Softwarequalität

Softwarequalität – was ist damit gemeint? Welche Qualitätsmerkmale einer Software gibt es und wie gehe ich als Entwickler damit um? Über dieses Thema, das zuvor während des Stammtischs der XITASO Software Architecture Interest Group aufkam, sprach Christian Heinrich bei seinem letzten Tech Talk.

Christian Heinrich
christian.heinrich@xitaso.com

Product Owner seit 2017, zuvor Senior Software-Entwickler im Bereich „Technische Software“

Bevor Christian 2014 zum XITASO Team dazukam, war er über 7 Jahre bei impeo als Softwareentwickler tätig. Er teilt sein Wissen häufiger beim XITASO Tech Talk.

Die Qualitäten einer Software entsprechen deren Eigenschaften wie Sicherheit, Effizienz, Zuverlässigkeit, Kompatibilität oder Änderbarkeit (um nur einige zu nennen), wobei uns Christian zunächst die Qualitätsmerkmale im Modell FURPS und als ISO-Standard (ISO 25010) vorgestellt hat. Während die funktionalen Anforderungen einer Software sehr leicht zu greifen und in den User Stories festgehalten sind, ist dies bei den nicht-funktionalen Anforderungen nur sehr schwer möglich. Diese sind nämlich meistens nur abstrakt und unspezifisch beschrieben, beeinflussen sich gegenseitig und stehen mitunter im Widerspruch zueinander. Je nach Projekt unterscheiden sie sich zudem in ihrer Gewichtung. Zusätzlich gelten die meisten nicht-funktionalen Anforderungen einer Software für alle User Stories. Zu Beginn eines jeden Softwareprojekts sollte man daher so viele nicht-funktionale Anforderungen wie möglich sowie deren Gewichtung kennen. Dabei geht es im Vergleich zu einem Lasten- und Pflichtenheft nicht darum, die gesamte Software im Vorhinein bis ins kleinste Detail zu beschreiben. Ziel ist es, die grundlegenden Bausteine der Software zu spezifizieren, damit die Softwarearchitektur von Beginn an dementsprechend gestaltet werden kann.

Um nun die meist sehr unkonkret gehaltenen, nicht-funktionalen Anforderungen greif- und messbar zu machen, können Qualitätsszenarien dabei helfen, bestimmte Qualitätsmerkmale sichtbar zu machen. So wird aus einer unkonkreten Aussage wie „Performance ist superwichtig“ eine greifbarere Anforderung: „Wenn der Benutzer unter maximaler Programmauslastung auf den ‚Berechnen‘-Button drückt, soll das Programm innerhalb von höchstens einer Sekunde reagieren und das Ergebnis auf der Benutzeroberfläche darstellen.“ Auf diese Weise lassen sich nahezu alle nicht-funktionalen Anforderungen spezifizieren. Das Merkmal „Zuverlässigkeit“ kann beispielsweise durch folgende Formulierung präzisiert werden: „Das System wird unter keinen Umständen die von Benutzern hochgeladenen Fotos modifizieren oder beschädigen.“[1]. Mit Hilfe der Qualitätsszenarien kann so eine grobe Struktur geschaffen werden, die die Gewichtung der einzelnen Qualitätsanforderungen widerspiegelt und somit vorab die Grundkomponenten der Software festgelegt werden können. Um gleichzeitig auf geänderte Qualitätsanforderungen jederzeit eingehen zu können, setzt XITASO auf die Vorteile der agilen Entwicklung. In diesem Zusammenhang hat Christian Heinrich das Qualitätsmerkmal der Änderbarkeit als „Mutter aller nicht-funktionalen Anforderungen“ bezeichnet. Denn je änderbarer eine Architektur aufgebaut ist, umso leichter wird es in späteren Entwicklungsschritten fallen, neue Anforderungen in der Softwareentwicklung umzusetzen.

[1] https://www.innoq.com/de/articles/2012/04/quality-driven-software-architecture/

Take home message:

Christian Heinrich hat in seinem Tech Talk die Mitarbeiter von XITASO noch einmal besonders für das Thema der Softwarequalität sensibilisiert. Softwareentwickler und Product Owner müssen sich nicht nur über die funktionalen Anforderungen des Produkts Gedanken machen, sondern auch über dessen nicht-funktionale Anforderungen. Um diese greifbarer zu machen, können unsere Entwickler Qualitätsszenarien verwenden, um die Software anhand der Beschreibung und Gewichtung der einzelnen Qualitätsmerkmale auszurichten.