Extentamen i 2D1359 Objektorinterad modellering programmering och analys Tisdag den 13 oktober 1998 kl

Relevanta dokument
Extentamen i 2D1359 Objektorinterad modellering programmering och analys Tisdag den 13 oktober 1998 kl

Teoridel (svaren direkt på lydelsen)

Teoridel (svaren direkt på lydelsen)

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

Objektorienterad Systemutveckling 1 (7,5 hp)

Objektorientering. Grunderna i OO

Tentamen i Objektorienterad modellering och design Helsingborg

OOMPA 2D1359 Föreläsning 8

Tentamen i EDAF25. 1 juni Skrivtid: Skriv inte med färgpenna enda tillåtna färg är svart/blyerts.

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

Objektorienterad Programmering (TDDC77)

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

Tentamen i Objektorienterad modellering och design

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77)

Objektkonstruktion. Vilka sorter finns? Varför ärver vi? Aggregering ger en lösare koppling till delarna än komposition. 1nJUDÃJUXQGOlJJDQGHÃUHJOHU

Examen i 2D1359 & 2D1360 Objektorienterad modellering programmering och analys Tisdagen, 23 Oktober 2001, 14:00-19:00

Objektorientering Användning

Laboration 1: Figurer i hierarki

Föreläsning 10. ADT:er och datastrukturer

Objekt, klasser. Tillstånd Signatur Kommunikation Typ. Fält, parametrar och lokala variabler. Konstruktorer Metoder DAVA15

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

OOMPA 2D1359 Föreläsning 2

Kurskod D0010E Datum Skrivtid 5tim

Tentamen. DD2385 Programutvecklingsteknik vt 2014 Måndagen den 2 juni 2014 kl Hjälpmedel: penna, suddgummi, linjal

TDDC74 Programmering: Abstraktion och modellering Tenta, kl 14 18, 11 juni 2014

Föreläsning 15: Repetition DVGA02

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

Outline. Objektorienterad Programmering (TDDC77) Laborationsserie del två. Vad händer under HT2. Introduktion HT2 UML.

Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

Föreläsning 9: Arv och UML

Introduktion. Byggstenar TDBA

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Länkade strukturer. (del 2)

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. HT-15 Datum: Tid: kl

PROGRAMMERINGSTEKNIK TIN212

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

LÖSNINGSFÖRSLAG. Tentamen. Objektorienterad modellering och design. EDA665, 4 poäng

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

Objektorienterad Programkonstruktion

Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.

Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

ADT Kö. Seminarium 4 Köer och Stackar Innehåll. Operationer. ADT Stack. Definition. Definition

Tentamen, EDAA10 Programmering i Java

TENTAMEN OOP

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

Arv (Inheritance) Multipelt arv finns i verkligheten. Överskuggning, metodbindning. Läsanvisning: ! Arv! Object, instanceof! Relationer!

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Föreläsning 12. Länkade listor

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML

Information. Computer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

Tentamen i Grundläggande programmering STS, åk 1 lördag

Objektorienterad analys och design

Java-syntax (arv) Exempel: public class Crow extends Bird {... } Jämför med Lab 1: public class FirstApp extends Frame {... }

Tentamen ID1004 Objektorienterad programmering October 29, 2013

2D1359 & 2D1360. Informationsblad 1, 3 September Objektorienterad analys, modellering och design: principiella tillvägagångssätt,

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU

TENTAMEN I. OBJEKTORIENTERAD PROGRAMMERING för Z1. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

Tentamen i Objektorienterad modellering och design Helsingborg

OBJEKTORIENTERAD PROGRAMMERING för Z1 (TDA540)

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Tentamen. Programmeringsmetodik, KV: Java och OOP. 20 januari 2005

7,5 högskolepoäng. Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: Lycka till! /Peter & Petter

Föreläsning 11. ADT:er och datastrukturer

Lösningar till tentamen i EDAF25

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Tentamen. DD2385 Programutvecklingsteknik vt 2015 Fredagen den 5 juni 2015 kl Hjälpmedel: penna, suddgummi, linjal

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU

UML 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik

Obs! Inget ur Javas standardbibliotek får användas i ett svar (om det inte står att man får det).

