Weiter zum Dokument
Dies ist ein Premium-Dokument.. Einige Dokumente auf Studocu sind Premium-Dokumente. Upgrade dein Konto auf Premium, um Zugriff zu erhalten.

Übungsblätter 1-13, 2014, Aufgaben und Lösungen.pdf

Übungsblätter 1-13, 2014, Aufgaben und Lösungen
Kurs

Softwaretechnik (040135)

35 Dokumente
Studierenden haben 35 Dokumente in diesem Kurs geteilt
Akademisches Jahr: 2014/2015
Hochgeladen von:
Anonymer Student
Dieses Dokument wurde von einer bzw. einem Studierenden hochgeladen, die/der wie du beschlossen hat, anonym zu bleiben.
FernUniversität in Hagen

Kommentare

Bitte logge dich ein oder registriere dich, um Kommentare zu posten.

Text Vorschau

dortmund

Informatik

Modul Softwareentwicklung Übung Softwaretechnik Sommersemester 2014

Übungsblatt 1 – Lösungen

Ausgabe: 16.4, Bearbeitung in den Übungen: 22.4.-28.

Fragen:

  • Welche Bedeutung besitzt die Pfeilspitze einer Assoziation? Die Pfeilspitze gibt an, dass ein Objekt dieser Klasse über die Beziehung erreichbar sein muss.

  • Warum darf eine Assoziation an ihren Enden unterschiedliche Angaben zur Multiplizität besitzen? Die Multiplizität gibt an, wie viele Objekte der Klasse ein Objekt am anderen Ende der Assoziation kennen darf bzw. muss.

  • Wie viele Objekte einer Assoziationsklasse muss es mindestens geben? Ein Objekt der Assoziationsklasse gibt es für jede Verbindung zwischen Objekten der beiden durch die Assoziation verbundenen Klassen. Die Zahl der möglichen Verbindungen wird durch die an den Enden der Assoziation angegebenen Multiplizitäten vorgegeben auf mindestens das Produkt der beiden minimalen Werte.

Aufgabe 1

Klassendiagramm

Gegeben ist eine JAVA-Klasse mit den folgenden Attributen.

public class Kunde { private String name; private String[] vornamen; private Anschrift Rechnungsadresse; private Anschrift Lieferadresse; private String email; private int kundennummer; private java.util<Artikel> wunschzettel; private java.util<Artikel> bestellung; }

Zeichnen Sie ein Klassendiagramm, das die durch den Programmtext beschriebenen Zusammenhänge – soweit möglich durch graphische Elemente – modelliert. Auch die Klassen der Java-Bibliothek sollen durch Symbole dargestellt werden.

Aufgabe 2

Klassendiagramm

Modellieren Sie die folgende Situation als Klassendiagramm:

Fußballmannschaften einer Liga bestreiten während einer Meisterschaftsrunde Spiele gegen andere Mannschaften. Dabei werden in jeder Mannschaft Spieler für einen bestimmten Zeitraum (in Minuten) eingesetzt, die dabei eventuell Tore schießen.

Die Modellierung soll es ermöglichen, festzustellen, welcher Spieler in welchem Spiel wie lange auf dem Feld war und wie viele Tore geschossen hat. Ebenso soll es möglich sein, für jede Mannschaft festzustellen, gegen welche Mannschaft welche Ergebnisse erzielt wurden.

Artikelliste

«interface»

Kunde -Kundennummer: int

String

Anschrift

List

«interface»

Artikel

T «bind»<T->Artikel>

Liefer- Rechnungs-adresse adresse

Name

1

Vorname* Email 1 Wunschzettel Bestellung

1

1

dortmund

Informatik

Modul Softwareentwicklung Übung Softwaretechnik Sommersemester 2014

Aufgabe 3

Objektdiagramme

Gegeben sind die folgenden beiden Klassendiagramme. Geben Sie für jedes Klassendiagramm ein Objektdiagramm an, das genau fünf Objekte enthält, von denen mindestens eines zur Klasse X gehört.

Liga

Mannschaft

Spieler

Spiel

Saison -Spieljahr

-Minuten: int -Tore: int

nimmt teil

  • 1

2

a) A X b)

B C

1 *

1 1

  • 2 0..

1

A X

B C

  • 1 1

2 1 1

: X : A

: B

: C : B

zwei Lösungen sind für a) möglich:

: B

