Objektorientierte Analyse und Design

Ähnliche Dokumente
2. Prozessmodellierung

2. Prozessmodellierung. 2.1 Unternehmensprozesse 2.2 Prozessmodellierung mit Aktivitätsdiagrammen 2.3 Risikomanagement

Objektorientierte Analyse und Design

Objektorientierte Analyse und Design

Objektorientierte Analyse und Design

2 Prozessmodellierung

Softwaretechnik (Medieninformatik) Überblick

Notationen zur Prozessmodellierung

Die Unified Modeling Language UML

Tamagotchi-Spezifikation in UML

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++

Programmieren 2 - Java

Softwaretechnik Überblick

1. Grundbegriffe der Softwaretechnik. 1.1 Herausforderungen

Requirements Engineering I

UML (Unified Modelling Language) von Christian Bartl

IT-Projekt-Management

Konzept und Umsetzung

Objektorientiertes Software-Engineering

Vorlesung Programmieren

Informationswirtschaft II Rational Unified Process (RUP)

Informationswirtschaft II

Requirements Engineering I

Modellgetriebene Softwareentwicklung. Gabriele Taentzer WS 2012/2013 Philipps-Universität Marburg

Liste MI / Liste I Programmieren in C++

Objektorientierte Analyse und Design

Software-Praktikum. Überblick und Zeitplan

Objektorientierte Systementwicklung

Einführung in die objektorientierte Programmierung

Kapitel 2 - Die Definitionsphase

Software Design basierend auf dem Plug-In Konzept

Objektorientierte Softwareentwicklung

Unified Modeling Language

SWE6 Slide 1. Software-Engineering. Vorlesung 6 vom Sebastian Iwanowski FH Wedel

Semester: Workload: 150 h ECTS Punkte: 5

Programmiermethodik Vorlesung und Praktikum SS 2001

Software-Engineering

Universität Karlsruhe (TH)

Der Rational Unified Process

Unified. Copyright Adriano Gesué UML 2.0 UML 1.4 UML 1.3 UML 1.2 UML 1.1 UML 1.0 UML 0.9. Method 0.8

MDRE die nächste Generation des Requirements Engineerings

Objektorientierte Analyse und Design mit der Unified Modelling Language (UML) Sandra Meißl

Software Engineering. Fakultät Elektrotechnik Bachelor-Studiengänge, 4. Semester Prof. Dr.-Ing. Dagmar Meyer

Stephan Kleuker. Grundkurs Software-Engineering mit UML

Requirements Management mit RequisitePro. Rational in der IBM Software Group. Der Rational Unified Process als Basis für die Projektarbeit

Inhaltsverzeichnis. Literatur. 4 Rational Unified Process [JBR98, Kru03] und UML [BRJ02, FS00, Bal01]

2. Der Software-Entwicklungszyklus

Analyse und Design mit U ML 2.3

Grundlagen des Software Engineering

Modell zur Einflussanalyse Ein Modell zur Einflussanalyse von Methodenänderungen in Entwicklungsprozessen

Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

Vorlesung Programmieren

Analyse und Design mituml2.1

Objektorientierte Analyse & Design

Praxis der Softwareentwicklung

Grundlagen Software Engineering

2 Softwarearchitektur in der Organisationsstruktur 25

Prozessmanagement: Ausgewählte Projektbeispiele und Referenzen

Comelio GmbH - Goethestr Berlin. Kurskatalog

RTLOpen - Eine Methode zur interdisziplinären Entwicklung von software-intensiven Echtzeit-Systemen

3.4 Unified Process Ivar Jacobson, Grady Booch, James Rumbaugh: The Unified Software Development Process.

Inhaltsverzeichnis. Teil I Grundlagen 1

Software Engineering

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

Übung 4. Werkzeuge zur ER-Modellierung. Prof. Dr. Andreas Schmietendorf 1. Übung 4

Business Analysis Body of Knowledge BABOK v3. Konzepte Scope Struktur. Ursula Meseberg microtool GmbH Berlin

UML-Basics: Einführung in Objekt- Orientierte Modellierung mit der Unified Modeling Language

Praxis der Softwareentwicklung WS 2015/16

