Software Engineering WS 2009 Folie 1Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
Grundlagen
Was ist Software?
Die Programme, Verfahren, zugehörige Dokumentation und Daten, die mit dem Betrieb
eines Rechnersystems zu tun haben (IEEE 610.12)
Software ist:– Computerprogramme
– Prozeduren
– Regeln für den Betrieb eines Computers
– Dokumentation
Unterscheidung in:– Systemsoftware: Betriebssystem, Compiler, Datenbanken, Kommunikations- und
Dienstprogramme
– Anwendungssoftware: Software, die Probleme des Anwenders löst.
Zielgruppen– Individualentwicklung für einen Kunden
– Entwicklung für den allgemeinen Markt (z. B. Spiele)
Software Engineering WS 2009 Folie 2Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
Grundlagen
Softwarekosten dominieren die Kosten von Informatiksystemen
Software Engineering WS 2009 Folie 3Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
Grundlagen
Kostenentwicklung von Software:
Software Engineering WS 2009 Folie 4Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
Grundlagen
Vergleich: Kostenentwicklung bei Software und Hardware
Software Engineering WS 2009 Folie 5Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
Grundlagen
• Realität und Hoffnung:– Hoffnung:
• Softwarefabriken
• Programmgeneratoren
• portable Software
• denkende Maschinen
– Realität:• „Freaks“
• CASE-Tools,
• unterschiedliche Programmiersprachen
• unterschiedliche Programmierstile (objektorientiert, funktional, strukturiert)
Software Engineering WS 2009 Folie 6Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
Grundlagen
Softwareentwicklung:
Software-Entwicklung bedeutet die Umsetzung der
Bedürfnisse von Benutzern in Software.
Umfasst Spezifikation der Anforderungen, Konzept der Lösung, Entwurf
und Programmierung der Komponenten, Zusammensetzung der Komponenten
und ihre Einbindung in vorhandene Software, Inbetriebnahme
der Software sowie Überprüfung des Entwickelten nach jedem Schritt.
• Das Problem verstehen– Anwendungsbereich verstehen
– Anforderungen spezifizieren
• Lösung entwerfen
• Lösung umsetzen ( programmieren)
• Lösung integrieren und in Betrieb nehmen
Software Engineering WS 2009 Folie 7Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
Grundlagen
Softwarepflege:
Die Benutzerbedürfnisse ändern sich schneller, als Software von
Grund auf neu entwickelt werden kann.
Bestehende Software muss geändert und weiterentwickelt werden
Software-Pflege (oder Software-Wartung), d. h.
Modifikation und/oder Ergänzung bestehender Software durch neue
Software mit dem Ziel,
• Fehler zu beheben,
• die bestehende Software an veränderte Bedürfnisse oder Umweltbedingungen anzupassen
• oder die bestehende Software um neue Fähigkeiten zu erweitern.
Software Engineering WS 2009 Folie 8Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
Grundlagen
Probleme bei der Softwareentwicklung
• Komplexität– Komplexität des Anwendungsbereichs
– Umfang des Systems
– Zahl beteiligter Personen (mit ganz unterschiedlichen Voraussetzungen)
• Dynamik– Änderungen von Anforderungen
– Änderungen von Rahmenbedingungen und technischen Voraussetzungen
• Zeitdruck
• Kostendruck
Software Engineering WS 2009 Folie 9Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
GrundlagenUnterschiede zwischen kleinen und großen Projekten
Klein Groß
Programme von 1 bis ca. 300
Zeilen
Längere Programme
Für den Eigengebrauch Für den Gebrauch durch Dritte
Vage Zielsetzung genügt Genaue Zielbestimmung erforderlich
Ein Schritt vom Problem zur
Lösung genügt.
Mehrere Schritte erforderlich
Lösung direkt Auf jeden Entwicklungsschritt muss
ein Prüfschritt folgen
Software Engineering WS 2009 Folie 10Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
GrundlagenUnterschiede zwischen kleinen und großen Projekten
Klein Groß
Komplexität des Problems in der Regel klein
Komplexität des Problems größer bis sehr groß
Behalten der Übersicht nicht
schwierig
Maßnahmen zur Strukturierung
und Modularisierung erforderlich
Software besteht aus wenigen
Komponenten
Software besteht aus vielen
Komponenten; Maßnahmen zur
Komponentenverwaltung
In der Regel keine Dokumentation Dokumentation zwingend
Keine Planung und erforderlich
Projektorganisation erforderlich
Software Engineering WS 2009 Folie 11Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
Grundlagen
Wachstum des Kommunikationsbedarfs
Anzahl der beteiligten Personen
1 2 3 4 5 6
Kommunikationspfade
0 1 3 6 10 15
Bei einer Person: keine Kommunikation
ab 4 Personen: mehr Kommunikationspfade als Personen
Software Engineering WS 2009 Folie 12Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
Grundlagen
Überproportionaler Anstieg des Aufwandes:
Software Engineering WS 2009 Folie 13Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
Grundlagen
Software Engineering:
- Technische Disziplin,
- die sich mit der Bereitstellung und
- der systematischen,
- ingenieurmäßigen
- Anwendung von
- Prinzipien, Methoden und Werkzeugen
- zum Entwurf und
- zur Herstellung
- von Software befasst.
Software Engineering WS 2009 Folie 14Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
Grundlagen
Ziele des Software Engineering
• Funktionstreue– Software soll das leisten, was sich die
Auftraggeber/Benutzer davon erwarten
• Qualität– Einhalten der Qualitätsanforderungen
• Termine– Kurze Entwicklungszeiten!
– Einhalten der zugesagten Fertigstellungstermine
• Kosten– Kostengünstige Entwicklung von Software
– Einhaltung des geplanten Sach- und Personalaufwandes
Software Engineering WS 2009 Folie 15Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
Grundlagen
Qualität von Software
• Qualitätsmerkmale für Software (Beispiele)– Korrektheit: Software soll das leisten, was sich die
Auftraggeber/Benutzer davon erwarten
– Performance
– Ressourcenbeanspruchung
– Wartbarkeit
– Kompatibilität zu andern Produkten
– Usability
– Kosten: Kostengünstige Entwicklung von Software; Einhaltung des geplanten Sach- und Personalaufwandes
– Termingerechte Lieferung: Einhalten der zugesagten Fertigstellungstermine; Kurze Entwicklungszeiten!
– After Sales Support
– verständliche Dokumentation
Software Engineering WS 2009 Folie 16Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
Grundlagen
Fehler bei der Softwareentwicklung
• Es wird sofort mit der Codierung begonnen
• Es wird nicht systematisch und ausreichend getestet; Testergebnisse werden nicht dokumentiert
• Eine Festlegung der Anforderungen fehlt
• Akzeptanzkriterien für die Qualitätsanforderungen fehlen
• Standards und Richtlinien werden nicht beachtet
• Dokumentation ist veraltet, fehlerhaft, unzureichend
• Ein Vorgehensmodell fehlt bzw. wird nicht verfolgt
• Eine Abnahme der Phasenergebnisse erfolgt nicht
• Schlechte Namensvergabe bei Variablen und Klassen
• Schulung wird vernachlässigt
• Falsche Auswahl der Werkzeuge
Software Engineering WS 2009 Folie 17Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
Grundlagen
Effekte von Fehlern und Entstehungswege der unterschiedlichen Fehlerarten
Software Engineering WS 2009 Folie 18Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens
Grundlagen
Zusammenfassung
• Die Entwicklung von Software erfordert ein systematisches, ingenieurmäßiges Vorgehen
• Herausforderungen bei der Software-Entwicklung sind Komplexität, Dynamik, Zeit- und Kostendruck
• Software Engineering ist die technische Disziplin, die sich mit der Erstellung von Software befasst. Hierfür stellt sie Prinzipien, Methoden und Werkzeuge bereit.
• Ziele sind Funktionstreue, Qualität, Termine, Kosten
• Wichtige Phasen eines Software-Projektes sind Planung, Analyse, Entwurf, Implementierung, Abnahme und Einführung, Wartung und Pflege