Informatik II Grundlagen der Softwaretechnik - ias.uni

Werbung
Grundlagen der Softwaretechnik
Info 2 - GdS
§ 1 Einführung in die Objektorientierung
Lernziele
– Verstehen, warum Softwareentwicklung benötigt wird
– Wissen, was unter objektorientierter Softwareentwicklung zu verstehen ist
– Die Unterschiede zur klassischen Softwareentwicklung verstehen
– Erklären können, warum Objektorientierung sinnvoll ist
– Wissen, welche objektorientierten Konzepte es gibt
– Erklären können, was eine Entwicklungsmethode ist
– Erklären können, wie sich die Phasen Analyse und Entwurf voneinander
unterscheiden
– Wissen, was die Unified Modeling Language ist
© 2015 IAS, Universität Stuttgart
16
1.1 Wozu braucht man Softwareentwicklung ?
Info 2 - GdS
§ 1 Einführung in die Objektorientierung
1.1
Wozu braucht man Softwareentwicklung?
1.2
Von der klassischen zur objektorientierten Softwareentwicklung
1.3
Objektorientierte Methoden
1.4
Objektorientierte Analyse
1.5
Objektorientierter Entwurf
1.6
Die Unified Modeling Language
1.7
Zusammenfassung
© 2015 IAS, Universität Stuttgart
17
1.1 Wozu braucht man Softwareentwicklung ?
Info 2 - GdS
Was ist Software ?
Definitionen
Software (engl., eigtl. »weiche Ware«), Abk. SW, Sammelbezeichnung für
Programme, die für den Betrieb von Rechensystemen zur
Verfügung stehen, einschl. der zugehörigen Dokumentation.
(Brockhaus Enzyklopädie)
Software, die zum Betrieb einer Datenverarbeitungsanlage erforderlichen
nichtapparativen Funktionsbestandteile.
(Fremdwörter-Duden)
Software: Computer programs, procedures, rules, and possibly associated
documentation and data pertaining to the operation of a computer
system.
(IEEE Standard Glossary of Software Engineering Terminology)
© 2015 IAS, Universität Stuttgart
18
1.1 Wozu braucht man Softwareentwicklung ?
Info 2 - GdS
Software aus unterschiedlichen Sichten (Live-Mitschrieb)
© 2015 IAS, Universität Stuttgart
19
1.1 Wozu braucht man Softwareentwicklung ?
Info 2 - GdS
Was ist GUTE Software ?
– Gute Software ist qualitativ hochwertig und wird den Bedürfnissen des
Anwenders gerecht.
Diskussion
Denken Sie an ein Programm, das Sie wirklich gerne anwenden.
– In welcher Hinsicht halten Sie es für ein qualitativ hochwertiges System?
– Gibt es Gründe, warum es nach den hier aufgestellten Aussagen kein
qualitativ hochwertiges System ist?
– Welche Punkte beeinflussen Ihre Einstellung dazu am meisten?
Alternativ:
Denken Sie an ein Programm, das zwar sehr erfolgreich ist, das Sie selbst
aber ungern anwenden.
Stellen Sie hierzu die gleichen Fragen.
© 2015 IAS, Universität Stuttgart
20
1.1 Wozu braucht man Softwareentwicklung ?
Info 2 - GdS
Gute Software hat u.a. folgende Eigenschaften (Live-Mitschrieb):
Vorschlag: Einteilung in 3 Kategorien:
–
Funktionalität
nützlich und nutzbar: Gute Software erleichtert und verbessert das
Leben der Anwender
–
Qualität
zuverlässig: Gute Software leistet das Geforderte, hat keine Ausfälle
verfügbar: Lauffähigkeit auf verfügbarer Hardware & Betriebssystem
sicher: Keine verbotenen Effekte, Verhinderung von Gefahren
–
Wirtschaftlichkeit
flexibel: Es ist wichtig, Software später noch verändern zu können
(Wartung)
kostengünstig: in Anschaffung und Unterhalt
ergonomisch: leichte Bedienbarkeit, leichte Erlernbarkeit
© 2015 IAS, Universität Stuttgart
21
1.1 Wozu braucht man Softwareentwicklung ?
Info 2 - GdS
Warum braucht man Softwareentwicklung?
Fundamentales Problem bei der Erstellung von Software:
Es gibt eine Grenze, wie viel ein Mensch zu einer gegebenen Zeit
verstehen kann.
 Sehr kleine Systeme können unter Umständen mit der SHIT-Methode
bewältigt werden.
SHIT= Software vom Hirn ins Terminal
Software zeichnet sich im Allgemeinen durch Komplexität aus:
– Technische Komplexität:
Abhängigkeiten sind für eine Einzelperson nicht überschaubar.
Software ist für die Dauer ihres Lebenszyklus Änderungen unterworfen.
 Entfernung vom ursprünglichen Konzept
– Soziale Komplexität:
Vielfach Einbettung von SW in soziales Umfeld
Entwicklung von Software im Team
Expertenwissen
Informationsaustausch
 Methoden & Konzepte für die Entwicklung von Software erforderlich
