Softwarearchitektur, UML, Design Patterns und Unit Tests

Ähnliche Dokumente
Übersicht. Softwarearchitektur. Softwarearchitektur, UML, Design Patterns und Unit Tests. Softwarearchitektur

Ein Entwurfsmuster der GoF. vorgestellt von. Sigrid Weil 16. Januar 2008

Design Pattern. Motivation, Beispiel Definition "Das" Buch der Gang of Four Ausführliches Beispiel: Facade Beispiele. Aufgabe

UML Eine kurze Einführung

Analyse und Modellierung von Informationssystemen

Specifying Patterns for Dynamic Pattern Instance Recognition with UML 2.0 Sequence Diagrams. Lothar Wendehals. Universität Paderborn

UML Eine kurze Einführung

Analyse und Modellierung von Informationssystemen

Algorithmen und Datenstrukturen 06

Die Unified Modeling Language UML

Unified Modeling Language (UML)

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.

Algorithmen und Datenstrukturen 07

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

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

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

Vorlesung Programmieren

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

Programmieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik

Einführung in die Informatik

UML (Unified Modelling Language) von Christian Bartl

Klassendiagramm. (class diagram)

Oracle JDeveloper 10 g

Softwaretechnik WS 16/17. Übungsblatt 01

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

Vorlesung Programmieren

Modellieren mit der Unified Modeling Language: Klassen- und Objektdiagramme. 11. November 2014

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0

Design Patterns. 5. Juni 2013

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

Guido de Melo Fachvortrag, Uni Ulm UML 2.0. Für den Einsatz in der Praxis

Analyse und Modellierung von Informationssystemen

Programmieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik

Entwurfsmuster - Iterator & Composite

Analyse und Modellierung von Informationssystemen

J.2 Objektorientiertes Modellieren mit UML

Abschnitt 15: Unified Modeling Language (UML)

Vorlesung Software Engineering I

Von der UML nach C++

Programmieren in Java

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Klassendiagramm. Kurzer Überblick über UML - Stand BlaBla

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Unified Modeling Language (UML )

Objektorientierte Analyse (OOA) OOA-Pattern

Techniken der Projektentwicklungen

Objektorientierte und Funktionale Programmierung SS 2014

Model-View-Controller

Objektorientierte Modellierung (1)

OOAD Richtlinien & Tips

Übungen Softwaretechnik I

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Gliederung des Vortrages

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

Java Einführung Objektorientierte Grundkonzepte

Grundbegriffe der Objektorientierung

Unified Modeling Language 2

Grundlagen der UML-Modellierung. Modellierung. Elena Paslaru Seminar Praktische Modellierung SS

DESIGN'PATTERN'2011. November. Abstract Factory & Factory Method BEARBEITET VON INHALT [1] Christoph Süsens

UML Klassendiagramm. Igor Karlinskiy, Mikhail Gavrish

Objektorientierte Analyse (OOA) Strukturmodellierung

Objektorientierter Software-Entwurf Die Unified Modeling Language 4 1

Objektorientierte Softwareentwicklung

Software-Architektur Design Patterns

Konzeptueller Entwurf

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Modellierung und Programmierung 1

Rückblick: Entity-Relationship-Modell

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

8 Design Patterns. Events

Behavioral Patterns. Seminar Software-Entwurf WS 04/05. Przemyslaw Dul

9. Operationenmodellierung mit Interaktionsdiagrammen

Verkettete Datenstrukturen: Bäume

Ergänzungsmaterial g zum Kapitel. Die Unified Modeling Language (UML) Aggregation versus Komposition

Structural Patterns. B. Sc. Andreas Meißner

Einführung in die Informatik II

Einführung in die Programmierung mit Java. Hörsaalübung

10. Programmierungs-Phase: Objektorientierung Software Engineering

UML. Weiteres Vorgehen im Projekt

Einführung in die Informationsverarbeitung Teil Thaller. Stunde VII: Planen und Realisieren

Entwurfsmuster Martin Fesser 00IN

4. AuD Tafelübung T-C3

Objektorientierte Programmierung. Kapitel 12: Interfaces

Softwaretechnik. Fomuso Ekellem

