Handelskammer Bozen
Wirtschaft = Zukunft

Software-Qualität (Teil 2)

Verschiedene Methoden der Bewertung

Wie wir bereits im vorhergehenden Artikel gesehen haben, sind bei der Bewertung der Qualität einer Software sei es die eigentlichen Produktmerkmale als auch verschiedene Aspekte in Verbindung mit dem Prozess zur Entwicklung der Software zu beachten. Diese Aspekte ergänzen sich untereinander und liefern ein Gesamtbild des Systems. Klarerweise ist eine vollständige und eingehende Untersuchung nicht immer sinnvoll: Vielmehr sollte von Mal zu Mal überlegt werden, welcher Analysegrad angemessen sein könnte. Eine gründliche Analyse ist vor allem dann erforderlich, wenn das System für den Betrieb von großer Bedeutung ist oder über einen längeren Zeitraum angewendet werden soll. Die Qualitätsprüfung erfordert in einem solchen Fall spezifische Kompetenzen, die weit über jene eines Softwareentwicklers oder eines Projektmanagers hinausgehen und eine tiefe Kenntnis der Produktionsprozesse und Bewertungssysteme voraussetzen.

Der Zeitfaktor ist einer der wesentlichen Aspekte, die bei der Bewertung der Qualität eines Systems zu beachten sind. Je länger ein Softwaresystem genutzt werden soll, umso wichtiger ist nämlich die Qualität. Was bei der Bewertung der Qualität einer Software noch zu beachten ist: Ein Softwareprodukt oder -dienst ist kein unabhängig bestehender Gegenstand, sondern von zahlreichen anderen Software- und Hardwaresystemen abhängig, die sich ebenfalls mit der Zeit verändern. Daher ist die Entwicklung eines Softwaresystems nie vollends abgeschlossen, sondern muss ständig an die Veränderungen des Umfeldes angepasst werden. Man denke zum Beispiel an die Upgrades der Betriebssysteme, des Browsers, der Hardware etc. Durch solche Änderungen könnte das entwickelte System nicht mehr anwendbar sein. Daher muss bei der Entwicklung eines Softwaresystems auch dessen Wartung über den gesamten Zeitraum seiner Nutzung mitberücksichtigt werden. Andernfalls wird das System früher oder später unbrauchbar sein. Ein Softwaresystem ist in diesem Sinne mit einem Auto vergleichbar: Ohne regelmäßige Wartung wird das Auto trotz der hohen anfänglichen Investition sehr bald nicht mehr funktionstüchtig sein.

Die Bewertung der Qualität einer Software kann von zwei Standpunkten aus erfolgen:

  • Von einer externen Warte aus: Von dieser Perspektive aus kann untersucht werden, ob das entwickelte System seinen ursprünglichen Zweck und somit die Anforderungen des Kunden erfüllen kann. Diese Bewertung obliegt dem Benutzer des Systems, der als einziger das Verhalten der Software beurteilen kann (in Bezug auf Merkmale, Leistungen, Nutzbarkeit, etc.). Der Begutachter bedarf keiner besonderen Vorkenntnisse in Bezug auf die Softwareentwicklung, muss aber die Anwendungsdomäne kennen. Diese Bewertung ist für jede Art von Software durchzuführen. Wichtig ist dabei, das System nicht nur am Ende, sondern auch während der Projektentwicklung zu testen, damit das Entwicklerteam die entsprechenden Ergebnisse direkt bei der Fertigstellung des Produktes einbauen kann. Wird die Analyse nur am Ende des Projektes vorgenommen, können daraus keine nützlichen Elemente für die Verbesserung der Entwicklung abgeleitet werden;
  • Von einer internen Warte aus: Diese Bewertung betrifft rein informatische Aspekte, wie zum Beispiel den Aufbau der Software, die Entwicklung der Algorithmen, den Kode, etc. In diesem Fall wird geprüft, wie das System entwickelt wurde und ob es auch in Zukunft mühelos geändert und ausgebaut werden kann. Diese Bewertung obliegt sicherlich einem Fachmann und kann nur durchgeführt werden, wenn je nach gewünschtem Analysegrad verschiedene Unterlagen des Entwicklerteams zur Verfügung stehen (Beschreibung der Anforderungen, Analyse- und Aufbaudokumente, etc.) Auf jeden Fall bedarf es des Zugangs zum Quellcode, um überhaupt eine Analyse durchführen zu können. Auch in diesem Fall gilt: Eine Analyse am Ende des Projektes ist sicher nützlich, um die Qualitätsstufe des Endproduktes zu kennen. Besteht aber die Möglichkeit, auch während der Entwicklung Analysen durchzuführen, kann das Team das Produkt noch in der Entstehungsphase verbessern.

