NADA, KTH 2D1359 & 2D1360 2001-10-23 Sid 1 av 7 Examen i 2D1359 & 2D1360 Objektorienterad modellering programmering och analys Tisdagen, 23 Oktober 2001, 14:00-19:00 Inga hjälpmedel tillåtna. Poäng och betyg: Betyg 3, 4 och 5 kräver 24, 28 respektive 32 poäng av möjliga 40 Teoretisk del: Anmärkning: Flervalsfrågar har ett och endast ett korrekt svar. Fråga 1: (1) Abstrakta metoder har a. Ingen programkod i subklasserna b. Programkod i den definierande klassen c. Programkod i subklasserna d. Ingen Programkod i den definierande klassen e. (b) och (c) f. (c) och (d) g. (a) och (b) Fråga 2: (1) En association är a. En rak linje i ett klassdiagram b. Representerad av ett substantiv som beskriver dess interaktion c. En relation mellan instanser av klasser d. En relation mellan klasser e. (a) och (d) f. (b) och (c) g. (b), (c) och (e) Fråga 3: (1) Aggregering a. Betyder att ett objekt är uppbyggt av andra objekt b. Betyder att ett objekt innehåller andra objekt c. Har alltid multipliciteten 1..* d. Är en relation av typen is a kind of e. (b) och (c) f. (a) och (d)
NADA, KTH 2D1359 & 2D1360 2001-10-23 Sid 2 av 7 Fråga 4: (1) Vilka av följande påståenden är sanna för tillståndsdiagram (eng. statechart diagrams) a. En händelse orsakas av en övergång (eng. transition) b. Ett objekt måste vara i precis ett tillstånd i taget c. Ett tillstånd är ett nödvändigt villkor för att en övergång (eng. transition) ska ske d. Vid en övergång (eng. transition) så ändrar ett eller flera attribut sina värden e. (a) och (c) f. (b) och (d) Fråga 5: (1) Generalisering a. betyder konstruktion av objekt från delar b. är en has a -relation c. är en kind-of -relation d. realiseras via arv e. realiseras via komposition f. (a) och (b) g. (c) och (d) h. (a) och (e) i. (a), (b) och (e) Fråga 6: (1) Polymorfism a. kräver abstrakta klasser b. realiseras med hjälp av statisk bindning c. realiseras med hjälp av dynamisk bindning d. tillåter att subklasser skriver över (eng. override) metoder tillhörande superklasser e. (a),(c) och (d) f. (a) och (c) g. (c) och (d) h. (b) och (d) Fråga 7: (4) Vilken av följande fraser beskriver bäst designmönstret i listan. Matcha 10 av 14 fraser med dom 10 koncepten nedan. a. Erbjuder en platshållare (eng. placeholder) för ett annat objekt med avsikt att kontrollera access av det. b. Omformar gränssnittet för en klass till ett gränssnitt som klienterna förväntar sig. c. Stödjer svagt beroende och liten inverkan av förändringar. d. Låter klienter behandla enstaka och grupper av objekt på likadant sätt. e. Låter en klass fördröja (eng. defer) instansiering till sina subklasser.
NADA, KTH 2D1359 & 2D1360 2001-10-23 Sid 3 av 7 f. Erbjuder ett gränssnitt för att skapa familjer av relaterade objekt utan att specificera deras konkreta klasser. g. Erjuder global access till en unik instans. h. När ett objekt ändrar sitt tillstånd så synkroniseras tillstånden för beroende objekt. i. En klass som har nödvändig information för att fullfölja sitt ansvar. j. Tilldelar ansvar till en artificiell klass för att stödja hög kohesion och svag koppling (eng. high cohesion and low coupling). k. Ett objekt med ansvar för att ta emot och hantera systemhändelser. l. Definirerar en familj av algoritmer och gör dem sinsemellan utbytbara. m. Erbjuder ett enhetligt gränssnitt mot en mängd av gränsnitt i ett delsystem. n. Ett mellanliggande objekt som minskar beroendet mellan andra objekt. 1. Observer 2. Factory Method 3. Expert 4. Controller 5. Low coupling 6. Composite 7. Singleton 8. Adapter 9. Abstract Factory 10. Strategy 1-, 2-, 3-, 4-, 5-, 6-, 7-, 8-, 9-, 10- Fråga 8: (2) Beskriv med två meningar skillnaden mellan objektorienterad analys och design. Fråga 9: (2) Vad är (vanligen) multipliciteten (1..*, *..*, etc.) i följande assiocationer? a. En broder och syster är syskon. b. Ett barn är avkomma till förälder. c. En person är gift med en person. d. En tvilling är syskon till en tvilling. e. En student deltar på kurs. f. Flyg flyger till flygplatser.
NADA, KTH 2D1359 & 2D1360 2001-10-23 Sid 4 av 7 g. En order innehåller delar. h. En kund köper product. a:, b:, c:, d:, e:, f:, g:, h:
NADA, KTH 2D1359 & 2D1360 2001-10-23 Sid 5 av 7 Fråga 10: (2) Beskriv med två meningar betydelsen av inception respektive elaboration i unified process. Fråga 11: (1) I unified process beskrivs krav via a. Designmodell (eng. design model) b. Domänmodell (eng. domain model) c. Användningsfallsmodell (eng. use case model) d. (a) och (b) e. (a) och (c) f. (b) och (c) Fråga 12: (1) Extreme Programming förordar a. kontinuerlig integration b. en sekvensiell, linjär lifscykel c. omstruktrurering (eng. refactoring) d. (a) och (b) e. (a) och (c) f. (b) och (c) g. (a), (b) och (c)
NADA, KTH 2D1359 & 2D1360 2001-10-23 Sid 6 av 7 Praktisk del: Fråga 13: (8) En myntautomat erbjuder två olika produkter A och B. Produkt A kostar 4 SEK, produkt B 6 SEK. Köparen stoppar i ett mynt i taget i myntinkastet. Maskinen accepterar mynt i valörerna 1, 5 och 10 SEK. Maskinen visar hur mycket man har kvar att köpa för på en display. Maskinen har tre olika knappar, knapp A för att mata ut produkt A, knapp B för att mata ut produkt B och knapp C för att mata ut innestående växel. Köparen kan när som helst trycka på knapp C för att få tillbaks inmatat belopp, även om inget köp gjorts ännu. Köparen kan också trycka på knapp A eller B när som helst, men maskinen matar bara ut respektive vara om den inmatade summa är lika med eller överskrider den aktuella produktens pris. Det är möjligt att göra flera köp efter varann så länge det finns pengar kvar i automaten (tex så kan man stoppa i en 10-krona och göra två köp av produkt A och få 2 SEK tillbaks eller stoppa i en 5-krona, köpa produkt A, stoppa i en ny 5-krona och köpa produkt B). a. Rita ett tillståndsdiagram (eng. state-chart diagram) over den beskrivna maskinen. b. Rita ett sekvensdiagram (eng. system sequence diagram) för scenariot där köparen matar in två 5-kronorsmynt, köper product B och därefter matar ut innestående växel. Illustrate the information or product the vending machine shows or dispenses to the customer. Rita diagrammen på separata blad med ditt namn och personnummer tydligt skrivet. För tydlighets skull kan du rita två versioner av tillståndsdiagrammet, båda innehållande samma tillstånd men som illustrerar olika typer av händelser och övergångar, till exempel ett för att mata in mynt och ett för att mata ut produkter och returnera mynt. Fråga 14: (4) Rita samarbetsdiagrammet (eng. collaboration diagram) som motsvarar följande sekvensdiagram: foo() :ClassA :ClassB :ClassC bar() gnu() clack() oink() plop() nop() wul() Rita diagrammet på ett separat blad där ditt namn och personnummer tydligt framgår.
NADA, KTH 2D1359 & 2D1360 2001-10-23 Sid 7 av 7 Fråga 15: (8) Rita en domänmodell (eng. domain model) som ett UML-diagram innehållande koncept, generaliseringar, namngivna associationer med multipliciteter (komposition eller aggregering där det är tillämpbart) samt attribut för domänen som beskrivs nedan. Uppgiften är att designa ett program som hjälper dig att hantera din samling av ljud-cdn. Varje CD (album- eller maxi-cd) innehåller ett eller flera spår/låtar, där ett spår är en inspelning av en viss låt med en viss artist, tex albumet Hot Rocks med Rolling Stones innehåller låtarna Time is on my side, Heart of Stone, Play with Fire etc. Varje spår har en speltid, till exempel Time is on my side har speltiden 5:23. Samma låt kan finnas på olika utgåvor, till exempel på den ursprungliga studioinspelningen samt på ett best-of -album. En viss artist eller olika artister kan ha spelat in samma låt på olika inspelningar, till exempel låten American Pie av Don Mc Lean respektive Madonna eller Sympathy for the Devil i en live- respektive studioversion av Rolling Stones. Man vill kunna skilja på soloartister (tex. Madonna) och band bestående av flera artister, exempelvis är Paul McCartney, John Lennon, Ringo Starr och George Harrison medlemmar i The Beatles. En artist kan förekomma i olika roller på olika inspelningar, antingen som soloartist eller bandmedlem, exempelvis är Sting både soloartist och medlem i bandet Police. En låt har en title och är komponerad av en eller flera kompositörer, exempelvis så är låten Hey Jude komponerad av Paul Mc Cartney och John Lennon. Varje utgåva (eng. release) har en titel, releasedatum, musiketikett (eng. music label) samt en speltid som är framräknad från dom ackumulerade speltiderna från alla spår på den aktuella utgåvan. En utgåva är vanligen associerad med någon viss soloartist eller ett band, exempelvis albumet Abbey Road associeras med The Beatles. Men ändå så är detta inte alltid fallet, som i till exempel i sound-tracks från filmer eller händelser som Woodstock, som ju innehåller flera olika artister på samma utgåva. Rita diagrammet på ett separat blad där ditt namn och personnummer tydligt framgår. Lycka till!!!