Einführung in die Programmierung

3 Objektorientierte Konzepte in Java

Einführung in die Unified Modeling Language (UML)

3. Konzepte der objektorientierten Programmierung

Informatik I - Programmierung Globalübung Objektorientierung. Objektorientierung Konzepte & Notationen

Einführung in die Programmierung

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren 2 Java Überblick

Quellcode-Repräsentation in Eclipse. Seminarvortrag PG Reclipse Jan Rieke

Transkript:

Softwarearchitektur, UML, Design Patterns und Unit Tests Stefan Wehr Prof. Dr. Peter Thiemann 7. Dezember 2005

Übersicht Softwarearchitektur UML Design Pattern Unit Tests 2 / 34

Softwarearchitektur Softwarearchitektur Es gibt verschiedene Softwarearchitekturen Batch Sequential Pipes & Filters Layered System... Object Oriented Organization 3 / 34

Softwarearchitektur Object Oriented Organization Das System besteht aus Objekten, die mittels Methodenaufrufe (Nachrichten) miteinander kommunizieren. 4 / 34

Softwarearchitektur Wichtige Konzepte Klassen Definieren Attribute und Methoden Werden zur Laufzeit instanziert Instanzen / Objekte Interfaces Spezifizieren die Schnittstelle einer Klasse Enthalten keinen Code Können nicht instanziert werden 5 / 34

Übersicht Softwarearchitektur UML Design Pattern Unit Tests 6 / 34

UML UML Unified Modeling Language (Booch / Jacobson / Rumbaugh) Stellt verschiedene Diagrammarten zur Verfügung, um unterschiedliche Aspekte eines Systems zu modellieren Hier: nur Klassendiagramme Literatur Martin Fowler, UML distilled: a brief guide to the standard object modeling language 7 / 34

UML Klassendiagramme Repräsentieren Klassen und statische Beziehungen zwischen Klassen Keine zeitliche Informationen Ein Klassendiagramm ist ein Graph mit Knoten: Klassen (Rechtecke) Kanten: Beziehungen zwischen Klassen Kann auch Interfaces, Packages und Instanzen enthalten 8 / 34

Klasse UML Student matriculation number name grades count issue certificate () enter grade () list degrees () Namensabteilung Attribute Operationen (Methoden) Nur Name obligatorisch Weitere Abteilungen möglich (Verantwortlichkeiten, Ereignisse, Ausnahmen,... ) 9 / 34

UML Inhalt der Namensabteilung Optionale Stereotypen «interface», «controller» Klassenname, abstrakte Klassen werden kursiv geschrieben... 10 / 34

Attributabteilung UML Syntax von Attributen Sichtbarkeit Name Typ Kardinalität Ordnung Initialwert Eigenschaften Sichtbarkeit,,, Kardinalität Menge natürlicher Zahlen Ordnung / Eigenschaften z.b.: Statische Attribute werden unterstrichen 11 / 34

Sichtbarkeit UML,,,, 12 / 34

Kardinalität UML Definiert Menge natürlicher Zahlen Kardinalität Intervall Kardinalität Kardinalität Intervall int int* int* int* int Beispiele:,,,, 13 / 34

UML Operationsabteilung Syntax Sichtbarkeit Name Parameterliste Rückgabetype Eigenschaften Sichtbarkeit,,, Parameterliste Art Name Typ Art,, Eigenschaften z.b.: Statische Operationen werden unterstrichen 14 / 34

Beziehungen UML Binäre Beziehungen Zusammenarbeit zweier Klassen Durchgezogene Linie zwischen zwei Klassen Optional: Name für die Beziehung, Rolennamen, Navigation, Kardinalität Generalisierung/Vererbung Spezifiziert Subklassenbeziehung Durchgezogene Linie mit Pfeil auf Superklasse 15 / 34

Beispiele (1) UML class class name name of abstract class or attribute1 attribute2: Typ = default /derived attribute class attribute abstractoperation1() op2(parmlist): result type class operation implementation of op2 vehicle inheritance flying object car airplane bird association n m Class 1 class 2 role role 16 / 34

Beispiele (2) UML subpart Part partno product manufacturer * 1 order orderer Company * 0..1 * * superpart 17 / 34