Software- und Systementwicklung

Fachhochschule Wiesbaden, FB Design Informatik Medien Studiengang Allgemeine Informatik Vorlesung im SS 2007

Projektmanagement. Dokument V 1.1. Oliver Lietz - Projektmanagement. Wie kommt es zu einem Projektauftrag? Ausführung

Softwaretechnik 2015/2016

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung

Stand: Semester: Dauer: Modulnummer: Minimaldauer 1 Semester IOBP. Regulär angeboten im: Modultyp: Pflicht WS, SS

Unified Modelling Language

Einführung in die Programmierung

Rückblick: Entity-Relationship-Modell

UML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert

Kapitelübersicht. Was ist So#waretechnik? Historische Entwicklung der So9waretechnik Prinzipien, Methoden, Werkzeuge. Was bedeutet Objektorien+erung?

Funktions- versus Objektorientierter Entwurf

Referent: Alessandro Arrigo AAM1. Professor: Prof. Dr. Heindl. Furtwangen,

Objektorientierte Programmierung (OOP)

Von der Prozessanalyse zur Prozessautomatisierung

Application Engineering Grundlagen für die objektorientierte Softwareentwicklung mit zahlreichen Beispielen, Aufgaben und Lösungen

Software-Engineering Grundlagen des Software-Engineering 7 Implementierungsphase (Programming Phase)

GESCHÄFTSPROZESSOPTIMIERUNG (GPO)

DGQ Regionalkreis Hamburg Anforderungsmanagement ins SW-Projekten. 08. Juni 2011

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I)

Datenbanken Datenbanken 1 Belegnummer Belegnummer

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung

Softwaretechnik (Allgemeine Informatik) Überblick

Einführung in Generatives Programmieren. Bastian Molkenthin

Software Engineering

Grosse Systeme im Griff

Transkript:

Objektorientierte Analyse und Design Kernziele: Strukturen für erfolgreichen SW-Entwicklungsprozess kennen lernen Realisierung: Von der Anforderung zur Implementierung 1

Ablauf 2h Vorlesung + 2h Praktikum = 5 CP Praktikum (2er Gruppen): Anwesenheit = (Übungsblatt vorliegen + Lösungsversuche zum vorherigen Aufgabenblatt) 12-13 Übungsblätter mit jeweils 8 Punkten (Σ 100) Praktikum mit 80 oder mehr Punkten bestanden mündliche Prüfung nach VL-Zeit Folienveranstaltungen sind schnell, bremsen Sie mit Fragen von Studierenden wird hoher Anteil an Eigenarbeit erwartet Melden Sie sich in Stud.IP an! 2

Verhaltenscodex Rechner sind zu Beginn der Veranstaltung aus Handys sind aus Wir sind pünktlich Es redet nur eine Person zur Zeit Sie haben die Folien zur Kommentierung in der Vorlesung vorliegen (Ihre Aufgabe), zwei Tage vor der VL liegen abends Unterlagen im Netz http://www.edvsz.hs-osnabrueck.de/kleuker/index.html Probleme sofort melden Wer aussteigt teilt mit warum 3

Praktikum genauer Praktikumsaufgaben müssen jeweils als Ergebnisse im Praktikum der Folgewoche vorliegen; diese werden dort abgenommen Falls jemand nicht kommt, sind die Ergebnisse per E-Mail spätestens am Praktikumstag an den Praktikumsleiter zu schicken; werden in der Folgewoche abgenommen Aufgaben dürfen in Gruppen von maximal zwei Studierenden bearbeitet werden; jeder muss in der Lage sein, jedes Gruppenergebnis vorzustellen (gerade auch bei evtl. späteren Abnahmen) Treten ähnliche Ergebnisse bei mehr als einer Arbeitsgruppe auf, werden diese bei allen Arbeitsgruppen gestrichen Besorgen Sie sich ein Login für die Linux-Rechner des Labors Software-Technik: http://www.lbst.ecs.hs-osnabrueck.de/anmeldung 4

