Teil IV: Objektorientierter Entwurf 41 Einführung in die objektorientierte Softwarearchitektur

Größe: px
Ab Seite anzeigen:

Download "Teil IV: Objektorientierter Entwurf 41 Einführung in die objektorientierte Softwarearchitektur"

Transkript

1 New Van der Aalst Teil IV: Objektorientierter Entwurf 41 Einführung in die objektorientierte Softwarearchitektur Prof. Dr. rer. nat. habil. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden Version , ) Architekturprinzipien 2) Modularität und Geheimnisprinzip 3) Geschichtete Architekturen Prof. U. Aßmann, Softwaretechnologie 1 Technische Universität Dresden, Fakultät Informatik 2 Obligatorische Literatur Sekundäre Literatur Zuser Kap 10. Ghezzi Pfleeger ST für Einsteiger 5.3, 8 D. Parnas. On a buzzword: hierarchical structure. Proceedings IFIP Congress 1974, North-Holland, Amsterdam. Prof. U. Aßmann, Softwaretechnologie 3 Prof. U. Aßmann, Softwaretechnologie 4

2 Teil IV - Objektorientierter Entwurf (Object-Oriented Design, OOD) Von der Analyse zum Entwurf Vertrag mit dem Kunden 1) Einführung in die objektorientierte Softwarearchitektur (41) 1) Modularität und Geheimnisprinzip 2) Entwurfsmuster für Modularität 3) BCD-Architekturstil (3-tier architectures) 2) Verfeinerung des Entwurfsmodells zum Implementierungsmodell (Anreicherung von Klassendiagrammen) 1) Verfeinerung von Operationen 2) Verfeinerung von Assoziationen 3) Verfeinerung von Vererbung 3) Verfeinerung von Lebenszyklen 1) Verfeinerung von verschiedenen Steuerungsmaschinen 4) Verfeinerung mit Objektanreicherung 5) Objektorientierte Rahmenwerke (frameworks) 6) Softwarearchitektur mit dem Quasar-Architekturstil Analyse Anforderungs- Ermittlung Fachliche Modellierung Anforderungs- Spezifikation Architektur- Entwurf Entwurf Produktdefi nition (Anforderungen und fachliches Modell) Architektur- Spezifi kation Detail- Entwurf Klassen- Spezifi kationen 41.1 Grundlegende Architekturprinzipien Prof. U. Aßmann, Softwaretechnologie 5 Aspekte Prof. U. Aßmann, Softwaretechnologie 6 Typische Bestandteile eines Softwaresystems Anwendungsspezifische Funktionen Benutzungsoberfläche Ablaufsteuerung Datenhaltung Infrastrukturdienste Objektverwaltung Interne Objekt- und Prozeßkommunikation Verteilungsunterstützung Kommunikationsdienste Sicherheitsfunktionen Zuverlässigkeitsfunktionen Systemadministration etc. Installation, Anpassung Systembeobachtung Technische Universität Dresden, Fakultät Informatik 7 Architektur Technik Anwendung (spezifisch) Prof. U. Aßmann, Softwaretechnologie 8

3 Aspekte des Architekturentwurfs Architekturprinzip: Hierarchische Organisation der obersten Ebenen (Grobe) Strukturelle Zerlegung: Physikalische Verteilung: Blockdiagramme Schichten, Sichten, Dimensionen Zentral oder verteilt? Topologie Ablaufsicht Logischer Detail-Entwurf Einhaltung nichtfunktionaler Anforderungen: Architekturbestimmende Eigenschaften (z.b. Realzeitsystem, eingebettetes System) Optimierungen Standardarchitekturen f1 f3a F1 F3 F2 f2 f3b Mit Montagediagrammen, wurden schon in der Top-Level-Architektur behandelt Oberste Ebene des Systems ist meist hierarchisch, nicht objektorientiert strukturiert Damit die letzte Integration zum Gesamtsystem einfach verläuft Dokument- System Adresses DokumentSystem Adress Manager Manager Text TextRep IText IForm Text Manager Buffer Lines Forms Prof. U. Aßmann, Softwaretechnologie 9 Prof. U. Aßmann, Softwaretechnologie 10 Blockdiagramme Konfigurationsdiagramme (Informelle) Blockdiagramme sind kein Bestandteil von UML Blöcke stellen UML-Komponenten ohne Anschlüsse dar Blockdiagramme sind das meistverbreitete Hilfsmittel zum Skizzieren der logischen Struktur einer Systemarchitektur. Konfigurationsdiagramme sind nicht Bestandteil von UML Konfigurationsdiagramme sind das meistverbreitete Hilfsmittel zur Beschreibung der physikalischen Verteilung von Systemkomponenten. Rechner, Knoten Lokales Kommunikationsnetz Speicherndes System Datenkommunikations- Netz Prof. U. Aßmann, Softwaretechnologie 11 Prof. U. Aßmann, Softwaretechnologie 12

4 Beispiel Terminverwaltung Architekturprinzip: Hohe Kohäsion + Niedrige Kopplung PC1 PCn PDA1 PDAm Termin- Server Anzeigetafel- Steuerung Physikalische Konfi guration Subsystem A (z.b. Benutzungsoberfl äche) Hohe Kohäsion: Subsystem B darf keine Information und Funktionalität enthalten, die zum Zuständigkeitsbereich von A gehört und umgekehrt. Niedrige Kopplung: Es muß möglich sein, Subsystem A weitgehend auszutauschen oder zu verändern, ohne Subsystem B zu verändern. Blockdiagramm PC Client PDA Client PDA Sync Termin-Manager Daten- Export Subsystem B (z.b. fachlicher Kern) Änderungen von Subsystem B sollten nur möglichst einfache Änderungen in Subsystem A nach sich ziehen. Termin-Datenbank Prof. U. Aßmann, Softwaretechnologie 13 Prof. U. Aßmann, Softwaretechnologie Veränderungsorientierter Entwurf mit dem Geheimnisprinzip Architekturprinzip: Einteilung in Komponenten Nach dem Teile-und-Herrsche-Prinzip sollte Software in Komponenten (Module) eingeteilt werden Eine Komponente im allgemeinden Sinne ist eine Wiederverwendungseinheit: gruppiert Funktionalität (Kohäsion) unterstützt lose Kopplung: hat keine impliziten, nur explizit in der Schnittstelle angegebene Abhängigkeiten zu anderen Komponenten kann unabhängig von anderen entwickelt werden Komponenten können einzeln getestet werden (Einheitstest, unit test) Fehler können zu individuellen Komponenten verfolgt werden hat eine schlanke Schnittstelle kann ausgetauscht werden, ohne dass das System zusammenbricht (Ersetzbarkeit) kann wiederverwendet werden Technische Universität Dresden, Fakultät Informatik 15 Prof. U. Aßmann, Softwaretechnologie 16

