Softwarequalität PDF - Managementprozesse, Vorgehensmodelle

Summary

Dieses Dokument behandelt organisatorische Qualitätsmaßnahmen in der Softwareentwicklung und stellt Managementprozesse und Vorgehensmodelle detailliert dar. Es wird auf die Bedeutung von Softwarequalität eingegangen und verschiedene Strategien und Vorgehensweisen zur Verbesserung der Qualität vorgestellt.

Full Transcript

Softwarequalität ······························································································ 2 Organisatorische Qualitätsmaßnahmen Lernziele des Kapitels: In diesem Kapitel beleuchten wir die erste der drei Säulen der Softwarequalität: organisatorische Qualitätsmaßnahmen. (Ko...

Softwarequalität ······························································································ 2 Organisatorische Qualitätsmaßnahmen Lernziele des Kapitels: In diesem Kapitel beleuchten wir die erste der drei Säulen der Softwarequalität: organisatorische Qualitätsmaßnahmen. (Konstruktive sowie analytische Maß- nahmen werden wir in den Folgekapiteln im Detail kennenlernen). Es handelt also von dem unterstützenden Rahmen, der um ein Projekt oder um ein Unter- nehmen aufgebaut wird, damit es qualitativ hochwertigen Output erzielen kann. Nach dem Studium dieses Abschnittes entwickeln die Leserinnen und Leser ein Verständnis für:  Vorgehensmodelle, insbesondere das V-Modell als Beispiel  Reifegradmodelle wie CMM, CMMI oder SPICE  Software-Infrastruktur zur Unterstützung der Softwarequalität wie zum Beispiel Systeme für das Defektmanagement Um Softwarequalität zu fördern und sicherzustellen, sind nicht nur technische Maß- nahmen von Bedeutung, sondern auch organisatorische Qualitätsmaßnahmen, die tief in den Abläufen und dem Setup von Projekten sowie der Struktur der Firma verankert sind. Diese Maßnahmen bilden das Fundament, auf dem hochwertige Softwareprodukte entwickelt werden können. Sie umfassen die Gestaltung effekti- ver Arbeitsprozesse, die Etablierung klarer Kommunikationskanäle, das Bereitstel- len von notwendiger Infrastruktur sowie die Schaffung einer Unternehmenskultur, die Qualität in den Mittelpunkt stellt. Es geht also in erster Linie um die Steigerung der Prozessqualität. Dabei können wir zwei Perspektiven einnehmen. Zum einen ist die Geschäftsleitung selbstverständlich an geregelten Abläufen interessiert. Die entsprechenden Maß- nahmen entfallen auf die Kategorie der „Managementprozesse“. Zum anderen be- nötigen die Entwicklerinnen eine geeignete „Software-Infrastruktur“, um ihre Ar- beit optimal verrichten zu können, um also eine gewisse Qualität zu erzielen (vgl. Systematisierung in Abbildung 5). Im Folgenden nehmen wir beide Perspektiven jeweils ein. Jedoch wird die Kürze der Darstellung der Komplexität des Themas nicht gerecht. Ganze Bücher lassen ······················································································································ 38 Softwarequalität ······························································································ sich zu organisatorischen Maßnahmen füllen. Es sei also darauf hingewiesen, dass es sich um eine Einführung handelt. (Der Fokus des Skriptums liegt eher auf den konstruktiven sowie analytischen Qualitätsmaßnahmen, welche allerdings aus zeit- lichen Gründen ebenfalls nicht bis ins äußerste Detail ausgeleuchtet werden.) 2.1 Managementprozesse Managementprozesse behandeln die Vielfalt an Strategien und Prozeduren, die notwendig sind, um die strukturierte Umsetzung eines Software-Projekts in einem Unternehmen zu ermöglichen. Wenn ein spezifischer Arbeitsablauf vorliegt, der sich in ähnlicher Weise regelmäßig wiederfindet, definieren wir dies als einen „Pro- zess“. Ein Prozess wird formell durch eine Sequenz von Schritten beschrieben, die systematisch von einem Satz von Eingabedaten zu einem Satz von Ergebnissen füh- ren (vgl. Abbildung 6). Die Ausführung jeder einzelnen Handlung verlangt nach ver- schiedenen Ressourcen, die in drei Hauptkategorien gegliedert werden können: Die erste Kategorie beinhaltet alle produktbezogenen Ressourcen wie Code und Pla- nungsdokumente. Die zweite Kategorie bezieht sich auf die Software- und Hard- ware-Infrastruktur, während die dritte Kategorie das verfügbare Personal umfasst (Hoffmann, 2013, S. 491). Abbildung 6: Schematische Darstellung eines „Arbeitsprozesses“, i. A. a. Hoffmann (2013, S. 492) Eingangsgrößen werden in einer Abfolge von Aktivitäten unter Verwendung von Ressourcen in Ausgangsgrößen umgewandelt. Bestrebungen, die Abfolge der Akti- vitäten zu regeln werden als „Vorgehensmodelle“ bezeichnet. Andere Manage- mentmaßnahmen zielen auf Qualitätsverbesserungen ab, indem sie die Prozesse eines Unternehmens analysieren und bewerten (siehe Reifegradmodelle in Ab- schnitt 2.3). ······················································································································ 39 Softwarequalität ······························································································ 2.2 Vorgehensmodelle In der Softwareentwicklung ist ein Vorgehensmodell das strategische Rahmenwerk, das die Schritte zur Erzielung der Endprodukte eines Prozesses festlegt, wodurch es zum unentbehrlichen Herzstück des Projektmanagements avanciert. Es sorgt für eine strukturierte Aufteilung des Projektfortschritts in sequenzielle, klar definierte Phasen, was zu einer erhöhten Transparenz und Handhabbarkeit des Projekts führt und gleichzeitig die Gesamtkomplexität deutlich abmildert. Mit den Jahren sind un- terschiedliche standardisierte Vorgehensmodelle entstanden, die in ihren konzep- tionellen Ansätzen und Methodiken signifikant divergieren und die Vielfalt der Soft- wareentwicklung widerspiegeln. Diese Modelle sind jedoch nicht immer direkt auf die Organisationsstrukturen eines Unternehmens übertragbar. In der realen Welt der Softwareentwicklung müssen die idealisierten Prozesse, wie sie in Vorgehens- modellen beschrieben werden, an die spezifischen, oft einzigartigen Bedingungen des Unternehmens und des Projektes angeglichen werden. Diese Individualisierung ist entscheidend, denn sie berücksichtigt die individuellen Herausforderungen und Ressourcen, mit denen Softwareentwicklungsteams konfrontiert sind. Folglich sind die in der Fachliteratur beschriebenen Vorgehensmodelle in ihrer puren Form nur selten in der beruflichen Praxis vorzufinden, sondern dienen vielmehr als Ausgangs- punkt für maßgeschneiderte Entwicklungsprozesse, die den Weg zu qualitativ hoch- wertiger Software ebnen (Hoffmann, 2013, S.491). In der ersten Einheit dieser Lehrveranstaltung haben wir gleich zu Anfang das soge- nannte „Wasserfallmodell“ kennengelernt – einem absoluten Klassiker unter den Vorgehensmodellen. In der Softwareentwicklung gibt es eine Reihe weiterer etab- lierter Vorgehensmodelle, die jeweils unterschiedliche Methoden und Praktiken für die Planung, Entwicklung und Auslieferung von Softwareprodukten anbieten. Ne- ben dem traditionellen Wasserfallmodell, das einen linearen und sequenziellen An- satz verfolgt, gibt es agile Methoden wie Scrum und Kanban, die Flexibilität und schnelle Anpassung an Kundenbedürfnisse betonen. Iterative Modelle wie das Spi- ralmodell ermöglichen es, Entwicklungsrisiken schrittweise zu minimieren, wäh- rend Ansätze wie Extreme Programming (XP) auf enge Kundenbindung und hohe Anpassungsfähigkeit setzen. Aufgrund seiner Komplexität und des spezifischen Fokus auf Qualitätssicherung wird in diesem Skript das sogenannte V-Modell exemplarisch vertieft behandelt. Andere Modelle werden in diesem Rahmen nicht weiter ausgeführt, aber das ······················································································································ 40 Softwarequalität ······························································································ ausgewählte V-Modell dient dazu, den Studierenden zu veranschaulichen, wie in- tegrierte Qualitätssicherungsmaßnahmen den Softwareentwicklungsprozess stär- ken und die Endproduktqualität erhöhen können. 2.2.1 Das V-Modell Das V-Modell, das eine Weiterentwicklung des Wasserfallmodells darstellt, inte- griert Qualitätssicherung in jeder Phase des Softwareentwicklungsprozesses und zeichnet sich durch seine strukturierte Vorgehensweise aus. Diese klare Struktur des V-Modells verbindet jede Phase der Entwicklung - von der Anforderungsanalyse über den Systementwurf, Softwarearchitektur und Spezifikation bis hin zur Imple- mentierung - mit einer korrespondierenden Testphase (vgl. Abbildung 7). Das Mo- dell betont die Notwendigkeit der Verifikation und Validierung zu jedem Zeitpunkt des Entwicklungsprozesses, was es insbesondere für sicherheitskritische und feh- lertolerante Systeme sehr geeignet macht. Dabei wird von „Validation“ gespro- chen, wenn geprüft wird, ob das System ‚auch tut, was es tun soll‘; d. h., ob die Anforderungen erfüllt sind. Die „Verifikation“ prüft von einer technischen Warte aus, ob die Spezifikation korrekt implementiert wurde (die Korrektheit der Anfor- derungen wird an dieser Stelle nicht hinterfragt). Abbildung 7: V-Modell, i. A. a. Hoffmann (2013) Der Abstraktionsgrad der Arbeitsschritte nimmt zur Spitze des „V“s bis zur konkre- ten Implementierung ab. In jeder Phase werden Testfälle und Use-Cases abgeleitet, die dann für die Verifikation bzw. Validation herangezogen werden. ······················································································································ 41 Softwarequalität ······························································································ In der Softwareentwicklung existieren verschiedene Varianten des V-Modells, die sich in ihrer Struktur und ihren spezifischen Prozessen unterscheiden können, ab- hängig von den Anforderungen und Umständen des jeweiligen Projekts. Eine der bekanntesten und flexibelsten Ausprägungen ist das V-Modell XT, das für seine An- passbarkeit an verschiedene Projektgrößen und -komplexitäten steht. Das "XT" im Namen betont die Fähigkeit des Modells, "extrem zugeschnitten" („eXtreme Tai- loring“) zu werden, was es Organisationen ermöglicht, das Vorgehensmodell ent- sprechend den spezifischen Bedürfnissen des Projekts zu modifizieren und zu ska- lieren. Neben dem V-Modell XT gibt es auch das V-Modell 97, welches besonders in Deutschland verbreitet ist und als Vorläufer des XT-Modells gilt. Trotz der unter- schiedlichen Versionen und Anpassungen bleibt die Essenz des V-Modells beste- hen: eine klare und strukturierte Vorgehensweise, die die Phasen der Softwareent- wicklung mit entsprechenden Testphasen korreliert, um die Qualität und Zuverläs- sigkeit der Software zu gewährleisten. Aufgrund dieser Variabilität kann es zu Un- terschieden in der Darstellung des V-Modells in der Literatur kommen. Autorinnen und Praktikerinnen passen die Beschreibung oft an ihre eigenen Erfahrungen und die spezifischen Anforderungen ihrer Projekte an. Es ist daher wichtig, zu verstehen, dass es keine einheitlich ‚korrekte‘ Version des V-Modells gibt, sondern dass die verschiedenen Ausprägungen desselben Grundprinzips die Flexibilität und Anwend- barkeit des Modells in unterschiedlichen Entwicklungskontexten widerspiegeln. Wir beschreiben nun das V-Modell, wie es in Abbildung 7 dargestellt ist, im Detail. Wie schon der Name suggeriert, besteht das V-Modell aus zwei Armen, die das „V“ bilden. Der linke Arm des V entspricht den Phasen vor der Implementierung, also der Vorbereitung und Planung: Anforderungsanalyse: Der Prozess beginnt mit einer gründlichen Anforde- rungsanalyse, bei der die Bedürfnisse und Erwartungen des Kunden identifiziert und festgehalten werden. Diese Phase legt den Grundstein für das Projekt. Der aufmerksame Student wird sich an dieser Stelle mit Freunde und Inspiration an die erste Einheit dieser Lehrveranstaltung erinnern. Tatsächlich wird in machen Lehrbüchern zur Softwarequalität dem Requirements Engineering ausführlich Platz eingeräumt. So zum Beispiel bei Wallmüller (2011) in einem Kapitel zu or- ganisatorischen Qualitätsmaßnahmen. ······················································································································ 42 Softwarequalität ······························································································ Systementwurf: Basierend auf der Anforderungsanalyse wird der Systement- wurf entwickelt. In dieser Phase werden die hochleveligen Entscheidungen be- züglich der Systemarchitektur und der grundlegenden Komponenten getroffen. Software-Architektur: Hier wird die Software-Architektur entworfen, welche die detaillierte Strukturierung der Softwarekomponenten und deren Interakti- onen festlegt. Spezifikation: Die Spezifikation konkretisiert die Anforderungen und Architek- tur in einem detaillierten Plan, der genau beschreibt, wie die Software funktio- nieren wird und was sie leisten soll. Implementierung: In dieser Phase wird die Spezifikation in tatsächlichen Code umgesetzt. Die Implementierung umfasst die Codierung, das Debugging und das Unit-Testing jeder Komponente (was uns zum aufsteigenden Ast des Vs überleitet). Parallel zur Entwicklung werden entsprechende Tests definiert und vorbereitet. Wir werden uns den verschiedenen Testverfahren noch genauer in Kapitel 5 zuwenden. Abschnitt 5.3 beschäftigt sich im Speziellen mit den verschiedenen Testebenen, die im V-Modell gut ersichtlich sind. An den Schnittstellen zwischen den Phasen der Entwicklung und den Tests werden dazu Use-Cases und Testfälle erstellt, um sicher- zustellen, dass die Entwicklung kontinuierlich auf die Erfüllung der Benutzeranfor- derungen ausgerichtet ist. Wir beginnen unsere Aufzählung unten in der Spitze des „Vs“ und bewegen uns über die Verifikation entlang bis zur Validierung: Unit-Test: Nachdem eine Komponente implementiert wurde, wird sie durch Unit-Tests geprüft. Diese Tests verifizieren die Funktionalität einzelner Softwa- remodule. Integrationstest: Nachdem einzelne Module erfolgreich getestet wurden, wer- den sie zu einem größeren System zusammengesetzt. Integrationstests prüfen die Schnittstellen und Interaktionen zwischen den Modulen. Systemtest: Das gesamte System wird einer Reihe von Tests unterzogen, um sicherzustellen, dass es als Ganzes korrekt funktioniert und die ursprünglichen Anforderungen erfüllt. ······················································································································ 43 Softwarequalität ······························································································ Abnahmetest: Hier wird das fertige Produkt in einer Umgebung getestet, die der realen Einsatzumgebung des Kunden entspricht. Ziel ist es zu bestätigen, dass das System die Bedürfnisse des Endanwenders erfüllt (Validation). Das V-Modell umfasst auch das Konfigurationsmanagement, um sicherzustellen, dass alle Änderungen kontrolliert werden, sowie das Änderungsmanagement, um auf Probleme während der Entwicklung reagieren zu können. Zusätzlich wird ein Risikomanagement durchgeführt, um potenzielle Schwachstellen frühzeitig zu iden- tifizieren und zu mildern. Der Schlüssel zum Erfolg des V-Modells liegt in der frühzeitigen Planung und der kontinuierlichen Prüfung der Produkte auf jeder Stufe des Entwicklungsprozesses. Dadurch können Fehler frühzeitig erkannt und behoben werden, was langfristig Zeit und Kosten spart. Dies macht das V-Modell zu einem robusten und verlässlichen Ansatz, der sicherstellt, dass das Endprodukt den Qualitätsanforderungen ent- spricht und funktionell robust ist. 2.3 Reifegradmodelle Reifegradmodelle dienen dazu, die Arbeitsprozesse in einem Unternehmen zu eva- luieren und zu verbessern. Sie bieten einen systematischen Rahmen, um die Ab- läufe auf der Ebene von Projekten und des gesamten Unternehmens zu bewerten. Aus dieser Bewertung werden konkrete Schritte zur Optimierung der Prozesse ab- geleitet. Diese Modelle fokussieren sich nicht nur auf die Verbesserung der Ent- wicklungsprozesse, sondern auch auf die Effizienzsteigerung der organisatorischen Strukturen. Dazu gehört die klare Zuweisung von Rollen und Verantwortlichkeiten, die Etablierung von transparenten Kommunikationskanälen und die Festlegung von eindeutigen Eskalationsverfahren. Im Gegensatz zu Vorgehensmodellen, die Richt- linien und Schritte für die Ausführung von Projekten vorgeben, bieten Reifegrad- modelle eine messbare Grundlage für die Anpassung und Steuerung von Arbeits- prozessen und organisatorischen Rahmenbedingungen (Hoffmann, 2013, S. 492). Hoffmann (2013, S. 514-515) leitet folgende Merkmale aus der Analyse verschiede- ner etablierter Reifegradmodelle ab: Stufenweise Bewertung: Organisationen werden anhand eines Stufenmodells auf ihre Reife hin bewertet. Dabei kann die Bewertung entweder die Organisa- tion als Ganzes umfassen oder sich auf spezifische, inhaltlich abgegrenzte Be- reiche beziehen. Die Durchführung erfolgt schrittweise, wobei jede Stufe ······················································································································ 44 Softwarequalität ······························································································ nacheinander erreicht werden muss, ohne dass Stufen übersprungen werden können. Anforderungen und Empfehlungen: Jede Reifestufe ist mit bestimmten Anfor- derungen verknüpft, die ein Unternehmen erfüllen muss, um diese Stufe zu er- reichen. Häufig bieten Reifegradmodelle auch spezifische Empfehlungen an, die Organisationen dabei unterstützen sollen, die Kriterien für den nächsten Reifegrad zu erfüllen. Obwohl Reifegradmodelle keine detaillierten Prozessan- leitungen sind, liefern sie Orientierungspunkte, aus denen sich spezifische Pro- zessbeschreibungen entwickeln lassen. Die Modelle sind so konzipiert, dass sie flexibel auf die individuellen Bedürfnisse einer Organisation zugeschnitten wer- den können. Assessments: Die Anforderungen jeder Reifestufe sind so gestaltet, dass sie ei- ner objektiven Überprüfung unterzogen werden können. Die Bewertung der organisatorischen Reife erfolgt in Form einer Evaluierung, bei der bestehende Arbeitsprozesse und -strukturen systematisch mit den Vorgaben des Reifegrad- modells verglichen werden. Evaluierungen sind ein zentraler Bestandteil aller Reifegradmodelle und verfolgen zwei Hauptziele: Zum einen ermöglichen sie es, die Leistungsfähigkeit verschiedener Organisationen messbar und vergleich- bar zu machen. Zum anderen werden im Rahmen der Evaluierung Empfehlun- gen und Vorschläge zur Verbesserung der Prozesse und Arbeitsstrukturen erar- beitet. Je nach Durchführendem und Methode kann die Evaluierung in unter- schiedliche Kategorien fallen: o Selbstbewertung versus externe Bewertung: Selbstbewertungen die- nen dazu, die eigene organisatorische Reife zu beurteilen, während ex- terne Bewertungen die Leistungsfähigkeit anderer Unternehmen ein- schätzen. Externe Bewertungen werden insbesondere zur Auswahl von Subunternehmern und Lieferanten herangezogen. o Interne versus externe Bewertung: Interne Evaluierungen werden vom Unternehmen selbst durchgeführt und bieten Vorteile wie Kosten- ersparnis und Flexibilität. Externe Evaluierungen hingegen erfolgen durch unabhängige Bewerter und sind oft die Basis für formale Zertifi- zierungen. ······················································································································ 45 Softwarequalität ······························································································ Im Folgenden werden beispielhaft drei Reifegradmodelle skizziert, die für die Soft- wareentwicklung von besonderer Relevanz sind. 2.3.1 Capability Maturity Model (CMM) Das CMM wurde in den 1980er Jahren entwickelt und fokussierte sich auf die Ver- besserung der Qualität von Softwareentwicklungsprozessen. Das Modell basiert auf der Prämisse, dass die Qualität der Software stark von der Reife der Prozesse ab- hängt, die bei ihrer Entwicklung verwendet werden. Die fünf Reifegrade sind: „Initial“: Prozesse sind ad hoc und chaotisch. Erfolge sind von Einzelpersonen abhängig, nicht von Prozessen. „Repeatable“: Grundlegende Prozesse sind etabliert, um Projekte basierend auf Erfolgsmustern wiederholbar zu machen. „Defined“: Die Organisation hat all ihre Prozesse dokumentiert und standardi- siert. „Managed“: Die Organisation sammelt detaillierte Metriken über ihre Prozesse und Produkte. „Optimizing“: Die Organisation fokussiert sich auf kontinuierliche Prozessver- besserung. Die Verbesserung der Softwarequalität erfolgt durch das Verständnis und die Kon- trolle der Softwareentwicklungsprozesse. Organisationen, die ein höheres Reifeni- veau erreichen, können konsistenter hochwertige Software produzieren. 2.3.2 Capability Maturity Model Integration (CMMI) CMMI ist eine erweiterte Version des CMM und wurde Anfang der 2000er Jahre entwickelt. Es bietet Organisationen einen umfassenderen Ansatz für Prozessver- besserungen über verschiedene Abteilungen hinweg. CMMI vereint mehrere Reife- gradmodelle in einer integrierten Struktur und ist in drei Konstellationen verfügbar: CMMI für Entwicklung (CMMI-DEV), CMMI für Dienstleistungen (CMMI-SVC) und CMMI für den Einkauf (CMMI-ACQ). Jede Konstellation adressiert die Qualität und Verbesserung in den entsprechenden Bereichen. CMMI ist besonders wertvoll für Organisationen, die ihre Prozesse zur Herstellung von Software und anderen Pro- dukten oder zur Erbringung von Dienstleistungen verbessern möchten. Es hat auch ······················································································································ 46 Softwarequalität ······························································································ einen direkten Einfluss auf die Softwarequalität, da es auf beständige und wieder- holbare Prozesse abzielt, die zuverlässige und qualitativ hochwertige Produkte und Dienstleistungen hervorbringen. 2.3.3 ISO 15504 (SPICE) ISO 15504, auch bekannt als SPICE, ist ein internationaler Standard für den Soft- wareentwicklungsprozess, der Ende der 1990er Jahre entwickelt wurde. SPICE un- terstützt Organisationen dabei, die Reife ihrer Softwareprozesse zu bestimmen und zu verbessern. Im Gegensatz zu CMM und CMMI, die sich mehr auf die Reife der Prozesse konzentrieren, legt SPICE den Schwerpunkt auf die Bewertung einzelner Prozesse und ihre Fähigkeit, qualitativ hochwertige Software zu liefern. Der Stan- dard besteht aus einem Prozessreferenzmodell, das definiert, was in Softwarepro- zessen getan werden sollte, und einem Prozessbewertungsmodell, das beschreibt, wie die Prozesse bewertet werden sollten. SPICE hilft bei der Identifizierung von Stärken, Schwächen und Risiken in Softwareentwicklungsprozessen und ermöglicht es Organisationen, ihre Prozesse gezielt zu verbessern, was zu einer höheren Soft- warequalität führt. Alle drei Modelle, CMM, CMMI und ISO 15504 (SPICE), haben das gemeinsame Ziel, die Prozessreife zu verbessern, was wiederum zu einer erhöhten Qualität der Soft- wareprodukte führt. Durch die Standardisierung von Prozessen, die Einführung von Best Practices, die regelmäßige Bewertung der Prozesseffizienz und die kontinuier- liche Prozessverbesserung können Organisationen die Zuverlässigkeit und Perfor- mance ihrer Softwareprodukte steigern. Dies ist besonders wichtig, da Software zu- nehmend komplexer wird und ein kritischer Bestandteil in vielen Aspekten des täg- lichen Lebens und der Geschäftswelt ist. 2.4 Software-Infrastruktur Die Software-Infrastruktur beschreibt alle technischen Einrichtungen und Maßnah- men, die es Entwicklerinnen ermöglichen, ihre Arbeit effizient und geordnet auszu- führen. Nach Hoffmann (2013, S. 25-26) gibt es vier Hauptbereiche: Konfigurationsmanagement: Das Konfigurationsmanagement bildet eine zent- rale Säule innerhalb der Software-Infrastruktur, indem es sich mit der ······················································································································ 47 Softwarequalität ······························································································ Verwaltung der während eines Projekts erstellten Artefakte sowohl aus techni- scher als auch organisatorischer Perspektive befasst. Konfigurationselemente können dabei Quellcode, Dokumentation, Konfigurationsdateien, Testdaten, Build- und Deployment-Scripts sowie jede andere Komponente sein, die zur Er- stellung, zum Betrieb oder zur Wartung einer Software notwendig ist. In der Softwareentwicklung wird dies hauptsächlich durch den Einsatz von Versions- verwaltungssystemen unterstützt. Diese Systeme sind darauf ausgerichtet, Än- derungen am Quellcode, an Dokumentationen und anderen relevanten Pro- jektdateien zu verfolgen. Sie ermöglichen es Entwicklerteams, parallel an den- selben Dateien zu arbeiten, ohne sich gegenseitig zu behindern, und stellen si- cher, dass jede Änderung zurückverfolgt werden kann. Dies hilft, das Risiko von Konflikten zwischen verschiedenen Codeversionen zu minimieren und bietet eine Historie der Entwicklung, die es ermöglicht, zu früheren Versionen zurück- zukehren, falls dies notwendig sein sollte. Zu den bekanntesten Versionsverwaltungssystemen gehören Git, Subversion (SVN) und Mercurial. Git zum Beispiel ist ein verteiltes Versionsverwaltungssys- tem, das für seine Effizienz und Geschwindigkeit bei der Handhabung großer Projekte bekannt ist. Es ermöglicht Entwicklern, lokale Kopien des „Reposito- ries“ zu erstellen, Änderungen vorzunehmen und diese dann in das zentrale Repository zu integrieren. Dieses Modell fördert eine dezentralisierte Arbeits- weise, bei der jede Entwicklerin unabhängig arbeiten und ihre Änderungen spä- ter synchronisieren kann. Ein effektives Konfigurationsmanagement und der Einsatz von Versionsverwaltungssystemen tragen wesentlich dazu bei, die In- tegrität der Software zu gewährleisten und die Produktivität der Entwicklerte- ams zu steigern, indem sie einen kohärenten und kontrollierten Prozess für die Einführung von Änderungen bieten. Build-Automatisierung: Die Entwicklung eines komplexen Software-Systems wird durch das separate Kompilieren einzelner Code-Segmente und deren sys- tematisches Zusammenführen realisiert. Unter Build-Automatisierung versteht man den Vorgang, bei dem diese Kompilierung automatisiert und ohne manu- elle Eingriffe durchgeführt wird. In diesem Zusammenhang ermöglicht die in- krementelle Kompilierung eine effizientere Entwicklung, da nur die veränder- ten Teile des Programms neu übersetzt werden müssen. Dies reduziert den Zeitaufwand für den Kompilierungsvorgang und erhöht die Produktivität der ······················································································································ 48 Softwarequalität ······························································································ Entwicklerinnen, indem schnelles Feedback über Änderungen bereitgestellt wird. Außerdem trägt es dazu bei, dass die Entwicklerinnen sich schneller auf das Lösen von Problemen konzentrieren können, anstatt auf langwierige Kom- pilierungsprozesse zu warten. Darüber hinaus führt eine dezentrale Organisa- tion des Build-Prozesses zu einer weiteren Effizienzsteigerung. Durch die Ver- teilung der Build-Aufgaben auf mehrere Server oder sogar auf eine Cloud-Inf- rastruktur können Ressourcen dynamisch zugewiesen und die Build-Zeiten er- heblich verkürzt werden. Dieser Ansatz nutzt die Skalierbarkeit moderner Re- chenumgebungen optimal aus und bietet die Flexibilität, sich schnell an wech- selnde Anforderungen anzupassen. Ein dezentralisierter Build-Prozess ist somit ein Schlüsselkonzept für kontinuierliche Integration und Deployment, da er es ermöglicht, neue Builds zuverlässig und in kurzer Frequenz zu erstellen und zu testen, was letztendlich die Qualität und Zuverlässigkeit der Software verbes- sert. Testautomatisierung: In großen IT-Projekten wird das Testen von Software ebenfalls automatisiert, um den manuellen Aufwand zu reduzieren. Dies gilt insbesondere für Regressionstests, für die eine Vielzahl von Tools zur Verfü- gung steht, die eine effiziente und elegante Automatisierung ermöglichen. Wir werden uns dem Testen explizit in Kapitel 5 zuwenden. Defektmanagement: Dies ist ein fundamentaler Prozess in der Softwareent- wicklung, der sich mit dem Auffinden, Dokumentieren und Beheben von Feh- lern (Bugs) befasst. Es spielt eine entscheidende Rolle für die Softwarequalität, indem es sicherstellt, dass Fehler schnell identifiziert, klassifiziert und korrigiert werden. Sobald ein Fehler entdeckt wird, wird er in ein Bug-Tracking-System eingetragen, wo er analysiert, einem Entwickler zugewiesen und priorisiert wird. Nach der Behebung des Fehlers wird dieser getestet, um sicherzustellen, dass die Lösung effektiv ist. Ein gut geführtes Defektmanagement sorgt nicht nur für die Reduzierung von Fehlern in der Software, sondern trägt auch zur Steigerung der Zuverlässigkeit und Benutzerzufriedenheit bei. Durch das Ver- stehen und Lösen von Fehlern können Entwicklungsteams ihre Prozesse konti- nuierlich verbessern, was letztendlich zu einer höheren Produktqualität führt. ······················································································································ 49 Softwarequalität ······························································································ 2.5 Kontrollfragen Welche Rolle spielen Managementprozesse in der Qualitätssicherung von Soft- Übung wareentwicklungsprojekten? Multiple-Choice-Fragen: A) Managementprozesse dienen ausschließlich der Budgetierung und Finanzierung in Softwareentwicklungsprojekten. B) Sie fokussieren auf individuelle Leistung der Entwicklerinnen und Entwickler ohne Einbeziehung von Prozessen oder Infrastruktur. C) Managementprozesse betreffen nur die Auswahl und Verwaltung von Software- und Hardware-Infrastruktur. D) Managementprozesse umfassen Strategien und Verfahren, die eine strukturierte Umsetzung von Softwareprojekten ermöglichen und tragen zur Qualitätssicherung bei, indem sie systematische Abläufe und die Nutzung adäquater Ressourcen si- cherstellen. Was kennzeichnet die Validierung im Kontext des V-Modells in der Softwareent- wicklung? Multiple-Choice-Fragen: A) Validierung bezieht sich auf die Überprüfung der Codequalität und Optimierung der Leistungsfähigkeit einzelner Softwaremodule. B) Sie umfasst das Testen von Softwarekomponenten in isolierten Umgebungen, um deren individuelle Funktionalität zu bestätigen. C) Validierung bedeutet die Überprüfung, ob das System die Anforderungen und Bedürfnisse des Endanwenders erfüllt. D) Die Validierung ist ein automatisierter Prozess, der ohne menschliche Eingriffe die Spezifikation der Software bestätigt. Welches der folgenden Ziele wird primär durch die Implementierung von Reife- gradmodellen in der Softwareentwicklung verfolgt? Multiple-Choice-Fragen: A) Die Reduzierung der Entwicklungszeit für einzelne Softwaremodule. B) Die ausschließliche Verbesserung der Benutzeroberflächen von Softwareproduk- ten. ······················································································································ 50 Softwarequalität ······························································································ C) Die Steigerung der Gesamtqualität von Softwareprodukten durch verbesserte Prozessreife. D) Die Erhöhung der Anzahl veröffentlichter Softwareprodukte innerhalb eines Ge- schäftsjahres. Welche Rolle spielt die Build-Automatisierung im Kontext der Software-Infra- struktur? Multiple-Choice-Fragen: A) Sie dient der manuellen Durchführung von Softwaretests nach der Implementie- rung. B) Build-Automatisierung ist hauptsächlich für das Design und die Verbesserung der Benutzeroberfläche verantwortlich. C) Sie ermöglicht das direkte Deployment von Software in die Produktionsumge- bung ohne vorherige Tests. D) Build-Automatisierung ermöglicht das automatisierte und wiederholbare Kom- pilieren von Code-Segmenten, wodurch die Entwicklung effizienter und konsisten- ter wird. ······················································································································ 51

Use Quizgecko on...
Browser
Browser