Objektorientierter Entwurf. Grundlagen des Software Engineerings

Ähnliche Dokumente
Einführung in die objektorientierte Programmierung

Unified Modeling Language (UML)

Jason T. Roff UML. IT Tutorial. Übersetzung aus dem Amerikanischen von Reinhard Engel

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

Funktions- versus Objektorientierter Entwurf

UML (Unified Modelling Language) von Christian Bartl

Unified Modelling Language

Vorlesung Programmieren

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

Objektorientierte Modellierung (1)

Objektorientiertes Design

Software Engineering, SoSe 07, WSI, D. Huson, May 7,

Software- und Systementwicklung

Softwaretechnik 2015/2016

Software Engineering in der Praxis

Unified Modeling Language 2

Requirements Engineering I

Interaktionsdiagramme in UML

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

Vorlesung Programmieren

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

Die Unified Modeling Language UML

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

Übungen Softwaretechnik I

Analyse und Design mit U ML 2.3

Kurzeinführung in UML

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

Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich

Von UML 1.x nach UML 2.0

Martin Fowler, Kendall Scott. UML konzentriert. Eine strukturierte Einführung in die Standard-Objektmodellierungssprache. 2., aktualisierte Auflage

Software Engineering in der Praxis

Objektorientiertes Programmieren

OOA-Dynamische Konzepte

Software Engineering in der Praxis

Einführung in die Programmierung

Techniken der Projektentwicklungen

Analyse und Design mituml2.1

NACHRICHTENTECHNISCHER SYSTEME

Analyse und Modellierung von Informationssystemen

Orientierte Modellierung mit der Unified Modeling Language

Requirements Engineering I

Systems Engineering mit SysML/UML

Programmieren in Java

Klassendiagramm. (class diagram)

UML - Tutorial. Hubert Baumgartner.

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

Software Engineering in der Praxis

Unified Modeling Language

2. Übung zu Software Engineering

Realität zu modellieren eine

So#waretechnologie für Fortgeschri4ene Teil Eide. Stunde IV: UML. Köln 26. Januar 2017

UML. Weiteres Vorgehen im Projekt

Unified Modeling Language (UML )

Objektorientierte Analyse (OOA) Inhaltsübersicht

Objektorientierte Systementwicklung

Workflows: Anforderungserhebung und analyse

Geoinformation I Datenmodellierung

PRÜFUNG. Grundlagen der Softwaretechnik

Sequenz- und Kommunikationsdiagrammen. Systemmodellierung mit SysML von Michel Manthey

Requirements Engineering I

Objektorientierte Programmierung III

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

Algorithmen und Datenstrukturen 06

Teil II: OOP und JAVA (Vorlesung 9)

Inhalt. Einleitung Liebe Leserin, lieber Leser, Wer dieses Buch aus welchem Grund lesen sollte Ihre Meinung ist uns sehr wichtig.

Softwaretechnik Unified Modeling Language (UML)

Martin Fowler, Kendali Scott. UML - konzentriert. Die Standardobjektmodellierungssprache anwenden

Javakurs für Anfänger

Oracle JDeveloper 10 g

SEQUENZDIAGRAMM. Christoph Süsens

Gliederung des Vortrages

Software-Entwurf mit UML

Entwurfsmuster (Design Patterns)

Java Einführung Objektorientierte Grundkonzepte

Softwaretechnik. Fomuso Ekellem

4. Übung zu Software Engineering

UML -Klassendiagramme

Objektorientierte Analyse (OOA) Dynamisches Modell. Objektorientierte Analyse (OOA) Sequenzdiagramm

Fundamental Modeling Concepts

4. Mentorium. UML-Modellierung (Lösungshinweise)

C.7 Objektorientierte Software-Entwicklung

Einführung in die Informatik 1

Christoph Kecher, Alexander Salvanos UML 2.5. Das umfassende Handbuch. Rheinwerk. Computing

INSPIRE - Modellierung

Objektorientierte Programmierung OOP

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595

ANWENDUNGSFALLDIAGRAMM:

Objektorientierte Softwareentwicklung

Media Engineering. Objektorientierte Modellierung. Verhaltensmodellierung. R. Weller University of Bremen, Germany cgvr.cs.uni-bremen.

Einführung in die Informatik

Einführung in die OOP mit Java

Modellieren mit der Unified Modeling Language: Verhaltensdiagramme. 18. November 2014

Software-Engineering

Wirtschaftsinformatik 6a: Modellierung. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

Objektorientierte Programmierung (OOP)

Vorlesung Informationssysteme

Dokumentationskonzept