5 Komponentenmodelle und Kompositionssysteme Wie modularisiert man einen Entwurf? Es gibt nicht nur die UML-Komponente. sondern viele verschiedene Komponentenmodelle: Module einer modularen Programmiersprache (Modula, Ada) Klassen in objektorientierten Sprachen UML-Komponenten Fragmentkomponenten, Schablonen Dokumentkomponenten Serverseitige Webkomponenten Ein Kompositionssystem definiert: Komponentenmodell: Eigenschaften der Schnittstelle einer Komponente Kompositionstechnik: Wie werden Komponenten komponiert? Kompositionssprache: Wie wird die Architektur eines großen Systems beschrieben? --> Vorlesung CBSE (SS) Parnas' Prinzip des Entwurfs mit dem Geheimnisprinzip (veränderungsorientierter Entwurf, change-oriented modularization with information hiding) [Parnas, CACM 1972]: 1) Bestimme alle Entwurfsentscheidungen, die sich ändern können 2) Entwickle für jede Entscheidung ein Komponente, die die Entscheidung verbirgt Die Entscheidung nennt man das Komponenten- oder Modulgeheimnis (module secret) 3) Entwerfe eine stabile Schnittstelle für die Komponente die unverändert bleibt, wenn sich die Entwurfsentscheidung und somit die Implementierung des Modulgeheimnisses ändert Das Das Geheimnisprinzip Geheimnisprinzip erniedrigt erniedrigt die die externe externe Kopplung Kopplung und und erhöht erhöht die die innere innere Kohäsion Kohäsion Prof. U. Aßmann, Softwaretechnologie 17 Geheimnisse von Modulen/Komponenten Verschiedene Arten von Komponenten/Modulen Prof. U. Aßmann, Softwaretechnologie 18 Arbeitsweise von Algorithmen Datenformate Texte, Dokumente, Bilder Datentypen Abstrakte Datentypen und ihre konkrete Implementierung Benutzerschnittstellenbibliotheken Bearbeitungsreihenfolgen Verteilung Persistenz Parallelität Prof. U. Aßmann, Softwaretechnologie 19 Funktionale Module ohne Zustand sin, cos, BCD arithmetic, gnu mp, Daten-Repositorien Verbergen Repräsentation, Zugriff und Zustand der Daten Symboltabellen, Materialcontainer, Abstrakte Datentypen Singletons (Konfigurationskomponenten) Klassen mit einer einzigen Instanz Prozesse (aktive Objekte) Klassen Module, die ausgeprägt werden können Generische Klassen (Klassenschablonen) Komplexe Klassen (UML-Komponenten) Fragmentkomponenten für alle gilt das Geheimnisprinzip für alle gilt das Geheimnisprinzip Prof. U. Aßmann, Softwaretechnologie 20

6 Entwurfsmuster für Geheimnisprinzip Viele Entwurfsmuster (z.b. TemplateMethod) sind Variabilitätsmuster, d.h., sie lassen einem bestimmte Geheimnisse verbergen und dann die Implementierungen austauschen (variieren) Fassade verbirgt ein ganzes Subsystem Fabrikmethode verbirgt die Allokation von Produkten TemplateMethod und Strategie verbergen einen Anteil eines Algorithmus Singleton kapselt globale Konfigurationsdaten In UML kann man Entwurfsmuster als Komponenten (Wiederverwendungeinheiten) kapseln, indem man sie als Kollaborationen spezifiziert Entwurfsmuster Fassade zur Reduktion von Kopplung Ein Entwurfsmuster im Geiste Parnas (Wdh.) Entwurfsmuster Fassade (Facade) Prof. U. Aßmann, Softwaretechnologie 21 Technische Universität Dresden, Fakultät Informatik 22 Fassaden verbergen Subsysteme Eine Fassade (Facade) ist ein Objektadapter, der ein komplettes Subsystem verbirgt Die Fassade bildet die eigene Schnittstelle auf die Schnittstellen der verkapselten Objekte ab Eine UML-Komponente ist gleichzeitig eine (einfache) Fassade. Die Delegationskonnektoren werden 1:1 an innere Komponenten delegiert; interne Adapter können adaptieren Prof. U. Aßmann, Softwaretechnologie 23 Eine Fassade bietet eine Sicht auf ein Subsystem an. Es darf mehrere Sichten geben, nur keinen direkten Zugriff auf die inneren Objekte Client Abstract Facade operation() Concrete Facade operation(). adaptedobject.specificoperation() adaptedobject2.specificoperation(). HiddenSubsystem adapted Object1 adapted Object2 adapted Object3 HiddenClass1 specificoperation() HiddenClass2 specificoperation() HiddenClass3 specificoperation() Prof. U. Aßmann, Softwaretechnologie 24

7 Restrukturierung hin zur Fassade Fassaden und Schichten Fassaden entkoppeln; Subsysteme können leichter ausgetauscht werden (Variabilitätsmuster) Falls einzelne Klassen eines Subsystems wieder Fassaden sind, entstehen fassadengeschützte Schichten Clients Clients Facade Facade Upper layer Facade Subsystem Prof. U. Aßmann, Softwaretechnologie 25 Lower layer Prof. U. Aßmann, Softwaretechnologie Entwurfsmuster Fabrikmethode (FactoryMethod) Problem der Fabrikmethode Wie variiert man die Erzeugung für eine polymorphe Hierarchie von Produkten? Problem: Konstruktoren sind nicht polymorph! (vertiefend) zur polymorphen Variation von Komponenten (Produkte) und zum Verbergen von Produkt-Arten Product ConcreteProduct1 Product = new ConcreteProduct1() ConcreteProduct2 Technische Universität Dresden, Fakultät Informatik 27 Prof. U. Aßmann, Softwaretechnologie 28

8 Struktur Fabrikmethode Factory Method (Polymorphic Constructor) FactoryMethod ist eine Variante von TemplateMethod, zur Produkterzeugung Product ConcreteProduct Creator FactoryMethod() anoperation() ConcreteCreator FactoryMethod() Beispiel FactoryMethod Product = FactoryMethod() return new ConcreteProduct Prof. U. Aßmann, Softwaretechnologie 29 Abstract creator classes offer abstract constructors (polymorphic constructors) Concrete subclasses can specialize the constructor Constructor implementation is changed with allocation of concrete Creator // Abstract creator class // Abstract creator class public abstract class Creator { public abstract class Creator { // factory method // factory method public abstract Set createset(int n); public abstract Set createset(int n); public class Client { public class Client { Creator cr = [ subclass ] Creator cr = [ subclass ] public void collect() { public void collect() { Set myset = Creator.createSet(10); Set myset = Creator.createSet(10);.. Lösung mit FactoryMethod // Concrete creator class // Concrete creator class public class ConcreteCreator extends Creator { public class ConcreteCreator extends Creator { public Set createset(int n) { public Set createset(int n) { return new ListBasedSet(n); return new ListBasedSet(n); Prof. U. Aßmann, Softwaretechnologie 30 Rahmenwerk für Gebäudeautomation Klasse Building hat eine Schablonenmethode zur Planung von Gebäuden Abstrakte Methoden: createwall, createroom, createdoor, createwindow Benutzer können Art des Gebäudes verfeinern Wie kann das Rahmenwerk neue Arten von Gebäuden behandeln? Building construct() createwall() createdoor() createwindow() createroom() Skyscraper createwall() createdoor() createwindow() createroom() house = new Building(); house.construct(); house.createwall(); house.createdoor(); house.createwindow(); Framework Extensions Bilde createbuilding() als Fabrikmethode aus // abstract creator class // abstract creator class public abstract class Building { public abstract class Building { public abstract public abstract Building createbuilding(); Building createbuilding(); // concrete creator class // concrete creator class public class Skyscraper extends Building { public class Skyscraper extends Building { Skyscraper() { Skyscraper() { public Building createbuilding() { public Building createbuilding() { fill in more info fill in more info return new Skyscraper(); return new Skyscraper(); Prof. U. Aßmann, Softwaretechnologie 31 Prof. U. Aßmann, Softwaretechnologie 32