Die Qualitätsanalyse der Softwareprozesse kann zu unterschiedlichen Zeitpunkten und zu verschiedenen Zwecken durchgeführt werden:

  • Analyse in der Projektphase: In diesem Fall besteht das Ziel der Analyse darin, die Methodik der Entwicklung eines spezifischen Produktes/Dienstes und die Angemessenheit derselben in Hinblick auf die spezifische Umgebung zu prüfen. Dabei wird auch untersucht, wie die gewählte Methodik auf das Projekt angewandt und vom Team gemanagt wird. Die Prüfung erfolgt durch einen Experten in enger Zusammenarbeit mit dem Team, da die angewandte Entwicklungsmethodik sehr detailliert beleuchtet werden muss. Diese Tätigkeit kann sehr invasiv und sei es für den Begutachter als auch für das Entwicklerteam sehr zeitaufwändig sein. Allerdings ermöglichen die Ergebnisse dieser Prüfung ein besseres Verständnis der eingesetzten Entwicklungsmethodik und bewirken daher ein größeres Vertrauen des Kunden in das Team;
  • Analyse der Fähigkeiten eines Teams: Bewertet wird hierbei die Fähigkeit eines Entwicklerteams, unabhängig vom spezifischen Projekt Softwaresysteme zu entwickeln. Geprüft werden das Wissensmanagement innerhalb des Teams, der Umgang mit dem Kode und den Schwachstellen etc. Zudem wird die qualitative Verwaltung des Kodes beleuchtet und wie diese Informationen innerhalb des Entwicklerteams verwendet werden. Auch diese Prüfung wird von einem Experten in enger Zusammenarbeit mit dem Team durchgeführt. Diese Art von Begutachtung ist durchaus komplexer, da sie eine eingehende Analyse der vom Team angewandten Betriebs- und Entwicklungsprozesse erfordert. Außerdem ist dazu nicht nur die Zusammenarbeit des Entwicklerteams, sondern auch des Managements notwendig, um die mit der Softwareentwicklung verbundenen Tätigkeiten (z.B. die Verwaltung der Systemwartung) besser zu verstehen.

Solche Analysen können für die Bewertung verschiedener Aspekte eines Softwaresystems eingesetzt werden und in zahlreichen Situationen nützlich sein. Sie sind vor allem dann gefragt, wenn die Entwicklung eines Systems nicht von einer Softwarefirma in Auftrag gegeben wird.

In einer solchen Situation können wie bereits erwähnt je nach Bedeutung des Systems und vorgesehener Nutzungszeit verschiedene Analysen durchgeführt werden.

Auf jeden Fall ist immer eine Analyse der externen Qualität des Systems erforderlich; dazu bedarf es keiner informatischen Kenntnisse, da das System vom Standpunkt des Benutzers aus bewertet werden muss. Diese Bewertung sollte allerdings immer mehrmals während der Entwicklung durchgeführt werden (auch unter Berücksichtigung der spezifisch angewandten Methodik), um dem Team frühzeitig nützliche Elemente für die Systemverbesserung zu liefern und somit aufwändige Eingriffe mit entsprechenden Verzögerungen in der Lieferung sowie Zusatzkosten zu vermeiden. Eine Bewertung sollte zumindest drei Analysen vorsehen: eine in der ersten Entwicklungsphase, sobald die ersten Funktionen zur Verfügung stehen, um eventuelle Missverständnisse sofort zu klären; eine weitere im mittleren Entwicklungsstadium, um den Fortschritt und die Umsetzung der Empfehlungen nach der ersten Analyse zu prüfen; und schließlich zu Projektschluss, um eine Gesamtbewertung des Systems vorzunehmen.

