Information. Computer

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

Computer projekttid. Objektorienterad modellering och diskreta strukturer / design. Rapporter från verkligheten. EDAF10 i HT2

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

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

Objektorienterad modellering och diskreta strukturer (EDAF10/EDA061)

Tentamen i Objektorienterad modellering och diskreta strukturer

Designmönster. Kapitel Kommandomönstret

Tentamen i Objektorienterad modellering och diskreta strukturer

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

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

Tentamen i Objektorienterad modellering och design Helsingborg

EDAF10: Objektorienterad modellering och diskreta strukturer EDA061: Objektorienterad modellering och design

EDAF10: Objektorienterad modellering och diskreta strukturer EDA061: Objektorienterad modellering och design. Vad är Objektorienterad modellering?

Lösningar till tentamen i EDAF25

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

Tentamen i Objektorienterad modellering och design

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

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

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

Föreläsning 15: Repetition DVGA02

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

Lösningar till tentamen i EDAF25

Förra föreläsningen. Dagens agenda. Command Objektorienterad modellering och diskreta strukturer (EDAF10/EDA061)

Dagens program. Objektorienterad modellering och diskreta strukturer / design. Model/View/Control-implementering. Model/View/Control-arkitektur

Föreläsningsbilder EDAF10/EDA061 Ht 2015 HT1 2015, FÖRELÄSNING 3

Tentamen i Objektorienterad modellering och design Helsingborg

Tentamen i Objektorienterad modellering och diskreta strukturer

Tentamen Programmering fortsättningskurs DIT950

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

Kursombud. Objektorienterad modellering och diskreta strukturer / design. Agile? Designprinciper EDAF10 EDA061. Lennart Andersson. Grupper för projekt

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

HT1 2015, FÖRELÄSNING

Förra föreläsningen. Dagens agenda. Dagens agenda. Föreläsningsbilder EDAF10/EDA Ulf Asklund, Datavetenskap/LTH 1

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

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

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

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

EDAF10: Objektorienterad modellering och diskreta strukturer. EDA061: Objektorienterad modellering och design. Diskreta strukturer.

LÖSNINGSFÖRSLAG

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

Föreläsning 10 Innehåll. Prioritetsköer och heapar. ADT Prioritetskö. Interface för Prioritetskö. Exempel på vad du ska kunna

Föreläsning 4 Innehåll. Abstrakta datatypen lista. Implementering av listor. Abstrakt datatypen lista. Abstrakt datatyp

Interface. Interface. Tobias Wrigstad (baserat på bilder från Tom Smedsaas) 3 december 2010

Objektorienterad modellering och diskreta strukturer. 13. Problem. Sven Gestegård Robertz. Datavetenskap, LTH

Projekt 2 XL. Observer-mönstret

EDAF10: Objektorienterad modellering och diskreta strukturer EDA061: Objektorienterad modellering och design

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

CHALMERS TENTAMEN. 2018/2019, lp 1 DAT050. Uno Holmer

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

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

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

Objektorienterad Programkonstruktion, DD1346. Tentamen , kl

Integritetsprincipen. Objektorienterad modellering och diskreta strukturer / design

Föreläsning 2. Länkad lista och iterator

Föreläsning 2. Länkad lista och iterator

Lycka till! TENTAMEN: Objektorienterade applikationer. Läs detta! 1 (6) Tentamen

Föreläsning 13 Innehåll

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

Introduktion. Byggstenar TDBA

Tentamen Programmeringsteknik II och NV2 (alla varianter) Skriv bara på framsidan av varje papper.

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

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

Objekt-orienterad programmering och design. DIT953 Niklas Broberg, 2018

10. Mängder och språk

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

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

Föreläsning 4 Innehåll

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

Programmering för språkteknologer II, HT2014. Rum

Laboration 2: Designmönster

Föreläsning 12. Länkade listor

Objektorienterad Programmering (TDDC77)

Länkade strukturer. (del 2)

Laboration 2: Designmönster

Grammatik. BNF-grammatik

DELPROV 1 I DATAVETENSKAP

Två designmönster, MVC och Observer/Observable. Objektorienterad programvaruutveckling GU (DIT011)

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

Länkade strukturer, parametriserade typer och undantag

Tentamen. DD2385 Programutvecklingsteknik vt Fredagen den 5 juni 2009 kl Inga hjälpmedel utom penna, sudd och linjal

DAT043 - föreläsning 8

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

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

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

Tentamen i Objektorienterad programmering

Kursplanering Objektorienterad programmering

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Tentamen, EDAA10 Programmering i Java

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.

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

Tentamen, EDAA20/EDA501 Programmering

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

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