Veranstaltung im Studienkontext + Sie können grundsätzlich imperativ Programmieren (C) + Sie haben Grundkenntnisse in der OO-Programmierung (C++, Java) + evtl.: Sie arbeiten sich gerade in Datenbanken ein (Überschneidung bei Modellierung, Grundkenntnisse werden in der Mitte der Veranstaltung genutzt) = Sie können erfolgreich an dieser Veranstaltung teilnehmen + nächstes Semester: Veranstaltung Software-Engineering Projekt (Vorlesungsanteil zur Organisation von SW-Projekten in Unternehmen, großes Praktikumsprojekt, 10 CP) 5

Buch Hinweis: Aktuelle Bücher des Springer-Verlags Können über Web- Seite der Bibliothek als PDF legal heruntergeladen werden. Vieweg+Teubner gehört zu Springer. 6

weitere Literatur Generell lesenswert: Mario Winter, Methodische objektorientierte Softwareentwicklung, dpunkt.verlag, Heidelberg Bernd Oestereich, Stefan Bremer, Analyse und Design mit UML 2.3, 9. Auflage, Oldenbourg, München C. Rupp, S. Queins, B. Zengler, UML 2 glasklar, Hanser, München Wien Ian Sommerville, Software Engineering, 9. Auflage, Addison Wesley, Boston Spezialliteratur wird zum jeweiligen Kapitel genannt 7

Werkzeuge Benutzt wird Eclipse 3.6 mit einigen Erweiterungen und kleinen Macken SW von Web-Seite kopierbar Installation durch Auspacken; Plugins (Erweiterungen) sind bereits enthalten keine aktuelleren Versionen nutzen, da diese mit Plugins eventuell nicht zusammenpassen es gibt professionellere Werkzeuge, die aber nicht generell frei verfügbar sind (jedes Unternehmen kocht hier seinen eigenen Werkzeugbrei zusammen) 8

Inhaltsverzeichnis 2 Prozessmodellierung 1 Motivation von Software-Engineering 3 Vorgehensmodelle 4 Anforderungsanalyse 5 Grobdesign 6 Vom Klassendiagramm zum Programm 7 Konkretisierungen im Feindesign 8 Optimierung des Designmodells 9 Implementierungsaspekte 10 Oberflächengestaltung 11 Qualitätssicherung kurz, genauer nächstes Semester schon behandelt nächstes Semester 12 Umfeld der Software-Entwicklung nächstes Semester 9

2. Prozessmodellierung 2.1 Unternehmensprozesse 2.2 Prozessmodellierung mit Aktivitätsdiagrammen 2.3 Risikomanagement 10

Umfeld von SW-Projekten 2.1 Unternehmensführung Unterstützung Vertrieb Projektmanagement Controlling SW-Projekt 11

Prozesse in Unternehmen aus SW-Projektsicht (Annahme SW ist wichtiges Kernprodukt) Unternehmensführung gibt Geschäftsfelder und Strategien vor Vertriebsleute müssen Kunden finden, überzeugen und Aufträge generieren Aufträge führen zu Verträgen, die geprüft werden müssen Das Personal für Aufträge muss ausgewählt werden und zur Verfügung stehen Der Projektablauf muss beobachtet werden, Abweichungen z. B. in Zeitplan müssen zu Steuerungsmaßnahmen führen Die SW muss realisiert werden 12

Rollenbegriff Unterschiedliche Menschen arbeiten in verschiedenen Rollen zusammen Rolle: genaue Aufgabenbeschreibung, mit Verantwortlichkeiten (was soll gemacht werden) und Kompetenzen (welche Entscheidungen können getroffen werden, z. B. Arbeit anweisen ) Mensch kann in einem Unternehmen/Projekt mehrere Rollen haben Eine Rolle kann von mehreren Menschen besetzt werden Beispielrollen: Vertriebsleiter, Vertriebsmitarbeiter, Projektleiter, Analytiker, Implementierer, Tester 13