TEIL I Strukturdiagramme 1 Einführung Klassendiagramm Objektdiagramm Kompositionsstrukturdiagramm...

Transkript:

Objektorientierter Entwurf Grundlagen des Software Engineerings

Lernziele } Verstehen, wie der Softwareentwurf als Menge von interagierenden Objekten dargestellt werden kann, die ihren eigenen Zustand und ihre Handlungen verwalten } Die wichtigsten Aktivitäten eines allgemeinen objektorientierten Entwurfsprozesses kennen } Die verschiedenen Modelle verstehen, die verwendet werden, um einen objektorientierten Entwurf zu dokumentieren } Mit den Darstellungen dieser Modelle mit Hilfe der Unified Modeling Language (UML) vertraut sein Folie 193

Objektorientierter Entwicklungsprozess } Objektorientierte Analyse } } Entwicklung eines objektorientierten Modells des Problembereichs und der Anwendung Objekte im Modell stellen Entitäten und Vorgänge des zu lösenden Problems dar } Objektorientierter Entwurf } } Entwicklung eines objektorientierten Modells eines Softwaresystems um festgelegte Anforderungen zu implementieren Enge Beziehung zu Problembereichs-Objekten, aber Umformungen und Ergänzungen notwendig } Objektorientierte Programmierung } Umsetzung des Softwareentwurfs unter Verwendung einer objektorientierten Programmiersprache (stellt Konstrukte für Definition von Objektklassen und Laufzeitumgebung zur Objekterzeugung zur Verfügung) Folie 194

System aus wechselwirkenden Objekten Folie 195

Idealer OO-Entwicklungsprozess } Übergänge zwischen Entwicklungsstufe nahtlos } Gleiche Notation in den Entwicklungsstufen } Schritt zur nächsten Stufe beinhaltet Verfeinerung der vorhergehenden Stufe } Hinzufügen von Details zu den Objektklassen } Bildung neuer Objektklassen } Z.B. detaillierte Entwurfsentscheidung zur Darstellung von Daten erst bei der Implementierung Folie 196

Vorteile von OO-Systemen } Einfach(er) zu ändern da Objekte unabhängig sind } Objekte können als alleinstehende Entitäten angesehen werden } Veränderung der Objektimplementierung und Hinzufügen von Diensten sollte andere Systemobjekte nicht beeinflussen } Objekte entsprechen Dingen } Oft deutliche Zuordnung zwischen Entitäten der realen Welt und deren Steuerobjekten im System } Bessere Verständlichkeit und Wartbarkeit des Entwurfes } Objekte sind potenziell wiederverwendbare Komponenten (Kapselung von Zustand und Operationen) Folie 197

Objekte und Objektklassen (Definition) } Ein Objekt ist eine Entität. Es besitzt einen Zustand sowie eine definierte Menge von Handlungsmöglichkeiten (Operationen), die auf diesem Zustand aufsetzen. Der Zustand wird als Menge von Objektattributen dargestellt. Die Operationen dieses Objekts bieten anderen Objekten (Clients) ihre Dienste an, um z.b. Berechnungen auszuführen. } Objekte werden gemäß der Definition einer Objektklasse erzeugt. Eine solche Klassendefinition ist sowohl eine Typspezifikation als auch eine Vorlage für die Erstellung von Objekten und beinhaltet Deklarationen aller Attribute und Operationen, die einem Objekt dieser Klasse zugeordnet werden sollten. Folie 198

Eine Mitarbeiterobjektklasse in UML Folie 199

Kommunikation zwischen Objekten } In dienstbasierten Systemen } Austausch von Textnachrichten (z.b. XML) } Innerhalb eines Programmes } Methodenaufrufe } Synchrone vs. asynchrone (nebenläufige) Dienstanforderung Folie 200

Vererbungshierarchie von Objektklassen in UML Folie 201

Beziehungen zwischen Objekten unterschiedlicher Klassen } Sogenannte Assoziationen } Allgemeine Beziehungen } Zeigen an, dass ein Objektattribut ein assoziiertes Objekt ist } Zeigt an, dass die Implementierung einer Objektmethode vom assoziierten Objekt abhängt } Beispiel: Aggregation (beschreibt, wie sich ein Objekt aus anderen Objekten zusammensetzt) Folie 202

Assoziationsmodell Folie 203

Beispiel: Aggregationsobjekt, das einen Kurs darstellt Folie 204

Ablauf eines objektorientierten Entwurfs } Verstehen und Definieren des Kontextes und der Verwendungsmodelle für das System } Entwurf der Systemarchitektur } Bestimmung der wichtigsten Objekte im System } Entwicklung von Entwurfsmodellen } Spezifizieren von Objektschnittstellen Folie 205

