1 Objektmodellierung 1 Objektorientierte Software-Entwicklung Prof. Dr. Heide Balzert Fachbereich Informatik Fachhochschule Dortmund Heide Balzert 2000
2 Lernziele Wissen, was unter objektorientierter Softwareentwicklung zu verstehen ist Historische Entwicklung kennen Die Begriffe OOA und OOD kennen Wissen, welche objektorientierten Konzepte es gibt Erklären können, warum Objektorientierung sinnvoll ist Erklären können, was eine Methode ist Erklären können, wie sich die Phasen Analyse und Entwurf voneinander unterscheiden Erklären können, welche Ergebnisse in der Analyse und im Entwurf zu erstellen sind
3 Inhalt 1 Objektorientierte Softwareentwicklung 1.1 Einführung und Überblick 1.2 Objektorientierte Analyse 1.3 Objektorientierter Entwurf
4 1.1 Einführung und Überblick objektorientiert vs. strukturiert ❽ Strukturierte Analyse 10 Datenflußdiagramme der strukturierten Analyse und/oder 10 Entity-Relationship-Diagramme bzw. semantische Datenmodelle ❽ Strukturierter Entwurf 10 Funktionsbäume des strukturierten Entwurfs und/oder 10 Module im Sinne von Datenabstraktionen
5 1.1 Einführung und Überblick Nachteile der strukturierten Entwicklung ❽ Produkte sind weniger flexibel bei Änderungen und Erweiterungen ❽ Umfangreiche Modelle sind schwierig zu lesen und zu ändern ❽ Konsistenz zwischen Datenfluß- und Entity- Relationship-Diagrammen problematisch ❽ Rein funktionaler Entwurf führt zu schlecht wartbaren Programmen ❽ Strukturbruch bei Übergang von strukturierter Analyse zur Datenabstraktion
6 1.1 Einführung und Überblick Vorteile in der Objektorientierung ❽ Bessere Durchgängigkeit ❽ Dieselben Konzepte in allen Phasen ❽ Eine einzige Notation in Analyse und Entwurf ❽ Kein Strukturbruch 10 Leichte Nachvollziehbarkeit
7 1.1 Einführung und Überblick OOA Jacobson UML 0.8 Coad/Yourdon Booch Rumbaugh OOD UML 1.1 Meyer Booch Rumbaugh Coad/Yourdon Booch UML 1.1 OOP Smalltalk 80 C++ ANSI/ISO C++ Java OO - Standards OMG- Gründung ODMG 1.0 CORBA 2.0 ODMG 2.0 UML 1.1 1980 1985 1990 1995 1998 2000
8 1.1 Einführung und Überblick Was ist eine Methode? Methode Konzepte Notation Methodische Vorgehensweise Grafik Text Methodische Schritte Methodische Regeln Beispiele Konkrete Beispiele Abstrakte Beispiele (Muster)
9 1.1 Einführung und Überblick Objektorientierte Konzepte OO-Grundkonzepte Objekt Attribut Botschaft Klasse Operation Vererbung Assoziation Geschäftsprozeß Paket Szenario Zustandsautomat OOA/D-Konzepte
10 1.1 Einführung und Überblick Die Methode unterstützt... ❽ alle notwendigen objektorientierten Konzepte für Analyse und Entwurf ❽ die Notation der UML ❽ die präzise Trennung der Modellelemente der UML in Analyse und Entwurf ❽ die Verwendung von Analysemustern ❽ eine methodische Vorgehensweise für die objektorientierte Analyse ❽ die Abbildung des Analysemodells auf eine objektorientierte Benutzungsoberfläche (Prototyp) ❽ die Verwendung von Entwurfsmustern
11 1.1 Einführung und Überblick ❽ die Realisierung der Drei-Schichten- Architektur im Entwurf ❽ eine standardisierte Anbindung der Benutzungsoberfläche an Fachkonzept und Datenhaltung ❽ die objekt-relationale Anbindung an relationale Datenbanken ❽ die Anbindung an objektorientierte Datenbanken ❽ die standardisierte Verteilung im Netz ❽ die Transformation in C++ und Java ❽ die analytische Qualitätssicherung in Analyse und Entwurf
12 1.2 Objektorientierte Analyse Ziel der Analyse ❽ Wünsche und Anforderungen eines Auftraggebers an ein neues Softwaresystem ermitteln und beschreiben ❽ Modell des Fachkonzepts erstellen, das konsistent, vollständig, eindeutig und realisierbar ist ❽ Alle Aspekte der Implementierung bewußt ausklammern (perfekte Technologie!) Es ist nicht die Aufgabe des Auftraggebers, den Systemanalytiker zu verstehen, sondern der Systemanalytiker wird dafür bezahlt, sich dem Auftraggeber verständlich zu machen
13 1.2 Objektorientierte Analyse Produkte der Analysephase ❽ Pflichtenheft 10 das Einstiegsdokument ❽ OOA-Modell 10 das Fachkonzept ❽ Prototyp der Benutzungsoberfläche 10 die Visualisierung des Fachkonzepts
14 1.2 Objektorientierte Analyse Pflichtenheft ❽ Umgangssprachliche Beschreibung dessen, was das zu realisierende System leisten soll 10 Weniger detailliert als das OOA-Modell 10 Enthält auch einige Informationen, die nicht im OOA-Modell dargestellt werden ❽ Zwei Zielsetzungen 10 Einstiegsdokument in das Projekt für alle, die das System später pflegen und warten sollen 10 Ausgangsbasis für die objektorientierte Modellbildung ❽ Es ist nicht das Ziel, anhand des Pflichtenhefts, das System zu implementieren
15 1.2 Objektorientierte Analyse Gliederungsschema Pflichtenheft 1 Zielbestimmung Formulieren Sie Ziele und keine Funktionen ❽ 1.1 Muß-Kriterien ❽ 1.2 Kann-Kriterien ❽ 1.2 Abgrenzungskriterien 2 Einsatz ❽ 2.1 Anwendungsbereiche ❽ 2.2 Zielgruppen ❽ 2.3 Betriebsbedingungen
16 1.2 Objektorientierte Analyse 3 Umgebung ❽ 3.1 Software ❽ 3.2 Hardware ❽ 3.3 Orgware 4 Funktionalität ❽ typische Arbeitsabläufe ❽ wichtige Selektionen 5 Daten 6 Leistungen 7 Benutzungsoberfläche 8 Qualitätsziele 9 Ergänzungen
17 1.2 Objektorientierte Analyse OOA-Modell Assoziation Geschäftsprozeß Szenario Vererbung Statische Konzepte Paket Botschaft Dynamische Konzepte Zustandsautomat Attribut Operation Basiskonzepte Statisches Modell Objekt Klasse Dynamisches Modell
18 1.2 Objektorientierte Analyse Das statische Modell beschreibt... ❽ die Klassen des Fachkonzepts ❽ die Assoziationen (Beziehungen) zwischen den Klassen ❽ die Vererbungstrukturen ❽ die Attribute der Klassen (Daten des Systems) ❽ die Bildung von Paketen (Teilsysteme)
19 1.2 Objektorientierte Analyse Das dynamische Modell zeigt Funktionsabläufe ❽ Geschäftsprozesse beschreiben die durchzuführenden Aufgaben auf einem sehr hohen Abstraktionsniveau ❽ Szenarios zeigen, wie Objekte miteinander kommunizieren, um eine bestimmte Aufgabe zu erledigen ❽ Zustandsautomaten beschreiben die Reaktionen eines Objekts auf verschiedene Ereignisse (= Botschaften)
20 1.2 Objektorientierte Analyse Der Prototyp der Benutzungsoberfläche... ❽ ist ein ablauffähiges Programm, das alle Attribute des OOA-Modells auf der Benutzungsoberfläche darstellt ❽ besitzt weder Anwendungsfunktionen noch die Fähigkeit, Daten zu speichern ❽ besteht aus Fenstern, Dialogen Menüs usw. ❽ hat den Zweck, das erstellte OOA-Modell mit dem zukünftigen Benutzer oder einem Repräsentanten zu evaluieren ❽ sollte möglichst die vollständige Benutzungsoberfläche des Fachkonzepts enthalten
21 1.2 Objektorientierte Analyse Grundprinzip der Softwareentwicklung ❽ Trennung von Fachkonzept und Benutzeroberfläche ❽ Im Fachkonzept wird festgelegt, welche Informationen auf dem Bildschirm sichtbar sind ❽ Bei der Benutzungsoberfläche wird festgelegt, in welchem Format sie dargestellt werden
22 1.3 Objektorientierter Entwurf Entwurfsziel ❽ Weitgehende Entkopplung von Fachkonzept, Benutzungsoberfläche und Datenhaltung Realisierung durch ❽ Drei-Schichten-Architektur Einfluß durch... ❽ verwendetes GUI (Graphical User Interface) 10 Bestimmt Aussehen der Benutzungsoberfläche ❽ verwendete Form der Datenhaltung 10 10 10 Relationale Datenbank Objektorientierte Datenbank Flache Dateien
23 1.3 Objektorientierter Entwurf Drei Schichten-Architektur Reale Welt OOA-Modell OOA OOD Titel Buch Benutzungsoberfläche Fachkonzept Datenhaltung OOD-Modell BuchView Titel Buch BuchFile C++/Java class BuchView {...} class Buch {String Titel;...} class BuchFile {...}
24 1.3 Objektorientierter Entwurf Analyse Entwurf OK Prototyp OOD-Modell OOA-Modell a/b Fachkonzept Datenhaltung Relat. DB OO DB Abgrenzung von Analyse und Entwurf Pflichtenheft Benutzungsoberfläche Netzverteilung Klassenbibliotheken C++ bzw. Java-Programme
25 1.3 Objektorientierter Entwurf Produkt der Entwurfsphase: OOD-Modell ❽ Abbild des späteren Programms ❽ Statisches Modell 10 Enthält alle Architektur-Klassen des Programms 10 Pakete zur Modellierung von Teilsystemen und Darstellung der verschiedenen Schichten ❽ Dynamisches Modell 10 Übersichtliche Beschreibung der komplexen Kommunikation zwischen Objekten
LE 1 26 Aufgabe 1 Aufgabe 2 Aufgabe 3 Aufgabe 4 Danke! Diese Präsentation bzw. Teile dieser Präsentation enthalten Inhalte und Grafiken des Lehrbuchs der Objektmodellierung von Heide Balzert, Spektrum Akademischer Verlag 1999
27 Aufgabe 1 (5 min) Vorteile der objektorientierten Entwicklung nennen können a. Wodurch wird bei der objektorientierten Softwareentwicklung die gute Durchgängigkeit von der Analyse bis zur Implementierung erreicht? b. Welche Vorteile ergeben sich aus dem Klassenkonzept? c. Welche Vorteile ergeben sich durch das Konzept der Vererbung? Lösung
28 Aufgabe 2 (10 min) Bedeutung der Phasen Analyse und Entwurf in der Sprache des Auftraggebers ausdrücken können ❽ Stellen Sie sich einen potentiellen Auftraggeber vor, der ein sogenannter DV-Laie ist, z.b. den Inhaber einer Firma für Sportartikel. Sie sollen den Auftrag erhalten, ein maßgeschneidertes kleines Warenwirtschaftssystem für Ihren Auftraggeber zu entwickeln. Ihr Auftraggeber möchte wissen, warum Sie nicht sofort mit der Programmierung anfangen. Erklären Sie ihm, was Analyse und Entwurf sind. Lösung
29 Aufgabe 3 (10 15 min) Überprüfen, ob Analyse und Entwurf sowie deren Abgrenzung verstanden wurde a. Warum ist es sinnvoll, in der Analyse einen Prototyp der Benutzungsoberfläche zu erstellen? b. Welche Aufgaben soll das Pflichtenheft erfüllen? c. Wie lassen sich die Phasen Analyse und Entwurf voneinander abgrenzen? d. Warum ist es wichtig, in der Analyse von allen Implementierungsdetails zu abstrahieren? e. Warum handelt es sich bei der Systemanalyse um eine besonders anspruchsvolle Tätigkeit? f. Warum ist es sinnvoll, die fachliche Funktionalität einer Anwendung, deren Benutzungsschnittstelle und die Datenhaltung strikt zu trennen? Lösung
30 Aufgabe 4 (5 10 min) Erkennen, welche Informationen in der Analyse und welche im Entwurf dokumentiert werden müssen ❽ Der Systemanalytiker Mayer führt bei einer Videothek eine Systemanalyse durch, wobei er folgende Informationen aufnimmt: a. Für jeden Videofilm sind Titel, Laufzeit und Jahr zu speichern. b. Die Videofilme sind nach Titeln aufsteigend sortiert in der Datenbank xy zu speichern. c. Jede Ausleihe von Videofilmen wird im System gespeichert. d. Defekte Videofilme werden aus der Videothek entfernt und in der Datei mit einem»l«markiert.
31 Aufgabe 4 e. Das System soll jederzeit einen Überblick über die Ausleihhäufigkeit der einzelnen Filme erlauben. f. Für die Realisierung der Benutzungsoberfläche wird die Klassenbibliothek abc verwendet. g. Da es sich um eine große Videothek handelt, ist eine Client-Server-Anwendung notwendig, wobei alle zentralen Daten auf dem Server liegen. ❽ Welche der genannten Informationen sind nicht Gegenstand der (System-)Analyse? Lösung
32 Lösung der Aufgabe 1 a. Gute Durchgängigkeit 10 10 In allen Phasen dieselben Konzepte Analyse und Entwurf in der gleichen Notation b. Eine Klasse kann leicht verstanden und geändert werden, ohne daß andere Klassen davon stark betroffen sind c. Eine gute Vererbungshierarchie fördert Erweiterbarkeit und Wiederverwendung
33 Lösung der Aufgabe 2 ❽ Zwei vorbereitende Schritte vor der Programmierung ❽ 1. Analyse 10 In Interviews Anforderungen ermitteln 10 Anforderungen aufschreiben 10 Prototyp mit allen Bildschirmmasken erstellen 10 Änderungswünsche erfassen und Prototyp verbessern bis Konsens ❽ 2. Entwurf 10 Grundsätzliche Struktur der Programme 10 Datenbank-Einsatz prüfen 10 Verwendung von Hilfsmitteln prüfen
34 Lösung der Aufgabe 3 a. Prototyp 10 Validierung der»wahren Wünsche«des Auftraggebers b. Plichtenheft 10»Einstiegsdokument«für das Projekt 10 Voraussetzung für OOA-Modell c. Analyse und Entwurf Analyse = fachliche Lösung 10 Essentielle Struktur und Semantik des Problems 10 Ideale Umgebung ❽ Entwurf = technische Lösung 10 Anwendung auf einer Plattform unter den geforderten technischen Randbedingungen
35 Lösung der Aufgabe 3 d. Gefahr, daß das OOA-Modell auf eine spezielle Umgebung abgestimmt ist e. Systemanalyse 10 Hochgradig abstrahieren 10»Spreu vom Weizen trennen«fehlende Informationen erfragen OOA-Modell spezifizieren, das Anforderungen des Auftraggebers erfüllt und realisierbar ist f. Oft betreffen Änderungen nur die Benutzungsoberfläche oder nur die Datenhaltung
36 Lösung der Aufgabe 4 a. Daten aus Benutzersicht 10 10 Pflichtenheft (Kapitel Daten) OOA-Modell b. Pflichtenheft: gewünschte Datenbank als Information eintragen Entwurfs und Implementierung: festlegen wie Informationen in der Datenbank gespeichert werden, ist Gegenstand des c. Benutzerfunktion: wird im Pflichtenheft und im OOA-Modell dokumentiert
37 Lösung der Aufgabe 4 d. Implementierung: festgelegen, wie das logische Löschen der Sätze realisiert wird e. Zielsetzung: im Pflichtenheft dokumentiert f. Wie die Benutzungsschnittstelle realisiert wird, ist Gegenstand des Entwurfs g. Systemanalyse: Nur die Forderung einer Client- Server-Verteilung spezifizieren Entwurf: Spezifizieren, wie die Verteilung durchzuführen ist.