© 2015 IAS, Universität Stuttgart
22
1.1 Wozu braucht man Softwareentwicklung ?
Info 2 - GdS
Wozu braucht man Softwareentwicklung ?
Anforderungsbeschreibung
Implementierung
© 2015 IAS, Universität Stuttgart
Systemanalyse
Abnahme
Entwurf
Wunsch des Benutzers
23
1.1 Wozu braucht man Softwareentwicklung ?
Info 2 - GdS
Beispiel für fehlerhafte Software
Mars Global Surveyors: Raumsonde der NASA zur Erforschung des
Planeten Mars und seiner Umlaufbahn.
– Im November 2006 routinemäßige Anweisung zur Neuausrichtung
der Solarpaneele
– Eingabe fehlerhafter Daten zur Sondenausrichtung (Eingabe falscher
Speicheradressen)
– Drehung der Sonde, sodass einer der Akkus direkt dem Sonnenlicht
ausgesetzt war
– Erwärmung der Bordelektronik, die als Überladung interpretiert wurde
– Automatische Abschaltung der Aufladung durch Solarzellen
– Innerhalb weniger Stunde vollständige Entladung der Akkumulatoren
– Seitdem ist der Kontakt zur Sonde abgebrochen
Ursache:
– Eingabe fehlerhafter Daten war möglich
– Ausgelöste Software-Routineprozeduren
zur Problembehebung waren nicht effektiv
© 2015 IAS, Universität Stuttgart
24
1.1 Wozu braucht man Softwareentwicklung ?
Info 2 - GdS
Vergleich mit der Herstellung anderer industrieller Güter
– Software ist immateriell
 nicht greifbar
–
Software wird nicht durch physikalische Gesetze begrenzt
–
Herstellung vieler Exemplare ist trivial
–
Software unterliegt keinem Verschleiß
–
Software altert, für Software gibt es keine Ersatzteile
 Softwareklau
Verschärfung der Probleme
– Die Komplexität von Programmen nimmt ständig zu
– Umfang und Lebensdauer nehmen zu
– Neue Anwendungen werden für den Rechnereinsatz erschlossen
– Die Softwareentwicklung ist integraler Bestandteil der Systementwicklung
– Immer mehr Entwickler sind mit der Pflege von Altsystemen beschäftigt
2/3 aller Softwarekosten
© 2015 IAS, Universität Stuttgart
25
1.1 Wozu braucht man Softwareentwicklung ?
Info 2 - GdS
Beispiel: Zunehmende Qualitätsanforderungen
– 50% der Ausfälle im industriellen Sektor auf Grund von Software-Fehlern
– Entwicklung der gefundenen Defekte pro 1000 Zeilen Quellcode
20%
0,1%-Defektniveau bedeutet:
– pro Jahr 20.000 fehlerhafte Medikamente
– pro Woche 500 Fehler bei Operationen
– pro Tag 18 Flugzeugabstürze
0,1%
1977
– pro Stunde 22000 Schecks falsch gebucht
2007
Beispiel: Zunehmende Entwicklungsdauer
Jahre
Entwicklungszeit
7,5
6
5
4
3
2
1
4,2
4,5
2,3
1975
1985
2000
Technische Programme
© 2015 IAS, Universität Stuttgart
0,8
1
1975
1985
2000
Kommerzielle Programme
26
1.1 Wozu braucht man Softwareentwicklung ?
Info 2 - GdS
Was ist Softwaretechnik?
Definition :
Softwaretechnik ist der Einsatz qualifizierter Methoden, Werkzeuge und Entwicklungsprozesse zum Erstellen und Betreiben von Software mit dem Ziel,
• einerseits die Softwarekosten bei der Entwicklung, Wartung und
Erweiterung von Programmsystemen zu senken,
• andererseits zum Erreichen einer höheren Systemqualität
– Systematische Entwicklung von Software erfolgt in der Regel nach einem
vorgegebenen Ablauf
 Entwicklungsprozess
