Architekturmodell: der Weg zur Klassen-Hierarchie

Größe: px
Ab Seite anzeigen:

Download "Architekturmodell: der Weg zur Klassen-Hierarchie"

Transkript

1 Betriebssystemtechnik Operating System Engineering (OSE) Domänenentwurf Domänenmodell Domänenentwurf Feedback/Anpassungen Reverse Architecting teuer Referenzarchitektur Architekturmodell: der Weg zur Klassen-Hierarchie Analyse Identifikation der Architekturtreiber, Mechanismen und Sichten Modellierung? Architekturdokumentation mit Variationspunkten Evaluierung Erkennen von Risiken in den Entwurfsentscheidungen In Anlehnung an das Modell zur Architekturentwicklung aus []. 007 Olaf Spinczyk Architektur-Modellierung bisher haben wir diverse Hierarchien Modul-Hierarchie Funktionale Hierarchie [] Benutzt-Hierarchie [] jetzt kommt noch eine hinzu: die Belang-Hierarchie [] gesucht ist eine Modulstruktur durch Programmiersprache bestimmt: AspectC++ - Klassen, Methoden, Aspekte, (Templates) Funktionale Hierarchie von FAMOS a time sharing system special devices user interface swapping a process control system address space creat. synchronization process managem. address spaces job control language file systems disk i/o process creation a batch system Was genau bedeutet das? hardware [] 007 Olaf Spinczyk 007 Olaf Spinczyk

2 Das Modell der funktionalen Hierarchie Funktionale Hierarchie Elemente Funktionen elementare Systembausteine der Software (Entwurfsebene) logische Funktionen file system file system 007 Olaf Spinczyk Olaf Spinczyk 6 Funktionale Hierarchie Elemente Funktionale Abhängigkeiten logische Abhängigkeiten zwischen Systembausteinen ( verwendet ) müssen einen azyklischen Graphen ergeben Funktionale Hierarchie Elemente Ebenen Gruppierung zusammenhängender Funktionen Ebene 0 ist die Hardware Ebenen n fügen virtuelle Hardware als minimale Erweiterungen hinzu Functionen der Ebene n kennen alle Funktions der Ebenen 0n file system file system 007 Olaf Spinczyk Olaf Spinczyk 8

3 Funktionale Hierarchie Vorteile verständlich gut für bottom-up Entwicklung geeignet feingranulare Konfigurierbarkeit durch minimale Erweiterungen erfordert keine speziellen Implementierungsmechanismen It is the system design which is hierarchical, not its implementation Habermann, 976 [] file system Das PURE Projekt (995 00) Ziel: Herausforderungen Eine hochgradig konfigurierbare BS Produktlinie für eingebettete Systeme Umgang mit großer Variabilität im Problemraum Umsetzung der Variabilität im Lösungsraum Entwicklungsmethoden Merkmalmodelle Funktionale Hierarchien - Beschreibung der Variabilität - Variabler Entwurf 007 Olaf Spinczyk Olaf Spinczyk 0 Problem : keine Verschachtelung Problem : keine Verschachtelung hochgradig konfigurierbare Systeme können nicht durch eine einzige FH beschrieben werden Beispiel: PURE Prozessverwaltung - Ebenen - konfigurierbar in Bezug auf - Scheduling-Strategie - Prozess-Kontext - Systemschnittstelle - hochgradig konfigurierbare Systeme können nicht durch eine einzige FH beschrieben werden Lösungsansatz: Beispiel: PURE Prozessverwaltung - Rekursive Ebenen Modellierung komplexer Funktionen als Familie in der Familie. - konfigurierbar in Bezug auf - Scheduling-Strategie - Prozess-Kontext erlaubt schrittweise Verfeinerung - Systemschnittstelle Olaf Spinczyk 007 Olaf Spinczyk

4 Problem : Querschneidende Belange eine Implementierung mit Aspekten kann nur schwer abgeleitet werden Problem : Querschneidende Belange eine Implementierung mit Aspekten kann nur schwer abgeleitet werden Beispiel: PURE Unterbrechungssynchronisation - 66 Join-Points - 5 betroffene Klassen Beispiel: PURE Unterbrechungssynchronisation - 66 Join-Points - 5 betroffene Klassen Lösungsansatz: Explizite Modellierung querschneidender Belange 007 Olaf Spinczyk 007 Olaf Spinczyk Das Modell der Belang-Hierarchien Belang-Hierarchien Elemente Erweiterung der funktionalen Hierarchien beschreibt funktionale Abhängigkeiten (zyklenfrei) erfasst quer schneidende Belange in den Funktionen erlaubt Verfeinerungen von Funktionen durch Unterbelang- Hierarchien Herkömmliche Belange wie Funktionen in funktionalen Hierarchien 007 Olaf Spinczyk Olaf Spinczyk 6