UML Aggregation und Komposition (1) Aggregation Drückt eine ist Teil von Beziehung aus Bedeutung: Inhalt gehört einem Container Notation: Kante mit weißem Rombus als Pfeilkopf 18 / 34

UML Aggregation und Komposition (2) Komposition Spezieller Fall von Aggregation Container und Inhalt leben und sterben zusammen Notation: Kante mit schwarzem Rombus als Pfeilkopf 19 / 34

Beispiel UML polygon 1 1 {ordered} 2..* 1 point representation color line mode car traffic light 1 1 4 wheel bulb 3 20 / 34

Übersicht Softwarearchitektur UML Design Pattern Unit Tests 21 / 34

Design Patterns Design Pattern Gamma, Helm, Johnson, Vlissides: Design Patterns, Elements of Reusable Object-Oriented Software, Addison Wesley, 1995. gang of four Häufig auftretende Muster in der Zusammenarbeit von Objekten Ziele: Flexibilität, Wartbarkeit, Kommunikation, Wiederverwendung Alternatives Vorgehen und Kombinationen möglich 22 / 34

Design Pattern Klassifikation von Patterns (1) Zweck Creational Patterns Abstrahieren über das Erzeugen von Objekten Structural Patterns Abstrahieren über häufig vorkommende Strukturen Behavioral Patterns Abstrahieren über Verhaltensmuster 23 / 34

Design Pattern Klassifikation von Patterns (2) Wirkungsbereich Klassen Statische Beziehungen zwischen Klassen (Vererbung) Objekte Dynamische Beziehungen zwischen Instanzen von Klassen 24 / 34

Design Pattern Composite Pattern Structural Pattern Rekursive Objektstrukturen Uniforme Behandlung von Container und Inhalt 25 / 34

Motivation Design Pattern Dateisystem Container Verzeichnisse Inhalt Verzeichnisse, Dateien Arithmetische Ausdrücke Container Operatoren Inhalt Operatoren, Konstanten, Variablen 26 / 34

Beispiel Design Pattern FileSystemEntry * getname() 1 File filehandle getname() Directory getname() getchildren() addchild(filesystementry) 27 / 34

Design Pattern Allgemeine Struktur Client Component operation() add(component) remove(component) getchild(int) children Leaf operation() Composite operation() add(component) remove(component) getchild(int) forall g in children g.operation(); 28 / 34

Visitor Pattern Design Pattern Behavioral Pattern Operationen auf einer Objektstruktur werden durch Objekte repräsentiert Hinzufügen neuer Operationen ohne Änderung der Klassen 29 / 34

Motivation Design Pattern Operation eines Filesystems: Löschen, Kopieren, Liste aller Namen bestimmen,... Naiver Ansatz: Operationen werden in den Klassen und implementiert FileSystemEntry delete() copy() getallnames() File delete() copy() getallnames() Directory delete() copy() getallnames() Problem: Für neue Operationen müssen und geändert werden 30 / 34

Design Pattern Beispiel mit Visitor visitfile(file) FileSystemVisitor visitdirectory(directory) visitfile(file) DeleteVisitor visitdirectory(directory) visitfile(file) CopyVisitor visitdirectory(directory) 31 / 34

Design Pattern Beispiel mit Visitor visitfile(file) FileSystemVisitor visitdirectory(directory) visitfile(file) DeleteVisitor visitdirectory(directory) visitfile(file) CopyVisitor visitdirectory(directory) Program FileSystemEntry accept(filesystemvisitor v) File accept(filesystemvisitor v) Directory accept(filesystemvisitor v) v.visitfile(this); v.visitdirectory(this); 31 / 34

Übersicht Softwarearchitektur UML Design Pattern Unit Tests 32 / 34

Unit Tests Unit Tests Idee Schreibe vor (bzw. während) der Implementierung einer Klasse eine Testklasse Archiviere alle Tests, so dass sie später wiederholt werden können Nutzen Software enthält weniger Fehler Software kann leichter geändert werden Testklasse dient als eine Art Spezifikation für die eigentliche Klasse 33 / 34

JUnit Unit Tests 34 / 34