9 Factory Method im SalesPoint-Rahmenwerk Einsatz in Komponentenarchitekturen Anwender von SalesPoint verfeinern die StockImpl-Klasse, die ein Produkt des Warenhauses im Lager repräsentiert z.b. mit einem CountingStockImpl, der weiß, wieviele Produkte noch da sind In Rahmenwerk-Architekturen wird die Fabrikmethode eingesetzt, um von oberen Schichten (Anwendungsschichten) aus die Rahmenwerkschicht zu konfigurieren: StockImpl Rahmenwerk +clone() : Object #createpeer(): StockImpl Building Building Style Anwendung CountingStockImpl #createpeer(): StockImpl Skyscraper Castle Bungalow Mideval Style Modern Style Prof. U. Aßmann, Softwaretechnologie Strategie (Strategy, Template Class) Strategy (also called Template Class) Prof. U. Aßmann, Softwaretechnologie 34 Strategy wirkt wie TemplateMethod, nur wird die Hakenmethode in eine separate Klasse ausgelagert Zur Variation der Hakenklasse (und -methode) TemplateClass hookobject HookClass (Strategy) (Wdh.) templatemethod() hookmethod() hookobject.hookmethod() ConcreteHookValueA hookmethod() ConcreteHookValueB hookmethod() Technische Universität Dresden, Fakultät Informatik 35 Prof. U. Aßmann, Softwaretechnologie 36