: X : A

: X : A

die Lösung zu b) ist eindeutig:

: X

: C : B

: C : B

dortmund

Informatik

Modul Softwareentwicklung Übung Softwaretechnik Sommersemester 2014

  • Oben wird eine konzeptionelle Modellierung ezeigt. Die in DAP 1 vorgestellte Implementierung der doppelt verketteten Liste besitzt die folgende UML-Modellierung, da ja eine Liste genau »*« umsetzt:

  • Spezialisierung von Assoziationen (Folie 103) Spezialisierung einer Assoziation bedeutet, dass die für eine Verbindung erlaubten Objekte für Unterklassen eingeschränkt werden. Da in Java die oberklassengetypten Referenzen vererbt werden, muss dafür gesorgt werden, dass alle Manipulationen solcher Referenzen über (set-)Methoden kontrolliert werden. Diese müssen dann konsequent genutzt und in den Unterklassen überschrieben werden. Das Überschreiben erfolgt aber nur bei gleichen Signaturen, so dass in der Unterklassen-Implementierung die notwenige Typkontrolle nicht auf den Compiler verlagert werden kann sondern zur Laufzeit erfolgen muss.

  • mehrfache Spezialisierung (eine Klasse besitzt mehrere Oberklassen)

»Mehrfaches Erben« kann zwei Zielsetzungen haben: das Vereinen von den in A, B und C vorhandenen Methodenimplementierungen oder das Schaffen einer entsprechenden Typkompatibilität. Da Java nur genau eine Oberklasse erlaubt, muss eine Hierarchie geschaffen werden, die mit einfachem Erben auskommt.

  • Sollen Implementierungen wiederverwendet werden, so gibt es zwei Möglichkeiten: A, B, C und U bilden eine lineare, einfache Vererbungshierarchie, die dann natürlich zusätzliche, durch das Modell nicht geforderte Typkompatibilitäten schafft. Eine zweite Lösung wäre der Verzicht auf jegliches Erben. Stattdessen werden Objekte von A, B und C in U genutzt und Teilaufgaben dorthin delegiert. Dann besteht natürlich gar keine Typkompatibilität mehr.
  • Soll im Wesentlichen eine Typhierarchie geschaffen werden, so können A, B und C als Interfaces realisiert werden. Dann kann aber gar keine Wiederverwendung erfolgen.
  • Sind in gleichem Maße Wiederverwendung und Typkompatibilität wichtig, so bleibt entweder die lineare, einfache Hierarchie oder eine Konstruktion der folgenden Art, die über Delegation wiederverwendet.

Aufgabe 2

Klassendiagramme

Modellieren Sie die folgenden Situationen als Klassendiagramm:

  • Eine Bank hat viele Kunden. Jeder Kunde besitzt einen Namen und kann über mehrere Konten verfügen. Zu jedem Konto gehören eine Kontonummer, der Kontostand und die vielen, mit dem Konto verbundenen Einzahlungen und Auszahlungen. Ein- und Auszahlungen bestehen jeweils aus einem Betrag und einem Datum.

DoublyLinkedList Element

0.. first

0..

0.. last

  1. 0.. 0..

0..

0..

B C

U

A

B C

U

A

«interface»

CC

CB

CA

«interface» «interface»

dortmund

Informatik

Modul Softwareentwicklung Übung Softwaretechnik Sommersemester 2014

  • Ein zweisprachiges Wörterbuch besteht aus vielen Wörtern. Zu jedem dieser Wörter gibt es genau eine Beschreibung, die Bilder enthalten kann, eventuell mehrere grammatikalische Erklärungen und mehrere Übersetzungen. Eine Übersetzung ist ebenfalls ein Wort, das auch eine Beschreibung, aber keinen grammatikalischen Hinweis besitzt.

Die Vererbungsbeziehung setzt den Textteil »Übersetzung ist ebenfalls ein Wort« um.

Aufgabe 3

Objektdiagramme

Gegeben sind die folgenden beiden Klassendiagramme. Geben Sie für jedes Klassendiagramm ein Objektdiagramm an, das genau fünf Objekte enthält, von denen mindestens eines zur Klasse X gehört.

(Die Lösungen müssten für 5 Objekte, von denen eines X ist, eindeutig sein.)

Bank Kunde

  • Konto

Name Nummer Stand

  • Transaktion Stand
  • Datum