Beispiel: Wetterberichtssystem } Ein Wetterberichtssystem dient der regelmäßigen Erzeugung von Wetterkarten mit Hilfe von Daten, die von entfernten, unbeaufsichtigten Wetterstationen und anderen Datenquellen wie Wetterbeobachtern, Ballons und Satelliten erfasst werden. Die Wetterstationen übertragen ihre Daten als Antwort auf die Anfrage eines Bereichscomputers an diesen Rechner. } Der Bereichscomputer prüft die erfassten Daten auf Gültigkeit und integriert Daten aus verschiedenen Quellen. Die integrierten Daten werden archiviert, und mit Hilfe der Archivdaten und einer digitalisierten Kartendatenbank wird ein Satz lokaler Wetterkarten erstellt. Die Karten können für den Vertrieb auf einem speziellen Kartendrucker gedruckt oder in einer Vielzahl verschiedener Formate angezeigt werden. Folie 206

Beispiel: Schichtenarchitektur für ein Wetterberichtssystem Folie 207

Systemkontext und Verwendungsmodelle } Der Systemkontext ist ein statisches Modell, das die anderen Systeme in dieser Umgebung beschreiben. } Darstellung mithilfe von Assoziationen } Einfaches Blockdiagramm / erweitert um Subsystemmodell } Das Verwendungsmodell eines Systems ist ein dynamisches Modell, das beschreibt, wie das System tatsächlich mit seiner Umwelt zusammenspielt. } Anwendungsfalldiagramm Folie 208

Subsysteme des Wetterberichtssystems Folie 209

Anwendungsfälle der Wetterstation Folie 210

Entwurf der Architektur der Wetterstation } Schnittstellenschicht } Datenerfassungsschicht } Messgeräteschicht Folie 211

Ansätze zum Bestimmung der Objektklassen } Grammatikalische Analyse } Objekte und Attribute sind Substantive, Vorgänge und Dienste Verben } Verwendung greifbarer Entitäten } Verwendung eines Verhaltensansatzes } Unterschiedliches Verhalten wird verschiedenen Systemteilen zugeordnet } Durch Szenarioanalyse Folie 212

Beispiele für Objektklassen im Wetterstationssystem Folie 213

Entwurfsmodelle } Statische Modelle } Beschreiben statische Systemstrukturen in Form von Objektklassen und ihren Beziehungen (z.b. Verallgemeinerungs-, Verwendet/Wird-verwendet-von- oder Kompositionsbeziehungen) } Dynamische Modelle } Beschreiben die dynamische Systemstruktur und zeigen das Zusammenspiel zwischen Systemobjekten (nicht Klassen!) } z.b. Abfolgen von Dienstanfragen durch Objekte, Art der Verbindung zwischen Systemzustand und Objektinteraktionen } UML bietet zwölf verschiedene statische und dynamische Modelle Folie 214

Beispiel: Systemmodelle für die Wetterstation } Subsystemmodelle } Objektgruppierungen in zusammenhängenden Subsystemen à } Abfolgemodelle } Zeigen Ablauf von Objektinteraktion (Sequenz- oder Kooperationsdiagramme) } Zustandsmodelle } Zeigen, wie Objekte Zustand bei Ereignis ändern Folie 215

Zustandsdiagramm } Die in das Zusammenspiel einbezogenen Objekte werden waagerecht angeordnet, mit einer senkrechten gestrichelten Linie unter jedem Objekt. } Die Zeit wird senkrecht dargestellt, was bedeutet, dass die Zeit abwärts entlang der gestrichelten Linie der Lebenslinie des Objekts fortschreitet. } Die Interaktion zwischen Objekten wird durch beschriftete Pfeile dargestellt die die senkrechten Linien verbinden. } Das schmale Rechteck entlang der Lebenslinie eines Objekts stellt die Zeit dar, für die das Objekt das steuernde Objekt im System ist. Folie 216

Sequenzdiagramm für Datensammlung Folie 217

Zustandsdiagramm für Wetterstation Folie 218

Spezifikation der Objektschnittstelle } In UML mit Klassendiagrammen dargestellt, wobei es keinen Attributabschnitt gibt. } Der UML-Stereotyp <interface> sollte im Namensteil enthalten sein Folie 219

Weiterentwicklung des Entwurfs Folie 220

Zwei-Wochenaufgabe } Für den Fall, dass Ihr Projekt als objektorientiertes System ungesetzt werden soll, führen sie den objektorientierten Entwurf durch. } Email mit dem Objektentwurf bis Mittwoch in zwei Wochen an Hagen.Hoepfner@uni-weimar.de Folie 221