10 Kombinierter Einsatz in Rahmenwerken FactoryMethod variiert den Konstruktor TemplateMethod oder Strategy (TemplateClass) variiert die Hookmethode Bridge (s. später) variiert die TemplateMethode Entwurfsmuster Einzelstück (Singleton) Rahmenwerk Building createbuilding() animate() CastleTempl createbuilding() drawbuilding() CastleHook drawbuilding() Anwendung Bungalow createbuilding() Template Class ScottishCastle drawbuilding() zur globalen Konfiguration einer Komponente oder Schicht (Wdh) Factory Method Template Method Entwurfsmuster Einzelstück (Singleton) Prof. U. Aßmann, Softwaretechnologie 37 Technische Universität Dresden, Fakultät Informatik 38 Singleton im SalesPoint the Shop Gesucht: globales Objekt, das global oder innerhalb einer Laufzeitkomponente (z.b. Schicht) Daten, z.b. Konfi gurationsdaten, vorhält Idee: Erstelle eine Klasse, von der genau ein Objekt existiert (Invariante) Erstelle einen artifi ziellen Konstruktor (Fabrikmethode), der oft aufgerufen werden kann, aber die Invariante sicherstellt Eigentlicher Konstruktor wird verborgen (private) Austausch der Konfi guration durch Unterklassenbildung (Variabilität) Singleton theinstance: Singleton getinstance(): Singleton 01 theinstance:singleton class Singleton { private static Singleton theinstance = null; private Singleton () { public static Singleton getinstance() { if (theinstance == null) theinstance = new Singleton(); return theinstance; Der Shop im SalesPoint-Rahmenwerk ist ein Einzelstück (die Firma). Dagegen gibt es viele Verkaufsstellen (sales points) Austausch der Eigenschaften des Shops durch Unterklassenbildung Shop #Shop() $gettheshop(): Shop $settheshop (Shop sh) Prof. U. Aßmann, Softwaretechnologie 39 Prof. U. Aßmann, Softwaretechnologie 40

11 41.3 Schichtenarchitekturen (Layered Architectural Styles) Drei-Schichten-Architektur (BCD) Klassische Struktur eines interaktiven Anwendungssystems Schichten sind jeweils stark kohäsiv, und wenig gekoppelt aber warum? Oft kapselt eine Fassade eine Schicht, ein Einzelstück konfiguriert jede Schicht, Fabriken schneiden die Produkte der unteren Schichten zu, TemplateMethod/Class variieren Algorithmen der Produkte Benutzungsschnittstelle <<boundary>> und die benutzt -Relation Basiert auf Analysemodell Fachlicher Kern <<control>> Technische Universität Dresden, Fakultät Informatik 41 Verschiedene Relationen zwischen Komponenten Datenverwaltung <<data>> <<entity>> Prof. U. Aßmann, Softwaretechnologie 42 USES-Relation (Relies-On, Requires, Sees-A) Es gibt verschiedene Beziehungen zwischen den Komponenten eines Systems Ähnlichkeit Vererbungsrelationen: is-a (set inheritance), behaves-like (Verhaltenskonformität), Zugriff accesses-a (access relation) Zugriffsrecht: is-privileged-to, owns-a (security) Aufrufe: calls is-called-by delegates-to (delegation) Senden und Empfangen von Nachrichten Die USES Relation fasst alle diese zusammen Requires an implementation may means visibility: A accesses public variable of B A uses a resource provided by B A allocates an instance of B A delegates work to B (A calls B) or B delegates work to A (B calls A) A calls B by exception or event If the USES relation is a partial order (a tree or a dag), then the system is called hierarchical or layered Component Component A A USES USES (relies-on, (relies-on, sees-a) sees-a) component component B B iff iff A A requires requires a a correct correct implementation implementation of of B B for for its its own own correct correct execution. execution. (A (A requires requires the the presence presence of of B) B) because partial orders can be layered Prof. U. Aßmann, Softwaretechnologie 43 Prof. U. Aßmann, Softwaretechnologie 44

12 Repeat: BCD/BCED Classification Example: USES Relation in 3- and 4-Tier Architectures (BCED) Boundary classes: Represent an interface item that talks with the user May persist beyond a run Control class: Controls the execution of a process, workflow, or business rules Does not persist Entity class: Describes persistent knowledge. Caches a persistent object from a database (data access object, DAO) Database class Adapter class for the database <<boundary>> Often, Entity and Database classes are unified <<entity>> <<database>> BCD/BCED is linked with the 3-tier architecture <<control>> 3- and 4-tier architectures have an acyclic USES relation, divided into 3 (resp. 4) layers that use each other in an acyclic relationship Upper layers see lower layers, but not vice versa Graphical user interface (GUI, Benutzerschnittstelle) Application logic (business logic, Fachlicher Kern, Anwendungslogik) Middleware (memory access, distribution) <<boundary>> <<control>> <<entity>> Data access object (DAO) Data Repository Layer (database, memory) <<database>> Example: 3- and 4-Tier Architectures (BCD/BCED) Good encapsulation of cohesive knowledge in a layer Low coupling due to acyclic USES relationship Better exchange of subsystems of the application GUI encapsulates user interactions and look Prof. U. Aßmann, Softwaretechnologie 45 Data repository layer encapsulates how data is stored (database, transient, persistent component platforms such as Enterprise JavaBeans) Middleware mediates between both The middleware hides distribution and deals with security The BCD/BCED architecture is the architecture for business-oriented software and for projects in the projects Prof. U. Aßmann, Softwaretechnologie 46 Example: 4-Tier Web System (Thick Client) Middleware Thick client Web Systems have a http-based middleware, in which GUI and application logic reside on the client, data is managed on the server Graphical user interface Client Application logic (business logic) Server http <<boundary>> <<page>> <<control>> <<applet>> <<entity>> Data access object (DAO) Data Repository Layer (database, memory) <<database>> Prof. U. Aßmann, Softwaretechnologie 47 Prof. U. Aßmann, Softwaretechnologie 48

13 Example: 4-Tier Web System (Thin Client) Example: ISO-OSI 7 Layers Network Architecture Thin client Web Systems have a http-based middleware, in which GUI resides on the client, application logic and data is managed on the server Every layer contains an abstract machine (set of operations) Graphical user interface Client Application logic (business logic) Middleware Server http <<boundary>> <<page>> <<control>> <<servlet>> <<entity>> Data access object (DAO) Presentation Layer Session Layer Presentation Layer Session Layer Data Repository Layer (database, memory) <<database>> Data Transport Layer Data Transport Layer Prof. U. Aßmann, Softwaretechnologie 49 Prof. U. Aßmann, Softwaretechnologie 50 Example: Operating Systems Example: Database Systems UNIX: User Space Kernel Apple- UNIX User Space Kernel SQL compiler Microkernel (Mach) transaction manager lock manager table manager Windows NT/XP: User Space Kernel Hardware Abstraction Layer (HAL) physical storage management record management layer Prof. U. Aßmann, Softwaretechnologie 51 Prof. U. Aßmann, Softwaretechnologie 52

14 Why are Layered Architectures Successful? What Have We Learned Layered architectures require an acyclic USES relationship They are successful, Because the dependencies within the system are structured as a dag System is structured Internals of layers can be abstracted away Designing the global architectural style of your application is important (Architekturentwurf) Layers play an important role The USES (relies-on) relation is different from is-a (inheritance) and part-of (aggregation) It deals with prerequisites for correct execution Can be used to layer systems, if it is acyclic Examples of architectural styles with acyclic USES relation: The BCED 4-tier architecture Layered abstract machines for interactive applications Layered behavioral state machines Both styles can be combined Prof. U. Aßmann, Softwaretechnologie 53 Prof. U. Aßmann, Softwaretechnologie 54 Conway s Law on Software Structure The End Software is always structured in the same way as the organisation which built it. 55 Prof. U. Aßmann, Softwaretechnologie 55 Prof. U. Aßmann, Softwaretechnologie 56

New. Van der Aalst. Prof. U. Aßmann, Softwaretechnologie 1

New. Van der Aalst. Prof. U. Aßmann, Softwaretechnologie 1 New Van der Aalst Prof. U. Aßmann, Softwaretechnologie 1 Teil IV: Objektorientierter Entwurf 41 Einführung in die objektorientierte Softwarearchitektur Prof. Dr. rer. nat. habil. Uwe Aßmann Institut für

Mehr

Teil IV: Objektorientierter Entwurf 41 Einführung in die objektorientierte Softwarearchitektur

Teil IV: Objektorientierter Entwurf 41 Einführung in die objektorientierte Softwarearchitektur Teil IV: Objektorientierter Entwurf 41 Einführung in die objektorientierte Softwarearchitektur Prof. Dr. rer. nat. habil. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie

Mehr

Teil IV: Objektorientierter Entwurf

Teil IV: Objektorientierter Entwurf Teil IV: Objektorientierter Entwurf OOD.1 Einführung in die objektorientierte Softwarearchitektur Prof. Dr. rer. nat. habil. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie

Mehr

4. Objektorientierter Entwurf

4. Objektorientierter Entwurf 4. Objektorientierter Entwurf 4.1 Entwurf der Softwarearchitektur Softwaretechnologie, Prof. Uwe Aßmann 1 Obligatorische Literatur Zuser Ghezzi 4.1-4.2 Pfleeger 5.1-5.3 Prof. Uwe Aßmann, Softwaretechnologie

Mehr

Teil IV: Objektorientierter Entwurf 41 Grundlegende Architekturprinzipien

Teil IV: Objektorientierter Entwurf 41 Grundlegende Architekturprinzipien Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie Teil IV: Objektorientierter Entwurf 41 Grundlegende Architekturprinzipien Prof. Dr. rer. nat. Uwe Aßmann Institut für

Mehr

43 Verfeinerung von Lebenszyklen - Geschichtete Interpretierer (Automaten)

43 Verfeinerung von Lebenszyklen - Geschichtete Interpretierer (Automaten) 43 Verfeinerung von Lebenszyklen - Geschichtete Interpretierer (Automaten) Prof. Dr. rer. nat. habil. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für

Mehr

OOD.3 Verfeinerung von Lebenszyklen - Geschichtete Interpretierer (Automaten)

OOD.3 Verfeinerung von Lebenszyklen - Geschichtete Interpretierer (Automaten) OOD.3 Verfeinerung von Lebenszyklen - Geschichtete Interpretierer (Automaten) Prof. Dr. rer. nat. habil. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für

Mehr

Teil IV: Objektorientierter Entwurf 41 Grundlegende Architekturprinzipien

Teil IV: Objektorientierter Entwurf 41 Grundlegende Architekturprinzipien Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie Teil IV: Objektorientierter Entwurf 41 Grundlegende Architekturprinzipien Prof. Dr. rer. nat. Uwe Aßmann Institut für

Mehr

OOSE 8 Entwurfsmuster (Hörsaalübung)

OOSE 8 Entwurfsmuster (Hörsaalübung) OOSE 8 Entwurfsmuster (Hörsaalübung) SS 2015 Birgit Demuth Entwurfsmuster in Softwaretechnologie 2015 Prüfungsrelevant Composite Iterator Factory Method Class Adapter Object Adapter Observer Singleton

Mehr

46 Softwarearchitektur mit dem Quasar-Architekturstil

46 Softwarearchitektur mit dem Quasar-Architekturstil 46 Softwarearchitektur mit dem Quasar-Architekturstil Prof. Dr. U. Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie http://st.inf.tu-dresden.de

Mehr

Softwarearchitektur mit dem Quasar- Architekturstil

Softwarearchitektur mit dem Quasar- Architekturstil Softwarearchitektur mit dem Quasar- Architekturstil Prof. Dr. U. Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie http://www-st.inf.tu-dresden.de

Mehr

43 Verfeinerung von Lebenszyklen - Geschichtete Interpretierer (Automaten)

43 Verfeinerung von Lebenszyklen - Geschichtete Interpretierer (Automaten) 43 Verfeinerung von Lebenszyklen - Geschichtete Interpretierer (Automaten) 1 Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für Informatik

Mehr

Zweck: sequentieller Zugriff auf Elemente eines Aggregats. mehrere Abarbeitungen des Aggregatinhalts

Zweck: sequentieller Zugriff auf Elemente eines Aggregats. mehrere Abarbeitungen des Aggregatinhalts Iterator (Cursor) Zweck: sequentieller Zugriff auf Elemente eines Aggregats Anwendungsgebiete: Zugriff auf Aggregatinhalt innere Darstellung bleibt gekapselt mehrere Abarbeitungen des Aggregatinhalts einheitliche

Mehr

Zweck: sequentieller Zugriff auf Elemente eines Aggregats

Zweck: sequentieller Zugriff auf Elemente eines Aggregats Iterator (Cursor) Zweck: sequentieller Zugriff auf Elemente eines Aggregats Anwendungsgebiete: Zugriff auf Aggregatinhalt innere Darstellung bleibt gekapselt mehrere Abarbeitungen des Aggregatinhalts einheitliche

Mehr

Software Engineering. 5. Architektur

Software Engineering. 5. Architektur Software Engineering 5. Architektur Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz Implementierung Konfigurationsmanagement

Mehr

OOSE 13 Objektorientierter Entwurf (OOD) (Hörsaalübung)

OOSE 13 Objektorientierter Entwurf (OOD) (Hörsaalübung) OOSE 13 Objektorientierter Entwurf (OOD) (Hörsaalübung) SS 2015 Birgit Demuth Analyse Anforderungs- Ermittlung Von der Analyse zum Entwurf System- Modelierung Anforderungs- Spezifikation (Pflichtenheft)

Mehr

1.3 Charakteristische Eigenschaften von objektorientierten Systemen

1.3 Charakteristische Eigenschaften von objektorientierten Systemen 1.3 Charakteristische Eigenschaften von objektorientierten Systemen Einkapselung (Encapsulation) Geheimhaltungsprinzip (Information / Implementation hiding) Persistenz (State retention) Objektidentität

Mehr

Erinnerung: UML-Aufgaben im Praktomaten

Erinnerung: UML-Aufgaben im Praktomaten Erinnerung: UML-Aufgaben im Praktomaten einführende Aufgaben zur Java-Programmierung Aufgaben zum Übungsmaterial zusätzliche, komplexere Aufgaben Klausurrelevante Aufgaben (Implementierungsteil) Prof.

Mehr

Teil III der Vorlesung Objektorientierte Analyse (OOA) 30) Überblick über die OOA

Teil III der Vorlesung Objektorientierte Analyse (OOA) 30) Überblick über die OOA Teil III der Vorlesung Objektorientierte Analyse (OOA) 30) Überblick über die OOA Prof. Dr. rer. nat. habil. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät

Mehr

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

Creational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05. Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational

Mehr

Tutorium Softwaretechnik I

Tutorium Softwaretechnik I Tutorium Softwaretechnik I Moritz Klammler 27. Juni 2017 Fakultät für Informatik, IPD Tichy Titelfoto: Copyright (C) 2010 Multimotyl CC BY-SA 3.0 1 27. Juni 2017 Moritz Klammler - Tutorium Softwaretechnik

Mehr

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Aufbau eines modernen Betriebssystems (Windows NT 5.0) Aufbau eines modernen Betriebssystems (Windows NT 5.0) Moritz Mühlenthaler 14.6.2004 Proseminar KVBK Gliederung 1.Das Designproblem a) Überblick b) Design Goals c) Möglichkeiten der Strukturierung 2. Umsetzung

Mehr

Design Patterns. OO-GetTogether. Volker Michels

Design Patterns. OO-GetTogether. Volker Michels 1 Design Patterns OO-GetTogether Volker Michels 2 Muster (engl. Pattern) Züllighoven: Ein Muster ist eine Abstraktion von einer konkreten Form, die wiederholt in bestimmten nicht willkürlichen Kontexten

Mehr

Objektorientierte und Funktionale Programmierung SS 2014

Objektorientierte und Funktionale Programmierung SS 2014 Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten

Mehr

Alternative Architekturkonzepte

Alternative Architekturkonzepte Alternative Architekturkonzepte Motivation: Suche nach einer Gesamtstruktur meistens: dominante nichtfunktionale Eigenschaften legen Architektur fest Antrieb: Architekturziel Ziel: globale Betrachtung

Mehr

Objektorientierte Analyse

Objektorientierte Analyse Objektorientierte Analyse 1) Überblick über die Objektorientierte Analyse Prof. Dr. rer. nat. habil. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für Informatik

Mehr

185.A Software-Entwurfsmuster 1 OOP. Software-Entwurfsmuster

185.A Software-Entwurfsmuster 1 OOP. Software-Entwurfsmuster 2013-12-11 Software-Entwurfsmuster 1 185.A01 OOP Software-Entwurfsmuster 2013-12-11 Software-Entwurfsmuster 2 OOP Zweck von Entwurfsmustern Benennen wiederkehrender Probleme und Lösungen Austasch von Erfahrungen

Mehr

OOP. Tagesprogramm. Software-Entwurfsmuster. Factory-Method. Prototype

OOP. Tagesprogramm. Software-Entwurfsmuster. Factory-Method. Prototype 1 2014-12-10 Tagesprogramm Software-Entwurfsmuster Factory-Method Prototype 2 2014-12-10 Software-Entwurfsmuster Zweck von Entwurfsmustern Benennen wiederkehrender Probleme und Lösungen Austasch von Erfahrungen

Mehr

Überblick FBC SNW Zusammenfassung. Entwurfsmuster. Eine Einführung. Botond Draskoczy. Marcus Vitruvius Pollio

Überblick FBC SNW Zusammenfassung. Entwurfsmuster. Eine Einführung. Botond Draskoczy. Marcus Vitruvius Pollio Entwurfsmuster Eine Einführung Botond Draskoczy Marcus Vitruvius Pollio Überblick Historie, Literatur Das Flugapparat-Bildschirmschoner-Projekt (FBP) Das internetbasierte Solar-Netzwerk (SNW) Zusammenfassung

Mehr

Modul Software Komponenten 01 Komponenten

Modul Software Komponenten 01 Komponenten Modul Software Komponenten 01 Komponenten Martin Jud Inhalt 1. Begriff 2. Bedeutung 3. Nutzen 4. Entwurf mit Komponenten HSLU T&A, 14.09.2008 Modul SWK - 01-Komponenten - Martin Jud 2 1. Begriff Definition

Mehr

Objektorientierteund FunktionaleProgrammierung

Objektorientierteund FunktionaleProgrammierung Objektorientierte und Funktionale Programmierung SS 2014 6 Objektorientierte Entwurfsmuster 1 6 Objektorientierte Entwurfsmuster Lernziele Einige wichtige Entwurfsmuster kennen und verstehen Einsatzmöglichkeiten

Mehr

Enterprise JavaBeans Überblick

Enterprise JavaBeans Überblick Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6.

Mehr

Design Patterns II. Der Design Muster Katalog. Prof. Dr. Nikolaus Wulff

Design Patterns II. Der Design Muster Katalog. Prof. Dr. Nikolaus Wulff Design Patterns II Der Design Muster Katalog Prof. Dr. Nikolaus Wulff Wiederverwendung Wiederverwendung ist das Schlagwort von OOP zur Erhöhung der Produktivität. Es gibt im Prinzip drei Methoden hierzu:

Mehr

Einführung in die Informatik II

Einführung in die Informatik II Einführung in die Informatik II SS 2012 6 Objektorientierte Entwurfsmuster Wissensbassierte Systeme / Wissensmanagement Einführung in die Informatik II 1 Prüfungstermine EI II im Sommersemester 2012 Klausurtermine

Mehr

3. Entwurfsmuster zur Entkopplung von Modulen

3. Entwurfsmuster zur Entkopplung von Modulen 3. Entwurfsmuster zur Entkopplung von Modulen OOP-3.1 Entwurfsmuster (Design Patterns): Software-Entwicklungsaufgaben, die in vielen Ausprägungen häufig auftreten. Objektorientierte Schemata, die als Lösungen

Mehr

Objektorientierte und Funktionale Programmierung

Objektorientierte und Funktionale Programmierung Objektorientierte und Funktionale Programmierung SS 2013 6 Objektorientierte Entwurfsmuster Wissensbassierte Systeme / Wissensmanagement Objektorientierte und Funktionale Programmierung 1 PrüfungstermineOFP

Mehr

33. Strukturelle System- Modellierung (Kontextmodell und Top-Level-Architektur)