Prozessbegriff Prozessbeschreibungen regeln die Zusammenarbeit verschiedene Menschen (genauer Rollen), Was soll in diesem Schritt getan werden? Wer ist verantwortlich für die Durchführung des Schritts? Wer arbeitet in welcher Rolle in diesem Schritt mit? Welche Voraussetzungen müssen erfüllt sein, damit der Schritt ausgeführt werden kann? Welche Teilschritte werden unter welchen Randbedingungen durchgeführt? Welche Ergebnisse kann der Schritt abhängig von welchen Bedingungen produzieren? Welche Hilfsmittel werden in dem Prozessschritt benötigt? Welche Randbedingungen müssen berücksichtigt werden? Wo wird der Schritt ausgeführt? Prozesse sind zu dokumentieren und zu pflegen 14

Prozessmodellierung mit Aktivitätsdiagrammen 2.2 Zur Beschreibung werden folgende elementare Elemente genutzt: genau ein Startpunkt einzelner Prozessschritt (Aktion) Kontrollknoten (Entscheidung) Kontrollknoten (Zusammenführung) Endpunkt (Terminierung) 15

Parallelität in Prozessen Waagerechter oder senkrechter Strich steht für mögliche Prozessteilung (ein Pfeil rein, mehrere raus) oder Zusammenführung (mehrere Pfeile rein, ein Pfeil raus) Am zusammenführenden Strich steht Vereinigungsbedingung, z. B. {und}: alle Aktionen abgeschlossen {oder}: (mindestens) eine Aktion abgeschlossen UML 1.1 hatte andere Restriktionen 16

Beteiligte, Produkte, Werkzeuge Beteiligte, Produkte, Werkzeuge werden hier als einfache Datenobjekte modelliert, dabei steht zunächst die Objektart und dann die genaue Bezeichnung In eckigen Klammern kann der Zustand eines Objekts beschrieben werden neben Verantwortlicher noch Mitwirkender möglich auch Entscheidungen können Verantwortliche haben 17

Beispiel: Vertrieb (1/4) Zu modellieren ist der Vertriebsprozess eines Unternehmens, das SW verkauft, die individuell für den Kunden angepasst und erweitert werden kann Modelle werden wie SW inkrementell erstellt; zunächst der (bzw. ein) typische Ablauf, der dann ergänzt wird Typisches Szenario: Vertriebsmitarbeiter kontaktiert Kunden und arbeitet individuelle Wünsche heraus; Fachabteilung erstellt Kostenvoranschlag; Kunde unterschreibt Vertrag; Projekt geht in den Prozess Projektdurchführung (hier nicht modelliert) Beteiligt: Vertriebsmitarbeiter, Kunde, Fachabteilung Produkt: Individualwünsche, Kostenvoranschlag, Vertrag Aktionen: Kundengespräch, Kosten kalkulieren, Vertragsverhandlung 18

Beispiel: Vertrieb (2/4) 19

Beispiel: Vertrieb (3/4) nächster Schritt: Einbau alternativer Abläufe Kunde ist am Angebot nicht interessiert In den Vertragsverhandlungen werden neue Rahmenbedingungen formuliert, so dass eine Nachkalkulation notwendig wird [nächste Folie] Bis zu einem Vertragsvolumen von 20 T entscheidet der Abteilungsleiter, darüber die Geschäftsleitung ob vorliegender Vertrag abgeschlossen werden soll oder Nachverhandlungen nötig sind Die Fachabteilung hat Nachfragen, die der Vertriebsmitarbeiter mit dem Kunden klären muss 20

Beispiel: Vertrieb (4/4) 21

Modellierungsfalle Basierend auf Erfahrungen mit Flussdiagrammen könnte man zu folgender Modellierung kommen Dies würde nach UML-Semantik bedeuten, dass für die Aktion Vertragsverhandlung zwei Kostenvorschläge (initial und aktualisiert) vorliegen müssten Wenn verschiedenen Wege zu einer Aktion führen sollen, muss vor der Aktion ein Zusammenführungs-Kontrollknoten stehen 22

Problem Lesbarkeit Diagramme können leicht komplex werden Lösungsmöglichkeiten: Verteilung von Diagrammen auf mehrere Seiten mit Ankerpunkten Verzicht, alle Elemente in einem Diagramm darzustellen (z. B. Produkte weglassen; dies nur in der immer zu ergänzenden Dokumentation erwähnen) Diagramme hierarchisch gestalten; eine Aktion kann durch ein gesamtes Aktivitätsdiagramm verfeinert werden, z. B. ist Kosten kalkulieren eigener Prozess; dies sollte im Modell sichtbar werden 23

