Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was...

18
Software Engineering WS 2009 Folie 1 Prof. Dr. Gerhard Schmidt pres. 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)

Transcript of Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was...

Page 1: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

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)

Page 2: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

Software Engineering WS 2009 Folie 2Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens

Grundlagen

Softwarekosten dominieren die Kosten von Informatiksystemen

Page 3: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

Software Engineering WS 2009 Folie 3Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens

Grundlagen

Kostenentwicklung von Software:

Page 4: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

Software Engineering WS 2009 Folie 4Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens

Grundlagen

Vergleich: Kostenentwicklung bei Software und Hardware

Page 5: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

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)

Page 6: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

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

Page 7: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

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.

Page 8: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

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

Page 9: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

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

Page 10: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

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

Page 11: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

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

Page 12: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

Software Engineering WS 2009 Folie 12Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens

Grundlagen

Überproportionaler Anstieg des Aufwandes:

Page 13: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

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.

Page 14: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

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

Page 15: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

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

Page 16: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

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

Page 17: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

Software Engineering WS 2009 Folie 17Prof. Dr. Gerhard Schmidtpres. by H.-J. Steffens

Grundlagen

Effekte von Fehlern und Entstehungswege der unterschiedlichen Fehlerarten

Page 18: Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2009Folie 1 Grundlagen Was ist Software? Die Programme, Verfahren, zugehörige.

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