33. Strukturelle System- Modellierung (Kontextmodell und Top-Level-Architektur) 33. Strukturelle System- Modellierung (Kontextmodell und Top-Level-Architektur) 1 Mit komplexen Objekten und UML-Komponenten Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik

Mehr

Ausnahmebehandlung in Java

Ausnahmebehandlung in Java Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception

Mehr

33 Strukturelle Modellierung für das Kontextmodell und die Top-Level- Architektur

33 Strukturelle Modellierung für das Kontextmodell und die Top-Level- Architektur 33 Strukturelle Modellierung für das Kontextmodell und die Top-Level- Architektur Prof. Dr. rer. nat. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät für

Mehr

Teil II Objektorientierte Programmierung (OOP) 20. Objektnetze

Teil II Objektorientierte Programmierung (OOP) 20. Objektnetze Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie Teil II Objektorientierte Programmierung (OOP) 20. Objektnetze Prof. Dr. rer. nat. Uwe Aßmann Institut für Software-

Mehr

Order Ansicht Inhalt

Order Ansicht Inhalt Order Ansicht Inhalt Order Ansicht... 1 Inhalt... 1 Scope... 2 Orderansicht... 3 Orderelemente... 4 P1_CHANG_CH1... 6 Function: fc_ins_order... 7 Plug In... 8 Quelle:... 8 Anleitung:... 8 Plug In Installation:...

Mehr

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1 Exercise (Part XI) Notes: The exercise is based on Microsoft Dynamics CRM Online. For all screenshots: Copyright Microsoft Corporation. The sign ## is you personal number to be used in all exercises. All

Mehr

Teil II Objektorientierte Programmierung (OOP) 20. Objektnetze

Teil II Objektorientierte Programmierung (OOP) 20. Objektnetze Fakultät Informatik - Institut Software- und Multimediatechnik - Softwaretechnologie Teil II Objektorientierte Programmierung (OOP) 20. Objektnetze Prof. Dr. rer. nat. Uwe Aßmann Institut für Software-

Mehr

Architecture Blueprints

Architecture Blueprints Architecture Blueprints Daniel Liebhart, Peter Welkenbach, Perry Pakull, Mischa Kölliker, Michael Könings, Markus Heinisch, Guido Schmutz Ein Leitfaden zur Konstruktion von Softwaresystemen mit Java Spring,.NET,

Mehr

Entwurfsmuster. Rainer Schmidberger

Entwurfsmuster. Rainer Schmidberger Entwurfsmuster Rainer Schmidberger schmidrr@informatik.uni-stuttgart.de Copyright 2004, Rainer Schmidberger, Universität Stuttgart, Institut für Softwaretechnologie, Abt. Software Engineering Was sind

Mehr

Modellierung CORBA-basierter Anwendungssysteme mit der UML

Modellierung CORBA-basierter Anwendungssysteme mit der UML Verteidigung der Diplomarbeit über das Thema: Modellierung CORBA-basierter Anwendungssysteme mit der UML Andreas Mucha Technische Universität Dresden Institut für Software- und Multimediatechnik Lehrstuhl

Mehr

EAM-Vorlesung (SS2017)

EAM-Vorlesung (SS2017) EAM-Vorlesung (SS2017) V4: TOGAF und das Metamodel Vassilios Goumas Frankfurt University of Applied Science 1 V4: Verlauf Was ist ein Metamodell Aufbau des Metamodells in TOGAF Aufteilung nach Core Metamodel

Mehr

H.1 FORMI: An RMI Extension for Adaptive Applications H.1 FORMI: An RMI Extension for Adaptive Applications

H.1 FORMI: An RMI Extension for Adaptive Applications H.1 FORMI: An RMI Extension for Adaptive Applications Motivation The ed-object Approach Java RMI ed Objects in Java RMI Conclusions Universität Erlangen-Nürnberg Informatik 4, 2007 H-Formi-.fm 2007-12-14 13.11 H.1 1 Motivation Distributed object-oriented

Mehr

Lukas Klich. Projektgruppe SHUTTLE. Seminar: Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1. Entwurfsmuster

Lukas Klich. Projektgruppe SHUTTLE. Seminar: Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1. Entwurfsmuster Entwurfsmuster Lukas Klich Projektgruppe SHUTTLE Seminar: 28.11.2002 Entwurfsmuster Lukas Klich/Projektgruppe SHUTTLE Seite: 1 Motivation Die Menschheit löst Probleme, indem sie beobachtet, Beobachtungen

Mehr

const Zwei Schlüsselwörter bei der Deklaration von Variablen und Member-Funktionen haben wir noch nicht behandelt: const und static.

const Zwei Schlüsselwörter bei der Deklaration von Variablen und Member-Funktionen haben wir noch nicht behandelt: const und static. const Zwei Schlüsselwörter bei der Deklaration von Variablen und Member-Funktionen haben wir noch nicht behandelt: const und static. Eine const Variable kann ihren Wert nicht ändern: const double pi =

Mehr

FACHHOCHSCHULE MANNHEIM

FACHHOCHSCHULE MANNHEIM Objektorientierte Programmierung 3. Vorlesung Prof. Dr. Peter Knauber FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Wiederholung: Begriffsübersicht Strukturierte vs. objektorientierte Programmierung

Mehr

a.k.a. Broker a.k.a. Vermittler , Sebastian Gäng, Moritz Moll, Design Pattern, HTWG Konstanz

a.k.a. Broker a.k.a. Vermittler , Sebastian Gäng, Moritz Moll, Design Pattern, HTWG Konstanz Mediator Pattern a.k.a. Broker a.k.a. Vermittler 1 2009, Sebastian Gäng, Moritz Moll, Design Pattern, HTWG Konstanz Beschreibung Klassifikation: i Objektbasiertes b Verhaltensmuster hl Zweck: Wenn eine

Mehr

ISO 15504 Reference Model

ISO 15504 Reference Model Process flow Remarks Role Documents, data, tools input, output Start Define purpose and scope Define process overview Define process details Define roles no Define metrics Pre-review Review yes Release

Mehr

Software-Architektur. Design Patterns. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München

Software-Architektur. Design Patterns. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München Software-Architektur Design Patterns Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 11.07.2017 15:12 Inhaltsverzeichnis Standardwerk.................................... 2 Design

Mehr

Markus BöhmB Account Technology Architect Microsoft Schweiz GmbH

Markus BöhmB Account Technology Architect Microsoft Schweiz GmbH Markus BöhmB Account Technology Architect Microsoft Schweiz GmbH What is a GEVER??? Office Strategy OXBA How we used SharePoint Geschäft Verwaltung Case Management Manage Dossiers Create and Manage Activities

Mehr

Software-Entwurfsmuster

Software-Entwurfsmuster Software-Entwurfsmuster benennen wiederkehrende Probleme und Lösungen dienen dem Austasch von Erfahrungen Wiederverwendung von Erfahrung wo Wiederverwendung von Code versagt sehr abstrakt, daher häufig

Mehr

Erzeugungsmuster. Kapselung der Objekt-Erzeugung

Erzeugungsmuster. Kapselung der Objekt-Erzeugung Erzeugungsmuster Kapselung der Objekt-Erzeugung Definition Erzeugungsmuster dienen für die Lose Koppelung, bei der erst zur Laufzeit der Typ des zu erzeugenden Objekts festgelegt wird. Abstract Factory

Mehr

MSE/SWF - API Design. Arthur Zaczek. Feb 2015

