Grundlagen des Software Engineering und Projektmanagements
Eingeordnet in Informatik
Geschrieben am in Deutsch mit einer Größe von 197,72 KB
Eigenschaften von Software
- Software nutzt sich nicht ab und ist unempfindlich gegen Umwelteinflüsse.
- Ein Ausfall bedeutet einen Fehler im gesamten Design oder in der Implementierung.
- Software-Wartung ist komplizierter als Hardware-Wartung.
- Die meiste Software ist heute maßgeschneidert.
Aktuelle Trends in der Softwareentwicklung
- Objektorientierung
- Wiederverwendbarkeit (reduziert Kosten und verbessert das Design).
Komponenten eines Computersystems
Ein Computersystem wird durch folgende Komponenten gekennzeichnet:
- Hardware
- Software
- Informationen
- Benutzer
- Aufgaben
- Dokumentation
Software-Anwendungsbereiche
- Basis-Software
- Echtzeit-Systeme (Real Time)
- Kommerzielle Anwendungen (Shopping)
- Wissenschaftliche oder technische Anwendungen (Science oder Engineering)
- Eingebettete Systeme (Embedded)
- Personal Computer Anwendungen
- Künstliche Intelligenz (IA)
Definition von Software-Engineering
Software-Engineering ist die Errichtung und Nutzung fundierter technischer Prinzipien, um wirtschaftlich Software zu erhalten, die zuverlässig und effizient auf realen Maschinen arbeitet.
Haupt-Paradigmen im Software Engineering
Vier Haupt-Paradigmen im Engineering:
- Klassischer Lebenszyklus (Wasserfall)
- Prototyping
- Spiralmodell
- Techniken der vierten Generation (4GL)
Klassischer Lebenszyklus: Das Wasserfall-Modell
Das Wasserfall-Modell basiert auf der klassischen Konstruktion mit folgenden Phasen:
- System Engineering
- Anforderungsanalyse und Definition
- Design (Entwurf)
- Coding (Implementierung)
- Testing (Testen)
- Wartung
Probleme des Wasserfall-Modells
- Reale Projekte folgen selten dem sequenziellen Fluss, den das Modell vorschlägt.
- Es ist schwierig, alle Anforderungen zu Beginn des Projekts explizit festzulegen (natürliche Unsicherheit).
- Der Kunde muss Geduld haben, da eine ausführbare Version der Software erst in einem fortgeschrittenen Stadium der Entwicklung verfügbar ist.
- Entwickler sind oft unnötig im Leerlauf durch blockierende Zustände.
Prototyping-Modell
Ablauf:
- Anforderungen erfassen
- Schneller Entwurf (Quick Design)
- Bau des Prototyps
- Evaluation des Prototyps
- Verfeinerung des Prototyps
Die Prototyping-Iteration kann an die Bedürfnisse des Anwenders angepasst, verworfen oder Teil des Endprodukts werden.
Herausforderung beim Prototyping
Der Kunde besteht oft darauf, dass der Prototyp mit nur leichten Modifikationen, Entscheidungen und improvisierten Lösungen Teil des Endprodukts wird.
Das Spiralmodell
Phasen des Spiralmodells
- Definition von Zielen: Festlegung der spezifischen Ziele dieser Phase.
- Risikobewertung (Risk Assessment): Identifizierung und Auflösung wesentlicher Risiken.
- Entwicklung und Validierung.
- Planung.
Techniken der Vierten Generation (4GL)
Tools für High-Level-Spezifikation (L4G)
- Abfragen der Datenbank
- Reporting
- Datenmanipulation (Data Manipulation)
- Definition und Interaktion mit Bildschirmen
- Code-Generierung
Vorherrschende Domäne und Probleme
Domäne: Betriebliche Informationssysteme, gute Produktivität für kleine und mittlere Systeme.
Spezifische Probleme: Für große Systeme erfordert es viel Zeit, und die Notwendigkeit für das Projekt bleibt bestehen.
Qualität und Produktivität im Software Engineering
- Qualität: Die Fähigkeit des Produkts, explizite und implizite Bedingungen zu erfüllen.
- Produktivität: Bezieht sich auf Kosten und Erträge.
- Qualitätssicherung (Quality Assurance): Die Fähigkeit zur Sicherung der Qualität ist das Maß für die Reife des Software-Engineering-Prozesses.
Software Engineering verpflichtet die Organisation zur Qualität.
Ursachen für Prozessunreife
- Budgetprobleme
- Zeitüberschreitungen
- Probleme mit der Produktqualität
- Mangelnde Implementierung einer Methode und deren Tools
- Fehlende ständige Weiterentwicklung des Entwicklungsprozesses
CMM – Capability Maturity Model
Das CMM ist ein Modell zur Beurteilung der Reife der Software-Prozesse eines Unternehmens und identifiziert die wichtigsten Methoden, die erforderlich sind, um die Reife dieser Prozesse zu erhöhen.
CMM Reifegrade
- 1 - Initial (Anfang): Unkontrollierter und unvorhersehbarer Prozess.
- 2 - Repeatable (Wiederholbar): Disziplinarverfahren.
- 3 - Defined (Definiert): Konsistenter und standardisierter Prozess.
- 4 - Managed (Gemanagt): Vorhersagbarer und kontrollierter Prozess.
- 5 - Optimizing (Optimierend): Kontinuierlich verbesserter Prozess.
CMMI Level 2
Erforderliche Maßnahmen zur Implementierung der Methodik
- Konzeptionelles Training im Projektmanagement
- Definition der Werkzeuge für die Methodik
- Erstellung eines Zeitplans für die Umsetzung der Methodik
- Training von Projektleitern
- Zeitrahmen für die Implementierung der Methodik
- Möglichkeiten zur Anpassung der Methodik: Zeitplan für die Umsetzung und Indikatoren