Software Engineering. 6. Objektorientierter Entwurf
|
|
- Elke Albrecht
- vor 8 Jahren
- Abrufe
Transkript
1 Software Engineering 6. Objektorientierter Entwurf
2 Gliederung Vorlesung Einführung V-Modell XT Analyse und Anforderungsmanagement Benutzungsoberflächen Architektur Entwurf Entwurfsmuster Persistenz Implementierung Konfigurationsmanagement Testen Abnahme, Einführung, Wartung und Pflege
3 Entwurfsprinzipien KISS Keep it simple and stupid Möglichst einfache und klare Implementierung bevorzugen YAGNI You ain t gonna need it Keine Verallgemeinerungen einführen für Dinge, die vielleicht in Zukunft einmal benötigt werden Beispiel: Nicht von Vornherein Setter-Methoden für alle Attribute Geringe Kopplung Zwischen verschiedenen Klassen/Paketen/Komponenten Zyklische Abhängigkeiten vermeiden Fachliche und technische Aspekte trennen Hohe Kohäsion Innerhalb verschiedener Klassen/Pakete/Komponenten
4 Verantwortlichkeiten Eine Funktionalität sollte in der Klasse realisiert sein, die diese Aufgabe ohne weiteres Wissen bearbeiten kann Negativ-Beispiel: Allwissende Klasse Quelle: Kleuker, Grundkurs Software Engineering mit UML. 2. Aufl., Vieweg+Teubner 2011
5 Verantwortlichkeiten Besser: Verteilte Funktionalität Quelle: Kleuker, Grundkurs Software Engineering mit UML. 2. Aufl., Vieweg+Teubner 2011
6 Offen-Geschlossen-Prinzip Offen für Erweiterungen, geschlossen für Änderungen Erweiterungen sollten leicht möglich sein Dabei sollte der vorhandene Code möglichst wenig geändert werden müssen Beispiel: void draw(){ } if (type.equals("circle") drawcircle(); else if (type.equals("square") drawsquare(); Nach: Starke, Effektive Software-Architekturen. 3. Aufl., Hanser 2008
7 Offen-Geschlossen-Prinzip Besser: Nach: Starke, Effektive Software-Architekturen. 3. Aufl., Hanser 2008
8 Entwurf der Fachkonzept-Schicht OOA-Modell bildet erste Version der Fachkonzept-Schicht Vorgehen: Diese muss nun verfeinert und überarbeitet werden, insbesondere hinsichtlich der Effizienz und der Wiederverwendbarkeit Vorteil von OOA/OOD: Es findet kein Paradigmenwechsel statt 1. Modifikation der Klassenstruktur 2. Verfeinern der Attribute 3. Verfeinern der Operationen 4. Verfeinern von Assoziationen 5. Verfeinern der Vererbung Quelle: Starke, Effektive Software-Architekturen. 3. Aufl., Hanser 2008
9 1. Modifikation der Klassenstruktur Hinzufügen von Container-Klassen Objektverwaltung wurde in der Analyse als inhärente Eigenschaft der Klassen angesehen. Im Entwurf muss diese mit Hilfe sog. Container-Klassen modelliert werden. Zerlegen komplexer Klassen Die meisten OOA-Klassen werden 1:1 übernommen Wird die funktionale Komplexität zu hoch, sollten Teilaufgaben an detailliertere Klassen delegiert werden Zusammenfassen von Klassen mit starker Interaktion Aus Performance-Gründen können u. U. Klassen mit hoher Kopplung zusammengefasst werden Hinzufügen von Klassen zum Modellieren von Zwischenergebnissen Bündelung abgeleiteter Attribute in gemeinsame Klassen Transformation von assoziativen Klassen zu normalen Klassen Assoziative Klassen können nicht direkt implementiert werden und sind daher aufzulösen
10 2. Verfeinern der Attribute Detailliertere Beschreibung Sichtbarkeiten, Datentypen, Anfangswerte,... Abgeleitete Attribute des OOA-Modells übernehmen oder in Operationen wandeln Dynamische Berechnung abgeleiteter Attribute Operation zur Berechnung vorsehen Speicherung der abgeleiteten Attribute Wenn komplexe Berechnungen gespart werden und sich die Ursprungsdaten nicht häufig ändern Realisierung von Update-Operationen (wenn sich die Ursprungsdaten ändern, müssen die abgeleiteten Attribute automatisch mit geändert werden) Neue abgeleitete Attribute einführen Zur Speicherung von Zwischenergebnissen
11 3. Verfeinern der Operationen Detailliertere Beschreibung Sichtbarkeiten, Datentypen, Anfangswerte,... Komplexe Operationen in einfache, interne Operationen zerlegen Beispiel: Untergliedern einer Erfassungsoperation in eine Operation zur Eingabeprüfung und eine Operation zur Speicherung Ggf. müssen neue Klassen identifiziert werden Transformieren von Lebenszyklen in Algorithmen oder Zustandsmuster Ausführende Operation kann vom jeweiligen Objektzustand abhängen Der Algorithmus muss daher entsprechende Abfragen enthalten oder in komplexen Fällen wird der Lebenszyklus mit Hilfe eigener Klassen modelliert (Zustandsmuster)
12 4. Verfeinern der Assoziationen Prüfen, welche Assoziationen unidirektional modelliert werden können In der Analyse: alle Assoziationen bidirektional Aus Effizienzgründen ist für jede Assoziation zu prüfen, ob eine Navigationsrichtung ausreicht. In diesem Fall ist die Navigationsrichtung durch einen Pfeil zu markieren Zugriffspfade optimieren In der Analyse: Vermeidung redundanter Assoziationen Im Entwurf: Optimalen, effizienten Zugriff auf Objekte sicherstellen, ggf. können hierfür redundante Assoziationen erforderlich sein U. U. sind anschließend Assoziationen aus der Analyse überflüssig und können entfernt werden Für jede Operation ist zu prüfen, welche Assoziationen sie jeweils durchlaufen muss, um an die jeweilige Information zu kommen
13 5. Verfeinern der Vererbung (1) Abstrakte Operationen für einheitliche Schnittstellen hinzufügen Identifizieren von ähnlichen Operationen, prüfen ob gemeinsame abstrakte Operationen gebildet werden können Hinzufügen von abstrakten Oberklassen Dienen dazu, das Vererbungskonzept voll auszunutzen,werden stets künstlich in das Modell eingefügt Umgekehrt ist zu prüfen, ob sinnlose Oberklassen gebildet wurden. Indiz: Klassenname ohne Aussagekraft, steht in keiner Beziehung zu Attributen und Operationen Maximierung des Polymorphismus Operationen so hoch wie möglich in die Vererbungshierarchie einordnen Nutzung eines einzigen Namens für konzeptionell gleiche Operationen, z. B. drucken(), erfassen() Alle Operationen sind in der Schnittstelle so allgemein wie möglich zu halten
14 5. Verfeinern der Vererbung (2) Komprimieren von Vererbungsstrukturen Umgekehrt kann es in konkreten Fällen auch sinnvoll sein, eine Vererbungsstruktur wieder zu einer Klasse zusammenzufassen. Dadurch wird ein Teil der im statischen Modell spezifizierten Semantik in das dynamische Modell übernommen (Siehe Beispiel auf der nächsten Folie) Wiederverwenden existierender Klassen Im Ggs. zur Analyse spielt Wiederverwendung (reuse) im Entwurf eine große Rolle Zugunsten der Wiederverwendung können die Anforderungen an gute Vererbungsstrukturen reduziert werden Z. B. Nutzung von Oberklassen, wobei in der Unterklasse nicht alle Operationen und Attribute benötigt werden
15 OOD-Modell OOD = Object Oriented Design Grundlage für OOD-Modell ist das OOA-Modell Insbesondere Klassendiagramm OOD-Modell soll Spiegelbild des Programms sein Namen, Datentypen etc. des OOD-Modells sollten denen der verwendeten Programmiersprache entsprechen Häufig: Verwendung englischer Namen und Bezeichnungen Kürzere Bezeichnungen Durchgängigkeit zu den meist englischsprachigen Klassenbibliotheken
16 Objekt / Klasse Stereotypen Können z. B. eingesetzt werden, um die Zugehörigkeit zu bestimmten Entwurfskomponenten zu kennzeichnen Beispiele: <<DB>> für Datenverwaltungsklassen <<UI>> für User Interface
17 Typ-Parameter Generische Klasse Konstanten-Parameter (hier nicht bei der Typ-Definition, sondern als Parameter beim Konstruktor) public class Warteschlange<T> { private Object[] warteschlange; private int position=0; public Warteschlange(int maxlaenge){ warteschlange = new Object[maxlaenge]; } public void fuegeein(t t){ warteschlange[position] = t; position++; } } public T getelement(int position){ return (T)warteschlange[position]; }
18 Ableitung von Klassen aus generischen Klassen Konstante Gebundener Typ public class IntSchlange extends Warteschlange<Integer>{ } public IntSchlange(){ super(10); }
19 Generische Klassen - Verwendung Warteschlange untypisierteschlange = new Warteschlange(5); // Beliebige Objekte einfügen untypisierteschlange.fuegeein(5); untypisierteschlange.fuegeein("hallo"); Nutzung ohne Typ // Beim Auslesen Casting erforderlich String s = (String)untypisierteSchlange.getElement(1); Bindung an Typ String Warteschlange<String> stringschlange = new Warteschlange<String>(3); // Hier kann man nur Strings einfügen: stringschlange.fuegeein("hallo"); // Beim Auslesen kein Casting erforderlich: String s1 = stringschlange.getelement(0); IntSchlange intschlange = new IntSchlange(); // Hier kann man nur Integer einfügen: intschlange.fuegeein(5); // Beim Auslesen kein Casting erforderlich: int i1 = intschlange.getelement(0); Nutzung der aus einem generischen Typ abgeleiteten Klasse
20 Collections sind generische Klassen ArrayList a1 = new ArrayList(); ArrayList<String> a2 = new ArrayList<String>(); ArrayList<Integer> a3 = new ArrayList<Integer>(); ArrayList<MeineKlasse> a4 = new ArrayList<MeineKlasse>(); Vector<String> v1 = new Vector<String>(); Typ-sichere Listen von Objekten Nützlich für die Implementierung von Assoziationen
21 - Enthalten Reihenfolge (Zugriff über Index) - Doppelte Einträge erlaubt Java Collections-Hierarchie Basisfunktionalität zum Einfügen, Erzeugen eines Iterators, u. ä. Keine doppelten Einträge möglich Sortierung Implementierung einiger Basisfunktionen Keine Duplikate Definiert einige Navigiermethoden Doppelt verkettete Liste (Wahlfreier Zugriff schneller) Dynamische Arrays (Einfügen u. Löschen schneller) Alle Methoden synchronisiert trotzdem häufig nicht ausreichend für Threadsichere Zugriffe Unsortierte Menge Sortierte Menge
22 Auswahl von Collections Benötigte Eigenschaften z. B. Reihenfolge, doppelte Einträge, wahlfreier Zugriff etc. Speicherbedarf und Perfomance Je nach Größe und verwendeten Operationen eignen sich unterschiedliche Implementierungen Soll ein Zugriff über bestimmte Schlüssel erfolgen, eignen sich statt der Collections Implementierungen des Interface "Map" (z. B. HashMap, TreeMap).
23 Nutzung von Interfaces und abstrakten Klassen Wo keine bestimmte Implementierung erforderlich ist, kann man in der Deklaration ein Interface oder eine abstrakte Klasse verwenden Es kann dann eine beliebige Implementierung verwendet werden. Interface "List" als Parameter-Typ public static void einemethode(list<string> eineliste){ //... } AbstractList<String> liste = new ArrayList<String>(); einemethode(liste); Übergabe einer ArrayList
24 Container-Klasse In der Analyse wurde vereinfachend davon ausgegangen, dass jede Klasse ihre Objekte selbst verwaltet Im Entwurf muss diese Objektverwaltung realisiert werden Container-Klasse Verwaltet eine Menge von Objekten einer anderen Klasse Stellt Operationen bereit, um auf die verwalteten Objekte zuzugreifen Realisierung mit Hilfe von Arrays oder Collections
25 Schnittstellen (Interface) Eine Schnittstelle spezifiziert einen Ausschnitt aus dem Verhalten einer Klasse Besteht nur aus den Signaturen von Operationen Besitzt keine Implementierung, Attribute, Zustände oder Assoziationen Ist äquivalent zu einer abstrakten Klasse, die ausschließlich abstrakte Operationen besitzt Implementierung einer Schnittstelle durch eine Klasse wird durch einen gestrichelten Vererbungspfeil gekennzeichnet
26 Schnittstelle (Interface) Aufrufende Klasse nutzt die Schnittstelle AufrufendeKlasse <<use>> «interface» Schnittstelle Schnittstelle wird implementiert von Klasse 1 Schnittstelle wird implementiert von Klasse 2 Klasse 1 Klasse 2 Klasse 1 und Klasse 2 müssen beide je über eine Implementierung aller bei Schnittstelle definierten abstrakten Operationen verfügen, wobei sich die Implementierungen voneinander unterscheiden können.
27 Beispiel für Schnittstelle VersicherungGUI ermittlepraemie() <<use>> «interface» VersicherungInterface berechnepraemie(versicherungssumme : double) Versicherung 1 berechnepraemie(vsumme : double) berechnesonderpraemie(vsumme : double) Versicherung 2 berechnepraemie(vsumme : double) Unterschiedliche Implementierungen der Operation berechnepraemie
28 Schnittstellen alternative Darstellung Versicherung 1 berechnepraemie(vsumme : double) berechnesonderpraemie(vsumme : double) VersicherungInterface VersicherungGUI ermittlepraemie() VersicherungInterface Versicherung 1 berechnepraemie(vsumme : double) berechnesonderpraemie(vsumme : double) VersicherungInterface VersicherungGUI ermittlepraemie()
29 Assoziationen In der Analyse: Alle Assoziationen bidirektional Navigation in beide Richtungen möglich Im Entwurf: Explizite Angabe über Navigation erforderlich Unidirektionale Assoziationen sind einfacher zu implementieren
30 Navigierbarkeit Abteilung #Bezeichnung +druckegehaltsliste() Unidirektional 1 * Angestellter #Name #Personalnr #Gehalt +druckegehalt() Abteilung #Bezeichnung +druckegehaltsliste() Bidirektional 1 * Angestellter #Name #Personalnr #Gehalt +druckegehalt() +druckeausweis() Abteilung soll mit ausgedruckt werden, daher ist Kenntnis über die Abteilung erforderlich (Wenn kein Pfeil eingetragen ist, ist die Navigierbarkeit nicht definiert)
31 Realisierung von Assoziationen über Referenzen Klassen: Objekte: Abteilung 1 * Angestellter : Abteilung : Angestellter : Abteilung : Abteilung : Angestellter : Angestellter Jedes Objekt kennt die assoziierten Objekte Multiplizität 1 oder 0..1: einzelne Referenz Multiplizität > 1: Menge von Referenzen (Collection, z. B. ArrayList).
32 Realisierung mittels Assoziationsobjekt Klassen: Abteilung 1 * Angestellter Objekte: Abteilung : Abteilung * 1 Abteilung/Angestellter 1 * : Abteilung/Angestellter Angestellter : Angestellter : Abteilung : Angestellter : Abteilung... : Angestellter Assoziationsobjekt weiß, wer mit wem verbunden ist. Ermöglicht Assoziationen zu Klassen, die nicht verändert werden können (z. B. aus Bibliotheken)
33 Weitere Möglichkeiten für Assoziationen Merkmale für Assoziationen {ordered} Geordnete Assoziationen (z. B. Sortierung nach Kundennr) Realisierung über eine Container-Klasse, die Ordnung der Elemente berücksichtigt, z. B. ArrayList {unique} {frozen} Stellst sicher, dass jedes Element nur einmal vorkommt, z. B. durch Verwendung eines Set Oft wird davon ausgegangen, dass eine Assoziation diese Eigenschaft hat, eindeutig gefordert wird dies aber nur durch die {unique}-angabe Objektverbindung kann weder hinzugefügt, gelöscht noch geändert werden, wenn sie mit dem Erzeugen des entsprechenden Objekts einmal angelegt wurde {addonly} Es dürfen nur neue Verbindungen hinzugefügt, vorhandene aber nicht gelöscht werden
34 Aggregation / Komposition Aggregation wird genauso realisiert wie eine normale Assoziation, wobei stets das Ganze seine Teile kennen muss (Navigierbarkeit vom Aggregat zur Komponente!) Keine Zyklen in der Objektstruktur auftreten dürfen Komposition ebenso wie Aggregation, zusätzlich: Bei der Definition von Operationen ist zu berücksichtigen, dass Operationen, die das Ganze betreffen, häufig auch die Teile betreffen. Zugriff und Erzeugen der Teile erfolgen über das Aggregatobjekt Realisierungsmöglichkeiten: Über eine Referenz (wie eine gewöhnliche Assoziation) Über Methoden sicherstellen, dass Änderungen immer über das Aggregat erfolgen Über Enthaltensein (Inner Class) Vorteil: Erzeugen, Löschen und Kopieren findet automatisch gemeinsam statt Nachteil: Direkter Zugriff von Außen auf ein Teil schwierig
35 Pakete (Packages) Entwurfsmodelle wesentlich umfangreicher als Analysemodelle, daher ist die Strukturierung mit Hilfe von Paketen noch wichtiger Schachtelung von Packages ermöglicht die Modellierung des Systems auf verschiedenen Abstraktionsebenen
36 Paketdiagramm <<access>> Privater Import: Die importierten Pakete sind im importierenden Paket private <<ímport>> Öffentlicher Import: Importierte Pakete sind auch nach außen sichtbar Öffentlich sichtbare Elemente lassen sich von außen ohne Import-Beziehung über vorangestellten Paketnamen referenzieren, z. B. "P2::B" Quelle: UML 2 glasklar
37 Schachtelung von Packages
38 UML-Komponentendiagramme Komponente Modularer Systemteil Kommunikation nur über Schnittstellen In einer Komponente wirken mehrere Klassen zusammen Komponentendiagramm Darstellung der physischen Struktur eines Systems Bestandteile Interne Struktur von Komponenten Wechselbeziehungen zwischen Komponenten
39 Komponente Bereitgestellte Schnittstelle Komponente Quelle: Seemann/Gudenberg, Software Entwurf mit UML Aufl., Springer 2006 Port (optional), dient zur Gruppierung von Schnittstellen
40 Benötigte Schnittstellen Komponente (alternative Darstellung) Benötigte Schnittstelle Quelle: Seemann/Gudenberg, Software Entwurf mit UML Aufl., Springer 2006
41 Zusammengesetzte Komponenten Quelle: Seemann/Gudenberg, Software Entwurf mit UML Aufl., Springer 2006
42 Alternative Darstellung In Anlehnung an: Seemann/Gudenberg, Software Entwurf mit UML Aufl., Springer 2006
43 Implementierung Komponente (logisches Konstrukt) Komponente (logisches Konstrukt) Artefakt (physisch vorhanden, z. B. Datei) In Anlehnung an: Seemann/Gudenberg, Software Entwurf mit UML Aufl., Springer 2006
44 Verschiedene Darstellungen Teilnehmer Verwaltungsmetadaten Nach: UML 2 glasklar
45 UML-Komponentendiagramm Beispiel Quelle: Suhl, Bizer (FU Berlin)
46 Beispiel Komponentenstruktur und Interfaces Quelle: Suhl, Bizer (FU Berlin)
47 Elemente des Komponentendiagramms Quelle: UML 2 glasklar
48 UML Verteilungsdiagramm (Deployment Diagram) Hardware-Umfeld (Hardware-Topologie) Verteilung der Software auf die Hardware (Deployment)
49 Verteilungsdiagramm (Deployment Diagram) In Anlehnung an: Seemann/Gudenberg, Software Entwurf mit UML Aufl., Springer 2006
50 Verteilungsdiagramm (Deployment Diagram) Kommunikationspfad, gerichtet oder ungerichtet: Darstellung als Assoziation (auch Angaben von Multiplizitäten sind möglich) Verteilungsbeziehung: Artefakt wird auf Knoten deployed Alternative Darstellung der Verteilungsbeziehung Knoten (node): Betriebsmittel, das Verarbeitungs- und/oder Speicherkapazität zur Verfügung stellt (z. B. ein Computer, Router, Sensor, ) Quelle: UML 2 glasklar
51 Verteilungsdiagramm (Deployment Diagram) Allgemeine Abhängigkeitsbeziehung Quelle: UML 2 glasklar
Software Engineering Software Entwurf
Software Engineering Software Entwurf Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Entwurfsprinzipien KISS Keep it simple and stupid Möglichst einfache und klare
MehrSoftware Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrSoftware Engineering Klassendiagramme weiterführende Konzepte
Software Engineering Klassendiagramme weiterführende Konzepte Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Klassenattribut: static Implementierung in Java public
MehrSoftware Engineering Klassendiagramme Einführung
Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrProbeklausur Softwareengineering SS 15
Probeklausur Softwareengineering SS 15 Hinweis: Die Bearbeitungsdauer entspricht dem Punktewert. Aufgabe 1 (10 min) Beschreiben Sie das Vorgehensmodell Test-Driven-Development (TDD) a) Erläutern Sie das
MehrDrei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI
Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer
MehrKlassendiagramm. (class diagram)
: Klassendiagramm http:///topic95.html Klassendiagramm (class diagram) Klassendiagramm Objektdiagramm Komponentendiagramm Kompositionsstrukturdiagramm Verteilungsdiagramm Einstieg Paketdiagramm Aufbau
MehrObjektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
MehrSoftware Engineering Analyse und Analysemuster
Software Engineering Analyse und Analysemuster Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Klassendiagramme in der Analyse Im Rahmen der Anforderungsanalyse
MehrSoftware Engineering Interaktionsdiagramme
Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)
MehrJava Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7
Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck
MehrKlassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java
Objektorientierte Programmierung mit Java Eine praxisnahe Einführung mit BlueJ Klassenentwurf Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? 1.0 Zentrale Konzepte
MehrKlassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla
BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung
MehrÜbungen zur Softwaretechnik
Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se
MehrFachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer
Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,
MehrJava Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
MehrSWE5 Übungen zu Software-Engineering
1 Übungen zu Software-Engineering 1) Klassen und Objekte 2) Telefonanlage 3) Objekt- und Klassendiagramme 4) Assoziationen 5) Telefonanlage (Erweiterung) 6) Fahrzeuge 7) Familien 2 Aufgabe 1: Klassen und
MehrDiplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008
Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen
MehrSoftwaretechnik (Allgemeine Informatik) Überblick
Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6
MehrDrei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2
Universität Osnabrück 1 3 - Objektorientierte Programmierung in Java Zur Erinnerung: Aufteilung der Schichten GUI Vorlesung 17: 3-Schichten-Architektur 2 Fachkonzept Fachkonzept - Datenhaltung Datenhaltung
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
MehrEinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2
EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2
MehrAssoziation und Aggregation
Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben
Mehr3. Konzepte der objektorientierten Programmierung
3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung
MehrSystemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester 2010 - -Teil 4 -
Systemanalyse - Folien zur Vorlesung für AI3 im Sommersemester 2010 - -Teil 4 - Hans-Jürgen Steffens (by courtesy of Prof. Dr. Thomas Allweyer) Fachbereich Informatik und Mikrosystemtechnik Fachhochschule
MehrPrinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
MehrProgrammiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische
MehrEinführung in die Programmierung mit Java. Hörsaalübung
Einführung in die Programmierung mit Java Hörsaalübung Folie 1 Grundlagen der Objektorientierung Seit Anfang der Neunzigerjahre Standardmethode der Softwareentwicklung. Die OOP Objektorientierte Programmierung
MehrBedienung von BlueJ. Klassenanzeige
Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrProf. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)
Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen
MehrSoftware Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
MehrSEP 114. Design by Contract
Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit
MehrGrundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
Mehr09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)
Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)
MehrVorlesung Programmieren
Vorlesung Programmieren Unified Modeling Language (UML) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Unified Modeling Language (UML)
MehrAbschnitt 12: Strukturierung von Java-Programmen: Packages
Abschnitt 12: Strukturierung von Java-Programmen: Packages 12. Strukturierung von Java-Programmen: Packages 12.1 Strukturierung durch Packages 12.2 Zugriffsspezifikationen 12.3 Zusammenfassung 12 Strukturierung
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22
Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften
MehrUML Klassendiagramm. Igor Karlinskiy, Mikhail Gavrish
UML Klassendiagramm Igor Karlinskiy, Mikhail Gavrish Agenda Wichtigste Eigenschaften Syntaktische Elemente mit entsprechendem C++ Code Analysemodell Designmodell Quellen 2 Klassendiagramm gibt die Möglichkeit,
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrMusterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9
Prof. Dr. Wilhelm Schäfer Paderborn, 15. Dezember 2014 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9 Aufgabe 1 Codegenerierung
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrVon der UML nach C++
22 Von der UML nach C++ Dieses Kapitel behandelt die folgenden Themen: Vererbung Interfaces Assoziationen Multiplizität Aggregation Komposition Die Unified Modeling Language (UML) ist eine weit verbreitete
MehrVermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.
1 2 3 4 Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg. Gerade beim Einstig in der Programmierung muss kontinuierlich
MehrDarstellung von Assoziationen
Darstellung von Assoziationen Wie bereit aus Kapitel 1 bekannt, beschreiben Assoziationen Beziehungen zwischen Objekten, die zwischen Klassen modelliert werden. Zunächst soll die Modellierung binärer Assoziationen
Mehra) In der Aufgabenstellung war ein möglichst einfaches Klassendiagramm gefordert. Abb. 1 zeigt eine mögliche Lösung. * * * Aufbau 1..
Software Engineering I Musterlösungen zur Klausur vom 3.7.2004 Aufgabe a) In der Aufgabenstellung war ein möglichst einfaches Klassendiagramm gefordert. Abb. zeigt eine mögliche Lösung. Turnier sportart
MehrEinführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005
Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der
MehrPowerPoint 2010 Mit Folienmastern arbeiten
PP.002, Version 1.1 07.04.2015 Kurzanleitung PowerPoint 2010 Mit Folienmastern arbeiten Der Folienmaster ist die Vorlage für sämtliche Folien einer Präsentation. Er bestimmt das Design, die Farben, die
MehrUnified Modeling Language (UML)
Kirsten Berkenkötter Was ist ein Modell? Warum Modellieren? Warum UML? Viele, viele Diagramme UML am Beispiel Was ist ein Modell? Ein Modell: ist eine abstrakte Repräsentation eines Systems, bzw. ist eine
Mehr4. AuD Tafelübung T-C3
4. AuD Tafelübung T-C3 Simon Ruderich 17. November 2010 Arrays Unregelmäßige Arrays i n t [ ] [ ] x = new i n t [ 3 ] [ 4 ] ; x [ 2 ] = new i n t [ 2 ] ; for ( i n t i = 0; i < x. l e n g t h ; i ++) {
MehrSoftwaretechnologie -Wintersemester 2013/2014 - Dr. Günter Kniesel
Übungen zur Vorlesung Softwaretechnologie -Wintersemester 2013/2014 - Dr. Günter Kniesel Übungsblatt 3 - Lösungshilfe Aufgabe 1. Klassendiagramme (9 Punkte) Sie haben den Auftrag, eine Online-Videothek
MehrGroße Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
MehrKostenstellen verwalten. Tipps & Tricks
Tipps & Tricks INHALT SEITE 1.1 Kostenstellen erstellen 3 13 1.3 Zugriffsberechtigungen überprüfen 30 2 1.1 Kostenstellen erstellen Mein Profil 3 1.1 Kostenstellen erstellen Kostenstelle(n) verwalten 4
MehrKlassenbeziehungen & Vererbung
Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in
MehrVererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
MehrObjektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
MehrUse Cases. Use Cases
Use Cases Eigenschaften: Ein Use Case beschreibt einen Teil des Verhaltens eines Systems aus externer Sicht (Formuliert in der der Fachsprache der Anwendung) Dies geschieht, indem ein Systemdialog beschrieben
MehrFassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing
Fassade Objektbasiertes Strukturmuster C. Restorff & M. Rohlfing Übersicht Motivation Anwendbarkeit Struktur Teilnehmer Interaktion Konsequenz Implementierung Beispiel Bekannte Verwendung Verwandte Muster
MehrInstitut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode
Mehr7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure
7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG
MehrOrdner Berechtigung vergeben Zugriffsrechte unter Windows einrichten
Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten Was sind Berechtigungen? Unter Berechtigungen werden ganz allgemein die Zugriffsrechte auf Dateien und Verzeichnisse (Ordner) verstanden.
MehrFachbericht zum Thema: Anforderungen an ein Datenbanksystem
Fachbericht zum Thema: Anforderungen an ein Datenbanksystem von André Franken 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 2 Einführung 2 2.1 Gründe für den Einsatz von DB-Systemen 2 2.2 Definition: Datenbank
MehrWhiteStarUML Tutorial
WhiteStarUML Tutorial Autor: Simon Balázs, BME IIT, 2015. Übersetzung: Kovács Márton, 2015. Installation Herunterladen und installieren Sie das WhiteStarUML: http://sourceforge.net/projects/whitestaruml/
MehrProgrammieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek
Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es
MehrKlausur zur Einführung in die objektorientierte Programmierung mit Java
Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-
MehrPakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).
Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein
MehrVorlesung "Software-Engineering"
Vorlesung "Software-Engineering" Rainer Marrone, TUHH, Arbeitsbereich STS Vorige Vorlesung Pflichtenheft (requirements specification document) Charakterisierung von Software-Qualität Detaillierte Anforderungsanalyse
MehrCode-Erzeugung aus UML-Klassendiagrammen
Dominik 09.03.2009 Universität Ulm Gessenharter Inst. f. Programmiermethodik und Compilerbau Code-Erzeugung aus UML-Klassendiagrammen Theorie und Praxis Seite 2 REConf 2009 München Dominik Gessenharter
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrJavakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
MehrVBA-Programmierung: Zusammenfassung
VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung
MehrAbschnitt 16: Objektorientiertes Design
Abschnitt 16: Objektorientiertes Design 16. Objektorientiertes Design 16 Objektorientiertes Design Informatik 2 (SS 07) 610 Software-Entwicklung Zur Software-Entwicklung existiert eine Vielfalt von Vorgehensweisen
Mehr1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
MehrIhre Interessentendatensätze bei inobroker. 1. Interessentendatensätze
Ihre Interessentendatensätze bei inobroker Wenn Sie oder Ihre Kunden die Prozesse von inobroker nutzen, werden Interessentendatensätze erzeugt. Diese können Sie direkt über inobroker bearbeiten oder mit
MehrEINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.
EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick mtr@is.informatik.uni-kiel.de www.is.informatik.uni-kiel.de/~mtr FRAGEN / ANMERKUNGEN Vorlesung Neue Übungsaufgaben MODELLIERUNG
MehrDaniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers
Design Patterns Daniel Warneke warneke@upb.de 08.05.2006 Ein Vortrag im Rahmen des Proseminars Software Pioneers Design Patterns 1/23 Übersicht Einleitung / Motivation Design Patterns Beispiele Rolle des
MehrINDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline
Öffentliche Ordner Offline INDEX Öffentliche Ordner erstellen Seite 2 Offline verfügbar einrichten Seite 3 Berechtigungen setzen Seite 7 Erstelldatum 12.08.05 Version 1.1 Öffentliche Ordner Im Microsoft
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
MehrKleines Handbuch zur Fotogalerie der Pixel AG
1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link
MehrRegistrierte- MautStrecke bezeichnung. Gefahrene- MautStrecke /datumeinfahrt /datumausfahrt /uhrzeiteinfahrt /uhrzeitausfahrt gefahrenekm 1..
Software Engineering I Aufgabe Gefordert war ein redundanzfreies Klassendiagramm für die in der Aufgabenstellung beschriebene Maut-Software auf dem Server. Eine mögliche Lösung (es sind verschiedene Lösungsansätze
MehrJava Einführung Packages
Java Einführung Packages Inhalt dieser Einheit Packages (= Klassenbibliotheken) Packages erstellen Packages importieren Packages verwenden Standard Packages 2 Code-Reuse Einbinden von bereits (selbst-/fremd)
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
MehrLösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell
Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell Aufgabe 3. Assoziation
MehrC# im Vergleich zu Java
C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung
MehrEin Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch
Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,
MehrÜbung 1. Ziel: Statisches Modell (Klassendiagramm) aus allgemeiner Beschreibung erstellen.
Übung 1 Ziel: Statisches Modell (Klassendiagramm) aus allgemeiner Beschreibung erstellen. Für Paletten ist eine verwaltung zu organisieren, eine Palette kann in einem offenen (z.b. eine große halle) stehen.
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrWorkshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ
IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler
MehrAnleitung zur Installation und Verwendung von eclipseuml 2.1.0
Anleitung zur Installation und Verwendung von eclipseuml 2.1.0 In dieser Anleitung wird die Installation und Verwendung von Omodo eclipseuml 2.1.0 beschrieben. eclipseuml ist eine Zusatzsoftware für Eclipse,
MehrAlgorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.
Aufgabe 10 Binäre Bäume a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge, 28, 35, 31, 9, 4,, 17, 37, 25 ein. 1. Einfügen von : 3. Einfugen von 35: 2. Einfügen von 28: 28 28 10. Einfügen
MehrWichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge
Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht
MehrVirtueller Seminarordner Anleitung für die Dozentinnen und Dozenten
Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten In dem Virtuellen Seminarordner werden für die Teilnehmerinnen und Teilnehmer des Seminars alle für das Seminar wichtigen Informationen,
MehrKapitel 6. Vererbung
Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen
MehrFactory Method (Virtual Constructor)
Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte
Mehr