Prozessverfeinerung: Kosten kalkulieren Anmerkung: Verantwortliche weggelassen, da immer Projektbegleiter der Fachabteilung 24

Problem Abstraktionsgrad Frage: Wann nur eine Aktion, wann mehrere Aktionen Indikator: Mehrere Aktionen zusammenfassen, wenn nur ein Produkt entsteht, das ausschließlich in diesen Aktionen benötigt wird ( lokale Variable ) oder diese von nur einer Person bearbeitet werden Typischerweise Prozesshierarchie: Unternehmensebene; d.h. ein Diagramm für jeden Prozess der Kern-, Management- und Supportprozesse Prozessebene: Verfeinerung des Prozesses, so dass alle auch nur intern sichtbaren Rollen und Produkte sichtbar werden Arbeitsprozess: Individuelle Beschreibung der Arbeitsschritte einer Rolle für eine/ mehrere Aktionen Probleme: Flexibilität und Akzeptanz 25

Querschnittsprozess: Projekt-Risikomanagement 2.3 Projekte stoßen häufig auf Probleme, die man frühzeitig hätte erkennen und auf die man dann reagieren könnte; dieser Prozess heißt (Projekt-) Risikomanagement (RM) Idee: frühzeitig über potenzielle Probleme nachdenken, genauer: Vermeidungsmöglichkeiten Maßnahmen zur Verringerung der Eintrittswahrscheinlichkeit Maßnahmen beim Eintreffen des Problems ersten beiden Ansätze heißen pro-aktives RM, letzter Ansatz reaktives RM oder Notfall-Plan DeMarco, T.; Lister, T.: Bärentango Mit Risikomanagement Projekte zum Erfolg führen, Hanser, München, 2003 Wallmüller, E.: Risikomanagement für IT- und Software-Projekte, Hanser, München, 2004 Gaulke, M.: Risikomanagement in IT-Projekten, Oldenbourg, München, 2004 Versteegen, G.: Risikomanagement in IT-Projekten, Springer, Berlin, 2003 26

Beispiel RM bei Projektplanung Risiko: Mangelnder Austausch von Know-How im Projektteam Auswirkungen: Arbeiten werden doppelt gemacht, vorhandenes Wissen nicht eingesetzt Ursache: Neues Projektteam, dass noch nicht zusammengearbeitet hat Maßnahme: (Verringerung) Erste Projektveranstaltung (Kickoff) findet in kleinem Hotel außerhalb des Unternehmens statt; moderierte Workshops zum Aufbau des Verständnisses der Projektaufgabe und zur Findung vorhandener Kompetenzen Messung des Maßnahmenerfolgs: Kontrolle auf Doppelarbeiten; Verfolgung der Qualität der Ergebnisse, die von mehreren Personen erstellt wurden (nur weiches Maß) Hinweis: Ursache und Risiko können verwischen, da Ursachen wieder Ursachen haben können (... irgendjemand in den Apfel gebissen hat ) 27

Risikomanagement Risiken identifizieren Risiken analysieren Maßnahmen planen Optimieren Risiko- Datenbank Maßnahmen durchführen Maßnahmen bewerten 28

Phasen des Risikomanagements (1/3) Risiken identifizieren Identifikation eines Risikos, Festlegung der Risikoaussage und des Risikokontextes Aufnahme in die Risikoliste Risiken analysieren Festlegung der Eintrittswahrscheinlichkeit, der Auswirkungen, der erwarteten Tendenz und des Ursachenfeldes Priorisierung der vorhandenen Risiken unter Berücksichtigung der Gesamtrisikolage 29

Phasen des Risikomanagements (2/3) Maßnahmen planen Passende Maßnahmen definieren Festlegen der verantwortlichen Personen/Rollen Erfolgsfaktoren für Maßnahmen festlegen Maßnahmen durchführen Sammeln von Informationen/Daten zu den Veränderungen der Risiken und dem Erfolg der Maßnahmen Erstellen von Risikomeldungen für das Management 30

