• Keine Ergebnisse gefunden

Muster-Klausur A

N/A
N/A
Protected

Academic year: 2021

Aktie "Muster-Klausur A"

Copied!
12
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

FG Softwaretechnik Mertgen

Franklinstr. 28/29 Dobrev

10587 Berlin

MPGI 3

Muster-Klausur A

Wintersemester 2008/2009 19. Februar 2009

Pr ¨ufen Sie zun¨achst, ob dieses Exemplar vollst¨andig ist (8beidseitig bedruckte Bl¨atter).

Tragen Sie auf diesem Titelblatt und dar ¨uber hinaus auf allen Bl¨attern, die Sie f ¨ur Ihre Niederschrift verwenden, Ihren Namen und Ihre Matrikelnummer ein. Zum Bestehen der Klausur sind mindestens 25 Punkte notwendig. Ins- gesamt sind 50 Punkte m ¨oglich. Die Bearbeitungszeit betr¨agt 75 Minuten. In der Klausur sind außer einem beschriebenen DIN-A4-Blattkeine Hilfsmittel zugelassen. Verwenden Sie ausschließlich das ausgeteilte Klausur-Papier. Es d ¨urfen nurpermanent-schwarze oder -blaue Stiftezum L ¨osen der Aufgaben verwendet werden.

Viel Erfolg!

Name, Vorname:

Matrikelnummer:

Studienrichtung:

MPGI3- ¨ Ubungen habe ich im besucht.

(z.B. WS 2008/09) Aufgabe 1 2 3 4 5 6 Gesamt

Maximal: 7 5 8 12 12 6 50

Erreicht:

(2)

Aufgabenstellung ( ¨Ubersicht)

Das auf Seite 2 beschriebene System soll nach den in der Veranstaltung ver- mittelten Methoden entwickelt werden:

1. F ¨ugen Sie im gegebenen Klassenmodell f ¨ur den Gegenstandsbereich auf Seite 3 die Klassen Modeprodukt und Elektronikproduktein und erg¨anzen

Sie alle fehlenden Multiplizit¨aten. 7 Punkte

2. Vervollst¨andigen Sie das Use-Case-Modell auf Seite 4, indem Sie die Ak- teure des Systems bestimmen und sie den Funktionsgruppen zuordnen.

F ¨ugen Sie der Vorgabe bitte keine neuen Use-Cases hinzu. Beziehungen

zwischen den Funktionsgruppen d ¨urfen hinzugef ¨ugt werden. 5 Punkte 3. Vervollst¨andigen Sie das vorgegebene Systemklassenmodell auf Seite 5,

indem Sie Akteure, Klassen und Assoziationen hinzuf ¨ugen. Kennzeich- nen Sie die Klassen alsBoundary,ControloderEntity. Multiplizit¨aten und

Attribute m ¨ussennichtangegeben werden. 8 Punkte 4. Vervollst¨andigen Sie das Operationsschema f ¨ur die auf Seite 6 dargestell-

te Systemoperationangebot kommentieren. 12 Punkte

5. Vervollst¨andigen Sie das vorgegebene Kommunikationsdiagramm f ¨ur

die Systemoperationangebot kommentierenauf Seite 8 an. 12 Punkte 6. Implementieren Sie auf Seite 9 die Methode zaehleKommentare f ¨ur die

KlasseProdukt. Beachten Sie die dort angegebenen Vorgaben. 6 Punkte

Achten Sie auf Konsistenz zwischen allen erzeugten Modellen.

(3)

Webportal zur Bewertung von Produktangeboten

Das WebportalOfferComments.debeauftragt Sie mit der Entwicklung eines Soft- waresystems zur Verwaltung und Bewertung von Produktangeboten verschie- dener Firmen.

Zentrale Rolle in diesem Softwaresystem spielen die Produktmanager, die in einemB ¨uro in Berlin-Mitte arbeiten. Vertreter der Firmen kommunizieren di- rekt mit den Produktmanagern, wenn ihreProduktangeboteim Webportal ver-

¨offentlicht, aktualisiert oder gel ¨oscht werden sollen. Die Kommunikation ge- schieht haupts¨achlich per E-Mail und Fax, manchmal kommen aber die Fir- menvertreter auch pers ¨onlich ins B ¨uro des Webportals. Zwecks Aufwands- reduzierung, d ¨urfen pro Firma h ¨ochstens 30 Produktangebote ver ¨offentlicht werden. Zu einem bestimmtenProdukt hat eine Firma h ¨ochstens ein Produk- tangebot. Wenn eine Firma ein ganz neues Produkt auf den Markt bringen m ¨ochte, muss einer der Produktmanager zuerst dieses Produkt ins System ein- tragen. Unter Anderem hat ein Produkt eine eindeutige Identifikationsnum- mer (id), einen kurzen Namen und eine Produktbeschreibung. Betrifft das zu registrierende Produktangebot ein Produkt, das bereits im System bekannt ist, so entf¨allt dieser Schritt. Da das WebportalOfferComments.dean j ¨ungere Leute gerichtet ist, werden ausschließlich Produktangebote der MarktbereicheElek- tronikundModeangenommen und ver ¨offentlicht.