Auszahlung

Einzahlung

Wörterbuch

*

Beschreibung

Wort Grammatik

1 Übersetzung

*

Bild

a) b) X A

M K

X O 1

K U

1 * 1

3 * 1

1

1 1

2 «abstract»

a) b)

: X

: K

: M

: K : X

: K

: U

: K

: K

: M

dortmund

Informatik

Modul Softwareentwicklung Übung Softwaretechnik Sommersemester 2014

Aufgabe 2

Geben Sie ein Aktivitätsdiagramm, dass die Kontrollstrukturen des folgenden Java-Programms visualisiert: int s = 0, c = 10; for ( int i = 0; i<100; i++ ) { s = s + calculate( c ); while ( test(s) ) { s = expand( s, i ); if ( s > i ) { c--; } } }

int s = 0, c = 10;

[i<100] s = s + calculate( c );

[else]

unknown

int i = 0;

[else] [t] s = expand( s, i );

[s > i]

[else]

c--;

i++;

boolean t = test(s);

dortmund

Informatik

Modul Softwareentwicklung Übung Softwaretechnik

Übungsblatt 4 – Lösungen Sommersemester 2014

Ausgabe: 7.5, Bearbeitung in den Übungen: 12.5.-16.

Zustandsdiagramm

Gegeben ist das folgende Zustandsdiagramm:

Fragen:

Welche Ausgaben erzeugen die folgenden Eingangssignale für das oben stehende Diagramm? - M N A B A E A - M M A B F A A - M L M A B A F C E A A - M L N M A B A F E A B Ist es möglich, von einem der Zustände S-4, S-5 oder S-6 eine Transition zum Zustand Y anzulegen, bei deren Nutzung A nicht ausgegeben wird? nein, das exit/ A kann nicht umgangen werden.

Aufgabe 1

Ergänzen Sie in dem oben stehenden Diagramm Transitionen und/oder Zustände, um das geforderte Verhalten zu erzeugen.

a) Aus dem Zustand S-1 soll bei Eingabe von P in den Zustand Y gewechselt werden. Aus dem Zustand Y soll bei erneuter Eingabe von P in den S-2 wechseln. Lösung b) Aus jedem der Zustände aus C-1 soll bei Eingabe von Q in den Zustand X gewechselt werden. Nur aus dem Zustand X soll bei erneuter Eingabe von Q wieder in genau den (atomaren) Zustand gewechselt werden, von dem aus X erreicht wurde. Lösung c) Bei Eingabe von R soll von jedem Zustand innerhalb von C-1 in den Zustand Z gewechselt werden. Wurde der Zustand Z von S-2 aus erreicht, soll vom Zustand Z bei erneuter Eingabe von R wieder in S-2 zurückgekehrt werden. In allen anderen Fällen soll vom Zustand Z bei Eingabe von R in den Zustand S-1 gewechselt werden. Lösung

P
P
Q
Q
H*

aus-S-

sonst

R
R
R
R
R

dortmund

Informatik

Modul Softwareentwicklung Übung Softwaretechnik

Übungsblatt 5 – Lösungen Sommersemester 2014

Ausgabe: 14.5, Bearbeitung in den Übungen: 19.5.-23.

Aufgabe 1

Zustandsdiagramm

Welche Ausgaben erzeugen die folgenden Eingangssignale für das oben stehende Diagramm? - A A B E D X Y F K L (E führt zu Verlassen von S0) - A B A B A X F Y G Z K (erreicht beide Endzustände in S0 und wechselt daher zu E1) - A B C C A B X F Z Y G (Wirkung von H*) - E C C A D K Z K L (Wirkung von H*, A hat keine Wirkung)

Aufgabe 2

Zustandsdiagramm

Modellieren Sie ein Zustandsdiagramm, das das Verhalten eines Anrufbeantworters beschreibt. Der Anrufbeantworter soll folgende Funktionalität anbieten:

  • Nach dem Abwarten von 3 Klingelsignalen erfolgt die Begrüßungsansage.
  • Nach der Ansage kann der Anrufer bis zu 2 Minuten lang eine Nachricht aufnehmen lassen.
  • Nach diesen 2 Minuten erfolgt eine Abschlussansage, anschließend wartet der Anrufbeantworter auf weitere Anrufe.
  • Der Ablauf kann immer durch Auflegen des Anrufers oder Abheben des Angerufenen abgebrochen werden.