– Festlegung von:
Arbeitsschritten
Zu erstellenden Dokumenten
Zusammenarbeit zwischen unterschiedlichen Entwicklern
Reihenfolge der Bearbeitung
© 2015 IAS, Universität Stuttgart
27
1.1 Wozu braucht man Softwareentwicklung ?
Info 2 - GdS
Das Wasserfallmodell des Entwicklungsprozesses
Problem
Was soll entwickelt werden ?
Analyse
Entwurf
Wie soll es ablaufen?
Wie soll es strukturiert werden ?
Implementierung
Wurde richtig programmiert ?
Test
Betrieb
© 2015 IAS, Universität Stuttgart
28
1.1 Wozu braucht man Softwareentwicklung ?
Info 2 - GdS
Wie unterstützt Softwaretechnik die Erstellung von (guter)
Software?
– Durch Prozesse für eine strukturierte Vorgehensweise bei der Entwicklung
Zuerst „Was“ und dann „Wie“
– Durch Methoden und Konzepte zur Abstraktion der Problemstellung
Modell ist Abbild der Wirklichkeit
Aufteilung in überschaubare Teilprobleme
– Durch Werkzeuge zur Entwicklerunterstützung
Beherrschung der Komplexität
Was kann Softwaretechnik nicht?
– Systematische Softwareentwicklung ergibt nicht automatisch gute Software
– Es werden lediglich Methoden und Abläufe vorgegeben, die die Erstellung
von guter Software unterstützen
Video: Warum braucht man Softwaretechnik?
© 2015 IAS, Universität Stuttgart
29
§ 1 Einführung in die Objektorientierung
Info 2 - GdS
Frage zu 1.1
Was gehört alles zu Software?
Antwort
– Das Softwareprodukt selbst
– Lastenheft
–
Systembeschreibung
– Prototyp
–
Konfigurationsverwaltung
– Entwurfsdokumentation
–
Testdokumentation
– usw.
© 2015 IAS, Universität Stuttgart
30
1.2 Von der klassischen zur objektorientierten Softwareentwicklung
Info 2 - GdS
§ 1 Einführung in die Objektorientierung
1.1
Wozu braucht man Softwareentwicklung?
1.2
Von der klassischen zur objektorientierten Softwareentwicklung
1.3
Objektorientierte Methoden
1.4
Objektorientierte Analyse
1.5
Objektorientierter Entwurf
1.6
Die Unified Modeling Language
1.7
Zusammenfassung
© 2015 IAS, Universität Stuttgart
31
1.2 Von der klassischen zur objektorientierten Softwareentwicklung
Info 2 - GdS
Methoden der Softwareentwicklung
Aufgabe: Komplexität des Gesamtsystems beherrschen
Prinzip: Zerlegung (Dekomposition)
Zerlegung des Problems in kleinere, handhabbare Teilbereiche,
die relativ isoliert voneinander behandelt werden können
Eingrenzung des
Problembereichs
3
Teilproblem 2
Teilproblem 1
4
5
Verschiedene Ansätze - Zerlegung nach unterschiedlichen Gesichtspunkten
–
funktionsorientierte Zerlegung
–
datenorientierte Zerlegung
–
objektorientierte Zerlegung
© 2015 IAS, Universität Stuttgart
32
1.2 Von der klassischen zur objektorientierten Softwareentwicklung
Info 2 - GdS
Beispiel: Warenautomat (1)
Anforderungen an die zu erstellende Software:
1. Kunde wählt Waren
Der Kunde wählt über ein Eingabefeld einzelne
Waren und die gewünschte Menge aus.
Auf einer Anzeige wird ihm der Preis für die gewählte
Menge der Ware und die Gesamtsumme angezeigt.
Kunde kann Auswahl korrigieren
2. Kunde signalisiert, dass er mit der Auswahl zu Ende ist
Betätigt der Kunde den Auswahl-bestätigen-Knopf, zeigt ihm der
Automat den zu zahlenden Betrag an und aktiviert die Geldeingabe.
3. Kunde gibt Geld ein und erhält Waren
Der Kunde gibt das Geld in Form von Münzen oder Scheinen ein.
Wenn der notwendige Betrag erreicht oder überschritten ist, sperrt der
Automat die Geldeingabe und gibt die Waren in der Warenausgabe aus.
Anschließend gibt der Automat, falls erforderlich, das Wechselgeld aus.
© 2015 IAS, Universität Stuttgart
33
1.2 Von der klassischen zur objektorientierten Softwareentwicklung
Info 2 - GdS
Beispiel: Warenautomat (2)
4. Betreiber definiert die Preise der Waren
Der Betreiber gibt über eine Tastatur die Warenart und den
Verkaufspreis ein.
Existiert die Warenart schon, so wird der Preis geändert, sonst wird die
neue Warenart mit Preis aufgenommen.
5. Betreiber füllt Waren auf
Nachdem der Betreiber den Automaten mit Waren neu bestückt hat, gibt
er über die Tastatur Warenart und Menge der hinzugefügten Waren ein.
6. Automat erzeugt Tagesbericht
Um Mitternacht erzeugt der Automat einen Bericht, welcher vom
Betreiber online abgefragt werden kann. Der Bericht enthält Zeitpunkt
und Gesamtpreis jedes Verkaufs. Und für jeden Verkauf die verkaufte
Ware mit Warenart, Menge und Preis.
© 2015 IAS, Universität Stuttgart
34
1.2 Von der klassischen zur objektorientierten Softwareentwicklung
Info 2 - GdS
Funktionsorientierte Zerlegung
–
Historisch älteste Zerlegungsmethode
–
Beschreibung der Funktionen und Aktionen innerhalb der Anwendung
–
Abstraktion (Modellbildung) durch Betrachtung der zu erfüllenden Aufgabe
–
Ergebnis ist Top-Down-Zerlegung der Funktionen des geplanten Systems
Beispiel: Warenautomat (Teilausschnitt)
Warenautomat
Warenauswahl
Eingabe
Ware, Anzahl
Anzeige
Gesamtbetrag
Merke Verkauf
Nachteil:
Geldeingabe
Geldeingabe
aktiv
Münzeingabe
Ausgabe
Geldeingabe
sperren
Warenausgabe
Geldausgabe
Scheineingabe
Datenstrukturen stehen im Hintergrund
© 2015 IAS, Universität Stuttgart
35
1.2 Von der klassischen zur objektorientierten Softwareentwicklung
Info 2 - GdS
Datenorientierte Zerlegung
– Betrachtung der Datenstrukturen und -transformationen der Anwendung
– System wird nach Daten zerlegt, die in dem System gespeichert und
verarbeitet werden müssen.
– Bsp.: Entity-Relationship-Modell
Beispiel: Warenautomat (Teilausschnitt)
Daten Warenautomat
Warenbestand
Warenart
Anzahl
Preis
Nachteil:
Gewählte Waren
Warenart
Preis
Verkaufsbericht
Datum GesamtUhrzeit
preis
Menge
Verkaufsposition
Datum
Uhrzeit
Menge
Warenart
Preis
Funktionen stehen im Hintergrund
© 2015 IAS, Universität Stuttgart
36
1.2 Von der klassischen zur objektorientierten Softwareentwicklung
Info 2 - GdS
Funktionsorientierte/Datenorientierte Zerlegung
– Analyse der Aufgabenstellung nach zwei gegensätzlichen Gesichtspunkten
– Ergänzen sich gegenseitig
– Funktions- und Datenorientierte Zerlegung gehören zu den so genannten
Strukturierten Methoden
= Strukturierte Entwicklung
– Strukturierte Analyse (SA)
Datenflussdiagramme (funktionsorientiert)
Entity-Relationship-Diagramme
(datenorientiert)
1.1
Eingabe
Ware &
Anzahl
– Strukturierter Entwurf (SD/MD)
Strukturdiagramme für Funktionsaufruf
Module im Sinne von Datenabstraktion
1.2
Anzeige
Gesamtbetrag
Warenauswahl
Gewählte
Waren
Nächste Eingabe Ware
Eing.Anzahl
© 2015 IAS, Universität Stuttgart
Gewählte
Waren
...
Eing. speichern
37
1.2 Von der klassischen zur objektorientierten Softwareentwicklung
Info 2 - GdS
Nachteile der strukturierten Entwicklung
– Entspricht nicht der menschlichen Denkweise
– Geringe Abstraktionstiefe
– Strukturbruch zwischen Entwicklungsphasen durch unterschiedliche
Darstellungen
Warenauswahl
1.1
Eingabe
Ware &
Anzahl
Gewählte
Waren
Gewählte
Waren
1.2
Anzeige
Gesamtbetrag
Nächste Eingabe Ware
Eing.Anzahl
...
Eing. speichern
– Umfangreiche Modelle sind schwierig zu lesen und zu ändern
– Produkte (Dokumentation, Modelle, Programme) sind weniger flexibel bei
Änderungen und Erweiterungen
– Rein funktionaler Entwurf führt zu schlecht wartbaren Programmen
– Keine Unterstützung der Wiederverwendung
© 2015 IAS, Universität Stuttgart
38
1.2 Von der klassischen zur objektorientierten Softwareentwicklung
Info 2 - GdS
Objektorientierte Entwicklung
Definition :
Bei der objektorientierten Softwareentwicklung werden die in der
realen Welt vorkommenden Gegenstände und Begriffe als Objekte
betrachtet.
Realität
Modell
© 2015 IAS, Universität Stuttgart
Fahrrad
besitzt
Mensch
liest
Buch
39
1.2 Von der klassischen zur objektorientierten Softwareentwicklung
Info 2 - GdS
Beispiel für objektorientierte Betrachtung (Live-Mitschrieb)
Züge
Gleise
Fortbewegung
Abstraktion
Steuerungsobjekte
Realität
Gleisabschnitt
Status
Belegen
Freigeben
© 2015 IAS, Universität Stuttgart
< Befindet sich auf
Zug
Nr.
Anfahren
Bremsen
40
1.2 Von der klassischen zur objektorientierten Softwareentwicklung
Info 2 - GdS
Merkmale der objektorientierten Entwicklung
– Nicht nur Daten und Funktionen werden beschrieben, sondern auch ihr
Zusammenhang sowie Beziehungen zu ihrer Umwelt (andere Objekte)
– Ergebnisse der Phasen Analyse, Entwurf und Implementierung werden
objektorientiert in derselben Notation erstellt
– Verwendung derselben Konzepte in den Entwicklungsphasen:
Analyse
- Object-Oriented Analysis
Entwurf
- Object-Oriented Design
Implementierung - Object-Oriented Programming
(OOA)
(OOD)
(OOP)
Softwareentwicklung “aus einem Guss”
© 2015 IAS, Universität Stuttgart
41
1.2 Von der klassischen zur objektorientierten Softwareentwicklung
Info 2 - GdS
Beispiel: Warenautomat
 funktionsorientierte Zerlegung
 datenorientierte Zerlegung