Seminarium 13 Innehåll

Objektorienterad Programmering (TDDC77)

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

Tentamen i Algoritmer & Datastrukturer i Java

4.7 Observatörsmönstret

Tentamen i Objektorienterad modellering och design Helsingborg

Transkript:

Information Objektorienterad modellering och diskreta strukturer Lennart Andersson Reviderad 2009-10-14 2009 Tentamen torsdag 22 oktober 8-12/13. Hjälpmedel på tentamen. Martin: PPP Andersson: UML Holm: Java snabbreferens Andersson: F01-F06.pdf och F14.pdf Andersson: F07-F13.pdf, appendix.pdf (EDAF10) Ofärdiga projekt. Computer: vecka 1 i HT2 XL: vecka 4 i HT2 Ofärdiga laborationer. Uppsamlingslaboration i vecka 1 HT2 Nästa föreläsning för EDAF10. Måndag vecka 1 i HT2, kl 9.15. OMD 2009 F14-1 Kursens mål Efter genomgången kurs ska studenten kunna lokalisera och känna igen användning av gängse designprinciper och designmönster i givna program, utforma och implementera objektorienterade program med många klasser och några paket, välja och implementera lämpliga designmönster i typiska problem, använda centrala delar av en integrerad utvecklingsmiljö för design, implementering och omstrukturering av program, beskriva programdesign med UML (Unified Modeling Language), utvärdera en programdesign med avseende på designprinciper samt skriva program som är lätta att förstå för den som behöver göra modifieringar. OMD 2009 F14-3 OMD 2009 F14-2 Computer Mönster Command Template method Strategy Principer Lokalitetsprincipen Enkelt ansvar Open/closed-principen Inverterat beroende-principen OMD 2009 F14-4

XL Resursanvändning Mönster Model/View/Control Observer/Listener Composite Factory Principer Lokalitetsprincipen Abstrakt representation Ej dubbel representation Dold representation Enkelhet framför allt Optimera bara om det behövs Tidskomplexitet Minneskomplexitet Programmerarkomplexitet Användarkomplexitet OMD 2009 F14-5 Kursenkät 2007 OMD 2009 F14-6 Vad skall man göra för att klara tentamen? Uppgifter från år 2006 inom parentes. Medelstudietid 68 (78) timmar. 4 (3) studenter redovisar studietider på mer än 120 timmar [124, 134, 137 och 150]. Medelvärdet för Computer är 13 (13) timmar. 11 (9) studenter har använt mer än 20 timmar [22-36, 60]. Medeltiden för XL är 18 (20) timmar. 5 (4) studenter har använt mer än 30 timmar [3*35, 40 och 50]. Kursen har i medel tagit 33% (34%) av studietiden. Spridningen är stor. 1/5 (1/4) av studenterna anger mer än 40%. För dessa är medelstudietiden 92 (86) timmar. Gör projekten. Lös övningsproblemen. Gör laborationerna. Hur gör man för att misslyckas? Låt de andra i gruppen göra projekten. Titta på lösningar till övningar och gamla tentor i stället för att lösa problemen själv. OMD 2009 F14-7 OMD 2009 F14-9