Lösung:

dortmund

Informatik

Modul Softwareentwicklung Übung Softwaretechnik Sommersemester 2014

Aufgabe 3

Sequenzdiagramm

Nehmen Sie an, dass die in der folgenden Methode delete benutzten Klassen und Methoden ihren Definitionen entsprechend verwendet und aufgerufen werden. Erstellen Sie ein Sequenzdiagramm, das den Ablauf eines Aufrufs der Methode delete zeigt.

public Item delete(ItemList list, int x) { Item it = null; if ( x < list() ) { it = list(x); list(it()); } else { it = new Item(); } return it; }

Lösung:

X list : ItemList

delete

«create» : Item

size

it : Item

get

it getId

remove

s

alt [x<s]

[else]

dortmund

Informatik

Modul Softwareentwicklung Übung Softwaretechnik Sommersemester 2014

Aufgabe 3

Sequenzdiagramm

Zeichnen Sie ein Sequenzdiagramm, das alle aus einem Aufruf der statischen Methode main der Klasse P resultierenden Konstruktor- und Methodenaufrufe zeigt. Die Abläufe in den Methoden f() und g() sind ohne Bedeutung.

class K1 { class K2 { public int f() { ... } public int g() { ... } }}

class K3 { public int m( K1 p1, K2 p2 ) { return p1() + p2(); } public K2 n() { return new K2(); } }

public class P { public static void main() { K3 ref1 = new K3(); ref1( new K1(), new K2()); K2 ref2 = ref1(); System.out( ref2() ); } }

Pfandautomat

Kunde

Flasche abgeben

Bon anfordern

Gegenstand entfernen

Behälter wechseln Personal

Zurücksetzen

«include»

«include»

dortmund

Informatik

Modul Softwareentwicklung Übung Softwaretechnik Sommersemester 2014

Aufgabe 4

Zustandsdiagramm

richtig falsch

  1. Ohne Eingabe wird keine Ausgabe erzeugt! 

  2. S-2 wird nie erreicht, da die einzige hinführende Kante keinen Trigger besitzt! 

  3. S-6 muss immer erreicht werden, bevor C-1 verlassen werden kann! 

  4. Die Eingabe XY erzeugt die Ausgabe BCDEAB! 

  5. Die Eingabe X erzeugt die Ausgabe ABCDEA! 

: P

ref1 : K

x1 : K

x2 : K m( x1,x2 )

main() «create»

«create»

«create»

n() ref2 : K

«create»

g()

System

println(e)

e

f()

g()

Kreuzen Sie an, welche Aussagen für das gegebene Zustandsdiagramm gelten:

X

X

X

X

X

dortmund

Informatik

Modul Softwareentwicklung Übung Softwaretechnik Sommersemester 2014

den Grenzwerten des double-Intervalls >0, also sehr kleinem double-Wert und maximalem double- Wert: mindestens 27 Testfälle, Ergebnis muss false sein. Das ist sozusagen der Grenzwert, für den „gerade noch“ false erzeugt werden muss.

  • jeweils die Summe von zwei Parameter größer als der dritte Parameter, auch mit den Grenzwerten des double-Intervalls >0, also sehr kleinem double-Wert und maximalem double-Wert: mindestens 27 Testfälle , Ergebnis muss true sein. Idee hinter den nächsten beiden Testfällen: die Lösung muss die den Parametern übergebenen Werte zueinander in Beziehung setzen. Es macht daher (vielleicht) Sinn, Werte, die in einem besonderen Beziehungsverhältnis zueinander stehen, zusätzlich zu testen.
  • alle Parameter >0, jeweils zwei gleiche Parameterwerte: 3 Testfälle (– hier sind die Extremwerte schon in den anderen Tests abgedeckt worden – ), Ergebnis muss true sein (gleichschenkliges Dreieck).
  • alle Parameter >0, alle Parameterwerte gleich: 1 Testfall ( – hier sind die Extremwerte schon in den anderen Tests abgedeckt worden –), Ergebnis muss true sein (gleichseitiges Dreieck). Bei der Verwendung von double-Parametern muss bei Kantenlängen mit sehr unterschiedlichen mit Rundungsfehlern gerechnet werden, die das Ergebnis verfälschen können. Die durch die Aufgabenstellung gegebene Spezifikation der Methode ist aber zu unpräzise, um entsprechend eTestfälle ableiten zu können.