5 Belang-Hierarchien Elemente Belang-Hierarchien Elemente Querschneidende Belange modellieren Belange, die in verschiedenen herkömmlichen Belangen zu berücksichtigen sind. Belanggruppen entsprechen AOP Pointcuts ein einzelner Belang ist implizit eine Gruppe (seiner Unterbelange) 007 Olaf Spinczyk Olaf Spinczyk 8 Belang-Hierarchien Elemente Belang-Hierarchien Elemente Funktionale Abhängigkeiten wie in funktionalen Hierarchien querschneidende Belange können auch funktionale Abhängigkeiten haben Beeinflussung/Aktivierung ein querschneidender Belang beeinflusst ein Belanggruppe dabei wird der querschneidende Belang aktiviert 007 Olaf Spinczyk Olaf Spinczyk 0

6 Belang-Hierarchien Elemente Notwendige Beeinflussung/Aktivierung wenn die jeweilige Aufgabe ohne die Beziehung nicht erfüllt werden kann Beeinflussung und Aktivierung notwendige Beeinflussung notwendige Aktivierung 007 Olaf Spinczyk 007 Olaf Spinczyk Ableitung eines Abhängigkeitsmodells Ableitung eines Abhängigkeitsmodells 007 Olaf Spinczyk 007 Olaf Spinczyk

7 Beispiel: Lehrstuhl Wetterstation Lässt die Belang-Hierarchie aus dem Merkmalmodell systematisch ableiten? Merkmaldiagramm: Lehrstuhl AVR-Wetterstationssoftware WeatherMon Beispiel: Lehrstuhl Wetterstation Lässt die Belang-Hierarchie aus dem Merkmalmodell systematisch ableiten? Merkmaldiagramm: Lehrstuhl AVR-Wetterstationssoftware WeatherMon Alarm Actors Sensors Display PC Connection Temperature Air Pressure Wind Speed RSLine USBLine Protocol Actors Sensors Nein, nicht vollständig im Merkmalmodell fehlen Belange, die zwar für die Implementierung notwendig sind, aber zum Alarm Display Zwecke PC der Connection Konfigurierung Temperature uninteressant Air sind: Pressure Wind Speed Anforderungen sind dokumentierte Belange allerdings sollten die hier dokumentierten Belange RSLine USBLine Protocol auch in der Belang-Hierarchie wieder auftauchen. SNGProto XMLProto SNGProto XMLProto 007 Olaf Spinczyk Olaf Spinczyk 6 Beispiel: Lehrstuhl Wetterstation Belang-Hierarchie: Lehrstuhl AVR-Wetterstationssoftware Beispiel: Lehrstuhl Wetterstation Belang-Hierarchie: Lehrstuhl AVR-Wetterstationssoftware Steuerlogik Steuerlogik alle messen Main-Loop alle arbeiten Verarbeitung (Aktoren) Verarbeitung alle abfragen Anzeige PC via XML PC via SNG Leitung Messung (Sensoren) Messung Druckmessung Windmessung Temperaturmessung Wetterdaten (-haltung und -repräsentation) Wetterdaten Druckspeicherung Windspeicherung Temperaturspeicherung 007 Olaf Spinczyk Olaf Spinczyk 8

8 OO vs. familienbasierter Entwurf Vererbung kann als Vehikel für die schrittweise Erweiterung genutzt werden Pro program families funktionale Hierarchien lassen sich (relativ) leicht in eine Modulstruktur transformieren Contra minimal subset incremental system design minimal extension inheritance base class derived class object orientation Entwurf wird leicht als schlechter OO-Entwurf missverstanden [] Funktionen werden Klassen () die funktionale Hierarchie wird einfach auf den Kopf gestellt : Eigenschaften: Pressure unsigned _p string to_string() PressureSensor void messure() Konfigurierung durch Anwender + Binder eventuell Mehrfachvererbung Trennung des Zustands bei Funktionen einer Ebene eignet sich für grobe Funktionen Klassen ohne Attribute machen z.b. selten Sinn 007 Olaf Spinczyk Olaf Spinczyk 0 Funktionen werden Klassen () Funktionen einer Ebene können auch zu einer Klasse zusammengefasst werden: Eigenschaften: Weather unsigned _p unsigned _w unsigned _t string p_str() string w_str() string t_str() Konfigurierung eventuell durch Anwender + Binder gemeinsamer Zustand möglich für kleine Funktionen die angenehmere Schnittstelle VP VP VP VP VP VP Querschn. Belange werden Aspekte alle abfragen <<aspect>> SensorManagement SensorRegistry reg; (A) construction RegIterator iter() <<affects>> PressureSensor WindSensor Druckspeicherung Druckmessung Druckspeicherung Windspeicherung Temperaturspeicherung Druckspeicherung Windspeicherung Temperaturspeicherung TemperatureSensor Eigenschaften: Entkopplung der Funktionen erleichtert Konfigururierung nicht immer möglich/sinnvoll 007 Olaf Spinczyk 007 Olaf Spinczyk

