Objektorienterad Systemutveckling 1 (7,5 hp)

[ sida 1 ]
Objektorienterad Systemutveckling 1 (7,5 hp)
Provmoment:
Ladokkod:
Tentamen ges för:
Tentamen (5 hp)
21OB1B
ASYST13h, NGIMI13h, ADAEK13h
Datum och tid:
2015-01-14, kl. 09.00 – 13.00
Hjälpmedel: Inga hjälpmedel tillåtna
Rättningstiden för en tentamen vid HIT är högst 20 arbetsdagar (ca 4 arbetsveckor). Utöver rättningstiden tillkommer
administrativ tid för StudentCentrum och administration för distribution av tentamen samt inregistrering av resultat.
Resultatet bör därför vara synligt på ”MittKonto” senast inom 5 arbetsveckor efter skrivningstillfället.
Betyg:
Maxpoäng på denna tentamen är 40 poäng.
För betyget Godkänd på tentamen krävs minst 20 poäng. För betyget Väl Godkänd på tentamen krävs minst 30 poäng.
Allmänna anvisningar:
1. Skriv endast på ena sidan av pappret, ej fram och baksida.
2. Ange tydligt till vilken fråga svaret hör.
3. Lägg svaren i samma ordning som frågorna i tentamenshäftet
4. Svårlästa svar kan inte rättas!
5. Ansträng er att besvara frågorna tydligt.
6. Markera på omslaget till tentamen vilka frågor du lämnat svar på.
7. Om du finner uppgifterna i tentamenstexten ofullständiga skall du göra egna antaganden för de uppgifter du saknar.
Redovisa dina egna antaganden.
Samtliga frågor besvaras med föreläsningsmaterialet som utgångspunkt.
Ett tips är att du ägnar som första steg lite tid åt att gå igenom frågorna för att därigenom planera och disponera tiden på
bästa sätt. Du bör även vid denna inspektion fundera lite över hur frågan är formulerad för att uttolka frågans intention.
Begrepp som t ex, diskutera, exemplifiera, beskriv och förklara säger något om frågans innebörd och hur du bör svara.
Lycka till med tentamen!
Carina Hallqvist, kursansvarig (070-761 40 48)
OBS!! Vid en skriftlig tentamen måste studenten visa att han/hon har tillräckliga kunskaper inom
problemområdet. Många gånger är det möjligt att ge exempel och illustrera, ibland det bästa eller till och
med det enda sättet, och kan påverka poängsättningen för svaret.
Om du anser att en frågeställning inte är komplett, så är det upp till dig att komplettera med eventuellt
saknade förutsättningarna. I sådana fall måste du också ange eventuella tillkommande förutsättningar i
ditt svar.
[ sida 2 ]
Markera rätt svar för kryssfrågorna med ett tydligt X i därför avsedd ruta i svarsfälten nedan.
!
På kryssfrågorna är endast ett svar korrekt.
Om mer än en ruta är ikryssad på en fråga räknas det som ett felaktigt svar.
Svarsformulär för fråga 1
1.1
"A
"B
"C
"D
1.6
"A
"B
"C
"D
1.11
"A
"B
"C
"D
1.16
"A
"B
"C
"D
1.2
"A
"B
"C
"D
1.7
"A
"B
"C
"D
1.12
"A
"B
"C
"D
1.17
"A
"B
"C
"D
1.3
"A
"B
"C
"D
1.8
"A
"B
"C
"D
1.13
"A
"B
"C
"D
1.18
"A
"B
"C
"D
1.4
"A
"B
"C
"D
1.9
"A
"B
"C
"D
1.14
"A
"B
"C
"D
1.19
"A
"B
"C
"D
Varje korrekt svar ger 0,5 poäng, dvs max 10 poäng för fråga 1.
Glöm inte att lägga denna sida i tentamenshäftet!
1.5
"A
"B
"C
"D
1.10
"A
"B
"C
"D
1.15
"A
"B
"C
"D
1.20
"A
"B
"C
"D
[ sida 3 ]
Del A Delfrågor för fråga 1. Kryssa i dina svar på sidan 2!
1.1
Vilket av följande är en generell lösningsstrategi som delar upp ett stort problem i mindre delar
och löser varje delproblem?
A. Abstraktion
B. Dekompostering (Decomposition)
C. Algoritm
D. Logisk bomb
För uppgifterna 1.2 – 1.4, matcha de tre element som används av programutvecklingsmetoder med den
lämpligaste beskrivningen.
1.2. Notation
1.3. Process
1.4. Verktyg
1.5
A. är de aktiviteter som leder till den ordnade konstruktionen av en system-modell.
B. är det språk som utrycker respektive modell.
C. är de artefakter vilka eliminerar vissa svårigheter vid modellkonstruktion och som
upprätthåller regler kring själva modellen så att fel och brister synliggörs.
D. är de associationer vilka en modell kan anta under utvecklingsprocessen.
Ett sekvensdiagram (Sequence Diagram) i UML är ett exempel på ett …
A. strukturdiagram
B. kommunikationsdiagram
C. tillståndsdiagram
D. interaktionsdiagram
1.6
Symbolen till höger representerar ett/en …
A. klass
B. attribut
C. aktör
D. operatör
1.7
En ”part-of” hierarchi kan beteckna en av nedanstående relationstyperna
A. Generalisering
B. Specialisering
C. Aggregering
D. Association
För uppgifterna 1.8 – 1.10, matcha delen av klassdiagrammet med rätt benämning.
1.8
Shape
origin
1.9
move()
resize()
display()
1.10
A. Attribut
B. Namn
C. Stereotyp
D. Operation
[ sida 4 ]
1.11
I diagrammet till höger betyder ”+” att ett
attribut har synlighet …
A.
B.
C.
D.
1.12
public
protected
private
internal
Att ”BokProxy” är kursiverat innebär att den
klassen är …
A. ett interface
B. abstrakt
C. en subklass
D. indikativ
1.13
Triangeln innebär att ”BokWebservice” …
A. är en superklass
B. ärver alla egenskaper BokProxy har
C. kan ha högst tre instanser
D. ingår i klassen BokProxy
1.14
I diagrammet betyder ”*” att …
A. en Bok associeras till endast en instans av
BokRegister
B. B. att BokRegister associeras till endast en instans
av Bok
C. en Bok kan associeras till valfritt antal instanser
av BokRegister
D. ett BokRegister kan associeras till valfritt antal
instanser av Bok
1.15
Två associationer i diagrammet till höger har
pilhuvuden. Dessa pilhuvuden betyder
A. att BokRegister är mottagare av meddelanden
från Bok och BokProxy
B. att ett meddelande inte får en retur-respons
C. att associationen är ”uni-directional”
D. att associationen är ”bi-directional”
1.16
Med ”multipelt arv” menas …
A.
B.
C.
D.
att en klass kan vara superklass till flera subklasser
att en klass kan vara subklass till flera superklasser
att ett interface kan implementeras utav flera klasser
att en klass kan implementera flera interface
[ sida 5 ]
1.17
1.18
1.19
1.20
I diagrammet till höger så är relationen mellan
Person och Fot en …
A. association
B. aggregat
C. komposition
D. generalisering
I diagrammet till höger så är relationen mellan
Cykel och Hjul en …
A. association
B. aggregat
C. komposition
D. generalisering
I diagrammet till höger så är relationen mellan
Person och Cykel en …
A. association
B. aggregat
C. komposition
D. generalisering
I diagrammet till höger så är ”Jan:Customer”
A.
B.
C.
D.
en klass
ett interface
ett objekt
mekanisk
Customer
name
adress
phone
Jan:Customer
:Customer
Elyse
Glöm inte att lägga även svarssidan (sida 2) för kryssvaren i tentamenshäftet!
För de följande frågorna bör svaren vara korta och koncisa, dvs att det inte borde behövas några längre
essäer. Svaret för respektive fråga skall skrivas på ett separat blad, tydligt angivet vilken fråga det är ett
svar på.
[ sida 6 ]
Fråga 2 (3p)
Förklara följande förkortningar. Beskriv även vad som de viktigaste delarna i var och en
av dem.
a) OOP
b) OOD
c) OOA
Fråga 3 (2p)
Vad är skillnaden mellan en sub-klass och en super-klass. Förklara gärna också med hjälp
av en figur.
Fråga 4 (5p)
För att fånga samarbetet/samspelet mellan objekt används s.k. associationer av tre grader:
Association; Aggregat; och Komposition.
Markera/rita ut linjer och pilar samt symboler för att komplettera nedanstående
konceptuella diagram med dessa associationer. I diagrammet nedan finns möjliga exempel
på samtliga av dessa tre.
Schackspel
Pjäs
Person
Bräde
Ruta
[ sida 7 ]
Del B - Inception/Analys
Fråga 5 (10p)
Rita ett klassdiagram med associationer, attribut och kardinaliteter (multiplicity).
Nedan följer förutsättningarna för verksamheten.
Tillämpa generaliseringar/specialiseringar (arv) där det finns en verksamhetslogik för
detta.
Ett fritidshem vill införa ett informationssystem som skall innehålla information om samtliga barn och
anställda på fritidshemmet.
Fritidshemmet har flera avdelningar. På varje avdelning finns en ansvarig föreståndare. Föreståndaren
har hela sin arbetstid knuten till samma avdelning. Systemet skall kunna visa vem som är ansvarig
föreståndare på respektive avdelning.
Den övriga personalen kan arbeta på olika avdelningar och på olika tider varje veckodag. Detta schema
kan vara olika för olika veckor. För den övriga personalen skall det framgå på vilken avdelning vid en
viss tid (vecka, veckodag, tid) dessa är schemalagda.
Barnen är inskrivna på en och samma avdelning under hela sin vistelsetid på fritidshemmet.
För samtliga personer barn, föreståndare samt övrig personal skall data lagras om personnummer,
namn, adress samt telefonnummer.
Man vill kunna härleda i vilken klass samt i vilken skola som varje barn går. Klassen skall anges med
klassnamn samt namnet på klassens klassföreståndare. För skolan vill man veta skolans namn samt
skolans telefonnummer.
Man vill också kunna spåra vilka barn på fritidshemmet som går i en viss klass i en viss skola.
[ sida 8 ]
Del C - Elaboration/Design
Läs noga igenom uppgifterna och förutsättningarna innan Du börjar med uppgifterna. I de fall där Du
tycker att förutsättningar saknas får Du göra egna antaganden. Egna antaganden skall redovisas med
motivering.
Musikmogulen Bert Larsson i Vara skall utveckla ett bokningssystem för sina artister.
Så här ser klassdiagrammet för klasserna i systemet ut just nu:
Vi förutsätter här att typen Date endast kan ha datum och typen Time endast klockslag.
På en och samma konsert kan det delta många artister, men en artist uppträder på en
konsert bara vid en tidpunkt.
Med Artist avses såväl soloartister som grupper, men det kan i förekommande fall även
handla om specialkonstellationer utav grupper och soloartister som uppträder under en
gemensam beteckning.
[ sida 9 ]
Fråga 6 (5 + 5 = 10p)
I diagrammet ovan finns inga Operationer utskrivna, men systemet kommer ändå att ha
metoder.
A. Ge exempel på lämpliga operationer till samtliga klasser i figuren ovan.
B. Använd för dessa operationer ett lämpligt diagram (dvs. ett Sequence Diagram eller
Communication Diagram) för att beskriva händelseförloppet.
Detta är sista sidan
Glöm inte att lägga dina svar (inklusive sida 2 från detta häfte, formuläret för kryssfrågorna) i
det gula tentamenshäftet!
Lägg svaren i samma ordning som frågorna!