–
objektorientierte Zerlegung
Funktionen und Daten werden zusammengefasst
 Objekt
Objektname:
Attribute des Objekts Ware:
Ware
–
–
–
Methoden des Objekts Ware: –
–
© 2015 IAS, Universität Stuttgart
Warenname
Vorher Daten
Preis
Anzahl verfügbare Einheiten
Was ist Dein Preis
Vorher Funktionen
Berechne neue Anzahl
(aufgrund Anzahl verkaufte Einheiten)
42
1.2 Von der klassischen zur objektorientierten Softwareentwicklung
Info 2 - GdS
Beispiel: Objekte des Warenautomats
< verkauft
Objekt Ware
Warenname
Preis
Anzahl verfügb. Einh.
Objekt Automat
Warenbestand
Verkäufe
Gib Preis()
Berechne neue Anzahl()
Gib Waren aus()
Fülle Waren auf()
Gib Rückgeld()
Drucke
Verkaufsbericht()
< besteht aus
< hat
Objekt Verkauf
Zeitpunkt
Gesamtpreis
Warenliste
Füge Ware hinzu()
Bezahlen()
© 2015 IAS, Universität Stuttgart
43
1.2 Von der klassischen zur objektorientierten Softwareentwicklung
Info 2 - GdS
Vorteile der objektorientierten Softwareentwicklung
– Strukturen, Zusammenhänge und Abhängigkeiten der realen Welt werden
besser erfasst
Visuelle Modellierung
Objekte, Klassen und Pakete
– Bessere Durchgängigkeit, evolutionäre Entwicklung wird unterstützt
Dieselben Konzepte und Notationen in allen Phasen
Kein Strukturbruch zwischen Analyse und Entwurf
– Vergleichsweise einfache Integration von Änderungen
– Verkapselung in Klassen und Geheimnisprinzip unterstützen die
Wartbarkeit
– Vererbungskonzept unterstützt Erweiterbarkeit
– Bessere Wiederverwendbarkeit der Arbeitsergebnisse
© 2015 IAS, Universität Stuttgart
44
1.2 Von der klassischen zur objektorientierten Softwareentwicklung
Info 2 - GdS
Wie kam es zu objektorientierten Entwicklungsmethoden?
– Idee der Objektorientierung ca. 30 Jahre alt
– Zu Beginn objektorientierte Programmiersprachen (OOP)
Smalltalk-80
C++
Java
Palo Alto Research Center der Firma Xerox
ANSI / ISO - Standard
Sun Microsystems / heute: Oracle
Objektorientierte Analyse und Entwurf (OOA und OOD)
– Erste objektorientierte Analyse- und Entwurfsmethoden Anfang 90er Jahre
– Zu Beginn: viele unterschiedliche Methoden und Notationen
z.B. Booch, Yourdon, Jacobson, Rumbaugh, Shlaer, Mellor
– Methoden auf bestimmte Anwendungsbereiche spezialisiert
– Heute: Standardisierung der Notation (Booch, Jacobson, Rumbaugh)
Unified Modelling Language (UML)
© 2015 IAS, Universität Stuttgart
45
1.2 Von der klassischen zur objektorientierten Softwareentwicklung
Info 2 - GdS
Historie der Softwareentwicklungsmethoden
Agentenorientiert
Komponentenbasiert
Objektorientiert
Strukturiert / Funktionsorientiert
Programmieren als Kunst
Basteln
1950
1960
Systematisches Neuentwickeln
1970
© 2015 IAS, Universität Stuttgart
1980
1990
Konfigurieren
2000
2010
Selbstorganisation
2020
46
1.2 Von der klassischen zur objektorientierten Softwareentwicklung
Info 2 - GdS
Zusammenfassung: Unterschiede zwischen strukturierter
und objektorientierte Entwicklung
Strukturierte Entwicklung
Objektorientierte Entwicklung
Orientierung
Mehr technisch orientiert
Entspricht menschlicher Denkweise
Methodenansatz
Trennung von Daten und Operationen
Einheiten aus Daten und
Operationen (Klassen)
Abstraktionsmöglichkeiten
Modellierung auf den Lösungsbereich
bezogen
Modellierung stärker auf den
Problembereich bezogen
Methodische
Durchgängigkeit
Strukturbruch zwischen
Entwicklungsphasen durch
unterschiedliche Darstellungen
Die selben Konzepte in allen
Entwicklungsphasen
Entwicklungsunterstützung
Geringere Flexibilität bei Änderungen
und Erweiterungen
Evolutionäre (schrittweise) Entwicklung
wird unterstützt
Stabilität
Bei Anpassungen erhebliche
Änderungen des Programmgefüges
notwendig
Änderungen eher lokal begrenzt
durch Kapselung von Daten und
Operationen
© 2015 IAS, Universität Stuttgart
47
§ 1 Einführung in die Objektorientierung
Info 2 - GdS
Frage zu 1.2
Wie unterscheiden sich die Betrachtungsweisen einer Problemstellung
bei der strukturierten und der objektorientierten Entwicklung?
Antwort
Strukturierte Objektorientierte
Entwicklung
Entwicklung