9 Konfigurierbare Funktionen machen eine gemeinsame Schnittstelle notwendig: PC via XML wahlweise statisch gebunden, z.b. Klassenalias oder dynamisch gebunden, z.b. mit abstrakter Klasse Port PC via SNG USB Port RS Port Leitung 007 Olaf Spinczyk Zusammenfassung Grundregeln bei der Ableitung einer AO-Klassenhierarchie aus einer Belang-Hierarchie: Erweiterungen (Ebenen) werden durch Vererbung ausgedrückt Querschneidende Belange können i.d.r. als Aspekte realisiert werden Konfigurierbare Funktionen erfordern eine Schnittstellendefinition - Bindung kann statisch oder dynamisch erfolgen - das Hinzufügen abstrakter Schnittstellenklassen erfolgt immer anwendungsgetrieben, d.h. die Entwicklung beginnt nicht mit einer abstrakten Klasse wie es in OO-Entwürfen oft zu finden ist der Prozess vermeidet zwecks Konfigurierbarkeit zyklische Abhängigkeiten in der Modulstruktur 007 Olaf Spinczyk Ausblick Literatur Untersuchung verschiedener Techniken zur Umsetzung von Variabilität in der Implementierung der Komponenten Stand der Kunst: Beispiel ECOS Werkzeugbasierte Lösungen Programmiersprachenbasierte Lösungen [] O. Spinczyk. Aspektorientierung und Programmfamilien im Betriebssystembau. Dissertation, Otto-von-Guericke- Universität Magdeburg, 00. [] W. Schröder-Preikschat. The Logical Design of Parallel Operating Systems. Prentice Hall, 99. ISBN [] A. N. Habermann, L. Flon, and L. Cooprider. Modularization and Hierarchy in a Family of Operating Systems. Communications of the ACM, 9(5):66-7, 976. [] D. L. Parnas. Some Hypotheses about the 'uses' Hierarchy for Operating Systems, Technical Report, Technische Hochschule Darmstadt, Darmstadt, West Germany, Olaf Spinczyk Olaf Spinczyk 6

Architekturmodell: der Weg zur Klassen-Hierarchie

Architekturmodell: der Weg zur Klassen-Hierarchie Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie 1 Domänenentwurf Feedback/Anpassungen Reverse Architecting teuer Domänenmodell Domänenentwurf

Mehr

Betriebssystemtechnik

Betriebssystemtechnik (Aktuelle Forschungsfragen der eingebetteten Systemsoftware) Betriebssystemtechnik Domänenentwurf und Modulstruktur Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU

Mehr

Domänenentwurf und Referenzarchitektur

Domänenentwurf und Referenzarchitektur Betriebssystemtechnik Operating System Engineering (OSE) Domänenentwurf und Referenzarchitektur Software-Produktlinienentwicklung Existierender Code Domänenterminologie Requirements Traceability Referenzanforderungen

Mehr

CiAO (CiAO is Aspect-Oriented)

CiAO (CiAO is Aspect-Oriented) CiAO (CiAO is Aspect-Oriented) Eine aspektorientiert entworfene Betriebssystemfamilie Daniel Lohmann Olaf Spinczyk Wolfgang Schröder-Preikschat Lehrstuhl für Informatik IV Verteilte Systeme und Betriebssysteme

Mehr

Software ubiquitärer Systeme (SuS) Aspektorientierte Programmierung

Software ubiquitärer Systeme (SuS) Aspektorientierte Programmierung Software ubiquitärer Systeme (SuS) Aspektorientierte Programmierung https://ess.cs.tu-dortmund.de/de/teaching/ss2016/sus/ Horst Schirmeier, Olaf Spinczyk horst.schirmeier@tu-dortmund.de https://ess.cs.tu-dortmund.de/~hsc

Mehr

Software ubiquitärer Systeme

Software ubiquitärer Systeme Software ubiquitärer Systeme Betriebssystem-Produktlinien (und deren statische Konfigurierung) Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Olaf.Spinczyk@tu-dortmund.de

Mehr

Software ubiquitärer Systeme

