Einführung
Besonderheiten der Softwareentwicklung
- Unbegrenzte Möglichkeiten etwas umzusetzen
- altert nicht
- leicht zu ändern
Warum scheitern IT Projekte
- System is ungeeignet
- Anwender lehnen System ab
- System ist unzureichend
- Schlechte Kommunikation zwischen Auftraggeber und Entwickler
- Unzureichend Mittel für das Erreichen der Ziele
Balance der Entwicklung
Es muss die Balance zwischen Qualität, Komplexität, Kosten und Entwicklungsdauer bestehen.
Aufgaben des Software Engineerings
Verbesserung der Kommunikation, Kosten und Qualität durch strukturierte
- Vorgehensmodelle
- Modellierung der Anforderungen
- Designmethoden
- Implementationsmethoden
- Testmethoden
Grundbegriffe des Software Engineerings
Software
Menge von Programmen und Daten zusammen mit begleitenden Dokumenten
Eine Sammlung von Computerprogrammen, Prozeduren, Regeln, zugehörige Dokumentationen und Daten
Immateriell
Software und Umgebung
Software-Systeme
- bestehen aus Systemkomponenten und Elementen
- stellt die innere Sichtweise des Entwicklers dar
- Software Produkt
betrachtet Software von außen aus, Benutzer
Wesentliche Aktivitäten in der Softwareentwicklung
- Kosten/Nutzen Analyse
- funktionale und nichtfunktionale Anforderungen festlegen
- Bauen der SW
- Verifizieren und Validieren
- Mangement
Rollen und Beteiligte
- Kunden: Vertreter der Anwender
- Benutzer: Anwender, haben Wünsche und Vorstellungen der SW
- Manager: vermittelt zwischen Kunden und Entwicklern, verantwortlich für Entscheidungen
- Entwickler: Beteiligte der SE, in Rollen eingeteilt
- Requierments Engineer
- SW-Architekt
- Programmierer
- Tester
- …
Prozess der Softwareentwicklung
ist in Phasen eingeteilt
- Planung
- Analyse und Anforderungsdefinition
- Entwurf
- Implementierung
- Abnahme und Einführung
- Betrieb und Wartung
eine Phase umfasst Menge von Aktivitäten und liefert Ergebnisse (Artefakte)
Software-Produkt
Gesamtheit der möglichen Arbeitsergebnisse
Software-Prozess
Für das Mangment eines SW-Projektes ein organisatorischer Rahmen - Prozessmodell
Prozessmodell
definiert welche Aktivitäten und Artefakte wann und wo benötigt werden
Software-Engineering - eine Bestandsaufnahme
Im Manifest „Strategische Bedeutung des Software Engineering“ heißt es: Software ist der fundamentale Werkstoff des Informationszeitalters. Innovative Produkte und Dienstleistungen sind ohne Software nicht mehr denkbar. Die Wettbewerbsfähigkeit der deutschen Wirtschaft hängt entscheidend von der Fähigkeit ab, Software-intensive Produkte und Dienstleistungen mit höchster Qualität zu erstellen… Software wird in der Zukunft integrierter – in vielen Fällen sogar dominierender – Teil großer komplexer Systeme sein. … Die erforderliche Integration … kann nur durch die frühzeitige Integration der Modellierungs-kompetenzen des Software Engineering in den Entwicklungsprozess beherrscht werden.
Erweiterung der Definition des Software Engineering
SE grenzt sich zu seinen Grundlagendisziplinen … dadurch ab, dass es sich vor allem auf Methoden konzentriert und dabei immer den Anspruch praktischer Anwendbarkeit vor Augen hat. Die Anwendungsfelder liegen hauptsächlich im Bau von Konsum- und Investitionsgütern … sowie der Unterstützung und Automatisierung von Unternehmensprozessen..
Diese Anwendungsfelder liefern vor allem fachliche Anforderungen für Software. Das Software Engineering stellt Methoden und Prozesse für die Erhebung der Anforderungen und deren technische Umsetzung bereit.