Betrachtung real vorkommender
Gegenstände und Begriffe
Problem wird nach den Gesichtspunkten der
Funktionalität bzw. der benötigten Daten
zerlegt
Nicht nur Daten und Funktionen, sondern auch
ihr Zusammenhang sowie Beziehungen zur
Umwelt werden berücksichtigt
© 2015 IAS, Universität Stuttgart


48
1.3 Objektorientierte Methoden
Info 2 - GdS
§ 1 Einführung in die Objektorientierung
1.1
Wozu braucht man Softwareentwicklung?
1.2
Von der klassischen zur objektorientierten Softwareentwicklung
1.3
Objektorientierte Methoden
1.4
Objektorientierte Analyse
1.5
Objektorientierter Entwurf
1.6
Die Unified Modeling Language
1.7
Zusammenfassung
© 2015 IAS, Universität Stuttgart
49
1.3 Objektorientierte Methoden
Info 2 - GdS
Was ist eine Methode?
Definition :
Eine Methode beschreibt die systematische Vorgehensweise zur
Erreichung eines bestimmten Ziels (griech.: methodos).
[H. Balzert]
Eine Methode besteht aus:
Methode
Konzepte
z.B. Klasse,
Vererbung
Methodische
Vorgehensweise
Notation
Grafik
Text
Methodische
Schritte
Methodische
Regeln
Beispiele
UML
Konkrete
Beispiele
© 2015 IAS, Universität Stuttgart
Abstrakte Beispiele (Muster)
50
1.3 Objektorientierte Methoden
Info 2 - GdS
Konzepte
– Grundkonzepte
In allen Phasen vorhanden (Analyse, Entwurf, Implementierung)
 OO- Programmiersprache unterstützt alle Grundkonzepte
– Weitere Konzepte für Analyse und Entwurf
Modellierung zusätzlicher Aspekte eines Systems
OO-Grundkonzepte
Objekt
Attribut
Botschaft
Klasse
Operation
Vererbung
Assoziation
Anwendungsfall
Paket
Szenario
Zustandsautomat
OOA/D-Konzepte
© 2015 IAS, Universität Stuttgart
51
1.3 Objektorientierte Methoden
Info 2 - GdS
Notation
– Text
Anforderungen:
A1: Das System soll ....
Beispiel:
Pflichtenheft
A2: Außerdem muss es...
A3: Und schließlich soll es...
– Grafik
Beispiel:
Klassendiagramm
Beispiel:
Zustandsautomat
– Dokumentationsstandards
Festlegung, wie Text- und Grafikelemente verwendet werden
© 2015 IAS, Universität Stuttgart
52
1.3 Objektorientierte Methoden
Info 2 - GdS
Methodische Vorgehensweise
Problem
Analyse
OOAModell
Entwurf
OODModell
Implementierung
– Methodische Schritte
Vorgegebene Reihenfolge von Tätigkeiten bei Analyse und Entwurf
Unterschiedliche Anzahl vorgegebener Schritte
 Für unterschiedliche Anwendungsbereiche