Software ubiquitärer Systeme Software ubiquitärer Systeme Betriebssystem-Produktlinien (und deren statische Konfigurierung) Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Olaf.Spinczyk@tu-dortmund.de

Mehr

Objektorientierte Programmierung (OOP)

Objektorientierte Programmierung (OOP) orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,

Mehr

Objektorientiertes Programmieren

Objektorientiertes Programmieren JL Ute Claussen Objektorientiertes Programmieren Mit Beispielen und Übungen in C++ Zweite, überarbeitete und erweiterte Auflage Mit 24 Abbildungen Springer Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist

Mehr

Software Engineering

Software Engineering Software Engineering Gustav Pomberger, Wolfgang Pree Architektur-Design und Prozessorientierung ISBN 3-446-22429-7 Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-22429-7 sowie

Mehr

Software ubiquitärer Systeme (SuS)

Software ubiquitärer Systeme (SuS) Software ubiquitärer Systeme (SuS) Betriebssystem-Produktlinien (und deren statische Konfigurierung) https://ess.cs.tu-dortmund.de/de/teaching/ss2016/sus/ Horst Schirmeier, Olaf Spinczyk horst.schirmeier@tu-dortmund.de

Mehr

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H)

Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H) Web Engineering-Seminar Methoden zur Web Modellierung: Object-oriented Hypermedia Method (OO-H) Dominik Kirsten Daniel Schäferbarthold Trier, 21.01.2008 1 Gliederung 1. Einführung 1.1 Anforderungen an

Mehr

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

15 Unified Modeling Language (UML) 7 UML und Java Informatik 2 (SS 07) 595 Überblick 15. Unified Modeling Language (UML) 15.1 Grundlagen 15.2 Klassen und Objekte 15.3 Vererbung 15.4 Schnittstellen 15.5 Generische Typen 15.6 Pakete 15.7 UML und Java 15.8 Zusammenfassung 15 Unified

Mehr

Zusammenfassung und Ausblick

Zusammenfassung und Ausblick Betriebssystemtechnik Operating System Engineering (OSE) Zusammenfassung und Ausblick Überblick Zusammenfassung: Software-Produktlinien Prinzipien Methoden Werkzeuge Herausforderungen für die Zukunft Automatische

Mehr

Polymorphie. 15. Java Objektorientierung II

Polymorphie. 15. Java Objektorientierung II 432 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 433 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen

Mehr

Polymorphie. 15. Java Objektorientierung II

Polymorphie. 15. Java Objektorientierung II 446 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 447 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen

Mehr

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2

HSR Rapperswil 2001 Markus Rigling. Programmieren: Vererbung. 1 Variante 2 HSR Rapperswil 2001 Markus Rigling Programmieren: Vererbung 1 Variante 2 Inhaltsverzeichnis: 1. Was ist Vererbung...3 2. Anwendung...3 3. Realisierung...3 4. Vorgehensweise zur Erstellung einer Kind-Klasse...3

Mehr

Zusammenfassung und Ausblick

Zusammenfassung und Ausblick Betriebssystemtechnik Operating System Engineering (OSE) Zusammenfassung und Ausblick 1 Überblick Zusammenfassung: Software-Produktlinien Prinzipien Methoden Werkzeuge Herausforderungen für die Zukunft

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

AW2. related work. Benedikt Johannsen INF-M2 Anwendung 2 - Sommersemester Juni 2010

AW2. related work. Benedikt Johannsen INF-M2 Anwendung 2 - Sommersemester Juni 2010 AW2 Ambient Intelligence Networks related work INF-M2 Anwendung 2 - Sommersemester 2010 02. Juni 2010 Gliederung Wiederholung AW1 Vergleichbare Projekte Hydra Middleware Amigo Common Information Model

Mehr

Objektorientierte Konzepte

Objektorientierte Konzepte Objektorientierte Konzepte Objekt Klasse enthaltender Polymorphismus (Untertypen) Vererbung Objektorientierte Programmierung, Grundlagen und Ziele 1 Objekt Objekt kapselt Variablen und Routinen Interaktionen

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

Einführung in die Programmierung Wintersemester 2008/09

Einführung in die Programmierung Wintersemester 2008/09 Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Virtuelle Methoden Vererbung bisher: Definition

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

Mehr

14. Java Objektorientierung

14. Java Objektorientierung Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen

Mehr

10. Programmierungs-Phase: Objektorientierung Software Engineering

10. Programmierungs-Phase: Objektorientierung Software Engineering 10. Programmierungs-Phase: Objektorientierung Software Engineering Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 15. Dezember 2005 Einordnung in den Kontext

Mehr

Programmierparadigmen A01 OOP. Programmierparadigmen