Kursplanering Objektorienterad programmering

Tentamen i Algoritmer & Datastrukturer i Java

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

Typhierarkier del 1 Gränssnitt, ärvning mellan gränssnitt, ärvning mellan klasser

TENTAMEN OOP

Objektorienterad konstruktion

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Objektorienterad Programkonstruktion. Föreläsning jan 2016

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Introduktionsmöte Innehåll

Tentamen i Grundläggande programmering STS, åk

Del av projektuppgiften. Systemarkitektprogrammet

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

Tentamen i Grundläggande programmering STS, åk

Repetition av OOP- och Javabegrepp

Kungliga Tekniska Högskolan Ämneskod 2D4134 Nada Tentamensdag maj - 19 Tentamen i Objektorientering och Java Skrivtid 5 h

2 b) Följande finns definierat: public class Käk String titel = "Chili con carne"; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda("Svartpe

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

Transkript:

NADA, KTH OOMPA 1998-10-13 Sid 1 (8) Extentamen i 2D1359 Objektorinterad modellering programmering och analys Tisdag den 13 oktober 1998 kl. 11-13 Inga hjälpmedel tillåtna. Poäng och betyg: För godkänt krävs minst 10 poäng på vardera av teoridelen och problemdelen. För betyget 3, 4 och 5 krävs 20, 26 respektive 32 poäng (av möjliga 40). Övriga anvisningar: Teoridelen besvaras på dom prickade linjerna under respektive fråga och lämnas in tillsammans med övriga svarsblad. Lösningar till problemdelen lämnas in på separata blad. Frågorna ej säkert i svårighetsordning! Lösningar: Lösningsskisser på http://www.nada.kth.se/kurser/kth/2d1359. Namn: Personnummer: Lycka till! Teoridel (svaren direkt på lydelsen) 1. (4) Arv är centralt i objektorienterade språk och utvecklingsmetoder. a) Vad innebär det att en klass i ett objektorienterat språk ärver från en annan. Man kan också tala om olika typer av arv. Förklara med en mening per delfråga vad de olika typerna av arv i b-g nedan innebär: b) Arv för specifikation (eng. inheritance for specification)

NADA, KTH OOMPA 1998-10-13 Sid 2 (8) c) Arv för specialisering (eng. inheritance for specialization) d) Arv för konstruktion (eng. inheritance for construction) e) Arv för utvidgning (eng. inheritance for extension) f) Arv för begränsning (eng. inheritance for limitation) g) Arv för kombinering (eng. inheritance for combination) 2. (5) Förklara vad följande begrepp innebär inom objektorienterad programmering: a) Polymorfi b) Abstrakt klass c) Abstrakt metod

NADA, KTH OOMPA 1998-10-13 Sid 3 (8) d) Överskrivning (eng. overriding) e) Överlagring (eng. overloading) 3. (2) Förklara kort begreppen datadriven och ansvarsdriven design samt vilken inverkan respektive metod har på programkonstruktionen. 4. (3) Diskutera vilka konsekvenser användning av komposition respektive arv har på designen och underhållet av ett program.

NADA, KTH OOMPA 1998-10-13 Sid 4 (8) 5. (4) Den objektorineterade utvecklingsprocessen Beskriv de olika faserna i en objektorienterad utvecklingsprocess och vad man gör i respektive moment. Poängtera vilka av UML:s tekniker som används i respektive moment samt hur de olika faserna och momenten hänger ihop och påverkar varandra. 6. (2) Ge minst tre viktiga orsaker till att använda designmönster (eng. design patterns):

NADA, KTH OOMPA 1998-10-13 Sid 5 (8)