– Methodische Regeln
Große Anzahl vorhanden (implizit oder explizit)
Anwendung erfolgt situationsspezifisch
Keine feste Reihenfolge festgelegt
– Beispiele
Helfen auf vorhandenes Wissen zurückzugreifen
 Konkrete Beispiele
 Abstrakte Muster (Pattern)
© 2015 IAS, Universität Stuttgart
53
§ 1 Einführung in die Objektorientierung
Info 2 - GdS
Frage zu 1.3
Wodurch wird bei der objektorientierten Softwareentwicklung die gute
Durchgängigkeit von der Analyse bis zur Implementierung erreicht ?
Antwort

 Verwendung derselben Grundkonzepte in allen Entwicklungsphasen
f  Verwendung grafischer Notation
f  Weil zuerst ein Pflichtenheft erstellt wird

 Verwendung der gleichen Notation in Analyse und Entwurf
f  Durch vorgegebene Reihenfolge der Tätigkeiten bei Analyse und Entwurf
© 2015 IAS, Universität Stuttgart
54
1.4 Objektorientierte Analyse
Info 2 - GdS
§ 1 Einführung in die Objektorientierung
1.1
Wozu braucht man Softwareentwicklung?
1.2
Von der klassischen zur objektorientierten Softwareentwicklung
1.3
Objektorientierte Methoden
1.4
Objektorientierte Analyse
1.5
Objektorientierter Entwurf
1.6
Die Unified Modeling Language
1.7
Zusammenfassung
© 2015 IAS, Universität Stuttgart
55
1.4 Objektorientierte Analyse
Info 2 - GdS
Was versteht man unter Analyse ?
Definition :
Das Ziel der Analyse ist es, die Wünsche und Anforderungen eines
Auftraggebers an ein neues Softwaresystem zu ermitteln und zu
beschreiben.
[H. Balzert]
– Erstellen eines Modells der Problemstellung
– Modell soll konsistent, vollständig, eindeutig und realisierbar sein
– Aspekte der Implementierung werden bewusst ausgeklammert
(Annahme über “perfekte Technologie”)
– Festlegen was das System tun soll, aber noch nicht wie es realisiert
werden soll
© 2015 IAS, Universität Stuttgart
56
1.4 Objektorientierte Analyse
Info 2 - GdS
Probleme bei der Analyse
– Anforderungen des Auftraggebers sind in der Regel
unklar
widersprüchlich
fallorientiert
– Auftraggeber hat keine vollständige Vorstellung des zukünftigen Systems
 Mögliche Lösung: Prototyp
– Der Systemanalytiker muss sich dem Auftraggeber verständlich machen,
nicht umgekehrt!
– Ziel: Verstehen des Problems und Beschreibung in einem OOA-Modell
Objektorientierte Analyse
– Ausgangspunkt der OOA sind Objekte, die in der realen Welt existieren
Dinge, Personen, Begriffe, Ereignisse, ...
Beispiele:
Motor, Kunde, Auftrag, Bezahlung
– Darstellung der Objekte und ihrer Beziehungen untereinander
– OOA - Modell beschreibt Struktur und Semantik des Problems
© 2015 IAS, Universität Stuttgart
57
1.4 Objektorientierte Analyse
Info 2 - GdS
Produkte in der Analysephase
– Pflichtenheft
Beschreibung des Leistungsumfanges
– OOA-Modell
Beschreibung der fachlichen Lösung (Fachkonzept)
– Prototyp der Benutzungsoberfläche
Visualisierung des Fachkonzepts
Pflichtenheft
– Einstiegsdokument in das Projekt
– Textuelle Beschreibung dessen, was das zu realisierende System leisten
soll
– Beschreibt das System aus Sicht des Auftraggebers
– Weniger detailliert als OOA-Modell
© 2015 IAS, Universität Stuttgart
58
1.4 Objektorientierte Analyse
Info 2 - GdS
OOA-Modell
– Fachliche Lösung des zu realisierenden Systems
– Umsetzung der Anforderungen aus dem Pflichtenheft
– Modellierung mit grafischer Notation
Das OOA-Modell besteht aus ...
beschreibt Struktur des Systems
– statischem Modell
Benötigte Klassen und ihre Eigenschaften
Beziehungen zwischen Klassen des Modells
Vererbungsstruktur
– dynamischem Modell
beschreibt Verhalten des Systems
Aufgaben und Funktionsabläufe
Kommunikation zwischen Objekten
© 2015 IAS, Universität Stuttgart
59
1.4 Objektorientierte Analyse
Info 2 - GdS
OOA-Modell - Beispiel: Verwaltung von studentischen Arbeiten
Statisches Modell
Dynamisches Modell
Person
:Studentische_Arbeit
Name
Telefon
Email
:Student
:Professor
anmelden Student()
erfassen()
Professor
Student
Titel
Fachgebiet
Matrikelnr.
Studiengang
erfassen()
Betreuer
Diplomand
abschliessen()
set
Abschluss()
Studentische_Arbeit
Lfd.Nr.
Thema
Abschluss
anmelden Student()
abschließen()
© 2015 IAS, Universität Stuttgart
60
1.4 Objektorientierte Analyse
Info 2 - GdS
Prototyp der Benutzungsoberfläche
– Ablauffähiges Programm
– Besteht aus Fenstern, Dialogen, Menüs usw.
– Enthält keine Daten oder Funktionalität
– Bildet Attribute des OOA-Modells auf Programmoberfläche ab
– Dient zur Kommunikation und Diskussion mit Fachexperten und Benutzern
Prototyp - Beispiel:
Verwaltung studentischer
Arbeiten
Neu Student
Name
Vorname
Matrikelnr.
Nachname
Studiengang
Arbeitstitel
Telefon
Email
OK
© 2015 IAS, Universität Stuttgart
Abbrechen
Übernehmen
Liste ...
61
1.4 Objektorientierte Analyse
Info 2 - GdS
Erstellung des OOA-Modells
– Systemanalytiker hat die Aufgabe, den Auftraggeber zu verstehen sowie
die Anforderungen zu präzisieren und zu überprüfen
– Diskussion in einem Team aus Systemanalytiker, Fachexperten und
zukünftigen Benutzern (ca. 2-5 Personen)
– OOA-Modell erstellen
– Prototyp wird aus OOA-Modell abgeleitet
Bei Bedarf mehrere Iterationen
Diskussion
OOA-Modell
Prototyp
Video: Anforderungen ermitteln in der Analysephase
© 2015 IAS, Universität Stuttgart
62
§ 1 Einführung in die Objektorientierung
Info 2 - GdS
Frage zu 1.4
Warum ist es wichtig, in der Analyse von allen Implementierungsdetails
zu abstrahieren?
Antwort
f  Weil Implementierungsdetails im Prototyp beschrieben werden
 Gefahr, dass OOA-Modell auf eine spezielle Umgebung abgestimmt ist

