Architekturbeschreibung PSA/BikeShop Version 1.0
|
|
- Leopold Kurzmann
- vor 5 Jahren
- Abrufe
Transkript
1 Architekturbeschreibung PSA/BikeShop Version 1.0 Rainer Koschke Universität Bremen 4. Februar Einführung 1.1 Zweck Dieses Dokument dient als Vorlage für die Gliederung Ihrer Architekturbeschreibung. Gleichzeitig dient es als Beispiel für Ihre Architekturbeschreibung. Hierzu sind exemplarisch einige Architekturelemente näher beschrieben. Dieses Beispiel soll Ihnen eine Idee vermitteln, wie wir uns die Beschreibung vorstellen. Um den Text des Beispiels von den Meta-Kommentaren zur Architekturbeschreibung unterscheiden zu können, sind letztere kursiv gesetzt. Dieses Dokument beschreibt die Architektur von PSA/Bikeshop. Die Architektur soll zeigen, wie die Anforderungen, die in der Anforderungsspezifikation PSA/Bikeshop [Anforderungsspezifikation Version 1.0] angegeben sind, realisiert werden können. Dieses Dokument dient den Entwicklern als Vorgabe für die Implementierung, den Testern für die Vorbereitung der Black-Box-Tests und den Wartungsingenieuren für die Beurteilung der Änderbarkeit des Systems für mögliche zukünftige Anforderungen, wie sie in der Anforderungsspezifikation beschrieben sind. 1.2 Status Diese Dokument beschreibt den ersten Entwurf. Es wurde noch nicht durch ein Architektur-Review freigegeben. 1.3 Definitionen, Akronyme und Abkürzung GUI Graphical User Interface PDA Personal Digital Assistant PSA Personal Shopping Assistant 1.4 Referenzen Literatur [IEEE P1471] IEEE Recommended Practice for Architectural Description of Softwareintensive Systems Std ISBN , IEEE, New York, NY, USA,
2 [Hofmeister et al., 2000] Christine Hofmeister, Robert Nord, Dilip Soni. Applied Software Architecture. Addison Wesley, Object Technology Series, [Anforderungsspezifikation Version 1.0] DreamBikers. Anforderungspezifikation PSA/Bikeshop. Version 1.2 vom 18. Januar intranet.dreambikers.com/nowhere 1.5 Übersicht über das Dokument Die Architekturbeschreibung genügt dem IEEE-Standard [IEEE P1471] und folgt den Architekturblickwinkeln von Hofmeister et al. [Hofmeister et al., 2000]. Zunächst werden in Kapitel 2 die Einflussfaktoren für den Entwurf, Probleme sowie mögliche Lösungsstrategien dargestellt. Dann werden in den Kapiteln 3, 4 und 5 drei der vier Sichten nach [Hofmeister et al., 2000] beschrieben (auf die Code-Sicht wird in diesem Projekt verzichtet). Im Abschnitt 6 wird dargelegt, wie das System geändert werden muss, wenn sich Rahmenbedingungen oder Anforderungen ändern. 2 Globale Analyse Hier werden Einflussfaktoren aufgezählt und bewertet sowie Strategien zum Umgang mit interferierenden Einflussfaktoren entwickelt. 2.1 Einflussfaktoren Faktor Flexibilität und Änderbarkeit Auswirkung P2 : Funktionale Eigenschaften P2.1 : Zugrundeliegendes Datenmodell Fahrraddomäne Neue Domänen sollen zukünftig erschlossen werden. Betrifft Datenrepräsentation und -haltung, Constraint- Auflösung sowie Benutzerschnittstelle (mit anderen Worten: alles) 2
3 <<component>> : PDA Client <<component>> : Main caller <<connector>> :Control callee <<component>> : GUI caller <<connector>> :Data pull <<connector>> :Control callee <<component>> : Article Base <<connector>> :Data pull <<component>> : Constraint Solver Abbildung 1: Aufbau des PSA 2.2 Probleme und Strategien Neue Domänen Neue typen können zu einer Domäne hinzukommen. Ganz neue Domänen sollen erschlossen werden. Die Änderungen sollen mit möglichst geringem Aufwand realisiert werden können. Eine Neuübersetzung und -installation ist akzeptabel. Einflussfaktoren O1.1: Time-To-Market 02.1: Anzahl Entwickler P2.1: Zugrundeliegendes Datenmodell P6.3: Softwareinstallation und -aktualisierung Lösung Strategie: S1: Gekapseltes Datenmodell Das Datenmodell wird in einer Komponente gekapselt. Das Schema kann statisch (d.h. zur Übersetzungszeit) konfiguriert werden. Das Schema selbst ist durch ein Meta-Schema beschrieben, das als Konzepte, Eigenschaften und Abhängigkeiten umfasst. Andere Komponenten, insbesondere die graphische Benutzeroberfläche beziehen sich nur auf diese Meta-Konzepte, d.h. nicht direkt auf die konkreten Konzepte der Fahrraddomäne (z.b. Sattel). Beschreiben Sie möglichst mehrere Alternativen und geben Sie an, für welche Sie sich letztlich aus welchem Grunde entschieden haben. 3 Konzeptionelle Sicht Diese Sicht beschreibt das System auf einer hohen Abstraktionsebene, d.h. mit sehr starkem Bezug zur Anwendungsdomäne und den geforderten Produktfunktionen und -attributen. Sie legt die Grobstruktur fest, ohne gleich in die Details von spezifischen Technologien abzugleiten. Sie wird in den nachfolgenden Sichten konkretisiert und verfeinert. 3
4 Der PSA besteht aus den folgenden Komponenten (vergleiche Abbildung 1): Main: das Hauptprogramm, das die PSA-Komponenten initialisiert und hernach der GUI die Kontrolle übergibt. Will der Benutzer das Programm beendet, übergibt die GUI die Kontrolle wieder zurück an Main. Main fährt dann das Programm herunter. GUI: die grafische Benutzeroberfläche, mit der der Benutzer interagiert. Article Base: die Datenhaltung für die, die der Kunde bereits gekauft hat. Constraint Solver: der Abgleich von Einschränkungen zu n; hier wird geprüft, ob ein zu kaufender zu den bereits gekauften n passt. Folgende Konnektoren werden hierfür verwendet: Control: Der Caller übergibt die Kontrolle an den Callee; beschreibt den Kontrollfluss. Data: Die Rolle pull übermittelt mögliche Eingabeparameter, anhand derer Daten hergeleitet werden sollen, an die andere Rolle, übergibt dieser die Kontrolle und empfängt schließlich von der anderen Rolle die Daten. Anschließend hat die pull-rolle wieder die Kontrolle. Der Datenaustausch verläuft synchron. 4 Modulsicht Diese Sicht beschreibt den statischen Aufbau des System mit Hilfe von Modulen, Subsystemen, Schichten und Schnittstellen. Diese Sicht ist hierarchisch, d.h. Module werden in Teilmodule zerlegt. Die Zerlegung endet bei Modulen, die ein klar umrissenes Arbeitspaket für eine Person darstellen und in einer Zeitwoche implementiert werden können. Die Modulbeschreibung der Blätter dieser Hierarchie ist genau genug und ausreichend, um das Modul zu implementieren. Die Module werden durch ihre Schnittstellen beschrieben. Konkrete Implementierungen dieser Schnittstellen sind das Geheimnis des Moduls und können vom Programmier festgelegt werden. Sie werden sollen hier nicht beschrieben werden. Die Schnittstellen eines Moduls M ist die Menge aller Annahmen, die andere Module über M machen dürfen, bzw. jene Annahmen, die M über seine verwendeten Module macht (bzw. seine Umgebung, wozu auch Speicher, Laufzeit etc. gehören). Jeder Schnittstelle liegt ein Protokoll zugrunde. Das Protokoll beschreibt die Vor- und Nachbedingungen der Schnittstellenelemente. Dazu gehören die erlaubten Reihenfolgen, in denen Methoden der Schnittstelle aufgerufen werden dürfen, sowie Annahmen über Eingabe- und Zusicherungen über Ausgabeparameter. Das Protokoll von Modulen soll einmal in der Modulsicht beschrieben werden. Die Ausführungssicht verwendet das Protokoll, es soll aber die Protokollbeschreibung nicht noch einmal wiederholen. 4.1 Konkretisierung Article Base Verhältnis GUI und Abbildung 2 beschreibt die Modulsicht zum Verhältnis von GUI zur Article Base. Die Zuordnung der Module zur Article Base ist in Tabelle 1 wiedergegeben. 4
5 bestand Attribut Attributwert String Attributwert Integer Attributwert Float Attributwert verwaltet die vollständige Liste aller vom Kunden gekauften ein einzelner ; definiert die Schnittstelle für alle und die Attribute, die alle haben (Preis und Nummer, letztere beschreibt den eindeutig); domänenspezifische Attribute werden durch die Klasse Attribut beschrieben; die konkreten der Domäne werden von Klasse abgeleitet (sie sind in [Anforderungsspezifikation Version 1.0] beschrieben und sollen hier nicht wiederholt werden). domänenspezfisches Attribut eines s abstrakte Klasse für Attributwerte konkretes String-Attribut konkretes Integer-Attribut konkretes Float-Attribut Tabelle 1: Liste der Module zur Article Base. Blatt Behälter ein nicht zusammengesetzter ein, der aus weiteren n besteht Tabelle 2: Fortgesetzte Liste der Module zur Article Base. Hier muss noch die Schnittstelle der Module beschrieben werden. Als Beispiel sei auf Abschnitt verwiesen. Die GUI verwendet nur die Schnittstelle von, nicht jedoch Schnittstellen der konkreten Unterklassen, die domänenspezifisch sind. Umgesetzt wird bei dieser Modularisierung die Strategie S1: Gekapseltes Datenmodell. Die GUI benötigt nur eine Zeichenkettenrepräsentation der werte und verwendet somit nur die Klasse Attributwert, nicht jedoch deren Unterklassen. Auf diese Weise können weitere Attributwerte leicht eingeführt werden. Relevant sind die konkreten Werte für den Leser der daten und den Constraint Solver Realisierung zusammengesetzter bestehen aus Teilartikeln. Um der GUI eine einheitliche Schnittstelle zusammengesetzter Attribute zur Verfügung zu stellen, wird an dieser Stelle das Entwurfsmuster Composite verwendet. Der Zusammenhang ist in Abbildung 3 beschrieben. Die Rolle des Verwenders nimmt hier die GUI ein. Die Schnittstellenelemente sind in den Tabellen 3, 4 und 5 detailliert. Die domänenspezifischen werden entweder von Blatt oder Behälter abgeleitet. entfernen () hinzufügen () alleteile () löscht einen und alle seine Teile fügt einen als Teil ein liefert alle Teile eines s als Liste (im Falle von Blättern wird dies immer die leere Liste sein) Tabelle 3: Schnittstelle 5
6 GUI bestand +Alle(): list of +lies(dateinamen) * +Preis(): float +AlleAttribute(): list of Attribut +Attributnummer(): int * Attribut +Wert(): Attributwert +Name(): string 1 Attributwert +To_String(): string String Attributwert +To_String(): string +Value(): string Integer Attributwert +To_String(): string +Value(): int Float Attributwert +To_String(): string +Value(): float Abbildung 2: Bezug GUI und Verwender +hinzufügen() +alleteile(): list of Teile Blatt +hinzufügen() Behälter for each t in Teile t.entfernen() Mantel Felge Rahmen Laufrad Rad Abbildung 3: Zusammengesetzte entfernen () hinzufügen () löscht den wirft die Ausnahme leaf_has_no_parts Tabelle 4: Schnittstelle Blatt entfernen () löscht einen und alle seine Teile Tabelle 5: Schnittstelle Behälter 6
7 Leser liest von einer Datei und erzeugt sie; die genaue Syntax der Eingabedatei ist das Geheimnis dieses Moduls Tabelle 6: Teilmodule von bestand. GUI Leser +lies(dateinamen) id = datei.liesid() f.fabrikmethode(id) Schöpfer +FabrikMethode(id) +Eintragen(id) artikel = FabrikMethode (id) artikelliste.einfuegen (artikel) Rahmen Blatt Felge Behälter FahrradSchöpfer +FabrikMethode(id) <<create>> <<create>> Laufrad <<create>> if (id=="rahmen") return new Rahmen; if (id=="felge") return new Felge;... Abbildung 4: Entwurfsmuster Factory Method für das Einlesen von n Einlesen von n Das Einlesen von n von Datei wird vom Modul Leser realisiert (siehe Abbildung 6. Hierzu wird das Entwurfsmuster Abstract Factory verwendet (siehe 4). Hier muss noch die Schnittstelle der Module beschrieben werden. Als Beispiel sei auf Abschnitt Ausführungssicht Das Laufzeitverhalten wird in der Ausführungssicht beschrieben. Hier werden die Laufzeitelemente aufgeführt und beschrieben, welche Module sie zur Ausführung bringen. Ein Modul kann von mehreren Laufzeitelementen zur Laufzeit verwendet werden. Die Ausführungssicht beschreibt darüber hinaus, welche Laufzeitelemente spezifisch miteinander kommunizieren.... und hier erklären wir das Diagramm in Abbildung Evolution Beschreiben Sie in diesem Abschnitt, welche Änderungen sie vornehmen müssten, wenn sich das zugrunde liegende Datenmodell für für Ihre Software ändern würde. Untersuchen Sie hierbei zwei Änderungsszenarien: (1) neue typen in ihrer Domäne kommen hinzu und (2) die Software soll auf eine völlig neue Domäne übertragen werden (mit fortgesetzter, paralleler Unterstützung der ursprünglichen Domäne, versteht sich). 7
8 : PDA : Ladenrechner : Datenbankrechner <<process>> * <<process>> n <<process>> 1 Personal Shop Assistant <<module>> PDA client * TCP/IP 1 Shop Server <<module>> Server * TCP/IP 1 Data Base Server <<subsystem>> transaction monitor <<subsystem>> SQL manager <<subsystem>> data base Abbildung 5: Ausführungssicht 8
Architekturbeschreibung
Software Projekt 2004/05 VAK 03-901.01 Architekturbeschreibung Version 1.0 xxxxxx xxxxxxx xxxxxxxx@tzi.de 1234567 xxxx xxxxxxxx xxxx@tzi.de 2345678 xxxx xxxxx xxxxxx@tzi.de 3456789 xxxxxxxx xxxxxxxxxx
MehrKomponentenbasierter
Komponentenbasierter Taschenrechner mit CORBA Silke Kugelstadt Torsten Steinert Inhalt Motivation Demonstration des Taschenrechners Grobarchitektur Implementierung des Clients Implementierung der Komponenten
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
MehrKomponentenbasierter Taschenrechner mit CORBA
Komponentenbasierter Taschenrechner mit CORBA Silke Kugelstadt Torsten Steinert Inhalt Motivation Demonstration des Taschenrechners Grobarchitektur Implementierung des Clients Implementierung der Komponenten
MehrVererbung und Polymorphie
Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter
MehrSoftware-Projekt. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Software-Projekt Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2008/09 Überblick I 1 1 Objektorientierte Modellierung Softwarearchitektur
MehrSoftware-Projekt. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Software-Projekt Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2008/09 Überblick I 1 Antworten auf gesammelte Fragen im
Mehr[Hier klicken und Text eingeben] [Hier klicken und Text eingeben] Auftragsnummer: [Hier klicken und Text eingeben] Auftragnehmer:
Pflichtenheft Auftraggeber: Auftragsnummer: Auftragnehmer: Bearbeiter: Berlin, den (microtool GmbH, Berlin) Pflichtenheft Inhalt 1 Einleitung (Introduction) 3 1.1 Zielsetzung (Purpose) 3 1.2 Scope (Scope)
MehrEntwurfsmuster (Design Patterns)
Entwurfsmuster (Design Patterns) SEP 303 Entwurfsmuster (Design Patterns) In der alltäglichen Programmierarbeit tauchen viele Probleme auf, die man schon einmal gelöst hat und die man in der Zukunft wieder
MehrDokumentation nach IEEE Empfehlungen
Inhalte einer Anforderungsspezifikation Einleitung (Introduction) allgemeine Beschreibung Produktumgebung, Funktionen, Eigenschaften, Randbedingungen Spezifische funktionale Anforderungen beschreiben,
MehrMicrosoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber
Microsoft.NET Framework & Component Object Model ein Vortrag von Florian Steuber Übersicht I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS
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
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
MehrAus Sicht der funktionalen Anforderungen ist der Entwurf eines Systems beliebig wählbar
Zweck des Entwurfs Aus Sicht der funktionalen Anforderungen ist der Entwurf eines Systems beliebig wählbar Überspitztes Beispiel: Wenn eine Klas mit einer Methode, die 10.000 Zeilen lang ist, die geforderte
MehrEinführung: Verteilte Systeme - Remote Method Invocation -
Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation
MehrSoftware Design basierend auf dem Plug-In Konzept
Software Design basierend auf dem Plug-In Konzept Michael Antes Seminar Simulation und Bildanalyse mit Java, WS2003 Universität Ulm Software-Design basierend auf dem Plug-In-Konzept Inhalt: Einführung:
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
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrSommersemester Implementierung I: Struktur
Sommersemester 2003 Implementierung I: Struktur 2 Aufgabe 3 Implementierung I: Struktur Umfang: 1 Woche Punkte: 50 P. In den ersten beiden Aufgaben wurden die Struktur und das Verhalten des Systems modelliert.
MehrSoftware Design Patterns Zusammensetzung. Daniel Gerber
Software Design Patterns Zusammensetzung Daniel Gerber 1 Gliederung Einführung Iterator Composite Flyweight Zusammenfassung 2 So wird s werden Problem und Kontext an einem Beispiel vorstellen Lösung des
MehrEin Entwurfsmuster der GoF. vorgestellt von. Sigrid Weil 16. Januar 2008
Ein Entwurfsmuster der GoF vorgestellt von Sigrid Weil 16. Januar 2008 Einleitung 2 Entwurfsmuster (Design Patterns) beschreiben Probleme, die wiederholt in unterschiedlichsten Zusammenhängen aufreten
MehrPolymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces
Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 20 Polymorphie/Späte Bindung Abstrakte Klassen Interfaces 2 / 20 Definition: Polymorphie Der Begriff Polymorphie (manchmal
MehrProgrammieren 2 Java Überblick
Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10
MehrSoftwareanforderungsanalyse
Softwareanforderungsanalyse Vorgehen, Modellstruktur und Spezifikationsdokument - Ein Fazit Burkhardt Renz THM, Fachbereich MNI Wintersemester 208/9 Übersicht Vorgehen Struktur des Modells Metamodell Generierung
MehrZweck: 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
MehrBeuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1
Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Parameter-Übergabe-Mechanismen in Java und in anderen Sprachen. 1. Methoden vereinbaren mit Parametern Wenn man (z.b. in Java) eine Methode
MehrZweck: 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
MehrEinstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung
MehrSE Besprechung. Übung 4 Architektur, Modulentwurf
SE Besprechung Übung 4 Architektur, Modulentwurf SE, 22.11.11 Mengia Zollinger 2.1 Architekturstile (6 Punkte) 2.1.A Ausgabe eines Monatsabos an Angestellte Lösung: Pipe-and-Filter Beispiel Lösung [Benz,
MehrSoftware-Projekt. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Software-Projekt Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2008/09 Überblick I 1 1 Was ist ein Entwurfsmuster? Bestandteile
MehrSDD System Design Document
SDD Software Konstruktion WS01/02 Gruppe 4 1. Einleitung Das vorliegende Dokument richtet sich vor allem an die Entwickler, aber auch an den Kunden, der das enstehende System verwenden wird. Es soll einen
MehrSoftware Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrEinstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
MehrOOP. 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
MehrSoftwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2007
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2007 Überblick I 1 Vorbemerkungen Vorbemerkungen: Vorbemerkungen
MehrSoftwaretechnik. Prof. Dr. Rainer Koschke. Sommersemester Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2007 Überblick I 1 Vorbemerkungen Vorbemerkungen: Vorbemerkungen
MehrInformationswirtschaft II Rational Unified Process (RUP)
Informationswirtschaft II Rational Unified Process (RUP) Wolfgang H. Janko, Michael Hahsler und Stefan Koch Inhalt Historische Entwicklung Kennzeichen von RUP Lebenszyklus und Phasen Arbeitsabläufe Das
MehrInformationswirtschaft II
Rational Unified Process (RUP) Informationswirtschaft II Wolfgang H. Janko, Michael Hahsler und Stefan Koch Seite 1 Inhalt Historische Entwicklung Kennzeichen von RUP Lebenszyklus und Phasen Arbeitsabläufe
MehrCreational 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
Mehrhue13 January 30, 2017
hue13 January 30, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern
MehrWaitomo. Compilerbaupraktikum Wintersemester 2006/2007. Stefan Wehr. 24. Oktober 2006
Waitomo Compilerbaupraktikum Wintersemester 2006/2007 Stefan Wehr 24. Oktober 2006 1 Einleitung Quellsprache für das Compilerbaupraktikum ist Waitomo, ein Java-ähnliche Sprache mit Unterstützung für Typklassen
MehrVorlesung Software-Engineering I
Vorlesung Software-Engineering I im 3. und 4. Semester 09. SW-Architektur - Dokumentation Architektur-Review Wir treten einen Schritt zurück und betrachten nochmal das Ganze. Sind wir noch auf dem richtigen
Mehr185.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
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick
MehrEnterprise JavaBeans Überblick
Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 2. Einführung Java EE 5 Plattform 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5.
MehrDesign 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?
MehrInfo B VL 11: Innere Klassen/Collections
Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections
MehrDesign 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:
MehrDie Warenkorbfunktion (workbasket)
Beschreibung der Komponente zur integration eines Warenkorbs in die Anwendung Table of contents 1 Allgemein...2 2 Körbe speichern und laden...3 3 Aufgelöstes XML oder beliebige weitere Metadaten im Korb...
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
MehrSoftwaretechnik. Prof. Dr. Rainer Koschke. Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Wintersemester 2012/13 Überblick I Software-Produktlinien Software-Produktlinien
MehrSoftwaretechnik. Überblick I. Prof. Dr. Rainer Koschke. Sommersemester 2006
Softwaretechnik Prof. Dr. Rainer Koschke Fachbereich Mathematik und Informatik Arbeitsgruppe Softwaretechnik Universität Bremen Sommersemester 2006 Überblick I 1 Vorbemerkungen Vorbemerkungen: Vorbemerkungen
MehrVorkurs Informatik WiSe 15/16
Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann
MehrObjektorientierte 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
MehrOOP. Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten.
Polymorphismus OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen wiederverwendet sein.
MehrObjektkatalog für das Straßen- und Verkehrswesen
Seite: 1 von 8 Objektkatalog für das Straßen- und Verkehrswesen Version: 1.03 Datum: 03.09.2009 Status: Dateiname: Verantwortlich: akzeptiert T0005.doc J. Hettwer Seite: 2 von 8 0 Allgemeines 0.1 Inhaltsverzeichnis
MehrKapitel
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,
MehrFakultät Angewandte Informatik Programmierung verteilter Systeme Übungen zur Vorlesung Informatik II, Blatt 8
WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 12.12.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 8 Abgabe: Montag, 19.12.2011, 12.00 Uhr, Informatik
Mehr7. Objektorientierung. Informatik II für Verkehrsingenieure
7. Objektorientierung Informatik II für Verkehrsingenieure Klassen, Objekte und Attribute Buslinie und Haltestellen 3 Haltestellen und deren Eigenschaften Bauplan einer Haltestelle (Struktur) Konkrete
MehrJava Vererbung. Inhalt
Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter
MehrKlausur. Softwareentwurf. 14. Februar 2011 Bearbeitungszeit: 120 Minuten
Klausur Softwareentwurf 14. Februar 2011 Bearbeitungszeit: 120 Minuten FG Datenbank- und Informationssysteme Prof. Dr. Gregor Engels unbedingt vollständig und lesbar ausfüllen! Vorname: Matrikelnummer:
MehrKapitel 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,
MehrDabei sollen die Nutzern nach einer Authentifizierung entsprechend ihren Rechten Begriffe ändern, anlegen und kommentieren können.
Seite: 1 / 10 Designentwurf 1 Allgemeines 1.1 Kurzcharakterisierung Die Glossarverwaltung soll eine einheitliche Terminologie zwischen allen Beteiligten sicherstellen, hier zwischen den Mitarbeitern der
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrEnterprise 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.
MehrVererbung, Polymorphie
Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08
MehrSoftware- /Systemarchitektur
Software- /Systemarchitektur Agenda: Definition von Softwarearchitektur Voraussetzungen Was bedeutet Objektorientierung? Wie speichert man Daten persistent? Client-Server-Architektur Schichtenarchitektur
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
MehrObjektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)
Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester
MehrPakete Software Entwicklung 1
Pakete Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller 1 Organisation von Klassen- und Interface-Deklaration Java-Programme bestehen aus Typdeklarationen, d.h. Klassen- und Interface-Deklarationen.
MehrVorhandener Code zur Gäste-Optimierung
Kapitel 1 Vorhandener Code zur Gäste-Optimierung Zur Implementierung und zum Testen des A*-Algorithmus müssen sie nun nicht mehr alles selbst erfinden. Sie erhalten bereits eine Menge Code. Laden Sie dazu
MehrEinführung in die Objektorientierung (OO)
Einführung in die Objektorientierung (OO) I) Warum OO? II) Grundbegriffe der OO III) IV) Darstellung von Klassen und Objekten Kapselung I) Warum OO? 1) Früher: Prozedurale / strukturierte Programmierung
MehrTestdokument (Universität Paderborn, Softwaretechnikpraktikum SS2006)
Testdokument (Universität Paderborn, Softwaretechnikpraktikum SS2006) Alles, was in dieser Schriftart gesetzt ist, dient nur zur Erläuterung und sollte im fertigen Dokument nicht mehr enthalten sein! Projekt:
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
MehrEinführung in die Programmierung
Einführung in die Programmierung Teil 8: Interfaces Prof. Dr. Peer Kröger, Florian Richter, Michael Fromm Wintersemester 2018/2019 Übersicht 1. Einführung 2. Schnittstellen in Java 3. Exkurs: Marker-Interfaces
MehrSemestralklausur Informatik I - Programmierung
RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK II RWTH Aachen D-52056 Aachen GERMANY http://www-i2.informatik.rwth-aachen.de/lufgi2 Prof. Dr. Jürgen Giesl LuFG
Mehr1. Die rekursive Datenstruktur Liste
1. Die rekursive Datenstruktur Liste 1.6 Die Datenstruktur Stapel Ein Stack, auch Stapel oder Keller genannt, ist eine Datenstruktur, bei der die Elemente nur an einem Ende der Folge eingefügt bzw. gelöscht
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
MehrEntwurfsmuster. 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
MehrFACHHOCHSCHULE MANNHEIM
Objektorientierte Programmierung 11. Vorlesung Prof. Dr. Peter Knauber FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Die 2. lgruppe von KobrA: : le der : e Folie 1 Zur Erinnerung: 1. lgruppe:
MehrInformatik I Eprog HS12
software evolution & architecture lab Informatik I Eprog HS12 Übung 11 1 Aufgabe: Interfaces & Visitor-Pattern 1.1 Lernziele 1. Die Verwendung von Interfaces trainieren. 2. Das Visitor Design-Pattern kennenlernen.
MehrÜbungsserie Nr. 6. Ausgabe: 1. April 2015 Abgabe: 15. April Hinweise
Informatik II (D-ITET) Frühjahrssemester 2015 Prof. Friedemann Mattern Christian Beckel (beckel@inf.ethz.ch) ETH Zürich Institut für Pervasive Computing Gruppe für Verteilte Systeme http://vs.inf.ethz.ch
MehrInstitut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrProgrammierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
Mehrdatenlink-schnittstelle Version 1.0
www.datenlink.info datenlink-schnittstelle Version 1.0 Inhalt 1 Allgemeines 2 1.1 Datenaustausch... 2 1.2 Zugriffstypen... 2 2 Format der Rückgabewerte 3 2.1 HTTP-Statuscodes... 3 2.2 Rückgabewerte...
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrDer agile Software Architekt
Der agile Software Architekt Ingmar Kellner 2013-09-25 Agil == Beweglich == Zur Handlung Fähig Source: http://de.wiktionary.org/wiki/agil Gegebene Versprechen schränken meine Agilität ein! 2013, hello2morrow
MehrQualitätssicherung in der Softwareentwicklung
VU 3 Institut für Softwaretechnologie (IST) TU Graz Sommersemester 2012 Übersicht der Vorlesung 1 Invarianten in JML 2 3 4 5 JML Beispiele Invariant package org.jmlspecs.samples.jmlrefman Purse [Burdy
MehrUML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert
UML 2.0 als Architekturbeschreibungssprache? Seminar: Architekturbeschreibungssprachen Manuel Wickert Motivation UML 2.0 nicht als ADL im Sinne von Taylor/Medvidovic entworfen. Warum UML als ADL? weit
MehrListe MI / Liste I Programmieren in C++
Liste MI / Liste I Programmieren in C++ Fachhochschule Wiesbaden, FB Design Informatik Medien Studiengang Medieninformatik WS 2007/2008 Kapitel 1-4 1 Ziele Kennenlernen einer weiteren objektorientierten
MehrVererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1
MehrVererbung Advanced. Ziele. Überschreiben von Methoden der Eltern Einführung Interface & Abstrakte Klasse Sichtbarkeit von Methoden bei Vererbung
Vererbung Advanced Ziele Überschreiben von Methoden der Eltern Einführung Interface & Abstrakte Klasse Sichtbarkeit von Methoden bei Vererbung Vererbung (Wiederholung) public class Mutter { public int
MehrModel-View-Controller
Software Design Pattern Model-View-Controller Michael Lühr Gliederung Einführung und Problemstellung Ansatz durch MVC Detaillierte Darstellung der Komponenten Model View Controller Vor- und Nachteile Zusammenfassung
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
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
Mehr