b) Die Methode contains besitzt ein Feld arr von int-Werten und einen einzelnen int-Wert x als Parameter. Der Aufruf der Methode contains soll true zurückgeben, falls der Wert von x in arr enthalten ist. Sonst soll false zurückgegeben werden. Die Methode hat die folgende JAVA-Signatur: boolean contains ( int[] arr, int x ) Planen Sie für die Methode contains einen funktionsorientierten Test. Bestimmen Sie geeignete Äquivalenzklassen, um die Methode contains zu testen. Hinweis: Beachten Sie, dass ein Feld als implizite Eigenschaft auch eine Länge besitzt. Erläutern Sie informal, welche Kriterien die Auswahl der Äquivalenzklassen bestimmen. Charakterisieren Sie die Wertemengen der Äquivalenzklassen informal. Vorbemerkungen: - Zunächst müssen Felder verschiedener Länge betrachtet werden, die eine Dimension der zu bildenden Äquivalenzklassen bestimmen: - nicht vorhandenes Feld (arr == null) - leeres Feld (ohne ein Element) - Feld mit Elementen: - das Feld mit einem Element, das nicht durchsucht oder sortiert werden muss, - Felder mit mehreren Elementen (2 <= Anzahl <= maximal mögliche Länge), so dass hier drei Längen (2 als Grenzwert, ein beliebiger Repräsentant aus dem Intervall und das Feld mit maximaler Länge die Äquivalenzklassen bestimmen) - Die zweite Dimension bilden die Inhalte der Felder, die durch den Typ int gegeben sind und vom minimalen bis zum maximalen int-Wert reichen, wobei der minimale und der maximale Wert als Grenzwerte in den Testfällen vorkommen sollten. Insbesondere ist die Position von x relevant, wenn dieser Wert vorkommt. - Die dritte Dimension bildet der als Parameter x übergebene Wert. Auch hier müssen die Extremwerte getestet werden. Für einen vollständigen Test müssen jetzt die Werte der Äquivalenzklassen aus allen drei Dimensionen miteinander kombiniert werden, wobei nicht alle Kombinationen möglich sind. Beispielsweise können in einem Feld der Länge 0 keine Werte vorkommen. Für Testfälle mit Feldern der maximalen Länge können gleiche Feldinhalte (!=x) generiert und x dann gezielt zuweist. Man kommt auf folgende Testfälle: - nicht vorhandenes Feld: 1 Testfall

dortmund

Informatik

Modul Softwareentwicklung Übung Softwaretechnik Sommersemester 2014

  • leeres Feld: 1 Testfall
  • einelementiges Feld: 6 Testfälle (minimaler und maximaler int-Wert, beliebiger Wert), x ist gleich dem Wert oder nicht
  • zweielementiges Feld: 10 Testfälle (minimaler und maximaler int-Wert, beliebiger Wert), x ist enthalten am einen oder am anderen Index oder nicht)
  • vielelementiges Feld: 10 Testfälle wie beim zweielementigen Feld für ersten und letzten Index, zusätzlich noch: minimaler und maximaler int-Wert, beliebiger Wert mit x ist enthalten oder nicht als Werte dazwischen, also 4 weitere Testfälle: 14
  • insgesamt ergeben sich also mindestens 31 Testfälle, die pragmatisch überprüfbar sind

Aufgabe 2

zustandsbasierter funktionsorientierter Test

Das Konzept eines binären Suchbaums ist bekannt:

Die Knoten eines binären Suchbaums enthalten miteinander vergleichbare Werte und alle Werte im linken Unterbaum sind kleiner als der Wert der Wurzel und alle Werte im rechten Unterbaum sind größer als der Wert der Wurzel sind. Für jeden Teilbaum gilt zudem, dass er wieder ein binärer Suchbaum ist.

