Software Engineering Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik Prof. A. Müller, FH KL Software Engineering 2015 1
Inhalte Begrüßung Vorstellung, Übersicht Formales und Organisation Tipps effektive Teilnahme Tipps für die Klausurvorbereitung Einführung in SE Programmieren und danach? Charakteristika von Software Definitionen Ziele Vorgehensmodelle Rollen Fragen Prof. A. Müller, FH KL Software Engineering 2015 2
Quelle: http://www.dicfo.at/ meth_dok/methode 13_fl_programmiere n.pdf Prof. A. Müller, FH KL Software Engineering 2015 3
Charakteristika von Software Software ist immateriell Software ist unstetig Software schafft neue Realitäten Die Zweckbestimmung ist oft nicht zu Beginn festgelegt Jeder darf Software für alle Bereiche und Einsatzbedingungen entwickeln Software unterliegt keinem Verschleiß Software altert Software scheint beliebig änder- und erweiterbar Fehler können nicht direkt erkannt werden Software ist schwer zu vermessen Prof. A. Müller, FH KL Software Engineering 2015 4
Prof. A. Müller, FH KL Software Engineering 2015 5
Veränderungen des Software-Marktes Und wie verläuft der Aufwand für die Erstellung? Entnommen: Balzert 09, ursprüngl. Ebert: Systemat. Reqm. Engin. u. Mmgt. 2008 Prof. A. Müller, FH KL Software Engineering 2015 6
Veränderungen des Software-Marktes Wachsende Komplexität Zunehmende Vernetzung, Virtualisierung, Zusammenspiel mit Komponenten verschiedener Hersteller Zunehmend Altlasten: genannt legacy systems Mehr Standardsoftware Mehr Außer Haus-Entwicklung Zunehmend Offshore-Entwicklung Open Source-Entwicklung Zunehmende Bedeutung von Software Zunehmende Qualitätsanforderungen Prof. A. Müller, FH KL Software Engineering 2015 7
Ziele des Software Engineering Funktionalität Qualität Magisches Viereck Zeit (Kurze Entwicklungszeiten) Kosten (niedrig!) Die vier Ziele stehen in einem Spannungsverhältnis Prof. A. Müller, FH KL Software Engineering 2015 8
Definition Software Engineering 1. Die Anwendung eines systematischen, disziplinierten, quantifizierbaren Ansatzes zur Entwicklung, zum Betrieb und zur Wartung von Software. D. h. die Anwendung ingenieurwissenschaftlicher Prinzipien auf Software 2. Die Untersuchung und Entwicklung derartiger Ansätze Quelle: www.swebok.org Prof. A. Müller, FH KL Software Engineering 2015 9
Wesentliche Merkmale guter Software Quelle: Sommerville, 8. Auflage, Kap.1 Prof. A. Müller, FH KL Software Engineering 2015 10
Der Softwarelebenszyklus (standard life-cycle model) Quelle: Balzert, Lehrbuch der Softwaretechnik, 2011 Prof. A. Müller, FH KL Software Engineering 2015 11
Das Wasserfallmodell - Überblick Prof. A. Müller, FH KL Software Engineering 2015 12
Das evolutionäre (iterative) Modell "Nullversion" X=0 Systemspezifikation Version X Änderungen X++ Teilmodell (Produktkern) Entwurf Version X Teilarchitektur Anforderungen Änderungen Implementierung Version X Änderungen Produkt Version X Einsatz Version X Prof. A. Müller, FH KL Software Engineering 2015 13
Das evolutionäre (iterative) Modell Vorteile Nachteile Primäres Ziel: Die Auftraggeber erhalten in kurzen Abständen einsatzfähige Produkte; die erste Version vgl. früh! Integration der Erfahrungen der Anwender in die Entwicklung Überschaubare Projektgröße Korrigierbare Entwicklungsrichtung Keine Ausrichtung auf einen einzigen Endtermin In späteren Versionen kann eine komplette Architektur Änderung bevorstehen. Die Nullversion ist möglicherweise nicht flexibel genug, um spätere Entwicklungen vorauszusehen. Eigenschaften Das Modell sieht eine stufenweise Entwicklung vor, gesteuert durch Erfahrungen der Benutzer. Re-Use von Komponenten ist üblich und auch erforderlich (s. komponenten-basiertes SE) Die Pflegeaktivitäten werden in den Prozess integriert Wir konzentrieren uns auf lauffähige Teilprodukte. Prof. A. Müller, FH KL Software Engineering 2015 14
Wie es der Kunde erklärt hat Prof. A. Müller, FH KL Software Engineering 2015 15
Wie es der Projektleiter verstanden hat Prof. A. Müller, FH KL Software Engineering 2015 16
Wie der Analyst es aufgefasst hat Prof. A. Müller, FH KL Software Engineering 2015 17
Was die Beta-Tester erhalten haben Prof. A. Müller, FH KL Software Engineering 2015 18
Wie es der Programmierer geschrieben hat Prof. A. Müller, FH KL Software Engineering 2015 19
Wann das Projekt fertig wurde Prof. A. Müller, FH KL Software Engineering 2015 20
Wie das Projekt dokumentiert wurde Prof. A. Müller, FH KL Software Engineering 2015 21
Wie der Support tatsächlich ist Prof. A. Müller, FH KL Software Engineering 2015 22
Wie es dem Kunden berechnet wurde Prof. A. Müller, FH KL Software Engineering 2015 23
Was der Kunde wirklich gebraucht hätte Prof. A. Müller, FH KL Software Engineering 2015 24
Was mit Open-Source möglich gewesen wäre Prof. A. Müller, FH KL Software Engineering 2015 25
Hauptgründe für das Scheitern von Projekten 1. Schlechte Projektplanung und -leitung 2. Unzureichende Kommunikation 3. Fehlendes Management von Änderungen, Risiko, Finanzen, Performance 4. Mangelnde Abstimmung mit Auftraggebern und Benutzern 5. Unzureichende Unterstützung der Unternehmensleitung 6. Fehlende Soft Skills, Anpassungsfähigkeit und Erfahrung der Teammitglieder 7. Schlechte oder fehlende Methoden und Werkzeuge Alle Gründe haben mit Software Engineering und Projektmanagement zu tun Quelle: Joseph Gulla: Seven Reasons Why Information Technology Projects Fail. Presentation August 2011. https://share.confex.com/share/117/webprogram/handout/session9341/ seven%20reasons%20why%20information%20technology%20projects%20fail.pdf Prof. A. Müller, FH KL Software Engineering 2015 26
Agile Verfahren Beispiel: Scrum Anforderungen, die in dem Sprint noch umgesetzt werden sollen. In jedem Sprint wird die Software ein Stück weiter entwickelt Sammlung Von Anforderungen Quelle: qmethods.de/service_pcm_scrum.html Prof. A. Müller, FH KL Software Engineering 2015 27
Rollen in der Software Entwicklung Prof. A. Müller, FH KL Software Engineering 2015 28
Prof. A. Müller, FH KL Software Engineering 2015 29
Prof. A. Müller, FH KL Software Engineering 2015 30
Fragen Warum heißt das Wasserfallmodell Wasserfallmodell? Was versteht man unter einem iterativen Vorgehen? Was sind die Ziele des Software Engineering im Magischen Viereck? Wie verläuft die Kurve, die den Projektaufwand im Verhältnis zur Produktgröße (Codezeilen) darstellt? Nennen Sie zwei Gründe für das Scheitern von Softwareprojekten Prof. A. Müller, FH KL Software Engineering 2015 31
additional slides Prof. A. Müller, FH KL Software Engineering 2015 32
Basis Definitionen zum SE Quelle: Sommerville, 8. Auflage, Kap.1 Prof. A. Müller, FH KL Software Engineering 2015 33
Wissensgebiete des SE Quelle: SWEBOK Prof. A. Müller, FH KL Software Engineering 2015 34
Wissensgebiete des SE Quelle: SWEBOK Prof. A. Müller, FH KL Software Engineering 2015 35