Architekturmodell: der Weg zur Klassen-Hierarchie
|
|
- Fritzi Geiger
- vor 8 Jahren
- Abrufe
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
Betriebssystemtechnik Operating System Engineering (OSE) Architekturmodell: der Weg zur Klassen-Hierarchie 1 Domänenentwurf Feedback/Anpassungen Reverse Architecting teuer Domänenmodell Domänenentwurf
MehrBetriebssystemtechnik
(Aktuelle Forschungsfragen der eingebetteten Systemsoftware) Betriebssystemtechnik Domänenentwurf und Modulstruktur Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU
MehrDomänenentwurf und Referenzarchitektur
Betriebssystemtechnik Operating System Engineering (OSE) Domänenentwurf und Referenzarchitektur Software-Produktlinienentwicklung Existierender Code Domänenterminologie Requirements Traceability Referenzanforderungen
MehrCiAO (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
MehrSoftware 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
MehrSoftware 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
MehrSoftware 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
MehrObjektorientierte 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,
MehrObjektorientiertes 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
MehrSoftware 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
MehrSoftware 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
MehrWeb 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
Mehr15 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
MehrZusammenfassung und Ausblick
Betriebssystemtechnik Operating System Engineering (OSE) Zusammenfassung und Ausblick Überblick Zusammenfassung: Software-Produktlinien Prinzipien Methoden Werkzeuge Herausforderungen für die Zukunft Automatische
MehrPolymorphie. 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
MehrPolymorphie. 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
MehrHSR 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
MehrZusammenfassung und Ausblick
Betriebssystemtechnik Operating System Engineering (OSE) Zusammenfassung und Ausblick 1 Überblick Zusammenfassung: Software-Produktlinien Prinzipien Methoden Werkzeuge Herausforderungen für die Zukunft
MehrSoftware 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
MehrAW2. 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
MehrObjektorientierte Konzepte
Objektorientierte Konzepte Objekt Klasse enthaltender Polymorphismus (Untertypen) Vererbung Objektorientierte Programmierung, Grundlagen und Ziele 1 Objekt Objekt kapselt Variablen und Routinen Interaktionen
MehrKapitel 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
MehrEinfü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
MehrEinfü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
Mehr14. Java Objektorientierung
Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen
Mehr10. 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
MehrProgrammierparadigmen 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
Mehr14. 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
MehrSchrittweise 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
MehrEinfü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
MehrAbstrakte 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
MehrWarum 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
MehrKlassen 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
MehrAuf 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
MehrSoftware 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
Mehr7. 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:
MehrProgrammierparadigmen
Programmierparadigmen Paradigma = Denkweise oder Art der Weltanschauung klassische Einteilung: Programmiersprache imperativ deklarativ prozedural objektorientiert funktional logisch Zusammenhänge tatsächlich
MehrNotationen 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
MehrZusammenfassung und Ausblick
Betriebssystemtechnik Operating System Engineering (OSE) Zusammenfassung und Ausblick Überblick Zusammenfassung: Software- linien Prinzipien Methoden Werkzeuge Herausforderungen für die Zukunft Automatische
Mehr3. 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
MehrVererbung. 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
MehrFACHHOCHSCHULE 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
MehrProgrammieren 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
MehrEinfü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
Mehr11. 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
MehrBetriebssysteme (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
MehrPURE/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
Mehr7. Zusammenfassung (1)
Typisierung in OO-Sprachen Subtyping vs. Subclassing Untertypen für Typkonstrukte Funktionsuntertypen und Überschreiben Generik Einsatz von Vererbung konzeptioneller Entwurf: Abstraktion Spezialisierung
MehrSoftware-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
MehrBetriebssystemtechnik
(Aktuelle Forschungsfragen der eingebetteten Systemsoftware) Betriebssystemtechnik Zusammenfassung und Ausblick Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund
MehrDas 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
MehrAufbau 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
MehrEinstieg 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
Mehr8. 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
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
MehrEngineering-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.
MehrOOP. 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
Mehrwenige 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,
MehrEinfü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
MehrEinfü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
MehrBetriebssysteme. 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) 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
MehrEinfü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
MehrEinfü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
MehrAnalyse 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
MehrEntwurfsmuster. 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:
MehrEffiziente Ü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
MehrEinstieg 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
MehrBetriebssysteme. 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
MehrVHDL 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
MehrGrundlagen 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
MehrSOLID 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
MehrObjektorientiertes 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
MehrAbkü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
MehrProgrammieren 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
MehrRekonfiguration durch dynamische aspektorientierte Programmierung
Rekonfiguration durch dynamische aspektorientierte Programmierung Martin Gumbrecht 13. Juni 2014 Motivation Dynamische Rekonfiguration von Softwaresystemen Fehlerbehebung, Sicherheitsaktualisierungen,
Mehr14. Java Objektorientierung
Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen
MehrLehrstuhl 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
MehrEngineering 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
MehrFeature 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
Mehr1 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
MehrJavakurs 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
MehrPraktische 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?
MehrJavakurs 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:
MehrObjektorientierte 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
MehrTh. 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
MehrEinfü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
MehrInhaltsverzeichnis. 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...
MehrProgrammiertechnik 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
MehrModularitä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
MehrII.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
MehrFactory 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
MehrVererbung 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