2. Strukturdiagramme
|
|
- Richard Brinkerhoff
- vor 8 Jahren
- Abrufe
Transkript
1 2. Strukturdiagramme 2.1 Das Klassendiagramm Prof. Mario Jeckle Fachhochschule Furtwangen Fachhochschule Furtwangen, Sommersemester 2004
2 Titel Strukturdiagramme Klassendiagramm Kompositionsstrukturdiagramm Paketdiagramm Komponentendiagramm Aufbaustrukturmodellierung Ausprägungsmodellierung Interaktionsstrukturmodellierung Zusammenhangsstrukturmodellierung Einsatzstrukturmodellierung Objektdiagramm M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester 2004 Verteilungsdiagramm 2
3 Was ist das? Das Klassendiagramm wurde aus dem Object Model der Object Modeling Technique (OMT) entwickelt und dient: Der Darstellung der Struktur eines Systems Dem Aufzeigen von statischen Eigenschaften und Beziehungen Der Sammlung grundlegender Modellierungskonstrukte Ist Antwort auf die Frage Wie sind Daten und Verhalten meines Systems strukturiert? 3
4 Elemente Das Klassendiagramm besteht aus Elementen: Klassen Schnittstellen Attributen Operationen Assoziationen mit Sonderformen Aggregation und Komposition Generalisierungsbeziehungen Abhängigkeitsbeziehungen 4
5 abstrakte Klasse Rolle Elemente im Überblick Klasse Aggregation unterhält Feier +termin : Datum Klassenname Komposition Zutat +name : String abbrechen() besucht * Partyteilnehmer /betrunken : Boolean = false ~intus : Cocktail [1..*] #begeistert : Begeisterung #überdenkebegeisterung() ~trinke(in c : Cocktail) Schnittstelle Generalisierung 0..* isst {ordered «interface» Esser iss(in h : Häppchen; return satt:boolean) Häppchen mixt für 1 Cocktail Zutaten : Zutat [1..*] 1..* mixt Barmixer +mixe(in z : Zutat [1..*], out c:cocktail) feiere() Esser Gast Eigenschaftswert 1..* 1..* verabschiedet {unique empfängt {unique gerichtete Assoziation Attribut Gastgeber Esser treibt an hektisch : Boolean = true begrueße(in g : Gast) verabschiede (in g : Gast) treibean(in b : Barmixer) 1..1 Assoziation Multiplizität Operation «enumeration» Begeisterung ekstatisch verzückt neutral gelangweilt überdrüssig Stereotyp 5
6 Classifier Der Classifier ist zentraler Bestandteil des Klassendiagramms und anderer UML-Diagrammtypen: Zentraler Bestandteil der UML Abstraktion der Klasse Ist kein durch den Modellierer direkt nutzbares graphisches Konstrukt Kann einem anderen Classifier zugeordnet sein Ist die ordnende Instanz bei einer Reihe konkreter Ausprägungen Es existieren 27 Varianten 6
7 Classifier-Hierarchie Classifier DataType Signal Association Actor Class (from Kernel) Interface Information Item Behaviored Classifier Structured Classifier Primitive Type Enumeration Communication Path Association Class Behavior Artifact Class (from Communications) UseCase Collaboration Encapsulated Classifier Activity Interaction StateMachine Class (from StructuredClasses) ProtocolStateMachine Node Device ExecutionEnvironment 7
8 Anwendung Klassendiagramm Die Anwendung des Klassendiagramms im Projekt: Ist in allen Projektphasen möglich Das Klassendiagramm ist hier das wichtigste Diagramm Von ersten Analyseschritten bis zur Codierung von Softwaresystemen Das Klassendiagramm ist zwar ein vordefinierter Diagrammtyp, jedoch in seiner Anwendung in zwei Einsatzfälle einteilbar konzeptuell-analytisch logisch 8
9 Anwendung Konzeptuell analytische Modellierung: Ziel ist die korrekte Erfassung und Abbildung von vorgefundenen Zusammenhängen WICHTIG: grundlegende Wesenseinheiten und Zusammenhänge eines Systems UNWICHTIG: Technische Realisierungsdetails wie Attributdatentypen, technische Operationen, Schnittstellen 9
10 Anwendung Logische Modellierung: Ziel ist den Inhalt so zu erfassen, dass er alle Information für eine direkte Quellcode- Erstellung enthält, da konkrete Implementierungsvorschrift WICHTIG: Detailgenauigkeit (Voraussetzung der Quellcodeerzeugung) 10
11 Notation Im Klassendiagramm finden graphische Primitive Anwendung: Klassen Attribute Operationen Schnittstellen Parametrisierte Klassen Generalisierung Assoziationen Assoziationsklassen Kommentar Stereotype Eigenschaftswerte 11
12 Titel Klassendiagramm: Begriffe Klasse: beschreibt eine Menge von Instanzen die dieselben Eigenschaften, Einschränkungen und Semantik haben Objekt: Ausprägung ein oder mehrerer Klassen Attribut: Eigenschaften einer Klasse, die Charakteristika wie Auftretenshäufigkeit, Datentyp etc. beschreiben Wert: UML-Ausprägung als Wert eines Attributs oder Objektes Operation: Verhaltensmerkmal eines Classifiers, das Name, Typ, Parameter und Zusicherung für den Aufruf eines Verhaltens spezifiziert. Ähnlich einer Signatur in einer Programmiersprache M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester
13 Titel Klassendiagramm: Begriffe Methode: Implementierung einer Operation Assoziation: beschreibt eine Menge von Tupeln von getypte Instanzen Link: Ausprägung einer Assoziation Sichtbarkeit: definiert, welche anderen Systemkomponenten den Wert eines Attributs lesen und schreiben bzw. eine Methode ausführen dürfen Assoziationsklasse: vereinigt Eigenschaften einer Klasse und einer Assoziation Multiplizität: Definition eines Intervalls der erlaubten Kardinalitäten eines Elements M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester
14 Klassen Klassenname in Rechteck fett und mittig dargestellt Klassenname Zentrales Element Beschreibt Menge von Objekten mit gemeinsamen Werten Sichtbare Darstellung von Attributen und/oder Operationen Klassenname attribut operation () 14
15 Klassen Die Schachtelung von Klassen ist beliebig möglich Eingebettete Klasse: hat keine Außenbeziehung Party Buffet hier: Gabel nur Beziehung zu Buffet Gabel 15
16 Klassen Anzahl und Inhalt der Rechteckelemente NICHT beschränkt Operationen und Attribute können gruppiert und in eigenen Darstellungselementen untergebracht werden Partygast Partyteilnehmer trinken() zuprosten() verschütten() aufwischen() essen() insoßedippen() kauen() schlucken() name : String geburtsdatum : Date «Datenbank» database : String «Name» getname() : String setname(newname : String) «Geburtsdatum» getgeburtsdatum() : Date setgeburtsdatum(newgebdat : Date) «Persistenzoperationen» exporttoxml(filename : String) importfromxml(filename : String) writetodatabase() readfromdatabase() 16
17 Attribut Notationsmöglichkeiten: implizit Party Das Attribut linksbündig in Rechteckselement Termin explizit Party Termin Das Attribut als eigenständige assoziierte Klasse 17
18 Attribut Das Attribut wird durch einen klassenweit eineindeutigen Namen spezifiziert! Allgemeine Syntax der Attributdeklaration: Klasse Sichtbarkeit / name : Typ [Multiplizität] = Vorgabewert {Eigenschaft=Wert 18
19 Titel Attribut Jedes Attribut kann vorgabegemäß genau einen Wert aufnehmen Unterstützung fehlender Werte (Verwaltung von NULL-Werten) muss durch Multiplizität [0..] gefordert werden Für jedes Attribut wird Speicherplatz in der Klassenausprägung (d.h. im Objekt) vorgesehen. Ausnahmen hiervon sind statische Attribute, deren Wertbelegung in der Klasse selbst abgelegt wird. M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester
20 Attribut Bedeutung der Komponenten: / = abgeleitetes Attribut. Muss nicht gespeichert werden, da es zur Laufzeit aus anderen Daten berechnet werden kann Name = Attributname, frei wählbar aus Zeichensatz Typ = Datentyp des Attributs Multiplizität = legt Unter- und Obergrenze der Anzahl der Ausprägungen fest, die unter einem Attributnamen abgelegt werden können 20
21 Attribut Zugelassene Attributspezifikationen sind: Attributdeklaration public zähler : int /alter private adressen: String [1 *] protected bruder: Person Umlaut erlaubt Anmerkung Datentyp nicht zwingend Menge von Strings Datentyp kann andere Klasse, Schnittstelle oder selbstdefinierter Typ sein 21
22 Attribut Nicht zugelassene Attributspezifikationen sind: Attributdeklaration Fehlerursache String private, public name: String public / int private dateiname: String= temp lock=exclusive Attributname fehlt Mehr als eine Sichtbarkeitsdefinition Attributname fehlt Eigenschaftswert nicht in { public int zähler Name und Typ vertauscht 22
23 Attribut Die UML sieht symbolische Schreibweisen für die Sichtbarkeit von Attributen und Operationen vor: public Jede andere Systemkomponente hat uneingeschränkten Zugriff private Nur Ausprägungen der das Attribut oder die Operation beherbergenden Klasse dürfen zugreifen protected Das Attribut, die Operation, ist nur in der definierenden und denjenigen Klassen sicht- und zugreifbar, die als Spezialisierungen von ihr definiert sind package Das Attribut, die Operation, ist für alle Klassen zugreifbar, die sich im selben Paket finden, wie die definierende Klasse 23
24 Attribut Die UML sieht symbolische Schreibweisen für die Sichtbarkeit von Attributen und Operationen vor: + public - private # protected ~ package Sichtbarkeitseinschränkungen können auch werkzeugspezifisch (d.h. unabhängig vom Standard) durch Symbole dargestellt werden: 24
25 Titel Attribut Umsetzungsbeispiele AttMix M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester 2004 att1 : int att6 : KlasseB [0..1] {composite att7 : String [0..*] {ordered / att8 public: att2 : int pi : double = private: att3 : boolean protected: att4 : short package: att5 : String = "Test" {readonly 25
26 Titel Attribut Umsetzung in C++ AttMix att1 : int att6 : KlasseB [0..1] {composite att7 : String [0..*] {sequence / att8 public: att2 : int pi : double = private: att3 : boolean protected: att4 : short package: att5 : String = "Test" {readonly M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester 2004 class class AttMix { int int att1; att1; KlasseB *att6; vector<string> att7; att7; public: int int att2; att2; static double pi; pi; static const const string att5; att5; private: bool bool att3; att3; protected: short short att4; att4; ; ; const const string AttMix::att5( Test ); double AttMix::pi=3.1415; 26
27 Titel Attribut Umsetzung in Java AttMix att1 : int att6 : KlasseB [0..1] {composite att7 : String [0..*] {sequence / att8 public: att2 : int pi : double = private: att3 : boolean protected: att4 : short package: att5 : String = "Test" {readonly class class AttMix { int int att1; att1; public int int att2; att2; public static double pi=3.1415; private boolean att3; att3; protected short short att4; att4; final final String att5 att5 = "Test"; KlasseB att6; att6; java.util.vector<string> att7; att7; M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester 2004 Object getatt8() { //Berechne Wert Wert für für att8 att8 return wert; wert; 27
28 Titel Attribut Umsetzung in C# AttMix att1 : int att6 : KlasseB [0..1] {composite att7 : String [0..*] {sequence / att8 public: att2 : int pi : double = private: att3 : boolean protected: att4 : short package: att5 : String = "Test" {readonly using using System; System; using using System.Collections.Specialized; System.Collections.Specialized; class class AttMix AttMix { { int int att1; att1; public public int int att2; att2; public public static static double double pi=3.1415; pi=3.1415; private private bool bool att3; att3; protected protected short short att4; att4; internal internal const const string string att5 att5 = = "Test"; "Test"; KlasseB KlasseB att6; att6; System.Collections.Specialized.StringCollection System.Collections.Specialized.StringCollection att7; att7; Object Object att8 att8 { { //Berechne //Berechne Wert Wert für für att8 att8 get{return get{return wert; wert; M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester
29 Operation Operationen einer Klasse werden mindestens durch Namen und wahlfreie weitere Angaben dargestellt: Klasse Abstrakte Attributspezifikation Abstrakte Attributspezifikation: [Sichtbarkeit] Name (Parameterliste) : Rückgabetyp [{Eigenschaftswert] Parameterliste: [Übergaberichtung] Name : Typ [ [ Multiplizität ] ] [= Vorgabewert] [ { Eigenschaftswert ] 29
30 Operation Bedeutung der Komponenten: Sichtbarkeit = Regelt Sicht- und Zugreifbarkeit auf Methoden Name = Klassenweit eindeutige Benennung der Operation Parameter = Aufzählung verarbeiteter Parameter (Hierunter fallen: Übergabe und Rückgabeparameter) 30
31 Operation Übergaberichtung Name Typ Multiplizität Rückgabetyp Eigenschaftswert Parameter wird ausgelesen, schreibend verwendet oder gelesen, verarbeitet und neu geschrieben Operationsweit eindeutig Datentyp des Parameters Wie viele Inhalte umfasst der Parameter Datentyp oder Klasse, der nach Operationsausführung zurück geliefert wird Besondere Charakteristika des Attributs 31
32 Titel Operation Umsetzungsbeispiele M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester
33 Titel Operation Umsetzung in C++ M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester 2004 class class OpMix OpMix { KlasseB KlasseB op4(vector<string> param3) param3) { //Implementierung return return wert; wert; public: public: static static void void op1() op1() { //Implementierung private: private: int int op2(const op2(const int int param1=5) param1=5) const const { //Implementierung return return wert; wert; protected: protected: void void op3(klassec* op3(klassec* param2) param2) { //Implementierung ; ; 33
34 Titel Operation Umsetzung in Java M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester 2004 public public class class OpMix OpMix { public public static static void void op1() op1() { //Implementierung private private int int op2(final op2(final int int param1) param1) { //Implementierung return return wert; wert; protected protected void void op3(klassec op3(klassec param3) param3) { //Implementierung KlasseB KlasseB op4(string op4(string param3[]) param3[]) { //Implementierung return return wert; wert; 34
35 Titel Operation Umsetzung in C# class class OpMix OpMix { public public static static void void op1() op1() { //Implementierung private private int int op21(int op21(int param1) param1) { //Implementierung return return wert; wert; private private int int op22(params op22(params object[] object[] list) list) { //Implementierung return return wert; wert; protected protected void void op3(ref op3(ref ClassC ClassC param3) param3) { //Implementierung internal internal int int op4(out op4(out StringCollection param3) param3) { //Implementierung return return wert; wert; M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester
36 Stereotypen Kennzeichnung von benutzerspezifischer Terminologie oder Notation Klasse innerhalb des Metamodells, die andere Klassen durch Erweiterung näher spezifizieren kann Beispiele für UML-Standard-Stereotypen: auxiliary Klasse implementiert sekundäre Logik oder sekundären Kontrollfluss call besitzt Operationen oder Klassen mit Operationen auf die sich Assoziation bezieht derive Modellelemente werden voneinander abgeleitet und sind vom selben Typ 36
37 Schnittstelle Darstellung durch das Klassensymbol mit Zusatz «interface» Schnittstelle kann weitere Schnittstellen beinhalten spezialisieren generalisieren NICHT möglich: Implementationsbeziehung zwischen zwei Schnittstellen 37
38 Schnittstelle «interface» Schnittstellenname attribut operation() Klasse1 Klasse1 «interface» Schnittstellenname Schnittstellenname Klasse2 Klasse2 «use» «interface» Schnittstellenname Schnittstellenname Klasse1 Klasse2 Schnittstellenname 38
39 Schnittstelle Die Schnittstelle wird nicht instanziiert, sondern durch Classifier realisiert: Zeichnet Classifier mit Operationen öffentlichen Merkmalen Verpflichtungen aus Hierbei ist der Classifier konform zur Schnittstelle Classifier setzt Operationen in Methoden um Eine Schnittstelle kann von mehreren Classifiern umgesetzt werden Ein Classifier kann mehrere Schnittstellen umsetzen 39
40 Titel Schnittstelle Umsetzungsbeispiel «interface» Sortierbar Menge Liste Sortierbar M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester
41 Titel Schnittstelle Umsetzung in C++ «interface» Sortierbar Menge Sortierbar class Liste class SortierteListe { int int sortierreihenfolge; public: virtual void void einfuegen(eintrag e)=0; e)=0; virtual void void loeschen(eintrag e)=0; e)=0; ; ; class class Datenbank : public SortierteListe { public: virtual void void einfuegen(eintrag e) e) { //... //... virtual void void loeschen(eintrag e) e) { //... //... ; ; M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester
42 Titel Schnittstelle Umsetzung in Java «interface» Sortierbar Menge Sortierbar Liste interface SortierteListe { int int sortierreihenfolge=0; public void void einfügen(eintrag e); e); public void void löschen(eintrag e); e); class class Datenbank implements SortierteListe { public void void einfügen(eintrag e) e) { //... //... public void void löschen(eintrag e) e) { //... //... M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester
43 Titel Schnittstelle Umsetzung in C# «interface» Sortierbar Menge Liste Sortierbar M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester 2004 interface SortierteListe { void void einfuegen(eintrag e); e); void void loeschen(eintrag e); e); class class Datenbank : SortierteListe { public void void einfuegen(eintrag e) e) { { public void void loeschen(eintrag e) e) { { 43
44 Parametrisierte Klasse Darstellung durch übliches Klassensymbol mit zusätzlicher Rechtecksbox mit Schablonenparameter der Klasse: Parametrisierte Klasse Parameterverwendung Liste eintrag : T [0..k] T, k : int Parameter Parameterbindung Klasse mit gebundenem Parameter «bind» <T->Gast, k->20> Gästebuch «bind» <T->Adresse, k->100> Telefonbuch 44
45 Parametrisierte Klasse Verwendung: Belegung der Schablonen-Parameter mit konkreten Werten (Schablone (ein Muster, engl. Template) der Funktion, aus der beliebig viele strukturell identische Implementierungen erzeugen werden können.) Vorsehen von Spezifikationslücken zur Auffüllung durch Bindungsprozess Wenn Attribut- oder Operationstyp bis zur Laufzeit offen gehalten werden sollen Allgemeine Fassung parametrisierter Strukturen, um Verwendung für viele verschiedene Inhaltstypen zu gewährleisten 45
46 Titel Parametrisierte Klasse Umsetzung in C++ Liste T, k : int eintrag : T [0..k] «bind» <T->Gast, k->20> Gästebuch «bind» <T->Adresse, k->100> Telefonbuch template <class T, T, int int k> k> class class Liste Liste { T elements[k]; ; ; Liste<Gast,20> Gaestebuch; Liste<Adresse,100> Telefonbuch; M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester
47 Titel Parametrisierte Klasse Umsetzung in Java Liste T, k : int eintrag : T [0..k] «bind» <T->Gast, k->20> Gästebuch «bind» <T->Adresse, k->100> Telefonbuch class class Liste<T> { Vector<T> elements; public Liste(int k) k) { elements = new new Vector<T>(k); Liste<Gast> Gästebuch=new Liste<Gast>(20); Liste<Adresse> Telefonbuch Liste<Adresse>(100); M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester
48 Titel Parametrisierte Klasse Umsetzung in C# Liste T, k : int eintrag : T [0..k] «bind» <T->Gast, k->20> Gästebuch «bind» <T->Adresse, k->100> Telefonbuch class class Liste<T> { T[] T[] eintrag; public Liste(int k) k) { eintrag = new new T[k]; T[k]; Liste<Gast> Gästebuch=new Liste<Gast>(20); Liste<Adresse> Telefonbuch=new Liste<Adresse>(100); M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester
49 Generalisierung Darstellung durch gerichtete Kante mit leerer Spitze am Pfeilende Semantik ist unabhängig von konkreter Implementierungssprache definiert, berücksichtigt jedoch zentrale Gesichtspunkte Vererbung Substitution T S 49
50 Generalisierung Diamantförmige Generalisierung Syntaktisch möglich In verschiedenen Programmersprachen problematisch In einigen Programmiersprachen nicht umsetzbar Person Partyteilnehmer Partyveranstalter Gastgeber 50
51 Generalisierung Kovariante Vererbung Kontravariante Substitution Generalisierung Gast -promillespiegel: double {<2.3 Autofahrer +promillespiegel: float {<0.3 51
52 Titel Generalisierung 1988: Liskovsches Substitutionsprinzip (Liskov Substitution Principle, LSP) [ ] substitution property: If for each object o 1 of type S there is an object of type T such that for all programs P defined in terms of T, the behavior of P is unchanged when o 1 is substituted for o 2 then S is a subtype of T. T M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester 2004 S 52
53 Titel Generalisierung LSP bedeutet verdeutlicht des Zusammenhang zwischen Vererbung und Substitution: Forderung an alle Unterklassen (S) einer Klasse(T) dieselbe Semantik für eine Schnittstelle anzubieten Sicherstellung, dass sich Programm bei Verwendung einer Schnittstelle gleich verhält, egal ob Instanz einer Klasse oder der Unterklasse verwendet wird Besonders wichtig bei Redefinition von Methoden M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester
54 Generalisierung Generalisierungsbeziehung zwischen Classifiern: ist möglich an allen Classifiern nicht auf Klassen beschränkt auch Partition genannt 54
55 Separat genutzte Generalisierung Generalisierung Partyteilnehmer /betrunken : Boolean = false ~intus : Cocktail [1..*] #begeistert : Begeisterung #überdenkebegeisterung() ~trinke(in c : Cocktail) Superklasse +budget : Euro Partyveranstalter +begleicherechnung(betrag : Euro) Generalisierung Sub- und Superklasse Generalisierungsmenge Generalisierungseigenschaften feiere() Gast Teilnehmerstatus {complete, disjoint begrüßt Gemeinsam genutzte Generalisierung Gastgeber hektisch : Boolean = true begrüße(in g : Gast) verabschiede (in g : Gast) treibean(in b : Barmixer) Partition Partyneuling Stammgast +vorstellen(g : Gast) +selbstbedienungamkühlschrank(c : Cocktail) 55
56 Generalisierung Generalisierungseigenschaften: in UML durch vier Schlüsselworte dargestellt complete Vereinigung aller Partitionen enthält alle sinnvollen Spezialisierungen eines Typs incomplete notierte Subtypen beinhalten nicht alle sinnvollen Spezialisierungen eines Supertypen disjoint Subtypen können nicht die selbe Instanz enthalten overlapping Subtypen können selbe Instanz enthalten 56
57 Generalisierung Nutzen der Generalisierung: Codeabstraktion Wiederverwendung Hierarchische Strukturierung des Entwurfs Einsatz bei Implementierungsvererbung und Substituierbarkeit Vermeidung von Coderedundanz 57
58 Assoziation Assoziation = Menge semantisch gleichartiger Beziehungen zwischen Classifiern Assoziationsname Assoziation 1 Einschränkung binäre Assoziation Assoziation 1 {... Klasse 1 nicht navigierbares Assoziationsende Navigationsrichtung Klasse 2 Komposition unspezifizierte Navigationsrichtung Rolle 1..* Aggregation Rolle {Eigenschaft 1..* Klasse 3 Rolle 1..* Assoziation 2 Eigenschaft n-äre Assoziation (ternäre Assoziation) Multiplizität 58
59 Assoziation Ausprägung einer Assoziation ist eine Beziehungsinstanz (Link) Verschiedene Ausprägungen: Binäre / zweiwertige Assoziation: hat zwei Enden n-äre / höherwertige Assoziation: mehr als zwei Enden Zirkulär-reflexive Assoziation: kehrt Ausgangsclassifier zurück Abgeleitete Assoziation: gekennzeichnet durch / und kann aus anderen Zusammenhängen abgeleitet werden 59
60 Assoziation Qualifizierte Assoziation: Herabsetzen der Multiplizität Aufteilung der Assoziationsmenge Vollständig Überlappungsfrei Jedes referenzierte Objekt ist nur genau einer Partition zugeordnet Kein Objekt wird bei Zuordnung übergangen ABER: Kann nur für binäre Assoziationen verwendet werden Sollte als navigierbar spezifiziert sein 60
61 Titel Assoziation Person Name Lieblingscocktail 1 Gast Getränkekonsum 1..* Cocktail Alkoholgehalt Diätgeeignet modifiziert Person Name Lieblingscocktail 1 Gast Getränkekonsum übernommen 1 Name Cocktail Alkoholgehalt Diätgeeignet Die beiden Diagramme sind nicht äquivalent M. Jeckle: Titel. Fachhochschule Furtwangen, Sommersemester
62 Assoziationsklasse Stellt Abhängigkeitsbeziehung dar Klasse1 1..* Assoziationsname 1..* Klasse2 Assoziationsname attribut: Typ operation() 62
63 Kommentar Kommentar annotiert eine Klasse und wird mit Eselsohr gekennzeichnet: Klasse1 «Abhängigkeitsname» Klasse2 Klasse3 Klasse5 Klasse4 Klasse6 Kommentar zur Abhängigkeitsbeziehung 63
64 Eigenschaftswerte Spezifizieren Charakteristika der Elemente Werden durch { gekennzeichnet und durch Kommata getrennt abstract Classifier ist nicht instanziierbar derived Ein Element ist von einem anderen abgeleitet ordered Eine Menge von Elementen ist geordnet 64
Klassendiagramm. (class diagram)
: Klassendiagramm http:///topic95.html Klassendiagramm (class diagram) Klassendiagramm Objektdiagramm Komponentendiagramm Kompositionsstrukturdiagramm Verteilungsdiagramm Einstieg Paketdiagramm Aufbau
MehrVorlesung "Software-Engineering"
Vorlesung "Software-Engineering" Rainer Marrone, TUHH, Arbeitsbereich STS Vorige Vorlesung Pflichtenheft (requirements specification document) Charakterisierung von Software-Qualität Detaillierte Anforderungsanalyse
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,
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
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,
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
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
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)
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:
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
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
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 ++) {
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
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
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
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
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
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
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:
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
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
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
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
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/
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
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
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........................
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
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
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
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
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
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
MehrObjektorientierte Konzepte und Notation in UML. Objekt Klasse Attribut Operation
Objektorientierte Konzepte und Notation in UML Objekt Klasse Attribut Operation Objekt Wodurch zeichnet sich ein Objekt aus? - Zustand - Verhalten - Identität Objektdiagramm - Notationsregeln :Kuh Elsa:Kuh
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
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
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
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,
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
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
MehrGrundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN
Grundzüge der Programmierung Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN Inhalt dieser Einheit JAVA ist objektorientiert! Grundbegriffe der objektorientierten Programmierung:
MehrJavadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck
Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
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/
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
MehrComputeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag
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
MehrTypumwandlungen bei Referenztypen
Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei
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)
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
MehrDatenbankmodelle 1. Das Entity-Relationship-Modell
Datenbankmodelle 1 Das Entity-Relationship-Modell Datenbankmodelle ER-Modell hierarchisches Modell Netzwerkmodell relationales Modell objektorientierte Modelle ER Modell - 2 Was kann modelliert werden?
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
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
Mehr5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:
MehrHTML5. Wie funktioniert HTML5? Tags: Attribute:
HTML5 HTML bedeutet Hypertext Markup Language und liegt aktuell in der fünften Fassung, also HTML5 vor. HTML5 ist eine Auszeichnungssprache mit der Webseiten geschrieben werden. In HTML5 wird festgelegt,
MehrTechniken der Projektentwicklung
diagramme Termin 6 Denken in Schnittstellen Was nun? Einführung Bisher kennengelernt: Modellierung auf Konzeptlevel Usecase-Diagramme Domänenmodelle Jetzt: Übergang zu Spezifikation und Implementierung!
MehrKapitel 3: Hörsaalbeispiel Klassendiagramm (Analysesicht)
Kapitel 3: Hörsaalbeispiel Klassendiagramm (Analysesicht) Anforderungen In einer Hochschulverwaltung sind mehrere Personengruppen tätig. Die Hochschule hat Angestellte, die Professoren, Labor-Ingenieure,
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
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
MehrDer Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.
Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.
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
Mehr1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen
1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.3 Datenabstraktion - 1 - public class Rechteck { Selektoren
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
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
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
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
Mehr5. Abstrakte Klassen
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,
MehrDas Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala
Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:
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
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
MehrSWT MN Vorlesung 19.04.2006 2. Übungsblatt Hausaufgaben und Hörsaalübungen zum Themenbereich UML-Modellierung mit Rollen und OOA-Muster
SWT MN Vorlesung 19.04.2006 2. Übungsblatt Hausaufgaben und Hörsaalübungen zum Themenbereich UML-Modellierung mit Rollen und OOA-Muster Aufgabe 1 analytische Aufgabe Die Eigenschaften und Einsatzbereiche
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
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
MehrOO Softwareentwicklung
OO Softwareentwicklung Objektorientierung Prof. Dr. Bernhard Schiefer 1 OO als Ansatz zur Verbesserung der Software-Qualität Modellierung der Welt als selbständig agierende Objekte. Gemeinsame Beschreibung
MehrKlausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007
MehrEine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.
Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,
MehrPRÜFUNG. Grundlagen der Softwaretechnik
Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner PRÜFUNG Grundlagen der Softwaretechnik Name: Matrikelnummer: Note: Prüfungstag: 21.09.2012 Prüfungsdauer:
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
MehrAlgorithmen und Datenstrukturen 07
5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7
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
Mehr1.4 Attribute die objektorientierten Datenfelder
1.4 Attribute 21 1.4 Attribute die objektorientierten Datenfelder Die Attribute beschreiben die Daten, die von den Objekten einer Klasse angenommen werden können. Jedes Attribut ist von einem bestimmten
MehrGI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen. Teil 1: Einführung: Wissensbasis und Ontologie.
GI-Technologien zur Umsetzung der EU-Wasserrahmenrichtlinie (WRRL): Wissensbasen Teil 1: Einführung: Wissensbasis und Ontologie Was ist eine Wissensbasis? Unterschied zur Datenbank: Datenbank: strukturiert
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
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und
MehrInnere Klassen in Java
Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird
MehrPrüfungszeuch im Fach Objektorientierte Programmierung WS 2000
Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,
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.
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,
MehrSEQUENZDIAGRAMM. Christoph Süsens
SEQUENZDIAGRAMM Christoph Süsens DEFINITION Das Sequenzdiagramm gibt Auskunft darüber: Welche Methoden für die Kommunikation zwischen ausgewählten Objekten zuständig sind. Wie der zeitliche Ablauf von
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
MehrProgrammiersprachen und Übersetzer
Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch
MehrSoftwareentwicklungspraktikum Sommersemester 2007. Grobentwurf
Softwareentwicklungspraktikum Sommersemester 2007 Grobentwurf Auftraggeber Technische Universität Braunschweig
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
MehrFachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6
Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in
Mehr1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
MehrProgrammieren Tutorium
Programmieren Tutorium Tom Schildhauer Tutorium 12 Universität Karlsruhe (TH) Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by Tom Schildhauer,
MehrKapitel 12 Dokumentation und Zugriffsrechte
Kapitel 12 Dokumentation und Zugriffsrechte Seite 1 / 6 Kapitel 12 Dokumentation und Zugriffsrechte Lernziele: Dokumentation mit Hilfe von Javadoc Datenkapselung über Zugriffsrechte 12.1 Dokumentation
MehrDatenbankmodelle 1. Das Entity-Relationship-Modell. Prof. Dr. Bernhard Schiefer 2-1
Datenbankmodelle 1 Das Entity-Relationship-Modell Prof. Dr. Bernhard Schiefer 2-1 Datenbankmodelle ER-Modell hierarchisches Modell Netzwerkmodell relationales Modell objektorientierte Modelle Prof. Dr.
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
Mehr