NADA, KTH OOMPA 1998-10-13 Sid 6 (8) Problemdel (svaren på separata blad) 7. (4) Använd den fragmentariska bekrivningen av klassen Vector nedan för att konstruera en klass Stack med metoderna (beskrivningen på formen returtyp metodnamn(argumenttyp)): boolean isempty() // Är stacken tom? Object push(object) //Lägg ett element på stacken och returnera det Object peek() //Vad ligger överst på stacken Object pop() //Ta bort översta objektet från stacken public class Vector { //Är vektorn tom? public boolean isempty() {...} //Hur stor är vektorn? public int size() {...} //Ingår elem i vektorn? public boolean contains(object elem) {...} //Vilket element finns vid index? public Object elementat(int index) {...} } //Första elementet public Object firstelement() {...} //Sista elementet public Object lastelement() {...} //lägg till obj sist i vektorn public void addelement(object obj) {...} //ta bort obj från vektorn public boolean removeelement(object obj) {...}... Genom att: a) implementera stacken som subklass till Vector b) använda komposition via en instans av Vector. 8. (4) Klass- och samarbetsdiagram: a) Konstruera ett klassdiagram med företag och personer. Där: ett företag har noll eller flera anställda varje person jobbar på högst fyra olika företag varje anställd har en chef som sin tur har en noll eller flera underställda. Sätt också ut: lämpliga rollnamn namn på eventuella associationer samt riktningar på dessa. b) Ett samarbetsdiagram (eng. collaboration diagram) som illustrerar följande enkla scenarie: En person (P) ber om "audiens" hos ett företag via dess personalavdelning (PA). PA meddelar P om att han kan komma för intervju hos sin eventuellt blivande chef C kl K dagen D. Personen kommer till receptionen (R) och frågar efter C. Receptionen kontrollerar om C är inne. Är C inne så meddelar R C att P är på väg upp annars frågar R PA om ny tid och meddelar P den nya tiden.

NADA, KTH OOMPA 1998-10-13 Sid 7 (8) 9. (6) En bandspelare har följande knappar som kontrollerar motorn: Rew << Play > FF >> Stop där Rew är Rewind och FF är Fast Forward. Stop stoppar bandet mjukt. Om användaren byter riktning utan att först stoppa bandet (t ex om man trycker Play och sedan Rew) ska motorlogiken stoppa bandet automatiskt för att undvika bandbrott. Play-Rew ska alltså utföras som Play-Stop-Rew, Rew-FF som Rew-Stop-FF osv. Däremot behöver inte bandet stoppas om man trycker Play-FF, eftersom spelriktningen då är oförändrad. Antag att det finns ett objekt panel som skickar meddelandena rew, play, ff och stop vidare till ett objekt control som följd av att användaren trycker på knapparna. Objektet control i sin tur skickar meddelandena forward, fast forward, fast backward och stop till motor för att kontrollera bandets hastighet. a) Konstruera ett sekvensdiagram som visar meddelandesändningen mellan de tre ovan nämnda objekten. Täck speciellt in följande sekvens av knapptryckingar på panelen: play, stop, ff, rew, play. b) Konstruera ett tillståndsdiagram som beskriver motorns olika tillstånd samt övergångar mellan dessa. Hantera dom tillfälliga stoppen mellan fram- och bakåtspolning med speciella stopptillstånd som tillfälligt stoppar bandet och efter tiden t automatiskt går över i nästa tillstånd. Tex fastforward till fast backward ger sekvensen: fast forward, tillfälligt stopp, efter tiden t övergång till fast backward.

NADA, KTH OOMPA 1998-10-13 Sid 8 (8) 10. (6) Antag att vi skall konstruera ett system för att hantera studenter, anställda, kurser, tentor och inrapportering till LADOK Följande lista och kort-korta beskrivningar av ingående objekt har vi fått från den administrativa avdelningen. I övrigt är vi fria att designa systemet efter vår egen förmåga och införa nya objekt om vi anser att detta behövs. Fast ett sidokrav från den administrativa avdelningen är att varje deluppgift skall få plats på högst en A4 var. (I ett senare skede kan dom tänka sig att vi gör mer detaljerade beskrivningar.) Objekt Beskrivning Student en person går kurser Lärare en person håller kurser har lön rapporterar in resultat till LADOK Kurs har deltagare har en kursledare/lärare har kurskod Studievägledning ansvarar för tentamensbokning Tentamen för kurs och moment anmälda tentander sal salsvakt, som bla skall ha lön LADOK inrapportering av kursmoment a) Konstruera CRC-kort över problemet. b) Konstruera ett klassdiagram med lämpliga arvshierarkier, associationer och beroenden. Diagrammet skall vara på (konceptuell) analysnivå.