MSE/SWF - API Design. Arthur Zaczek. Feb 2015 Arthur Zaczek Feb 2015 1 Einleitung Dieses Dokument ist eine Zusammenfassung des Buches Practical API Design: Confessions of a Java Framework Architect. [@Tulach2012] 1.1 Cluelessness Je einfacher eine

Mehr

Number of Maximal Partial Clones

Number of Maximal Partial Clones Number of Maximal Partial Clones KARSTEN SCHÖLZEL Universität Rostoc, Institut für Mathemati 26th May 2010 c 2010 UNIVERSITÄT ROSTOCK MATHEMATISCH-NATURWISSENSCHAFTLICHE FAKULTÄT, INSTITUT FÜR MATHEMATIK

Mehr

Artefakte, Linktypen und Besonderheiten von OOSE/RUP

Artefakte, Linktypen und Besonderheiten von OOSE/RUP Artefakte, Linktypen und Besonderheiten von OOSE/RUP Matthias Riebisch TU Ilmenau Workshop AK Traceability 07.12.2007 Darmstadt Eigenschaften von Traceability Links Obligatorisch: Identifier Startelement

Mehr

OOP. Tagesprogramm. Aspekte und Annotationen. Software-Entwurfsmuster. Factory-Method. Prototype

OOP. Tagesprogramm. Aspekte und Annotationen. Software-Entwurfsmuster. Factory-Method. Prototype 1 2017-01-11 Tagesprogramm Aspekte und Annotationen Software-Entwurfsmuster Factory-Method Prototype 2 2017-01-11 Aspekte und Annotationen Aspektorientierte Programmierung Paradigma der Modularisierung

Mehr

Kapitel 5: Das Design

Kapitel 5: Das Design Nach der Analyse kommt... Kapitel 5: Das Design SoPra 2008 Kap. 5: Das Design (1/20) Kapitel 5.1: Überblick Was ist Design? Ergebnis der Analyse: abstrakte Definitionen Objektmodell: Klassen, Assoziationen,

Mehr

Gliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D.

Gliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D. Gliederung Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c 2009 D.Rösner

Mehr

Entwurfsprinzip. Entwurfsprinzip

Entwurfsprinzip. Entwurfsprinzip Die Komposition (hat ein Beziehung) ist der Vererbung (ist ein Beziehung) vorzuziehen. Es können Familien von Algorithmen in eigenen Klassensätzen gekapselt werden. Das Verhalten lässt sich zu Laufzeit

Mehr

Entwurfsmuster. Marc Monecke

Entwurfsmuster. Marc Monecke Entwurfsmuster Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068 Siegen 20. Mai 2003 Inhaltsverzeichnis 1 Grundlagen

Mehr

Kapitel

Kapitel 10.11.005 Kapitel 4-10.11.005 Lehrbeispiel: Sortieralgorithmus " Bubble Sort" Sortieren von Primitivtypen Der "Abstrakte Datentyp" Grundlagen der Objektorientierung: Abstraktion, Kapselung, Modularität,

Mehr

prorm Budget Planning promx GmbH Nordring Nuremberg

prorm Budget Planning promx GmbH Nordring Nuremberg prorm Budget Planning Budget Planning Business promx GmbH Nordring 100 909 Nuremberg E-Mail: support@promx.net Content WHAT IS THE prorm BUDGET PLANNING? prorm Budget Planning Overview THE ADVANTAGES OF

Mehr

Labor Datenverarbeitung SS 2006

Labor Datenverarbeitung SS 2006 Labor Datenverarbeitung SS 2006 Versuch Speicherprogrammierbare Steuerungen Versuch Objektorientierter Entwurf mit Design-Pattern 1 SPS, Allgemeines Umfang der Versuche Logische Grundverknüpfungen kombinatorische

Mehr

Karlsruhe Institute of Technology Die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH)

Karlsruhe Institute of Technology Die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Combining Cloud and Grid with a User Interface Jie Tao Karlsruhe Institute of Technology jie.tao@kit.edu Die Kooperation von Outline Motivation The g-eclipse Project Extending gg-eclipse for a Cloud Framework

Mehr

Exercise (Part VIII) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Exercise (Part VIII) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1 Exercise (Part VIII) Notes: The exercise is based on Microsoft Dynamics CRM Online. For all screenshots: Copyright Microsoft Corporation. The sign ## is you personal number to be used in all exercises.

Mehr

HIR Method & Tools for Fit Gap analysis

HIR Method & Tools for Fit Gap analysis HIR Method & Tools for Fit Gap analysis Based on a Powermax APML example 1 Base for all: The Processes HIR-Method for Template Checks, Fit Gap-Analysis, Change-, Quality- & Risk- Management etc. Main processes

Mehr

Gemeinsam mehr erreichen.

Gemeinsam mehr erreichen. Gemeinsam mehr erreichen. Microservices, ein Vorgehensmodell zur Softwareentwicklung - Nürnberg - 17. November 2016 "Mit unserer Begeisterung für führende Technologien vernetzen wir Systeme, Prozesse und

Mehr

Tutorium Softwaretechnik I

Tutorium Softwaretechnik I Tutorium Softwaretechnik I Moritz Klammler 11. Juli 2017 Fakultät für Informatik, IPD Tichy Titelfoto: Copyright (C) 2010 Multimotyl CC BY-SA 3.0 1 11. Juli 2017 Moritz Klammler - Tutorium Softwaretechnik

Mehr

Konfiguration von eduroam. Configuring eduroam

Konfiguration von eduroam. Configuring eduroam eduroam Windows 8.1 / 10 Konfiguration von eduroam Configuring eduroam 08.10.2018 kim.uni-hohenheim.de kim@uni-hohenheim.de Wissenschaftliche Einrichtungen und Universitäten bieten einen weltweiten Internetzugang

Mehr

infrastructure definitions example versioning

infrastructure definitions example versioning infrastructure definitions example versioning ATLAS9000 GmbH Landauer Str. - 1 D-68766 Hockenheim +49(0)6205 / 202730 Infrastructure documents Storage ATLAS PLM Archives Drawing Circuit Diagram Work Plan

Mehr

Auf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs...

Auf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs... Auf einen Blick Auf einen Blick 1 Einleitung... 15 2 Die Basis der Objektorientierung... 29 3 Die Prinzipien des objektorientierten Entwurfs... 41 4 Die Struktur objektorientierter Software... 67 5 Vererbung

Mehr

3. Entwurfsmuster zur Entkopplung von Modulen. Übersicht zu Entwurfsmustern

3. Entwurfsmuster zur Entkopplung von Modulen. Übersicht zu Entwurfsmustern 3. Entwurfsmuster zur Entkopplung von Modulen OOP-3.1 Vorlesung Objektorientierte Programmierung WS 2013/2014 / Folie 301 Entwurfsmuster (Design Patterns): Idee der Entwurfsmuster verstehen Software-Entwicklungsaufgaben,

Mehr

Objektorientierter Entwurf. Verfeinerung von Klassendiagrammen. Was ist Verfeinerung? OOD.2) Verfeinerung des Klassenmodells

Objektorientierter Entwurf. Verfeinerung von Klassendiagrammen. Was ist Verfeinerung? OOD.2) Verfeinerung des Klassenmodells Objektorientierter Entwurf OOD.2) Verfeinerung des Klassenmodells K abc xyz abra kadabra Version 0-0., 04.07.0 K abc: T xyz: T2 abra (x:t) T2 kadabra (y: T2): T Softwaretechnologie, Prof. Uwe Aßmann, Prof.

