Software Engineering. 6. Objektorientierter Entwurf

Größe: px
Ab Seite anzeigen:

Download "Software Engineering. 6. Objektorientierter Entwurf"

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 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

Mehr

Software Engineering Klassendiagramme Assoziationen

Software 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

Mehr

Programmieren in Java

Programmieren 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

Mehr

Software Engineering Klassendiagramme weiterführende Konzepte

Software 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

Mehr

Software Engineering Klassendiagramme Einführung

Software 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

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, 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:

Mehr

Objektorientierte Programmierung

Objektorientierte 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

Mehr

Probeklausur Softwareengineering SS 15

Probeklausur 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

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-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

Mehr

Klassendiagramm. (class diagram)

Klassendiagramm. (class diagram) : Klassendiagramm http:///topic95.html Klassendiagramm (class diagram) Klassendiagramm Objektdiagramm Komponentendiagramm Kompositionsstrukturdiagramm Verteilungsdiagramm Einstieg Paketdiagramm Aufbau

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte 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/

Mehr

Software Engineering Analyse und Analysemuster

Software 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

Mehr

Software Engineering Interaktionsdiagramme

Software 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)

Mehr

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java 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

Mehr

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Klassenentwurf. 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

Mehr

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla

Klassendiagramm. 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

Ü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

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik 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,

Mehr

Java Einführung Collections

Java 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]...

Mehr

SWE5 Übungen zu Software-Engineering

SWE5 Ü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

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. 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

Mehr

Softwaretechnik (Allgemeine Informatik) Überblick

Softwaretechnik (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

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Drei-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

Mehr

Programmierkurs Java

Programmierkurs 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

Mehr

EinfÅ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 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

Mehr

Assoziation und Aggregation

Assoziation 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

Mehr

3. Konzepte der objektorientierten Programmierung

3. 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

Mehr

Systemanalyse. - Folien zur Vorlesung für AI3 im Sommersemester 2010 - -Teil 4 -

Systemanalyse. - 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

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien 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........................

Mehr

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 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

Mehr

Einführung in die Programmierung mit Java. Hörsaalübung

Einfü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

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung 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

Mehr

Vorkurs C++ Programmierung

Vorkurs 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:

Mehr

Prof. 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) 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

Mehr

Software 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 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

Mehr

SEP 114. Design by Contract

SEP 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

Mehr

Grundlagen von Python

Grundlagen 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

Mehr

09.01.14. Vorlesung Programmieren. Unified Modeling Language (UML) Unified Modeling Language (UML) Unified Modeling Language (UML)

09.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)

Mehr

Vorlesung Programmieren

Vorlesung 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)

Mehr

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Abschnitt 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

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester 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

Mehr

UML Klassendiagramm. Igor Karlinskiy, Mikhail Gavrish

UML 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,

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Client-Server-Beziehungen

Client-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

Mehr

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Musterlö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

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: 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

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binä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

Mehr

Von der UML nach C++

Von 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

Mehr

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Vermeiden 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

Mehr

Darstellung von Assoziationen

Darstellung 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

Mehr

a) In der Aufgabenstellung war ein möglichst einfaches Klassendiagramm gefordert. Abb. 1 zeigt eine mögliche Lösung. * * * Aufbau 1..

a) 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

Mehr

Einfü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 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

Mehr

PowerPoint 2010 Mit Folienmastern arbeiten

PowerPoint 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

Mehr

Unified Modeling Language (UML)

Unified 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

Mehr

4. AuD Tafelübung T-C3

4. 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 ++) {

Mehr

Softwaretechnologie -Wintersemester 2013/2014 - Dr. Günter Kniesel

Softwaretechnologie -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

Mehr

Große Übung Praktische Informatik 1

Groß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,

Mehr

Kostenstellen verwalten. Tipps & Tricks

Kostenstellen 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

Mehr

Klassenbeziehungen & Vererbung

Klassenbeziehungen & Vererbung Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in

Mehr

Vererbung & Schnittstellen in C#

Vererbung & 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

Mehr

Objektbasierte Entwicklung

Objektbasierte 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

Mehr

Use Cases. Use Cases

Use 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

Mehr

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Fassade. 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

Mehr

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),

Institut 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

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. 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

Mehr

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Ordner 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.

Mehr

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Fachbericht 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

Mehr

WhiteStarUML Tutorial

WhiteStarUML 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/

Mehr

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren 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

Mehr

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur 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-

Mehr

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Pakete 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

Mehr

Vorlesung "Software-Engineering"

Vorlesung Software-Engineering Vorlesung "Software-Engineering" Rainer Marrone, TUHH, Arbeitsbereich STS Vorige Vorlesung Pflichtenheft (requirements specification document) Charakterisierung von Software-Qualität Detaillierte Anforderungsanalyse

Mehr

Code-Erzeugung aus UML-Klassendiagrammen

Code-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

Mehr

Einführung in die Programmierung

Einfü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

Mehr

Javakurs zu Informatik I. Henning Heitkötter

Javakurs 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,

Mehr

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

Mehr

Abschnitt 16: Objektorientiertes Design

Abschnitt 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

Mehr

1 topologisches Sortieren

1 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

Mehr

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Ihre 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

Mehr

EINFÜ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. 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

Mehr

Daniel Warneke warneke@upb.de 08.05.2006. Ein Vortrag im Rahmen des Proseminars Software Pioneers

Daniel 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

Mehr

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

INDEX. Ö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

Mehr

Objektorientierte Programmierung

Objektorientierte 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)

Mehr

Kleines Handbuch zur Fotogalerie der Pixel AG

Kleines 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

Mehr

Registrierte- MautStrecke bezeichnung. Gefahrene- MautStrecke /datumeinfahrt /datumausfahrt /uhrzeiteinfahrt /uhrzeitausfahrt gefahrenekm 1..

Registrierte- 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

Mehr

Java Einführung Packages

Java 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)

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java 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

Mehr

3 Objektorientierte Konzepte in Java

3 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

Mehr

Lösungen zu Übung 3 Objektorientierte Modellierung - Statisches Modell

Lö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

Mehr

C# im Vergleich zu Java

C# 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

Mehr

Ein 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 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. Ü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.

Mehr

Einführung in die Java- Programmierung

Einfü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

Mehr

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Workshop 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

Mehr

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

Anleitung 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,

Mehr

Algorithmik 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.

Algorithmik 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

Mehr

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige 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

Mehr

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Virtueller 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,

Mehr

Kapitel 6. Vererbung

Kapitel 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

Mehr

Factory Method (Virtual Constructor)

Factory 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