Phasen des Risikomanagements (3/3) Maßnahmen bewerten Bewertung der Veränderung von Risiken und des Erfolgs der angewendeten Maßnahmen Entscheidungsfindung zur weiteren Behandlung der Risiken und Anpassung der Maßnahmen Informationsverteilung zu den Risiken in Richtung Team und Vertragspartnern/Kunde Optimieren Maßnahmen zielgerichtet anpassen Hinweise/ Optimierungspotenziale für zukünftige Projekte erkennen 31

1. Motivation von Software- Engineering 32

Historie des SW-Engineering (1/4) Ende 60er Bedarf für Softwaretechnik neben der reinen Programmierung erstmals voll erkannt Vorher sind zahlreiche große Programmentwicklungen (möglich durch verbesserte Hardwareeigenschaften) gescheitert Arbeiten von Dijkstra 1968 (u.a. gegen Verwendung von GOTO) und Royce 1970 (Software-Lebenszyklus), Mitte 70er Top-Down-Entwurf, graphische Veranschaulichungen (Nassi-Shneiderman Diagramme) Top-Down-Entwurf für große Programme nicht ausreichend, zusätzlich Modularisierung erforderlich Entwicklung der Begriffe Abstrakter Datentyp, Datenkapselung und Information Hiding 33

Historie des SW-Engineering (2/4) Ende 70er Bedarf für präzise Definition der Anforderungen an ein Softwaresystem, Entstehen von Vorgehensmodellen, z. B. Structured Analysis Design Technique (SADT) 80er Jahre Vom Compiler zur Entwicklungsumgebung (Editor, Compiler, Linker, symbolischer Debugger, Source Code Control Systems) Weiterentwicklung der Modularisierung und der Datenkapselung zur objektorientierten Programmierung 90er Jahre Objektorientierte Programmierung nimmt zu (wieder ausgehend von der Implementierung) Neue Programmiersprache Java (ab Mitte 80er C++) Anwendungs-Rahmenwerke (Application Frameworks) zur Vereinfachung von Design und vor allem Programmierung 34

Historie des SW-Engineering (3/4) 90er Jahre Geeignete Analyse- und Entwurfsmethoden entstehen (Coad/Yourdon, Rumbaugh, Booch, Jacobson und andere) 1995 Vereinigung mehrerer Ansätze zunächst als Unified Method (UM) von Booch und Rumbaugh, dann kommt Jacobson hinzu (Use Cases). 3 Amigos definieren die Unified Modeling Language (UML) als Quasi-Standard. 1997 UML in der Version 1.1 bei der OMG (Object Management Group) zur Standardisierung eingereicht und angenommen UML ist jedoch keine Entwicklungsmethode (Phasenmodell), nur eine Beschreibungssprache 1999 Entwicklungsmethode: Unified Process (UP) und Rational Unified Process (RUP) (erste Version) 35

Historie des SW-Engineering (4/4) Heute Vorgehensweisen auf individuelle Projektanforderungen abgestimmt CASE-Methoden und Tools orientieren sich an der UML Aktueller Stand 2007: UML 2.1.1 Aufbauend auf Analyse und Design erzeugen Codegeneratoren Programmgerüste Haupttätigkeiten bei Softwareentwicklung sind Analyse und Design, vieles andere versucht man zu automatisieren (!?) 36

Warum scheitern SW-Projekte (kleine Auswahl) Die Software wurde wesentlich zu spät geliefert Die Software erfüllt nicht die Wünsche des Kunden Die Software läuft nicht auf den vereinbarten Rechnersystemen, sie ist zu langsam oder kommt mit dem Speicher nicht aus Die Software kann nicht erweitert werden oder mit anderer Software zusammenarbeiten 37

Antworten des Software-Engineering 1967: Prägung des Begriffs Software-Krise Lösungsansätze: Programmiersprachen: kontinuierliche Einführung von Abstraktion (Datentypen, Funktionen, Modulen, Klassen, Bibliotheken, Frameworks) Dokumentation: Einheitliche Notationen für Entwicklungsergebnisse (UML) Entwicklungsprozesse: Aufgabenbeschreibungen, wann was wie gemacht wird Vorgehensmodelle: Entwicklung passt sich an Bedürfnisse des Kunden an 38