061017 Uppgift 1 Template method... Uppgift 1 I ett program som hanterar listor finns två klasser som är identiska så när som på två rader. Den ena klassen visas nedan med de skiljande raderna i den andra klassen inlagda som kommentarer efter den rad de skall ersätta. Använd Template method-mönstret för att eliminera duplicerad kod och visa koden för de klasser som ersätter de befintliga. public class StarList extends java.util.arraylist { //public class EnumList extends java.util.arraylist { public String tostring() { StringBuilder builder = new StringBuilder(); for (int i = 0; i < size(); i++) { builder.append("* "); // builder.append(i + 1).append(". "); builder.append(get(i)); builder.append( \n ); return builder.tostring(); OMD 2009 F14-10 Uppgift 2 Design principles OMD 2009 F14-11 Uppgift 2 Problemförfattaren anser att följande klass har en utmärkt design, men man kan hävda att den strider mot principen om enkelt ansvar (Single Responsibilty Principle) eftersom den både ansvarar för att rita upp sig genom att utvidga JButton och att vara en lyssnare för knapptryckningar. Gör om designen så att lyssnarrollen delegeras till en egen klass. Designen skall redovisas med ett klassdiagram med den nya klassen och de klasser och gränssnitt som förekommer ovan. public class StartButton extends JButton implements ActionListener { private Train train; public StartButton(Train train) { super("start"); this.train = train; addactionlistener(this); public void actionperformed(actionevent event) { train.start(); OMD 2009 F14-15 OMD 2009 F14-16

Uppgift 3 Composite... Uppgift 3 I ett elektroniskt nyhetssystem finns nyhetsgrupper och artiklar. En grupp kan innehålla grupper och artiklar. Både grupper och artiklar har en titel. En artikel innehåller en text. Hela nyhetssystemet är själv en nyhetsgrupp. Det skall finnas en metod find(string title) som returnerar den första grupp eller artikel som hittas med den givna titeln. Rita ett klassdiagram med arv, associationer med multipliciteter, attribut och find-metoden som modellerar systemet. Implementera metoden find i den klass som representerar en nyhetsgrupp. Lösningen skall utnyttja följande klasser och gränssnitt. class ArrayList implements List { boolean add(object object) Iterator iterator() // omissions interface List { boolean add(object object) Iterator iterator(); //omissions interface Iterator { boolean hasnext(); Object next(); void remove(); OMD 2009 F14-19 Uppgift 5 Strategy I en räknedosa finns tre sorters tal som representeras på olika sätt: heltal, flyttal och komplexa tal. Räknedosan kan beräkna aritmetiska uttryck som antingen är ett tal eller en summa eller en produkt av två uttryck. Dosan tillåter bara att man adderar och multiplicerar uttryck vars värden har samma typ. Gör ett klassdiagram som visar representationen av uttryck och tal med arv, associationer med multipliciteter, attribut och en metod som beräknar uttryckets värde och implementera modellen. Modellen får tillåta att man blandar olika typer av uttryck men implementeringen får förutsätta att man inte gör det. Modellen behöver ej utnyttja Template-mönstret. Du behöver ej implementera den klass som representerar flyttal. Om du inte kommer ihåg hur man adderar och multiplicerar komplexa tal kan jourhavande lärare beskriva det. OMD 2009 F14-24 OMD 2009 F14-20 Uppgift Fiktiv 3 Modellering Gör ett klassdiagram för representation av tillståndsdiagram. Det finns fyra sorters tillstånd: vanligt tillstånd, som har ett namn. Ett vanligt tillstånd kan innehålla en sträng som talar om vilken åtgärd som skall vidtagas när man kommer in i tillståndet. starttillstånd. sluttillstånd. sammansatt tillstånd som innehåller ett eller flera tillståndsdiagram. Från ett tillstånd kan det finnas övergångar till ett annat (eller samma) tillstånd. En övergång är märkt med ett händelsenamn. Från ett starttillstånd och ett sammansatt tillstånd finns det exakt en övergång och från ett sluttillstånd finns det inga övningar. I övrigt finns inga restriktioner på antalet övergångar. Klassdiagrammet skall visa alla associationer med multipliciteter och de attribut som anges ovan. OMD 2009 F14-25

Uppgift Fiktiv 5 Designmönster En datorfabrikant tillverkar en dator till vilken man kan ansluta en skrivare med en avlång kontakt och en mus med en liten rund kontakt. En ny datormodell skall lanseras där man också skall kunna ansluta en scanner. Företagets ingenjörer har fått klart för sig att det finns så kallade usb-kontakter på vissa scannermodeller och att det börjar dyka upp skrivare och möss med samma anslutning. Det finns också små komponenter som kallas usb-hubbar som gör att man kan ansluta flera usb-enheter till en usb-kontakt. För att ansluta gamla skrivare och möss finns speciella anpassningsenheter mot usb. Man beslutar att den nya modellen skall ha tre usb-kontakter och inga speciella skrivar- eller muskontakter. Rita klassdiagram för den gamla och nya modellen och visa hur man i den nya modellen ansluter gamla skrivare och möss och nya usb-enheter och hubbar. Ingenjörerna har använt flera av lärobokens designprinciper och designmönster. Vilka? OMD 2009 F14-26 Diskreta strukturer 1 a. Skriv ned alla elementen i {0, 1 P({0, 1). b. Låt A, B och C vara tre godtyckliga mängder. Konstruera mängden av alla element som tillhör exakt två av mängderna A, B och C. Konstruktionen får bara innehålla namnen på mängderna, parenteser och symbolerna för union, snitt och komplement. OMD 2009 F14-27 Diskreta strukturer 3 a. En funktion f A B säges vara ett-till-ett om två olika argument alltid ger olika funktionsvärden. Skriv ett predikat som är sant precis då f är ett-till-ett. Predikatet får bara innehålla satslogiska operatorer, kvantifieringar, variabler, parenteser, = och. Det är tillåtet att utelämna parenteser där våra konventioner tillåter det. b. Ange ett exempel på ett element i (N N) N och ett i N (N N). OMD 2009 F14-28