Mehr

33 Strukturelle Modellierung für das Kontextmodell und die Top-Level- Architektur. Obligatorische Literatur

33 Strukturelle Modellierung für das Kontextmodell und die Top-Level- Architektur. Obligatorische Literatur 33 Strukturelle Modellierung für das Kontextmodell und die Top-Level- Architektur Prof. Dr. rer. nat. habil. Uwe Aßmann Institut für Software- und Multimediatechnik Lehrstuhl Softwaretechnologie Fakultät

Mehr

SOLID für.net und JavaScript

SOLID für.net und JavaScript SOLID für.net und JavaScript www.binarygears.de Stefan Dirschnabel Twitter: @StefanDirschnab #dncgn SOFTWARE ENTWICKLUNG BERATUNG SCHULUNG 5 Prinzipien für das Design von Software Wartbarer Code Leicht

Mehr

Contract Based Design

Contract Based Design Contract Based Design The Problem + = How can we avoid this in complex software and systems? How do we describe what we want? Requirement or Specification: REQ-1: The two traffic lights must not be green

Mehr

Design Patterns. 3. Juni 2015

Design Patterns. 3. Juni 2015 Design Patterns 3. Juni 2015 Überblick Was sind Design Patterns? Welche Design Patterns gibt es? Wann sollte man Design Patterns einsetzen? Taentzer Softwarequalität 2015 138 Was sind Design Patterns?

Mehr

Annotation based presentation models for view rendering and data binding with Linkki and Vaadin

Annotation based presentation models for view rendering and data binding with Linkki and Vaadin Annotation based presentation models for view rendering and data binding with Linkki and Vaadin jan.ortmann@faktorzehn.de 20.02.2017 Faktor-IPM - Architektur 1 Annotation based presentation models for

Mehr

systems landscape engineering - übung -

systems landscape engineering - übung - systems landscape engineering - übung - Wintersemester 2010 /2011 Arbeitsgruppe Wirtschaftsinformatik - Managementinformationssysteme - Dipl. Wirt.-Inform. Sven Gerber Arbeitsgruppe Wirtschaftsinformatik

Mehr

V-Modell mit UML. Max Kleiner

V-Modell mit UML. Max Kleiner V-Modell mit UML Max Kleiner Open or programming for change The Unified Modeling Language [UML95] is a thirdgeneration object-oriented modeling language for specifying, visualizing, and documenting the

Mehr

BVM-Tutorial 2010: BlueBerry A modular, cross-platform, C++ application framework

BVM-Tutorial 2010: BlueBerry A modular, cross-platform, C++ application framework BVM-Tutorial 2010: BlueBerry A modular, cross-platform, C++ application framework Daniel Maleike, Michael Müller, Alexander Seitel, Marco Nolden, Sascha Zelzer Seite 2 Overview General introduction Workbench

Mehr

Webbasierte Exploration von großen 3D-Stadtmodellen mit dem 3DCityDB Webclient

Webbasierte Exploration von großen 3D-Stadtmodellen mit dem 3DCityDB Webclient Webbasierte Exploration von großen 3D-Stadtmodellen mit dem 3DCityDB Webclient Zhihang Yao, Kanishk Chaturvedi, Thomas H. Kolbe Lehrstuhl für Geoinformatik www.gis.bgu.tum.de 11/14/2015 Webbasierte Exploration

Mehr

Klausur Verteilte Systeme

Klausur Verteilte Systeme Klausur Verteilte Systeme SS 2005 by Prof. Walter Kriha Klausur Verteilte Systeme: SS 2005 by Prof. Walter Kriha Note Bitte ausfüllen (Fill in please): Vorname: Nachname: Matrikelnummer: Studiengang: Table

Mehr

Product Lifecycle Manager

Product Lifecycle Manager Product Lifecycle Manager ATLAS9000 GmbH Landauer Str. - 1 D-68766 Hockenheim +49(0)6205 / 202730 Product Lifecycle Management ATLAS PLM is powerful, economical and based on standard technologies. Directory

Mehr

Übung 3: VHDL Darstellungen (Blockdiagramme)

Übung 3: VHDL Darstellungen (Blockdiagramme) Übung 3: VHDL Darstellungen (Blockdiagramme) Aufgabe 1 Multiplexer in VHDL. (a) Analysieren Sie den VHDL Code und zeichnen Sie den entsprechenden Schaltplan (mit Multiplexer). (b) Beschreiben Sie zwei

Mehr

Exercise (Part V) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Exercise (Part V) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1 Exercise (Part V) Notes: The exercise is based on Microsoft Dynamics CRM Online. For all screenshots: Copyright Microsoft Corporation. The sign ## is you personal number to be used in all exercises. All

Mehr

Software Engineering. 10. Entwurfsmuster II. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering. 10. Entwurfsmuster II. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering 10. Entwurfsmuster II Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: 10. Entwurfsmuster II 2 Die Entwurfsmuster der Gang of Four Die 23 GoF Pattern sind in 3 Gruppen

Mehr

Design Patterns. (Software-Architektur) Prof. Dr. Oliver Braun. Letzte Änderung: :12. Design Patterns 1/26

Design Patterns. (Software-Architektur) Prof. Dr. Oliver Braun. Letzte Änderung: :12. Design Patterns 1/26 Design Patterns (Software-Architektur) Prof. Dr. Oliver Braun Letzte Änderung: 11.07.2017 15:12 Design Patterns 1/26 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides:

Mehr

Architektur & Design. Martin Jud Software-Engineering Construction Architecture 1. Architecture

Architektur & Design. Martin Jud Software-Engineering Construction Architecture 1. Architecture Architektur & Design Die Erfahrung hat mich gelehrt, dass man jede Person, die mit gesundem Menschenverstand ausgestattet ist, zu einem guten Systemanalytiker ausbilden kann. Software Architekten und Designer

Mehr

How-To-Do. Communication to Siemens OPC Server via Ethernet

How-To-Do. Communication to Siemens OPC Server via Ethernet How-To-Do Communication to Siemens OPC Server via Content 1 General... 2 1.1 Information... 2 1.2 Reference... 2 2 Configuration of the PC Station... 3 2.1 Create a new Project... 3 2.2 Insert the PC Station...

Mehr

Raber+Märcker Techno Summit 2014 Microsoft Dynamics NAV 2013 R2 Überblick und Hintergründe zu aktuellen Version. Schimon.Mosessohn@microsoft.

Raber+Märcker Techno Summit 2014 Microsoft Dynamics NAV 2013 R2 Überblick und Hintergründe zu aktuellen Version. Schimon.Mosessohn@microsoft. Raber+Märcker Techno Summit 2014 Microsoft Dynamics NAV 2013 R2 Überblick und Hintergründe zu aktuellen Version Schimon.Mosessohn@microsoft.com Herzlich Willkommen 1996 2004 2010 2014 Navision 3.7 Microsoft

Mehr

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1 Exercise (Part II) Notes: The exercise is based on Microsoft Dynamics CRM Online. For all screenshots: Copyright Microsoft Corporation. The sign ## is you personal number to be used in all exercises. All

Mehr

SARA 1. Project Meeting

SARA 1. Project Meeting SARA 1. Project Meeting Energy Concepts, BMS and Monitoring Integration of Simulation Assisted Control Systems for Innovative Energy Devices Prof. Dr. Ursula Eicker Dr. Jürgen Schumacher Dirk Pietruschka,

Mehr