Programmierparadigmen A01 OOP. Programmierparadigmen 2013-10-09 Programmierparadigmen 1 185.A01 OOP Programmierparadigmen 2013-10-09 Programmierparadigmen 2 OOP Klassische Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische

Mehr

14. Java Objektorientierung. Klassen, Vererbung, Kapselung

14. Java Objektorientierung. Klassen, Vererbung, Kapselung 427 14. Java Objektorientierung Klassen, Vererbung, Kapselung Objektorientierung: Verschiedene Aspekte 428 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen

Mehr

Schrittweise vorgestellt

Schrittweise vorgestellt 3 MBSE Lehrstuhl für Raumfahrttechnik Schrittweise vorgestellt Was erwartet mich in diesem Kapitel? Erläuterung der MBSE-Methodologie anhand der durchgängigen Beispielmission MOVE Modellierung von Anwendungsfällen

Mehr

Einführung. ECU-übergreifende Funktionen nehmen immer mehr zu! z.b. bei Fahrerassistenz-Systemen

Einführung. ECU-übergreifende Funktionen nehmen immer mehr zu! z.b. bei Fahrerassistenz-Systemen Einführung ECU-übergreifende Funktionen nehmen immer mehr zu! z.b. bei Fahrerassistenz-Systemen Einparken, Abstandsregeltempomat, unterstützt diesen Trend durch eine geeignete Entwicklungs-Methodik! Funktion

Mehr

Abstrakte Klassen, Interface. DVG Abstrakte Klassen, Interface

Abstrakte Klassen, Interface. DVG Abstrakte Klassen, Interface Abstrakte Klassen, Interface Beispiel: Vögel Definition von Klassen enthält Abstraktion von den konkreten Objekten. Z.B.: Klasse: Vogel Kann ein Objekt der Klasse Vogel instanziiert werden? Nein, es gibt

Mehr

Warum Programme Verträge schließen sollten

Warum Programme Verträge schließen sollten 1 Warum Programme Verträge schließen sollten RALF HINZE Institut für Informatik, Lehrstuhl Softwaretechnik, Universität Freiburg Georges-Köhler-Allee, Gebäude 079, 79110 Freiburg i. Br. Email: ralf@informatik.uni-bonn.de

Mehr

Klassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object

Klassen als Objekte. Smalltalk vs. Objective-C. Self-Nachrichten an Klassen in Objective-C. Klassen als Objekte. Smalltalk: Everything is an object Smalltalk vs. Objective-C Klassen als Objekte Klassendeklarationen Selektoren als first-class values Objekt-Erzeugung Implementierung: Eigene VM vs. Einbettung in C Smalltalk: Everything is an object Klassen

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

Software Produktlinien

Software Produktlinien Betriebssystemtechnik Operating System Engineering (OSE) Eingebettete BS Entwicklung heute Betriebssysteme für eingebettete Systeme Spezielle Hardware Spezielle Anwendungen Markt mit > 100 RTOS > 50% Eigenentwicklungen

Mehr

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 7. Programmierungs- Phase Software Engineering (FB EIT) Wintersemester 2007 / 2008 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:

Mehr

Programmierparadigmen

Programmierparadigmen Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische Einteilung: Programmiersprache imperativ deklarativ prozedural objektorientiert funktional logisch Zusammenhänge tatsächlich

Mehr

Notationen zur Prozessmodellierung

Notationen zur Prozessmodellierung Notationen zur Prozessmodellierung August 2014 Inhalt (erweiterte) ereignisgesteuerte Prozesskette (eepk) 3 Wertschöpfungskettendiagramm (WKD) 5 Business Process Model and Notation (BPMN) 7 Unified Modeling

Mehr

Zusammenfassung und Ausblick

Zusammenfassung und Ausblick Betriebssystemtechnik Operating System Engineering (OSE) Zusammenfassung und Ausblick Überblick Zusammenfassung: Software- linien Prinzipien Methoden Werkzeuge Herausforderungen für die Zukunft Automatische

Mehr

3. GI-Workshop EPK 2004 Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten Luxemburg. ARIS meets RUP

3. GI-Workshop EPK 2004 Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten Luxemburg. ARIS meets RUP 3. GI-Workshop EPK 2004 Geschäftsprozessmanagement mit Ereignisgesteuerten Prozessketten Luxemburg ARIS meets RUP Der ARIS Unified Information System Development Process Martin Plümicke Berufsakademie

Mehr

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 14.1. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 14.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung 14.1.08 1 / 11 Übersicht 1

Mehr

FACHHOCHSCHULE MANNHEIM

