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

Relevanta dokument
Lösningar till tentamen i EDAF25

Lösningar till tentamen i EDAF25

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

Tentamen i Objektorienterad modellering och design Helsingborg

Tentamen i Objektorienterad modellering och design

Tentamen i Objektorienterad modellering och diskreta strukturer

Tentamen i Objektorienterad modellering och design Helsingborg

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

Lösningsförslag till tentamen i EDAF25 Objektorienterad modellering och design Helsingborg

Tentamen, EDA501 Programmering M L TM W K V

Tentamen, EDAA20/EDA501 Programmering

4.7 Observatörsmönstret

Tentamen NOA011 Systemarkitektprogrammet. 51 poäng

HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN)

Designmönster. Kapitel Kommandomönstret

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

Objektorientering. Grunderna i OO

UML Objektdiagram. Objektorienterad modellering och design (EDAF25) Föreläsning 3. UML Sekvensdiagram. UML Objektdiagram. Agenda

TENTAMEN OOP

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

Tentamen i Objektorienterad modellering och diskreta strukturer

OOP Tentamen

Föreläsning 13 Innehåll

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

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

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language

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

Tentamen i Programmering

Tentamen NOA011 Systemarkitektprogrammet

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

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

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Tentamen i Objektorienterad modellering och design Helsingborg

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

Tentamen, EDAA10 Programmering i Java

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

OOP Omtenta

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

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

Tentamen, EDAA20/EDA501 Programmering

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

Tentamen i Objektorienterad modellering och diskreta strukturer

Övningsuppgifter i Objektorienterad modellering och design (OMD) Helsingborg EDAF25

OOP Tentamen

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

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

TENTAMEN OOP

Objektorienterad analys och design

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

HT1 2015, FÖRELÄSNING 14 (INFÖR TENTAN)

Lösningsförslag till tentamen

Tentamen, EDAA20/EDA501 Programmering

Tentamen i Objektorienterad programmering

Outline. Objektorienterad Programmering (TDDC77) Abstrakta klasser. Abstrakta metoder. Abstrakta klasser. Gränssnitt. Uppräkningar (enum) Ahmed Rezine

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

Tentamen i Objektorienterad programmering

SI-pass 4. Johan Brook och Jesper Persson. 25 september Diskutera och svara på om påståendena nedan är äkta sanningar eller listiga lögner.

Kursstruktur. Objektorienterad modellering och diskreta strukturer / design. Programmering utan OMD. Vad är Objektorienterad modellering?

RUP - Rational Unified Process

Outline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine.

OOP Tenta

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

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

Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt idnummer på varje blad (så att vi inte slarvar bort dem).

TENTAMEN OOP

Arv och polymorfism i Java

UML Objektdiagram. Objektorienterad modellering och design (EDAF25) Föreläsning 3. UML Sekvensdiagram. UML Objektdiagram. Agenda

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

OOP Tentamen

Objektorienterad modellering och diskreta strukturer (EDAF10/EDA061)

Arv. Objektorienterad och komponentbaserad programmering

Objektorienterad Programmering (TDDC77)

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

Objektorienterad Systemutveckling 1 (7,5 hp)

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

Introduktion. Byggstenar TDBA

JUnit. Ska kompletteras med kodexempel på JUnit. DD2385 Programutvecklingsteknik Några bilder till föreläsning 12 21/5 2012

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 29 augusti 2015, kl 8 12

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Systemvetarutbildningen och dataekonomutbildningen

Tentamen Programmering fortsättningskurs DIT950

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

Objektorienterad Programmering (TDDC77)

Projektkaos. Chaos-rapporten. 34% av projekten avslutades i tid och enligt budget % misslyckades!

OOP Omtenta

DAT043 Objektorienterad Programmering

Tentamen, EDAA20/EDA501 Programmering

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Högskolan Dalarna sid 1 av 5 Data-avdelningen Hans-Edy Mårtensson

Information. Computer

OOP Exempel Tentamen 2007

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

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

Tentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas.

Tentamen Programmeringsteknik II Skrivtid: Hjälpmedel: Java-bok (vilken som helst) Skriv läsligt! Använd inte rödpenna!

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

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

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Transkript:

LUNDS TEKNISKA HÖGSKOLA (5) Institutionen för datavetenskap LÖSNINGSFÖRSLAG Tentamen Objektorienterad modellering och design EDA665, 4 poäng 2003-06-03, 8.00-3.00 Anvisningar: Skrivningen består av 2 uppgifter. Uppgift -0 ger vardera 3 poäng, uppgift -2 ger vardera 5 poäng. För betyg G krävs ca 20 poäng, för betyg VG ca 30 poäng. Hjälpmedel: Bifogat blad med sammanfattning av UML-notationen.. Användningsfallsmodellen beskriver (bland annat) kraven på systemet; ritar användningsfallsdiagram (use case-diagram). Den statiska modellen beskriver systemets statiska utseende (klasser och deras relationer); ritar klassdiagram. Den dynamiska modellen beskriver systemets dynamiska uppförande (tidsberoende); ritar sekvensdiagram och eventuellt tillståndsdiagram. 2. Den främsta fördelen med iterativa metoder är att man under arbetet kan dra nytta av det som man lärt sig om systemet under tidigare iterationer. Dessutom blir det mindre att kasta bort om man upptäcker att man tidigare har tagit ett felaktigt beslut, och man har lättare att planera arbetet, osv. Icke-iterativa metoder kallas vattenfallsmodeller. 3. Användningsfallsmodellen används för att specificera kraven på systemet. Den är också till nytta när man skall planera utvecklingsarbetet, t ex för att planera iterationer. Man beskriver ett användningsfall i vanlig text. Först ger man förutsättningarna för användningsfallet, sedan ger beskriver man i tidsordning vad som händer i användningsfallet. Cash withal <<include>> Bank Customer Transfer funds <<include>> Validate customer

2(5) 4. Klassdiagram: Korg 0 {subset Frukt Banan Päron Äpple..0 0..5 5. Tillståndsdiagram AV A(på)/V-on A(av)/V-off PÅ B(av) B(på) B(av)/P-off B(på)/P-on AV2 A(på)/V-on&P-on A(av)/V-off&P-off GÖR 6. Klassdiagram: Bokare 0..* 0..* Bokning dag : int start : int slut : int nummer : int Sal namn : int platser : int ändamål : {f, ö, t 7. Klassdiagrammet beskriver hur Module implementerar interfacet Stringifiable, dvs implementerar metoden stringify(). Man ser också att klassen Printer har en association till Module, och mer specifikt, att Printer använder sig av interfaceimplementeringen i Module. 8. Javaklasser (många varianter finns naturligtvis): class Client { private Invoker invoker; public void newcommand(string cmdtext) { Command cmd; if (cmdtext.equals( X )) cmd = new XCommand(); else if (cmdtext.equals( Y )) cmd = new YCommand(); else cmd = new ZCommand(); invoker.store(cmd);

3(5) abstract class Command { public abstract void execute(); class XCommand extends Command { class YCommand extends Command { class ZCommand extends Command { class Invoker { private Command[] mycommand = new Command[000]; private int nbrcommands = 0; public void store(command cmd) { mycommand[nbrcommands] = cmd; nbrcommands++; public void docommand(int nbr) { mycommand[nbr].execute(); 9. Mönstret heter Composite. Objektdiagram :Drawing :Group :Circle :Square :Drawing :Group :Circle :Square :User

4(5) 0. Klassdiagram: Game 2 Player 2 Die GameBoard 2 0..* Square name : String position : int Expert Novice. Bristen är att ramverket här ska försöka skapa subklasser till Shape men eftersom det endast känner till den abstrakta klassen (Shape) vilken ju inte ska instantieras, så går inte det. GUI DrawingEditor 0..* Shape create(kind:string): Shape() move(dx:int, dy:int) () edit() Framework Supplied by user myeditor Circle Square create(kind:string): Shape() creates class myeditor extends DrawingEditor { Shape create(kind:string) { if (kind.equals( Circle )) return new Circle(); else if (kind.equals( Square )) return new Square(); else <felhanteringt ex return null>

5 2. Klassdiagram 0..* Room removething(:thing) Thing User Bottle Treasure Player coins:int points:int addtolifepoints(:int) addtocoins(:int) abstract class Thing { private Room currentroom; abstract void giveto(player p); class Bottle extends Thing { final private int points =?; void giveto(player p) { p.addtolifepoints(points); currentroom.removething(this); class Treasure extends Thing { final private int coins =?; void giveto(player p) { p.addtocoins(coins); currentroom.removething(this); class Player { private int coins, points; public void addtolifepoints(int p) { this.points = this.points + p; public void addtocoins(int c) { this.coins = this.coins + c; class Room { public void removething(thing t) {