1 Objektorientierte Software-Entwicklung



Ähnliche Dokumente
Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Fachhochschule der Wirtschaft Paderborn (FHDW) Fachbereich angewandte Informatik. Pflichtenheft. Anwendungsentwicklung Semester 5

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Softwareentwicklungspraktikum Sommersemester Feinentwurf

Pflichtenheft Version 1.0. Mäxchen/Meiern iphone App

Softwaretechnik (Allgemeine Informatik) Überblick

SDD System Design Document

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Prüfung Software Engineering I (IB)

Software-Engineering Grundlagen des Software-Engineering

Dr. Hanno Schauer Mons-Tabor-Gymnasium Montabaur. UML-Klassendiagramme als Werkzeug im Unterricht

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Use Cases. Use Cases

Klausur Software-Engineering SS 2005 Iwanowski

Die Softwareentwicklungsphasen!

Software Engineering. 3. Analyse und Anforderungsmanagement

Software Engineering

Lastenheft. Inhaltsverzeichnis. Gruppe: swp09-5. Projektleiterin: Anne Vogler am: 28. April Zielbestimmungen 2. 2 Produkteinsatz 2

Das System sollte den Benutzer immer auf dem Laufenden halten, indem es angemessenes Feedback in einer angemessenen Zeit liefert.

Übungen zur Softwaretechnik

SWT MN Vorlesung Übungsblatt Hausaufgaben und Hörsaalübungen zum Themenbereich UML-Modellierung mit Rollen und OOA-Muster

Systemanalyse I Software-Entwicklung. Die Phase Design.? Prof. Dr. Susann Kowalski

Klausur Software Engineering für WI (EuI)

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Java Enterprise Architekturen Willkommen in der Realität

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

Kapitel 2: Der Software-Entwicklungsprozess

Vgl. Kapitel 5 aus Systematisches Requirements Engineering, Christoph Ebert

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Online Banking System

Objektorientierte Programmierung OOP

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Übung 6: Feinentwurf. Prof. Dr. Dr. h.c. Manfred Broy Dr. Herbert Ehler, Martin Feilkas 6. Juli 2006 Bernd Spanfelner, Sebastian Winter

Pflichtenheft. Software Engineering I WS 2011/2012. Dr.-Ing. Ina Schaefer 1. Software Systems Engineering TU Braunschweig

Pflichtenheft Programmanwendung "Syntax Tool"

(1) Mit dem Administrator Modul werden die Datenbank, Gruppen, Benutzer, Projekte und sonstige Aufgaben verwaltet.

Zeichen bei Zahlen entschlüsseln

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Softwareentwicklungspraktikum Sommersemester Grobentwurf

Klassendiagramm. Kurzer Überblick über UML - Stand BlaBla

Abschnitt 16: Objektorientiertes Design

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

SharePoint Demonstration

SWT II Projekt. Chat - Anwendung. Pflichtenheft 2000 SWT

Bundeskanzlei BK Programm GEVER Bund. als Basis für GEVER. 29. November 2012

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Ein Blick voraus. des Autors von C++: Bjarne Stroustrup Conrad Kobsch

Softwaretechnik. Fomuso Ekellem WS 2011/12

Dynamisch generierte grafische Übersichtsseiten für Learning-Content-Management-Systeme. Unterstützung von Grafiken für Prüfungsauswahl.

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

Beschreibung des MAP-Tools

Urlaubsregel in David

Techniken der Projektentwicklungen

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Proseminar: Website-Managment-System. NetObjects Fusion. von Christoph Feller

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Zimmertypen. Zimmertypen anlegen

Mai Hauptseminar: Nichtrelationale Datenbanken Historisch-Kulturwissenschaftliche Informationsverarbeitung Universität zu Köln

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Leichte-Sprache-Bilder

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Software Systems Engineering

Installationsanleitung CLX.PayMaker Home

Software Engineering. Bibliographisches Institut & F. A. Brockhaus AG, Mannheim; Spektrum Akademischer Verlag GmbH, Heidelberg, 2003

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender FHNW, Services, ICT

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Softwaretechnologie -Wintersemester 2013/ Dr. Günter Kniesel

Fragenkatalog Geschäftsmodellierung Grundlagen

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

BSV Ludwigsburg Erstellung einer neuen Internetseite

Datenbankmodelle 1. Das Entity-Relationship-Modell

Vorlesung Betriebstechnik/Netzplantechnik Operations Research

Prüfung Software Engineering I (IB)

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Einführung in die Modellierung

Arbeiten mit dem Outlook Add-In

Lehrbuch der Objektmodellierung

Datenbanken. Prof. Dr. Bernhard Schiefer.

Sybase Central Dokumentation Aktivierung der Monitoringfunktion

How to do? Projekte - Zeiterfassung

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Virtuelle Forschungsumgebungen Dozent: Prof. Dr. phil.

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

Reservierungs-Assistent

Literaturverwaltung mit Stud.IP

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

TREND SEARCH VISUALISIERUNG. von Ricardo Gantschew btk Berlin Dozent / Till Nagel

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Softwaretechnische Anforderungen zu Opale bluepearl Version 1.0 vom

Transkript:

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.