a) Die Methode Object minimum() ist dadurch spezifiziert, dass sie den kleinsten im zugehörigen binären Suchbaum abgelegten Wert als Ergebnis liefert. Bereiten Sie für die Methode minimum einen zustandsbasierten funktionsorientierten Test vor. Bestimmen Sie geeignete Äquivalenzklassen und charakterisieren Sie diese. Da die Methode keine Parameter besitzt, bestimmt der Zustand des untersuchten Baums die Testfälle. Äquivalenzklassen für die Methode minimum: (Es kann nicht von einer rekursiven Implementierung ausgegangen werden, so dass nicht bekannt ist, ob sich sich die Tests bestimmter Sonderformen durch die Rekursion gegenseitig bedingen.) - leerer Baum (kein Ergebnis, in Aufgabe unspezifiziert) - Grenzwert: Baum mit einem Knoten (=Wurzel) (Minimum steht in Wurzel) - Normalfall: beliebiger Baum mit linkem und rechtem Teilbaum - Extremwert: ein Baum mit der maximal möglicher Zahl von Knoten (lässt sich kaum konstruieren!) zusätzlich scheint es aber sinnvoll zu sein, aus dem Kriterium «Struktur des Baums» weitere Äquivalenzklassen abzuleiten: - Baum nur mit rechtem Teilbaum zur Wurzel (Minimum steht dann in der Wurzel) - Baum mit linkem Teilbaum zur Wurzel und Knoten mit Minimum ist Blatt - Baum mit linkem Teilbaum zur Wurzel und Knoten mit Minimum hat rechten Teilbaum - Extremwert: linksseitig zur Liste degenerierter Baum mit der maximal möglicher Zahl von Knoten (lässt sich kaum konstruieren!) Die Aufgabe sollte im Wesentlichen zeigen, dass das Bestimmen von Äquivalenzklassen bei solchen Datenstrukturen kompliziert werden kann. Zudem sollte deutlich werden, dass entsprechende Testbäume vor dem Test der Methode mit den Methoden zum Aufbau von Bäumen explizit hergestellt werden müssen.

b) Die Methode void add( Object o ) ist dadurch spezifiziert, dass sie das Objekt o so in den zugehörigen binären Suchbaum einfügt, dass die Eigenschaften des binären Suchbaums erhalten bleiben. Falls o schon vor- handen ist, soll nicht eingefügt werden. Bereiten Sie für die Methode add einen zustandsbasierten funktionsorientierten Test vor. Bestimmen Sie geeignete Äquivalenzklassen und charakterisieren Sie diese.

dortmund

technische universität Fakultät für

Informatik

Modul Softwaretechnik Sommersemester 2013

2.6 – Seite 1/

Punkte:

Aufgabe 1 – Aktivitätsdiagramm

Nehmen Sie in dem folgenden Aktivitätsdiagramm Veränderungen vor, so dass das unten beschriebene Verhalten
ergänzt wird:
a) (1 Punkte) Wenn unmittelbar vor der Ausführung der Aktion B die Bedingung [z>0] gilt, soll mit der
Aktion G fortgefahren werden. Gilt die Bedingung [z>0] nicht, soll sich der vorgegebene Ablauf nicht
ändern.
b) (1 Punkte) Die Aktion E soll erst dann beginnen, wenn die Aktionen D und F beendet sind.
c) (2 Punkte) Wenn unmittelbar nach der Ausführung der Aktion D die Bedingung [z>0] gilt, sollen die
Aktionen C, E und F unterbrochen werden und es soll direkt mit der Aktion A fortgefahren werden. Gilt die
Bedingung [z>0] nicht, soll sich der vorgegebene Ablauf nicht ändern.
A B
C D
F
G

[y>10]

[x>10] [else]

[else]

E

[else]

[z>0]

[else]

[z>0]

/

dortmund

technische universität Fakultät für

Informatik

Modul Softwaretechnik Sommersemester 2013

2.6 – Seite 2/

Punkte:

Aufgabe 2 – Klassendiagramm

(5 Punkte) Erweitern Sie das folgende Klassendiagramm derart, dass es die nachfolgende Beschreibung modelliert.
Verwenden Sie die bereits vorgegebenen Elemente, wo dieses möglich ist, oder ergänzen Sie weitere Elemente.
a) Jedes D-Objekt kennt genau ein W-Objekt, ein W-Objekt kann beliebig viele D-Objekte kennen.
b) Jedes W-Objekt besitzt ein Attribut ww.
c) Die Klasse X spezialisiert die Klasse E.
d) Jedes A-Objekt kennt zwei zum Interface B kompatible Objekte.
e) Jedes F kann beliebig viele Y kennen, die alle ein Attribut name besitzen.
f) Beliebig viele verschiedene F-Objekte können das gleiche Y-Objekt kennen.
g) Falls ein F-Objekt ein Y-Objekt kennt, existieren zwei spezielle Werte w1 und w2, die genau für die Be-
ziehung zwischen diesen beiden Objekten spezifisch sind.
h) Ein V-Objekt kennt mindestens 2 und höchstens 4 C-Objekte.
i) Jedes C-Objekt kann zwischen 1 und beliebig vielen V-Objekten kennen.
j) Jedes C-Objekt, das ein V-Objekt kennt, ordnet diesem den Wert cv zu.
A
C D
B
1..*
E F