FACHHOCHSCHULE MANNHEIM Objektorientierte Programmierung 5. Vorlesung Prof. Dr. Peter Knauber FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Objektorientierter Entwurf nach Folie 1 Folie 2 Objektorientierter Entwurf

Mehr

Programmieren 1 09 Vererbung und Polymorphie

Programmieren 1 09 Vererbung und Polymorphie Programmieren 1 09 Vererbung und Polymorphie Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 I. VERERBUNG 2 2 Vererbung Von Interfaces übernehmen

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2006/07 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich Informatik Lehrstuhl

Mehr

11. Komponenten Grundlagen der Programmierung 1 (Java)

11. Komponenten Grundlagen der Programmierung 1 (Java) 11. Komponenten Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 10. Januar 2006 Einordnung im Kontext der Vorlesung

Mehr

Betriebssysteme (BS) Zusammenfassung und Ausblick. Olaf Spinczyk.

Betriebssysteme (BS) Zusammenfassung und Ausblick. Olaf Spinczyk. Betriebssysteme (BS) Zusammenfassung und Ausblick http://ess.cs.tu-dortmund.de/de/teaching/ss2016/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware

Mehr

PURE/OSEK Eine aspektorientierte Betriebssystemfamilie für Kraftfahrzeuge

PURE/OSEK Eine aspektorientierte Betriebssystemfamilie für Kraftfahrzeuge PURE/OSEK Eine aspektorientierte Betriebssystemfamilie für Kraftfahrzeuge Olaf Spinczyk 1, Wolfgang Schröder-Preikschat 1, Danilo Beuche 2 und Holger Papajewski 2 1 Universität Erlangen-Nürnberg, Informatik

Mehr

7. Zusammenfassung (1)

7. Zusammenfassung (1) Typisierung in OO-Sprachen Subtyping vs. Subclassing Untertypen für Typkonstrukte Funktionsuntertypen und Überschreiben Generik Einsatz von Vererbung konzeptioneller Entwurf: Abstraktion Spezialisierung

Mehr

Software-Engineering im Sommersemester 2014

Software-Engineering im Sommersemester 2014 Methodische Grundlagen des Software-Engineering SS 2014 Vorlesung Methodische Grundlagen des Software-Engineering im Sommersemester 2014 Prof. Dr. Jan Jürjens TU Dortmund, Fakultät Informatik, Lehrstuhl

Mehr

Betriebssystemtechnik

Betriebssystemtechnik (Aktuelle Forschungsfragen der eingebetteten Systemsoftware) Betriebssystemtechnik Zusammenfassung und Ausblick Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund

Mehr

Das Interface-Konzept am Beispiel der Sprache Java

Das Interface-Konzept am Beispiel der Sprache Java Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung

Mehr

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure

8. Objektorientierte Programmierung. Informatik II für Verkehrsingenieure 8. Objektorientierte Programmierung Informatik II für Verkehrsingenieure Grundbegriffe ALAN KAY, ERFINDER DER SPRACHE SMALLTALK, HAT DIE GRUNDBEGRIFFE DER OBJEKTORIENTIERTEN PROGRAMMIERUNG WIE FOLGT ZUSAMMENGEFASST:

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Engineering-Werkzeug komplexe Softwaresysteme

Engineering-Werkzeug komplexe Softwaresysteme Flow Graph Manipulator (FGM) 3.0 Reverse-Engineering Engineering-Werkzeug für komplexe Softwaresysteme Anja Beier pro et con Innovative Informatikanwendungen GmbH 11. Workshop Software-Reengineering 04.-06.

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

wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken

wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken 1 Java ist... gut erlernbar wenige Konzepte, keine Adressen, Anlehnung an C++ -Syntax objektorientiert Vererbung, Polymorphie/dynamisches Binden, umfangreiche Klassenbibliotheken robust keine Adressen,

Mehr

Einführung in die Objektorientierung

Einführung in die Objektorientierung Rainer Schmidberger Rainer.Schmidberger@informatik.uni-stuttgart.de Objektorientiert daisy : Kunde 2. angebot Nein Prozedural Schleife über alle Projekte Noch was zu tun? Manager informieren... Ja Daten

Mehr

Einführung in die Objektorientierung

Einführung in die Objektorientierung Rainer Schmidberger Rainer.Schmidberger@informatik.uni-stuttgart.de Objektorientiert daisy : Kunde 2. angebot Nein Prozedural Schleife über alle Projekte Noch was zu tun? Manager informieren... Ja Daten

Mehr

Betriebssysteme. FU Berlin WS 2004/05 Klaus-Peter Löhr. bs-1.1 1

