Arten der Softwareentwicklung Eigenprogrammierung Software Komponenten / -module SW SW K1 K2 K3 K4 eduzierung der Komplexität durch Modularisierung Comercial of the shelfs (COTS) Domain Management SW Zukauf von Bausteinen In der Domäne werden Softwarebausteine abgelegt, die entweder mehrfach in einer Applikation oder in mehreren Applikationen eingesetzt werden können. B1 B1 B1 (Ver-) Kauf von Softwarebausteinen Zusammenstellung von Software nach dem Baukastenprinzip eduzierung des Softwareentwicklungsaufwands durch Anlegen von Domänen und Nutzung der Wiederverwendbarkeit. horizontale Domäne vertikale Domäne
Prozeßorganisation in der Softwareentwicklung Fokus auf Gesamtprozeß Prozeß Einbeziehung der Kunden Kleine egelkreise Verbesserung der Planungsbasis Informationsgewinn Prozeß : ückkopplung Selbstprüfung Verantwortung Prozeßdarstellung als Voraussetzung für Transparenz und ein geeignetes Controlling-Konzept Methodik der Prozeßmodellauswahl anhand von Fähigkeits- und Anforderungsprofilen Prozeßschritte und -abfolgen Prozeßverknüpfung Prozeßbewertung beteiligte Stellen Entwicklungsprozeß Kritischer Pfad Hilfs- und Sachmittelunterstützung Schnittstellen
Softwareentwicklungsprozesse orientiert an Kernkompetenzen wachsende Softwarekomplexität führt zu ineffizienten Entwicklungsprozessen Problemen in der Sicherstellung von Qualität Problemen in der Softwarepflege Intensive Nutzung von der Möglichkeit der Zerlegung in kleine Einheiten/Bausteine externen Entwicklungspartnern als Zulieferanten Zukauf von Komponenten oder Know-How (temporär oder auf Dauer) Beschränkung auf die Kernkompetenzen zur Differenzierung gegenüber den Wettbewerbern und zur Erfüllung der Kundenwünsche durch gesteigerten Kundennutzen Kunde Kundennutzen eigenes Unternehmen Wettbewerb Wettbewerber
Modelle der Softwareentwicklung Das Wasserfall-Modell Systemrealisierbarkeit Nachprüfung Nachprüfung Pläne und Anforderungen Produktentwurf Überprüfung Feinkonzeption Überprüfung Codierung nach Boehm 1986 Modultest Integration Produktüberprüfung Implementierung Systemtest Betrieb & Überprüfung Wartung (Wiederholung) Charakteristiken: Validierung der Ergebnisse am Phasenende ückkopplungen zwischen aufeinander folgenden Phasen ücksprünge sind die Ausnahme Vorteile: + Klar abgegrenzte Entwicklungsschritte erleichtern die Planung und Kontrolle der Projekte + Die Qualitätskontrolle am Ende jeder Phase ist im Modell integriert Nachteile: - Änderungen der anfänglichen Anforderungen sind nicht vorgesehen - Eine Kommunikation zwischen Auftraggeber und Entwickler ist im Modell nicht enthalten - Keine Unterstützung von Neuerungen (Objektorientierung, Wiederverwertung) in der Softwareentwicklung Das V-Modell Systemdurchführbarkeit Analyse Spezifikation Entwurf Codierung Modultest Systemtest Integrationstest Betrieb Einführung Validierung Verifikation Zeit nach Boehm Vorteile: + die Beziehungen zwischen den Analyse-/ Konstruktionsphasen und den Testphasen werden berücksichtigt + Parallelisierung von Tätigkeiten + enthält die Qualitätssicherung, das Konfigurations- und Projektmanagement als integrale Bestandteile Charakteristiken: ückkopplungen zwischen aufeinander folgenden Phasen, aber als Ausnahme jeder konstruktiven Aktivität wird eine prüfende Aktivität zugeordnet Nachteile: - inflexibel aufgrund der starren Phaseneinteilung - aufwendige Einführung Prototyping Prototypen spezifizieren Prototypen generieren Mit Prototypen experimentieren Prototyp akzeptiert? nein Spezifikation ändern und erweitern ja Charakteristiken: iterativer Prozeß (egelkreis) mit zeitlicher Überlappung von Phasen Prototyping umfaßt nur einen Ausschnitt des SW- Entwicklungsprozesses Abstriche sowohl an der Funktionalität wie auch an der Implementierung Vorteile: + isikominderung durch frühe, sichtbare Ergebnisse + Einbindung des Benutzers; Anforderungen und Spezifikationen können anhand der Prototypen mit dem Benutzer überprüft werden + Anforderungsänderungen können lange berücksichtigt werden Nachteile: - (scheinbarer) Mehraufwand - nicht geeignet für Systeme, die in einem Systemzusammenhang integriert werden müssen - Gefahr von Endlosschleifen, da keine stabile Spezifikation gefunden wird Weitere Modelle Life Cycle Modell rein sequentielle top-down Softwareentwicklung Spiralmodell zyklisches Modell der Phasen Zieldefinition, Alternativenbewertung, Produktentwicklung und Planung des nächsten Zyklusses Inkrementeller Softwareentwicklungsprozeß Aufteilung des Aufgabenumfangs nachträglich Änderung der Spezifikationen möglich Versionsentwicklung Produktpflege über längere Zeiträume Mix and Match siehe Komponenten, COTS sowie Domain Management
Prozeßauswahl mit Hilfe des Prozeßauswahltools: Pro Choice Ablauf der Prozeßauswahl in Pro-Choice Bewertung Standardsoftware am Bsp. MS-Word 5 Softwareprodukt prozeßrelevante Merkmale 4 Transformationsmodell Profilvergleich Auswahl Prozeßfähigkeiten Vorgehensmodelle* 3 2 Prozeßmodell* Transformationsprofil Produktspezifisches Prozeßmodell *Code and Fix Wasserfallmodell Spiralmodell Evolutionäres Prototyping Exploratives Prototyping Inkrementelle Entwicklung V-Modell 1 Einhaltung des erstellten Zeitplans Für Kunden sichtbare Zwischenergebnisse Handhabbare Zwischenergebnisse Korrekturen im Prozeßverlauf Qualitativ hochwertige Dokumentation isikomanagement Stabile/zuverlässige Systeme Steuerbarkeit des Projektes Umgang mit instabilen Anforderungen Umgang mit nicht vollständig bekannter Architektur Verwendung von bestehenden Komponenten Wartungsfreundliche Systeme * Hier: Wasserfallmodell Als Beispielprodukt für Standardsoftware dient hier MS-Word. Diese wurde hinsichtlich ihrer prozeßrelevanten Merkmale bewertet und über das Transformationsmodell mit den Vorgehensmodellen verglichen. Die Graphik zeigt die Verläufe der Bewertung der Standardsoftware im Vergleich mit dem Wasserfallmodell. Die Alternativenauswahl im Tool erfolgt durch Bestimmung der Alternative mit dem geringsten Abstand zwischen Transformationsmodell und Vorgehensmodell.
Vorgehensweise zur Entscheidung über verteilte Entwicklung Der Entscheidungsprozeß Schritt 1 Auswahl möglicher Standorte gemäß den ahmenbedingungen (Vorselektion) Experten/Erfahrungsdatenbank Möglichkeiten zur verteilten SWE? Vorselektion durch Expertenbefragungen oder Nutzung von Erfahrungsdatenbank Schritt 2 Bewertung der betriebswirtschaftlichen Chancen und isiken der Standorte (Ableitung eines Chancen-isiken-Portfolios) Auswahl von Standorten Schritt 3 Technische Bewertung der Standorte (ealisierbarkeit) Wissensrückfluß Bewertung von Maßnahmen betriebswirtschaftliche Bewertung technische Bewertung Entscheidungsvorlagen auf Basis der ausgewählten Standorte Modifizierung der Standortauswahl (andere Standorte) Entscheidung: nein Schritt 4 Schritt 5 Erstellung des Strategieportfolios und Auswahl der für eine verteilte Entwicklung geeigneten bzw. weiter zu untersuchenden Standorte Bewertung der Maßnahmen zur Durchführung einer verteilten Entwicklung (z.b. Prozeßanpassungen und -ergänzungen, Schulungen, usw.) Entscheidung: ja Entscheidung über die Durchführung einer verteilten SWE (Checkliste Aufwand mit / ohne Verteilung) Entscheidung: ja Entscheidung: nein Durchführung der SWE an einem Standort Schritt 6 Erstellung des Strategieportfolios und Auswahl für eine verteilte Entwicklung geeigneter Standorte unter Berücksichtigung der Maßnahmen Durchführung einer verteilten SWE Schritt 7 Abwägung der Aufwände und des Nutzens einer Verteilung und Entscheidung über die Durchführung einer verteilten Entwicklung Ausführung dieser Schritte optional Diese Vorgehensweise ermöglicht den transparenten und nachvollziehbaren Entscheidungsprozeß über die Durchführung einer verteilten Entwicklung.