Softwareentwicklung: Probleme, Prozesse und Lebenszyklen
Eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 5,7 KB
- Krise der Softwareentwicklung (Informationsdefizite): Erfolg (16,2 %), Auswahl der Dialoge (31,1 %), mit Problemen (52,7 %).
- Probleme und Projektfaktoren: mangelnde Informationen von Teilen der Benutzer, unvollständige Spezifikationen und Anforderungen, sich ändernde Spezifikationen und Anforderungen, nicht strukturierte Erwartungen, unklare Ziele.
- Faktoren bei gescheiterten Projekten: unvollständige Anforderungen, fehlende Auswirkungen auf die Benutzer, nicht strukturierte Erwartungen, sich ändernde Spezifikationen und Anforderungen; führt nicht mehr zu den notwendigen Ergebnissen.
- Faktoren in fehlgeschlagenen Projekten: unvollständige Anforderungen, fehlende Beteiligung des Kunden, unzureichende Ressourcen, Unmöglichkeit der Benutzerbeteiligung, mangelnde Unterstützung durch das Management, Änderungen der Anforderungen und fehlerhafte Planung.
- Die Softwaretechnik: Die Anwendung wissenschaftlicher Prinzipien, Techniken und Sprachen sowie Werkzeuge und Methoden zur Entwicklung und Wartung von Software mit angemessenen Kosten innerhalb eines Zeitrahmens, sodass die Software die Bedürfnisse der Nutzer erfüllt.
- Elemente des Softwaretechnik-Marktes
- Prozesse: definieren die Abfolge der angewandten Methoden, die zu erstellenden Dokumente, die Meilensteine sowie Qualitätskontrollen, mit denen die Programme anhand von Metriken bewertet werden.
- Methoden: zeigen technisch, wie Software gebaut wird, einschließlich der Qualitätskriterien.
- Werkzeuge: bieten automatische oder halbautomatische Unterstützung für die Methoden.
- Prozesse in der Softwaretechnik:
- Wartung: die grundlegende Versorgung von Software, um sie anzupassen und Fehler zu korrigieren. Während der Wartungsphase fallen im Lebenszyklus der Software die meisten Kosten an. Typen: perfektiv, adaptiv, korrektiv, präventiv.
- Qualitätssicherung: Prozesse zur Unterstützung des Ziels, dass Software ein bestimmtes Qualitätsniveau erreicht. Technische Reviews, formale technische Reviews (FTR) sowie Treffen des Teams mit SQA-Mitgliedern prüfen die Produkte und Prozesse des Entwicklungsprojekts.
- Konfigurationsmanagement: Prozesse zur Identifizierung, Überwachung und Meldung von Änderungen an den Produkten, die während der Softwareentwicklung entstehen: Dokumentation, Daten, Code, ausführbare Dateien usw. (Versionskontrolle).
- Der Softwarelebenszyklus: Ein Rahmenwerk von Prozessen, Aktivitäten und Aufgaben, das die Entwicklung, Nutzung und Wartung eines Softwareprodukts umfasst, von der Konzeption bis zur Außerbetriebnahme. Der Lebenszyklus beschreibt eine allgemeine Sicht auf die Entwicklung: Prozesse, Aktivitäten und Aufgaben werden in einer Reihenfolge angeordnet, die Produkte erzeugt und an den Kunden ausgeliefert werden.
- Typen:
- Klassischer Lebenszyklus (Kaskadenmodell): Jede Phase beginnt erst, wenn die vorhergehende abgeschlossen ist. Er ist einfach zu planen und eignet sich ideal für gut verstandene Anforderungen.
- Spiralmodell: Im Fall der Entwicklung von Hard- und Software wird der Lebenszyklus in zwei Ebenen unterteilt: Hardware/Software.
- Evolutionäre Modelle: Die Entwicklung erfolgt in Zyklen, wobei Probleme durch Zyklen von Anforderungen und Entwurf bewertet werden.
- Inkrementelles Modell: Wiederholung des Lebenszyklus in mehreren Kaskaden. Es wird häufig in großen Entwicklungsprojekten eingesetzt.
- Iteratives Kaskadenmodell: Ebenfalls eine Wiederholung des Lebenszyklus in mehreren Kaskaden. Es wird auch dann umgesetzt, wenn die Anforderungen nicht klar sind.
- Kaskadenmodell mit Prototyping: Ermöglicht die Anwendung verschiedener Lebenszyklen bei strukturierten und objektorientierten Methoden.
- Modifiziertes Kaskadenmodell: Eine Kombination aus Lebenszyklus und inkrementeller Iteration. Es wird vorzugsweise in Fällen verwendet, in denen die Entwicklungsaktivitäten geplant und vorhersehbar sind.
Reverse Engineering: Reverse Engineering analysiert die Ergebnisse, die in der Softwareentwicklung auf einer vorherigen Stufe entstanden sind. Die Ergebnisse werden in der Regel aus dem analysierten Code gewonnen.
- Re-Engineering: Reverse Engineering analysiert die Ergebnisse, die in der Softwareentwicklung auf einer vorherigen Stufe entstanden sind. Die Ergebnisse werden in der Regel aus dem analysierten Code gewonnen.
- Scrum: Eine alternative Methode des Projektmanagements zur Steuerung von Softwareentwicklungsprojekten statt definierter Prozesse. Sie beruht auf empirischen Prozessen, daher sollte man nicht versuchen, Vorhersagen in einer Kontrollgruppe zu treffen. Scrum ist empfehlenswert, wenn sich die Anforderungen ändern und neu entstehen.
- Anforderungsmanagement: Die systematischen Prozesse zur Erarbeitung von Anforderungen mithilfe eines kooperativen Prozesses, bei dem Probleme iterativ analysiert, Beobachtungen in verschiedenen Formaten dokumentiert und die Genauigkeit des gewonnenen Wissens überprüft werden.