Grundlagen des Software-Engineerings: Methoden und Modelle
Eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 5,14 KB
Grundlagen des Software-Engineerings
- Software: Die Menge von Programmen, Verfahren, Regeln, Dokumentationen und zugehörigen Daten im Rahmen eines EDV-Systems.
- Software-Engineering: Die Anwendung eines systematischen, disziplinierten und quantifizierbaren Ansatzes für die Entwicklung, den Betrieb und die Wartung von Software sowie die Untersuchung solcher Ansätze.
- System: Eine Reihe von Dingen, die zueinander in Beziehung stehen und gemeinsam auf ein bestimmtes Ziel hinarbeiten.
- Modell: Eine Darstellung eines Systems mittels einer verständlichen Modellierungssprache.
- Methodische Grundsätze: Axiome oder erworbenes Wissen, das die Merkmale definiert, die ein Modell für eine angemessene Systemdarstellung aufweisen muss.
- Heuristik: Eine Reihe empirischer Regeln, um Modelle zu erstellen, die den methodischen Grundsätzen entsprechen.
- Werkzeuge: Hilfsmittel zur Darstellung von Modellen, die eine automatische oder halbautomatische Unterstützung bei der Anwendung von Methoden bieten.
- Methode: Eine Abfolge von Aktivitäten zur Erstellung eines Produkts (Modell), die beschreibt, wie Werkzeuge und Heuristiken einzusetzen sind.
- Lebenszyklus: Die Menge der Phasen, Prozesse und Aktivitäten zur Ausführung der Software-Produktion.
- Methodik: Eine Zusammenstellung von Philosophien, Phasen, Verfahren, Regeln, Techniken, Tools, Dokumentation und Schulungsfragen für Entwickler von IT-Systemen.
Software-Entwicklungsmodelle
- Wasserfall-Modell: Jede Phase beginnt erst nach Abschluss der vorherigen Ziele. Dies hilft, Termine und Kosten zu planen. Nach jeder Phase erfolgt eine Prüfung.
- Prototypen-Modell: Schnelles Design, das sich auf die für den Kunden sichtbaren Aspekte der Software konzentriert, um diese bewerten zu lassen.
- Evolutionäres Modell: Kontinuierliche Weiterentwicklung der Software, bis das finale Produkt erreicht ist.
- Inkrementelles Modell: Schrittweise Entwicklung der Software; der erste Anstieg entspricht oft dem Kernprodukt.
Wichtige Aspekte des Software-Engineerings
- Software-Prozessmodelle: Forschung und Anwendung von Lebenszyklen und Methoden.
- Systemanforderungen: Untersuchung der Integration in das Gesamtsystem zur Erreichung übergeordneter Ziele.
- Anforderungsspezifikation: Festlegung der Aufgaben und Anforderungen an das Produkt.
- Software-Design: Unterteilt in Architektur (Überblick) und Ausführungsplanung (modulare Spezifikation).
- Umsetzung: Entwicklung des Programmcodes und Erstellung persistenter Datenstrukturen.
- Verifikation und Validierung: Sicherstellung der Korrektheit und Übereinstimmung mit den Anforderungen.
- Wartung: Debugging, Verbesserung und Anpassung an Veränderungen.
- Management: Organisation, Implementierung und Kontrolle des Entwicklungsprozesses.
- Software-Bewertung: Festlegung von Metriken zur Bewertung der Qualität von Produkten und Prozessen.
- Qualitätssicherung: Transversale Kontrolle und Verbesserung über alle Aktivitäten hinweg.
Software-Lebenszyklus
Die wichtigsten Funktionen eines Lebenszyklus sind die Bestimmung der Phasenreihenfolge sowie die Festlegung von Übergangskriterien zwischen den Phasen.
Vorteile
- Leitfaden für die Personalentwicklung und Aufgabenverteilung.
- Systematische Entwicklung ermöglicht frühzeitige Fehlererkennung.
- Kontrolle von Fristen und Kosten.
- Standardisierte Dokumentation verbessert die Kommunikation.
- Minimierung von Nachbesserungen.
Software-Methodologien
Methoden definieren den Rahmen für die Software-Entwicklung basierend auf einem oder mehreren Lebenszyklen.
- Konventionelle Methode (1950–1970): Projektmanagement ohne klare Kostenkontrolle oder Vorhersehbarkeit.
- Strukturierte Methodik (ab 1970): Systematische Entwicklung basierend auf traditionellen Ingenieursmethoden.
- Objektorientierte Methodik (ab 1985): Fokus auf das Paradigma der Objekte bei Techniken und Werkzeugen.
- Komponentenorientierte Methodik (ab 2000): Basiert auf dem Konzept der wiederverwendbaren Komponenten.
Ziele und Eigenschaften von Software-Methoden
Methoden dienen dazu, einen systematischen Ansatz zu bieten, Informationssysteme kosteneffizient zu erstellen und Änderungen im Prozess zu unterstützen.
Wünschenswerte Eigenschaften
- Vordefinierte Vorschriften und flächendeckende Zyklen.
- Zwischenprüfungen und effektive Kommunikation.
- Unterstützung für Management, Wiederverwendung und Schulung.
- Anpassbarkeit an verschiedene Projektgrößen.