Definitionsversuch Software-Engineering Zusammenfassend kann man Software-Engineering als die Wissenschaft der systematischen Entwicklung von Software, beginnend bei den Anforderungen bis zur Abnahme des fertigen Produkts und der anschließenden Wartungsphase definieren. Es werden etablierte Lösungsansätze für Teilaufgaben vorgeschlagen, die häufig kombiniert mit neuen Technologien, vor Ihrer Umsetzung auf ihre Anwendbarkeit geprüft werden. Das zentrale Mittel zur Dokumentation von Software-Engineering- Ergebnissen sind UML-Diagramme. 39

3. Vorgehensmodelle nur kurzer Einblick 40

Die Phasen der SW- Entwicklung Anforderungsanalyse Grobdesign Feindesign Implementierung Test und Integration Erhebung und Festlegung des WAS mit Rahmenbedingungen Klärung der Funktionalität und der Systemarchitektur durch erste Modelle Detaillierte Ausarbeitung der Komponenten, der Schnittstellen, Datenstrukturen, des WIE Ausprogrammierung der Programmiervorgaben in der Zielsprache Zusammenbau der Komponenten, Nachweis, dass Anforderungen erfüllt werden, Auslieferung 41

Wasserfallmodell Anforderungsanalyse Grobdesign Feindesign Implementierung Test und Integration Merkmale: Phasen werden von oben nach unten durchlaufen Vorteile: - Plan auch für Nichtexperten verständlich - einfache Meilensteinplanung - lange Zeit am häufigsten eingesetzt Nachteile: - Anforderungen müssen 100%-ig sein - späte Entwicklungsrisiken werden spät erkannt - Qualität des Design passt sich Zeitplan an Optimierung: es ist möglich, in die vorherige Phase zu springen 42

Prototypische Entwicklung Grobdesign Feindesign Anforderungsanalyse Implementierung Test und Integration Prototyp Anforderungsanalyse Grobdesign Feindesign Implementierung Test und Integration Merkmale: - potenzielle Probleme frühzeitig identifiziert, - Lösungsmöglichkeiten im Prototypen gefunden, daraus Vorgaben abgeleitet Vorteile: - frühzeitige Risikominimierung - schnelles erstes Projektergebnis Nachteile: - Anforderungen müssen fast 100%-tig sein - Prototyp (illegal) in die Entwicklung übernommen - Kunde erwartet schnell Endergebnis Optimierung: es ist möglich, in die vorherige Phase zu springen 43

Iterative Entwicklung Anforderungsanalyse Grobdesign Feindesign Implementierung Test und Integration Merkmale: - Erweiterung der Prototypidee; SW wird in Iterationen entwickelt - In jeder Iteration wird System weiter verfeinert - In ersten Iterationen Schwerpunkt auf Analyse und Machbarkeit; später auf Realisierung große Vorteile: - dynamische Reaktion auf Risiken - Teilergebnisse mit Kunden diskutierbar Nachteile im Detail: - schwierige Projektplanung - schwierige Vertragssituation - Kunde erwartet zu schnell Endergebnis - Kunde sieht Anforderungen als beliebig änderbar 44

Fertigstellung mit Iterationen Anforderungsanalyse Iterationen 1. 2. 3. 4. Grobdesign Feindesign Implementierung Test und Integration 0% Fertigstellungsgrad 100% 45

Iterativ Inkrementelle Entwicklung (State of the Art) Anforderungsanalyse Grobdesign Feindesign Implementierung Test und Integration Bsp.: vier Inkremente Merkmal: - Projekt in kleine Teilschritte zerlegt - pro Schritt neue Funktionalität (Inkrement) + Überarbeitung existierender Ergebnisse (Iteration) - n+1-ter Schritt kann Probleme des n- ten Schritts lösen Vorteile: - siehe iterativ - flexible Reaktion auf neue funktionale Anforderungen Nachteile: - siehe iterativ (etwas verstärkt) Optimierung/Anpassung: Anforderungsanalyse am Anfang intensiver durchführen 46