F ¨ur das Webportal arbeiten zus¨atzlich mehrere studentische Hilfskr¨afte als Reviewervon zu Hause. Sie loggen sich unregelm¨aßig auf eine speziell einge- richtete Webseite (hierReviewerPortalgenannt) ein. Ihre Arbeit besteht darin, Produktangebote zu kommentieren. Hierzu m ¨ussen sie zuerst das zu kom- mentierende Produktangebot aus einer nach Produkten gruppierten Liste aus- w¨ahlen. Zu jedem Produktangebot k ¨onnen mehrere Kommentare abgegeben werden. Ein Kommentar besteht aus einem l¨angeren Text, der die Vor- und Nachteile von diesem Angebot beschreibt. Im System muss immer nachvoll- ziehbar sein, welche Kommentare ein Reviewer geschrieben hat.

DieBenutzerdes Systems sind Personen mit Zugang zum Internet, die dieWeb- seitevonOfferComments.dein ihrem Webbrowser ¨offnen. Ein Benutzer kann die Produktangebote der verschiedenen Firmen recherchieren und die abgegebe- nen Kommentare lesen. Hierzu muss er zuerst das gew ¨unschte Produkt aus einer Liste ausw¨ahlen. Anschließend bekommt er eine Liste mit allen Produk- tangeboten zu diesem Produkt, die nach Preis geordnet sind. Erst dann kann er die Kommentare zu den einzelnen Angeboten sehen. F ¨ur ihre Recherche m ¨ussen sich die Benutzer nicht gesondert registrieren oder einloggen.

(4)

1. Klassenmodell f ¨ur den Gegenstandsbereich 7 Punkte

• F ¨ugen Sie im unten gegebenen Klassenmodell f ¨ur den Gegenstandsbe- reich die KlassenModeproduktundElektronikproduktein.

• Erg¨anzen Sie alle fehlenden Multiplizit¨aten.

Die auf dem Diagramm gezeichneten Dreiecke (I) kennzeichnen die Leserich- tung der Assoziationen.

L ¨osung:

(5)

2. Use-Case-Modell 5 Punkte

Vervollst¨andigen Sie das vorgegebene Use-Case-Model:

• Bestimmen Sie die Akteure des Systems und ordnen Sie diese den Funk- tionsgruppen zu.

• F ¨ugen Sie der Vorgabe keine neuen Funktionsgruppen hinzu.

• Sie d ¨urfen Beziehungen zwischen den Funktionsgruppen hinzuf ¨ugen.

Beispiell ¨osungen:

(6)

3. Systemklassenmodell 8 Punkte Vervollst¨andigen Sie das vorgegebene Systemklassenmodell, indem Sie Ak-

teure, Klassen und Assoziationen hinzuf ¨ugen. Kennzeichnen Sie die Klassen alsBoundary,ControloderEntity.

Multiplizit¨aten und Attribute m ¨ussennichteingetragen werden!

Beispiell ¨osung:

(7)

Sequenzdiagrammangebot kommentieren

Die Eingabeparameter der Systemoperation angebot kommentieren haben fol- gende Bedeutungen:

text der Text des zu erstellenden Kommentars

pid die eindeutige Identifikationsnummer des Produktes fid die eindeutige Identifikationsnummer der Firma rid die eindeutige Identifikationsnummer des Reviewers

Die BedingungProduktangebot existiert nicht dr ¨uckt aus, dass im System kein Angebot gefunden wurde, das zum Produkt mit der Identifikationsnummerpid geh ¨ort und von einer Firma mit der Identifikationsnummerfidangeboten wird.

Es wird in dieser Systemoperation davon ausgegangen, dass ein Reviewer mit der Identifikationsnummerridim System bekannt ist.

4. Operationsschemaangebot kommentieren 12 Punkte

Vervollst¨andigen Sie auf Basis Ihres Systemklassenmodells das vorgegebene

Operationsschema f ¨ur die Systemoperationangebot kommentierenauf der n¨achsten Seite.

Es sollen nur die im Sequenzdiagramm dargestellten F¨alle abgedeckt werden.

Nehmen Sie die folgenden Attribut- und Typdeklarationen an:

Produkt id: int

kurzname: String beschreibung: String ...

FirmenDaten id: int

name: String ...

Kommentar text: String ...

ReviewerDaten id: int

name: String ...

(8)

Beispiell ¨osung:

Op. = angebot kommentieren

Desc. = Ein Reviewer gibt einen neuen Kommentar im System ab. Der Kommentar betrifft ein bestimmtes Produktangebot, das durch die Eingabeparameterpidundfididentifiziert wird.

Es wird davon ausgegangen, dass ein Reviewer mit der Idenfi- kationsnummerridbereits im System bekannt ist.

Input = text:String,pid:int,fid:int,rid:int Reads = rv:ReviewerVerwaltung,Speichert,Sieht,

r:ReviewerDatenwithr.id=rid∧(rv,r)∈Speichert, Produktangebot,BietetAn,FirmenDaten,Geh¨ortZu,Produkt Changes = Schreibt,Betrifft,Kommentar