Betriebssysteme. FU Berlin WS 2004/05 Klaus-Peter Löhr. bs-1.1 1 Betriebssysteme FU Berlin WS 2004/05 Klaus-Peter Löhr bs-1.1 1 1 Einführung Zur Erinnerung: Informatische Fachbegriffe in Deutsch und Englisch findet man unter http://www.babylonia.org.uk bs-1.1 2 Software

Mehr

Übung zu Betriebssystembau (Ü BS)

Übung zu Betriebssystembau (Ü BS) Übung zu Betriebssystembau (Ü BS) Zusammefassung und Ausblick Daniel Lohmann Lehrstuhl für Informatik IV WS 05-06 OO-Stubs Was haben wir erreicht Ein (fast) vollständiges Betriebssystem für x86 PCs Geräte

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Vererbung bisher: Einführung in die Programmierung Wintersemester 2017/18 Definition von Klassen basierend auf anderen Klassen - Übernahme (erben) von Attributen und Methoden - Methoden können überschrieben

Mehr

Einführung in die Programmierung Wintersemester 2016/17

Einführung in die Programmierung Wintersemester 2016/17 Einführung in die Programmierung Wintersemester 2016/17 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Virtuelle Methoden Vererbung bisher: Definition

Mehr

Analyse und Entwurf von Softwaresystemen mit der UML

Analyse und Entwurf von Softwaresystemen mit der UML Analyse und Entwurf von Softwaresystemen mit der UML Bearbeitet von Horst A. Neumann 2. Auflage 2002. Buch. XVI, 480 S. Hardcover ISBN 978 3 446 22038 6 Format (B x L): 17,7 x 24,5 cm Gewicht: 1049 g Zu

Mehr

Entwurfsmuster. Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik

Entwurfsmuster. Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik Entwurfsmuster Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik Information über Entwurfsmuster Die heutige Vorlesung: Einführung in die Thematik Die Vorlesung am 12.01:

Mehr

Effiziente Überwachung von Laufzeiteigenschaften in Soft- und Hardware

Effiziente Überwachung von Laufzeiteigenschaften in Soft- und Hardware Effiziente Überwachung von Laufzeiteigenschaften in Soft- und Hardware Normann Decker 1 Philip Gottschling 2 1 Institut für Softwaretechnik und Programmiersprachen Universität zu Lübeck decker@isp.uni-luebeck.de

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Betriebssysteme. FU Berlin SS 2003 Klaus-Peter Löhr

Betriebssysteme. FU Berlin SS 2003 Klaus-Peter Löhr Betriebssysteme FU Berlin SS 2003 Klaus-Peter Löhr 1 Einführung Zur Erinnerung: Informatische Fachbegriffe in Deutsch und Englisch findet man unter http://www.babylonia.org.uk Software zwischen Hardware

Mehr

VHDL Grundelemente. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

VHDL Grundelemente. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg VHDL Grundelemente Dr.-Ing. Matthias Sand Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2009/2010 VHDL Grundelemente 1/15 2009-07-31 Inhalt Folgende

Mehr

Grundlagen der Systemnahen Programmierung in C (GSPiC)

Grundlagen der Systemnahen Programmierung in C (GSPiC) Grundlagen der Systemnahen Programmierung in C (GSPiC) Teil C Systemnahe Softwareentwicklung Daniel Lohmann Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universitä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

Objektorientiertes Programmieren in C++

Objektorientiertes Programmieren in C++ Nicolai Josuttis Objektorientiertes Programmieren in C++ Von der Klasse zur Klassenbibliothek D-64289 Darmstadt ADDISON-WESLEY PUBLISHING COMPANY Bonn Paris Reading, Massachusetts Menlo Park, California

Mehr

Abkürzungen. Kapitel 1 - Einleitung Stand der Automobilelektronik Historische Entwicklung Gegenwärtige Probleme 2

Abkürzungen. Kapitel 1 - Einleitung Stand der Automobilelektronik Historische Entwicklung Gegenwärtige Probleme 2 Inhalt Abkürzungen X Kapitel 1 - Einleitung 1 1.1 Stand der Automobilelektronik 1 1.1.1 Historische Entwicklung 1 1.1.2 Gegenwärtige Probleme 2 1.2 Zielsetzung 5 1.3 Aufbau der Arbeit 6 1.4 Veröffentlichungen

Mehr

Programmieren 2 C++ Überblick

Programmieren 2 C++ Überblick Programmieren 2 C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 5. Behälter und Iteratoren 6. Templates

Mehr

Rekonfiguration durch dynamische aspektorientierte Programmierung

Rekonfiguration durch dynamische aspektorientierte Programmierung Rekonfiguration durch dynamische aspektorientierte Programmierung Martin Gumbrecht 13. Juni 2014 Motivation Dynamische Rekonfiguration von Softwaresystemen Fehlerbehebung, Sicherheitsaktualisierungen,