«interface»

1..*
1..*
V W X Y
1

*

ww

2

*

*

name

w w

1..*

2..

cv

/

War dieses Dokument hilfreich?
Dies ist ein Premium-Dokument.. Einige Dokumente auf Studocu sind Premium-Dokumente. Upgrade dein Konto auf Premium, um Zugriff zu erhalten.

Übungsblätter 1-13, 2014, Aufgaben und Lösungen.pdf

Kurs: Softwaretechnik (040135)

35 Dokumente
Studierenden haben 35 Dokumente in diesem Kurs geteilt
War dieses Dokument hilfreich?

Dies ist eine Vorschau

Möchtest du uneingeschränkten Zugang? Wähle Premium und erhalte Zugriff auf alle 36 Seiten
  • Zugriff auf alle Dokumente

  • Erhalte unbegrenzte Downloads

  • Verbessere deine Noten

Hochladen

Teile deine Dokumente und erhalte Zugriff

Bereits Premium-Mitglied?
dortmund
technische universität Fakultät für
Informatik
Modul Softwareentwicklung
Übung Softwaretechnik
Sommersemester 2014
Übungsblatt 1 – Lösungen
Ausgabe: 16.4.2014, Bearbeitung in den Übungen: 22.4.-28.4.2014
Fragen:
– Welche Bedeutung besitzt die Pfeilspitze einer Assoziation?
Die Pfeilspitze gibt an, dass ein Objekt dieser Klasse über die Beziehung erreichbar sein muss.
– Warum darf eine Assoziation an ihren Enden unterschiedliche Angaben zur Multiplizität besitzen?
Die Multiplizität gibt an, wie viele Objekte der Klasse ein Objekt am anderen Ende der Assoziation kennen darf bzw.
muss.
– Wie viele Objekte einer Assoziationsklasse muss es mindestens geben?
Ein Objekt der Assoziationsklasse gibt es für jede Verbindung zwischen Objekten der beiden durch die Assoziation
verbundenen Klassen. Die Zahl der möglichen Verbindungen wird durch die an den Enden der Assoziation
angegebenen Multiplizitäten vorgegeben auf mindestens das Produkt der beiden minimalen Werte.
Aufgabe 1
Klassendiagramm
Gegeben ist eine JAVA-Klasse mit den folgenden Attributen.
public class Kunde {
private String name;
private String[] vornamen;
private Anschrift Rechnungsadresse;
private Anschrift Lieferadresse;
private String email;
private int kundennummer;
private java.util.List<Artikel> wunschzettel;
private java.util.List<Artikel> bestellung;
}
Zeichnen Sie ein Klassendiagramm, das die durch den Programmtext beschriebenen Zusammenhänge – soweit
möglich durch graphische Elemente – modelliert. Auch die Klassen der Java-Bibliothek sollen durch Symbole
dargestellt werden.
Aufgabe 2
Klassendiagramm
Modellieren Sie die folgende Situation als Klassendiagramm:
Fußballmannschaften einer Liga bestreiten während einer Meisterschaftsrunde Spiele gegen andere
Mannschaften. Dabei werden in jeder Mannschaft Spieler für einen bestimmten Zeitraum (in Minuten) eingesetzt,
die dabei eventuell Tore schießen.
Die Modellierung soll es ermöglichen, festzustellen, welcher Spieler in welchem Spiel wie lange auf dem Feld war
und wie viele Tore geschossen hat. Ebenso soll es möglich sein, für jede Mannschaft festzustellen, gegen welche
Mannschaft welche Ergebnisse erzielt wurden.
Artikelliste
«interface»
Kunde
-Kundennummer: int String
Anschrift
List
«interface»
Artikel
T
«bind»<T->Artikel>
Rechnungs-
adresse
Liefer-
adresse
Name
1
*
Vorname
Email
1
Wunschzettel
Bestellung
1
1

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.