Weitere Analysen sind zwar nicht unbedingt erforderlich, liefern aber zusätzliche Informationen über die Qualität des entwickelten Systems. Der nächste Schritt ist die Analyse der internen Qualität des Kodes durch einen Experten, um den Aufbau des Kodes und die Möglichkeit späterer Wartungen zu beurteilen. Dabei handelt es sich um einen sehr wichtigen Aspekt: Der Kode kann nämlich sehr unterschiedlich geschrieben sein, auch wenn dies für den Anwender selbst nicht erkennbar ist, da Funktionen und Leistungen gleich bleiben. Der Kodeaufbau hat jedoch einen sehr großen Einfluss auf die Wartungsmöglichkeit und das Bestehen eventueller Mängel. Daher ist diese Bewertung unumgänglich, wenn das System für längere Zeit benutzt werden soll und wahrscheinlich mittelfristig angepasst werden muss. Da für die Bewertung dieser Aspekte ein Zugang zum Kode und die entsprechenden technischen Unterlagen des Entwicklerteams erforderlich sind, müssen diese Überprüfungen vertraglich geregelt werden.

Ein weiterer Schritt in der Bewertung ist die Analyse des Entwicklungsprozesses; diese ist besonders dann zu empfehlen, wenn das System für einen langen Zeitraum verwendet werden soll und eine langfristige Zusammenarbeit mit dem Hersteller der Software ins Auge gefasst wird. Der Betrieb kann so überprüfen, ob der Entwicklungsprozess langfristig den Anforderungen des Betriebes entspricht.

Der letzte Schritt ist schließlich die Bewertung der Fähigkeiten des Teams; diese ist nur dann erforderlich, wenn eine dauerhafte Zusammenarbeit mit einem Softwarehersteller für die Entwicklung verschiedener Projekte mit langen Anwendungszeiten in Erwägung gezogen wird.

Fassen wir die vier Stufen in der qualitativen Bewertung eines Softwaresystems nochmals kurz zusammen:

  1. Analyse der externen Qualität: ist immer nützlich und kann leicht vom Auftraggeber auch ohne spezifische informatische Kompetenzen vorgenommen werden.
  2. Analyse der internen Qualität: ist vor allem bei kritischen Systemen oder sehr langer Anwendung zu empfehlen; muss von einem Experten durchgeführt werden.
  3. Analyse eines spezifischen Projektes: ist vor allem bei kritischen Systemen und/oder sehr langer Anwendung angebracht; muss von einem Experten durchgeführt werden und erfordert die Zusammenarbeit mit dem Entwicklerteam.
  4. Analyse der Fähigkeiten eines Teams: ist immer dann nützlich, wenn ein einziger Lieferant für die Entwicklung verschiedener kritischer und/oder lang dauernder Systeme in Betracht gezogen wird; muss von einem Experten durchgeführt werden und erfordert die Zusammenarbeit mit der Herstellerfirma.

zur Person

Alberto Sillitti berät wichtige Südtiroler Unternehmen als Innovation Manager und Experte für Entwicklung und Bewertung der Softwarequalität. Er ist zudem Professor an der Fakultät für Informatik und Ingenieurwesen der Innopolis University (Russische Föderation), wo er auch Forschung im Bereich der Softwarequalität in komplexen Softwaresystemen (Cyber-physical systems, Smart city, Industry 4.0, etc.) in Zusammenarbeit mit verschiedenen internationalen Industrien, KMU und Start-ups betreibt.

Waren diese Informationen hilfreich?
Noch keine Bewertungen vorhanden

Kontakt

Digitales Unternehmen - PID

0471 945 691 - 692