f  Implementierungsdetails können mit objektorientierten Konzepten nicht
dargestellt werden
 Lösung wird zu stark von der verwendeten Technologie eingeschränkt

 Weil dadurch das Verständnis des Problems gefördert wird

© 2015 IAS, Universität Stuttgart
63
1.5 Objektorientierter Entwurf
Info 2 - GdS
§ 1 Einführung in die Objektorientierung
1.1
Wozu braucht man Softwareentwicklung?
1.2
Von der klassischen zur objektorientierten Softwareentwicklung
1.3
Objektorientierte Methoden
1.4
Objektorientierte Analyse
1.5
Objektorientierter Entwurf
1.6
Die Unified Modeling Language
1.7
Zusammenfassung
© 2015 IAS, Universität Stuttgart
64
1.5 Objektorientierter Entwurf
Info 2 - GdS
Was versteht man unter Entwurf?
Definition :
Die Aufgabe des Entwurfs ist es, die in der Analysephase spezifizierte
Anwendung auf einer Plattform unter den geforderten technischen
Randbedingungen zu realisieren.
[H. Balzert]
– Beschreibung des Systems auf höherer Abstraktionsebene als der
Programmcode
– Erstellung des OOD-Modells
– Stark mit der Implementierung verknüpft
– Festlegen wie das System realisiert werden soll
© 2015 IAS, Universität Stuttgart
65
1.5 Objektorientierter Entwurf
Info 2 - GdS
OOD-Modell
– OOD-Modell entsteht aus OOA-Modell durch Verfeinerung und Ergänzung
– OOD-Modell soll ein Abbild des späteren Programms sein
– Jede Klasse des OOD-Modells kann direkt in einer OOProgrammiersprache implementiert werden
 Verwendung der gleichen Namen wie im Programm
Das OOD-Modell besteht wie das OOA-Modell aus...
– statischem Modell
beschreibt die Architektur des Systems
enthält alle Klassen des Programms
Pakete zur Modellierung von Teilsystemen
– dynamischem Modell
Beschreibung der Kommunikation zwischen den Objekten
© 2015 IAS, Universität Stuttgart
66
1.5 Objektorientierter Entwurf
Info 2 - GdS
Entwurfsziele beim objektorientierten Entwurf
– Berücksichtigung bestimmter Entwurfsziele bei der Erstellung des OODModells
Beispiel:
– Entwurfsziel:
Trennung von Fachkonzept, Benutzungsoberfläche und Datenhaltung
– Realisierung durch:
Drei-Schichten-Architektur
– Einfluss durch:
verwendetes GUI (Graphical User Interface)
verwendete Form der Datenhaltung
© 2015 IAS, Universität Stuttgart
67
1.5 Objektorientierter Entwurf
Info 2 - GdS
Zusammenhang zwischen OOA und OOD
– Ausgangspunkt des OOD-Modells ist OOA-Modell
– Verfeinerung und Erweiterung, so dass Abbildung in Programm möglich ist
– Gleiche Konzepte, gleiche Notation
– OOD-Modell besteht auch aus statischem und dynamischem Modell
– Dynamisches OOD-Modell besonders wichtig, da es komplexe
Kommunikationsbeziehungen übersichtlich darstellt, die anhand des
Programmcodes nur schwer nachvollziehbar sind
© 2015 IAS, Universität Stuttgart
68
1.5 Objektorientierter Entwurf
Info 2 - GdS
Abgrenzung von Analyse und Entwurf
Analyse
OOA-Modell
Pflichtenheft
a/b
Prototy
p
OK
Entwurf
OOD-Modell
Fachkonzept
Relat.
DB
Datenhaltung
OO
DB
Benutzungsoberfläche
Klassenbibliotheken
Netzverteilung
C++ bzw.
Java-Programme
© 2015 IAS, Universität Stuttgart
69
§ 1 Einführung in die Objektorientierung
Info 2 - GdS
Frage zu 1.5
Warum ist es sinnvoll, die fachliche Funktionalität einer Anwendung,
deren Benutzungsschnittstelle und die Datenhaltung strikt zu trennen?
Antwort
Gründe für Trennung:
– Bessere Änderbarkeit und Erweiterbarkeit
– Oft betreffen Änderungen nur die Benutzungsoberfläche oder nur die
Datenhaltung
© 2015 IAS, Universität Stuttgart
70
1.6 Die Unified Modeling Language
Info 2 - GdS
§ 1 Einführung in die Objektorientierung
1.1
Wozu braucht man Softwareentwicklung?
1.2
Von der klassischen zur objektorientierten Softwareentwicklung
1.3
Objektorientierte Methoden
1.4
Objektorientierte Analyse
1.5
Objektorientierter Entwurf
1.6
Die Unified Modeling Language
1.7
Zusammenfassung
© 2015 IAS, Universität Stuttgart
71
1.6 Die Unified Modeling Language
Info 2 - GdS
Was ist die UML (Unified Modeling Language)?
– Standardisierte Modellierungssprache zur Beschreibung
von objektorientierter Analyse und Entwurf
– (Überwiegend) grafische Notation
– Abbildungen und Diagramme zur Darstellung der unterschiedlichen
Modelle, die während eines Entwicklungsprozesses entstehen
– Mittel zur Dokumentation und Kommunikation zwischen Entwicklern
– Für Modellierung statischer und dynamischer Aspekte
– Nicht fest mit einem bestimmten Entwicklungsprozess verknüpft
Warum eine vereinheitlichte Modellierungssprache?
– Anforderungen an eine Modellierungssprache
Ausdrucksstärke, Anwendbarkeit, Eindeutigkeit, Toolunterstützung
– Vorteile einer einheitlichen Modellierungssprache
Bessere Einarbeitung neuer Mitarbeiter
Bessere Lesbarkeit der Dokumentation
© 2015 IAS, Universität Stuttgart
72
1.6 Die Unified Modeling Language
Info 2 - GdS
Historie der UML
UML 2.4.1
2011
UML 2.2
2008
UML 2.0
2005
UML 1.4
2000
Erweiterung
Industrialisierung
UML 1.3
1998
Standardisierung
UML 1.1
1997
UML 1.0
1996
UML 0.91
1995
Unified Method 0.8
Weitere
Methoden
und Einflüsse
© 2015 IAS, Universität Stuttgart
Booch‘93
OMT - 2
Booch‘91
OMT - 1
Rumbaugh
Vereinigung
OOSE
Jacobson
73
1.6 Die Unified Modeling Language
Info 2 - GdS
Beschreibungsmittel der UML
Die Unified Modeling Language enthält verschiedene Beschreibungsmittel zur
Beschreibung der unterschiedlichen Aspekte eines Systems oder einer
Software.
– Die wichtigsten Diagramme sind:
Für statische Aspekte:
 Klassendiagramm
 Objektdiagramm