Mehr

14. Java Objektorientierung

14. Java Objektorientierung Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen

Mehr

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

Lehrstuhl für Datenverarbeitung. Technische Universität München. Grundkurs C++ Objektmodellierung. Grundkurs C++ Grundkurs C++ Objektmodellierung Grundkurs C++ Objektmodellierung welche Objekte bzw. Klassen werden benötigt? welche Information wird benötigt, um ein Objekt zu beschreiben? welche Beziehungen bestehen

Mehr

Engineering the Factory of the Future Now.Next.Beyond. Heiko Schwindt VP Automation & Electrification Solutions, Bosch Rexroth

Engineering the Factory of the Future Now.Next.Beyond. Heiko Schwindt VP Automation & Electrification Solutions, Bosch Rexroth Engineering the Factory of the Future Now.Next.Beyond. Heiko Schwindt VP Automation & Electrification Solutions, Bosch Rexroth Connect on LinkedIn www.linkedin.com/in/heiko-schwindt-625039140/ 1 "The challenge

Mehr

Feature Modelle. und ihre Anwendung. Feature Modelle und ihre Anwendungen. Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn

Feature Modelle. und ihre Anwendung. Feature Modelle und ihre Anwendungen. Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Feature Modelle und ihre Anwendung Feature Modelle und ihre Anwendungen 22.07.2010 1 Software-Produktlinien Zusammenfassung mehrerer verwandter Softwaresysteme zu einer Domäne (Anwendungsgebiet) Softwaresysteme

Mehr

1 Klassen und Objekte

1 Klassen und Objekte 1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

Praktische Informatik I

Praktische Informatik I Praktische Informatik I WS 2005/2005 Prof. Dr. Wolfgang Effelsberg Lehrstuhl für Praktische Informatik IV Universität Mannheim 1. Einführung 1-1 Inhaltsverzeichnis (1) 1. Einführung 1.1 Was ist Informatik?

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 13: Interfaces Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Interfaces Motivation Eigenschaften Besonderheiten Anonyme Klassen Lambda-Ausdrücke Praxis:

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel Alina Stürck WS2016/17 11. Oktober 2016 Objektorientierte Programmierung OOP 1 Was ist das? 2 Wie geht das? 3 Warum

Mehr

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen

Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th. Letschert OOP 2 2. Geheimnisprinzip und Sichtbarkeitsbeziehungen Th Letschert FH Gießen-Friedberg Th. Letschert OOP 2 Sichtbarkeitsbeziehungen und Geheimnisprinzip Sichtbarkeitsbeziehungen realisieren

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

Mehr

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2 iii Inhaltsverzeichnis Kurseinheit 1 1 Von der Aufgabenstellung zum Programm... 1 1.1 Motivation... 1 1.2 Softwareentwicklung... 2 1.3 EXKURS: Unified Modeling Language (UML)... 4 2 Anforderungsanalyse...

Mehr

Programmiertechnik Objektorientierung

Programmiertechnik Objektorientierung Programmiertechnik Objektorientierung Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was ist Objekt-Orientierung? Objekt-Orientierung (OO) ist nicht völlig scharf definiert, d.h. es gibt unterschiedliche

Mehr

Modularitätsbetrachtung von Webanwendungen im Rahmen des Plat_Forms Wettbewerbs

Modularitätsbetrachtung von Webanwendungen im Rahmen des Plat_Forms Wettbewerbs Andreas Franz Arbeitsgruppe Software Engineering, Institut für Informatik der Freien Universität Berlin Modularitätsbetrachtung von Webanwendungen im Rahmen des Plat_Forms Wettbewerbs Abschlussvortrag

Mehr

II.4.1 Unterklassen und Vererbung - 1 -

II.4.1 Unterklassen und Vererbung - 1 - 1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und Vererbung

Mehr

Factory Patterns und deren Auswirkung auf die Softwarearchitektur in der Praxis

Factory Patterns und deren Auswirkung auf die Softwarearchitektur in der Praxis Factory Patterns und deren Auswirkung auf die Softwarearchitektur in der Praxis Klaus Kusche, Juni 2013 Inhalt Was ist das? Warum braucht man das? Was bringt das? Wann hilft es noch? Realistisches Beispiel

Mehr

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1 Vererbung 1 11.1 Motivation und Begriffsdefinitionen 11.2 Vorgehensweise und Implementierung 11.3 Arten von Vererbung 11.4 Konstruktoren 11.5 Abstrakte Klasse 11.6 Verschattung 11.7 Wurzelklasse Object

Mehr