k:Kommentartype

Sends = Reviewer{kommentar abgegeben, angebot nicht gefunden} Pre = implicit

Post = let

firmenangebote=={pa:Produktangebot|(rv,pa)∈Sieht

∧(∃f :Firmendaten•f.id=fid ∧(f,pa)∈BietetAn)}; firmenproduktangebote== {fa:firmenangebote|

(∃p:Produkt •p.id=pid∧(p,fa)∈Geh¨ortZu)};

(#firmenproduktangebote= 0⇒

is sent {angebot nicht gefunden} ∧no effect )∧ (#firmenproduktangebote6= 0⇒

is sent {kommentar abgegeben} ∧

knew∧k.text0 =text∧Schreibt0 =Schreibt∪(r,k)∧

∃pa:firmenproduktangebote•Betrifft0 =Betrifft∪(k,pa))

(9)

5. Kommunikationsdiagrammangebot kommentieren 12 Punkte Vervollst¨andigen Sie auf Basis Ihres Systemklassenmodells und Ihres Opera-

tionsschemas das Kommunikationsdiagramm auf der n¨achsten Seite f ¨ur die Systemoperationangebot kommentieren.

Beachten Sie dabei folgende Anweisungen:

• F ¨ur diese Systemoperation gilt die Vorbedingung, dass ein Reviewer mit der Identifikationsnummerridim System bekannt ist.

• Kommentare zu einem Produktangebot sollen direkt aus dem entspre- chenden Objekt der KlasseProduktangeboterreichbar sein.

• Kommentare eines Reviewers sollten direkt aus dem entsprechenden Ob- jekt der KlasseReviewerDatenerreichbar sein.

Beispiell ¨osung:

(10)

Auszug aus der Java-API

Methoden der Klassejava.util.Collection<E>

TYP NAME UNDPARAMETER boolean add(E e)

boolean addAll(Collection<? extends E> c) void clear()

boolean contains(Object o)

boolean containsAll(Collection<?> c) boolean equals(Object o)

int hashCode() boolean isEmpty() Iterator<E> iterator()

boolean remove(Object o)

boolean removeAll(Collection<?> c) boolean retainAll(Collection<?> c)

int size() Object[] toArray()

<T>T[] toArray(T[] a)

6. Implementierung der MethodezaehleKommentare 6 Punkte Implementieren Sie die MethodezaehleKommentaref ¨ur die KlasseProdukt, die

angibt, wie viele Kommentare zu Produktangeboten f ¨ur dieses Produkt im Sy- stem gespeichert sind. Erg¨anzen Sie alle f ¨ur diese Implementierung notwen- digen Methoden in den vorgegebenen Ausschnitten der KlassenProdukt und Produktangebotauf der n¨achsten Seite.

Gehen Sie davon aus, dass die Objekte korrekt initialisiert werden. Sie m ¨ussen keineKonstruktoren implementieren. Sie m ¨ussenkeineimport-Anweisungen angeben.

(11)

Beispiell ¨osung:

public c l a s s Produktangebot { p r i v a t e Produkt produkt ;

p r i v a t e j a v a . u t i l . L i s t<Kommentar> kommentare ; public i n t anzahlKommentare ( ) {

r e t u r n kommentare . s i z e ( ) ; }

}

public c l a s s Produkt { p r i v a t e i n t id ;

p r i v a t e j a v a . u t i l . L i s t<Produktangebot> angebote ; public i n t zaehleKommentare ( ) {

i n t count = 0 ;

f o r ( Produktangebot pa : angebote ) {

count = count + pa . anzahlKommentare ( ) ; }

r e t u r n count ; }

}

(12)

Referenzen

ÄHNLICHE DOKUMENTE

Wie w¨ urden Sie diese Aufgabe l¨ osen, wenn die betreffende ¨ Uber- gangsmatrix nicht gefragt w¨ are?. Laza: Lineare Algebra individuell Online-Version

Wir ben¨ otigen eine neue Instanz einer Klasse A Wer erzeugt die Instanz?.

Oliver Schn¨ urer, Universit¨at Konstanz Wintersemester 2010/2011 Matthias Makowski.. Ubungen zur Vorlesung Lineare Algebra

Das Zur¨ uckrechnen von einem Bestand zum vorhergehenden ist

c) Geben Sie ein Beispiel f¨ ur eine links zensierte Beobachtung an. Die mit einem Sternchen versehenen Angaben sind rechts zensiert. Die infolgedessen nur partiell

c) Berechnen Sie f¨ ur die Daten der vorangegangenen Aufgabe die durch- schnittliche Ver¨anderungsrate. Die Sterberaten sind 0.05 in der ersten und 0.1 in der zweiten

(1 Pkt) c) Geben Sie ein Beispiel f¨ ur eine links zensierte Beobachtung an. Die mit einem Sternchen versehenen Angaben sind rechts zensiert. Die infolgedessen nur partiell

a) Wie groß ist die Wahrscheinlichkeit, zweimal hintereinander (mit Zur¨ ucklegen) eine rote Kugel zu