Für dynamische Aspekte:
 Use-Case-Diagramm
 Sequenzdiagramm
 Zustandsdiagramm
 Kommunikationsdiagramm
 Aktivitätsdiagramm
© 2015 IAS, Universität Stuttgart
74
§ 1 Einführung in die Objektorientierung
Info 2 - GdS
Frage zu 1.6
Was ist durch die UML definiert ?
Antwort

 Notation und Symbole für Elemente objektorientierter Modelle
f  Entwicklungsprozess und Vorgehensweise
f  Welche Klassen für ein System benötigt werden
 Bedeutung der grafischen Symbole


 Aufbau und Struktur objektorientierter Diagramme
© 2015 IAS, Universität Stuttgart
75
Info 2 - GdS
§ 1 Einführung in die Objektorientierung
1.1
Wozu braucht man Softwareentwicklung?
1.2
Von der klassischen zur objektorientierten Softwareentwicklung
1.3
Objektorientierte Methoden
1.4
Objektorientierte Analyse
1.5
Objektorientierter Entwurf
1.6
Die Unified Modeling Language
1.7
Zusammenfassung
© 2015 IAS, Universität Stuttgart
76
§ 1 Einführung in die Objektorientierung
Info 2 - GdS
Zusammenfassung § 1
– Die Erstellung von Software unterscheidet sich von der Herstellung anderer
industrieller Güter
– Systematische Softwareentwicklung ist notwendig, um die Komplexität
moderner Software beherrschbar zu machen
– Die Softwareentwicklung erfolgt nach einem vorgegebenen Ablauf, einem
Entwicklungsprozess, der in unterschiedliche Phasen gegliedert ist.
– Eine (objektorientierte) Methode setzt sich aus Konzepten, einer Notation
und einer methodischen Vorgehensweise zusammen.
– In der Analyse wird ein Fachkonzept des zu realisierenden Systems
erstellt.
– Das OOA-Modell beschreibt die wesentlichen Merkmale des Problems,
aber noch keine technische Lösung.
– Aufgabe des Entwurfs ist es, das Fachkonzept auf einer Plattform unter
den geforderten technischen Randbedingungen zu realisieren.
– Das OOD-Modell ist ein Abbild des späteren objektorientierten Programms.
© 2015 IAS, Universität Stuttgart
77
§ 1 Einführung in die Objektorientierung
Info 2 - GdS
Frage zu § 1
Weshalb wird in der Analysephase ein Prototyp der
Benutzungsoberfläche erstellt ?
Antwort
Gründe für Erstellung eines Prototyps:
– Validierung der „wahren“ Kundenwünsche
– Anschauliches Darstellungsmittel
– Diskussionsgrundlage mit Auftraggeber
© 2015 IAS, Universität Stuttgart
78
§ 1 Einführung in die Objektorientierung
Info 2 - GdS
Vorbereitungsfragen zu § 1
Frage 1: Welche der folgenden Aussagen über UML treffen zu? (WS 05/06)
Antwort
 UML ist ein Software-Entwicklungsprozess.
 UML beschreibt Diagramme und Notationen.
 UML ist als Modellierungssprache für Menschen gedacht.
 UML ist eine Entwurfsarchitektur.
 UML ist abhängig von der verwendeten Programmiersprache.
© 2015 IAS, Universität Stuttgart
79
Herunterladen