Teoridel (svaren direkt på lydelsen)



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

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

Teoridel (svaren direkt på lydelsen)

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

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

Objektorientering. Grunderna i OO

Objektorienterad Systemutveckling 1 (7,5 hp)

Inkapsling (encapsulation)

Introduktion. Byggstenar TDBA

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.

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

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

Laboration 2: Designmönster

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

Föreläsning 15: Repetition DVGA02

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2

Objektorienterad programmering. Grundläggande begrepp

Objektorienterad analys och design

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

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

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

Laboration 2: Designmönster

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

OOMPA 2D1359 Föreläsning 2

Objektorienterad analys och design

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

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

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

Kursplanering Objektorienterad programmering

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

Laboration 1: Figurer i hierarki

Objektorienterad konstruktion

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

Designmönster, introduktion. Vad är det? Varför skall man använda mönster?

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

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Objektorientering Klasser

OOP Tenta

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

Introduktion. Lagom är bäst. OO eller ej? TDP004 Objektorienterad Programmering Fö 7 Objektorienterad design, tips och råd

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

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

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

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

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

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

Kopiering av objekt i Java

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 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Arv. Objektorienterad och komponentbaserad programmering

UML. Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN Åbo, Finland url:

Tentamen i Objektorienterad modellering och diskreta strukturer

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

Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

Kursplanering fo r HI1027, Objektorienterad programmering, P1 HT112

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Objektorienterad Programkonstruktion. Föreläsning jan 2016

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

Objektorientering Användning

Information. Computer

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

Tentamen i Objektorienterad modellering och design

Tentamen i Objektorienterad modellering och design

Föreläsning 16 Arv. Jan Lönnberg T Grundkurs i programmering

Tentamen i Objektorienterad modellering och design Helsingborg

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

Objektorienterad Programmering DAT043. Föreläsning 10 13/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT15

Objektorienterad programmering

SKOLFS. beslutade den XXX 2017.

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Laboration 1 - Grunderna för OOP i Java

Objektorienterad programmering

Klasser och objekt. Henrik Johansson. August 20, 2008

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

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

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

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2

TENTAMEN OOP

Föreläsning 8. Designmönster

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Objektorienterad Programmering (TDDC77)

OOP Tentamen

DAT043 - Föreläsning 7

Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...

Ett objekt... Exempel: Om ni tittar er runt i föreläsningssalen ser in många olika fysiska föremål:

Föreläsning 9: Arv och UML

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder

Omtentamen i OOSU2, 21 augusti 2014

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

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Tentamen i Grundläggande programmering STS, åk 1 fredag

Transkript:

NADA, KTH 2D359 & 2D360 999-0-23 Sid () Tentamen i 2D359 & 2D360 Objektorienterad modellering programmering och analys Lördag den 23 oktober 999 kl. 4-9 MED KORTA LÖSNINGSFÖRSLAG Inga hjälpmedel tillåtna. Poäng och betyg: 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! Teoridel (svaren direkt på lydelsen). (2) Förklara följande begrepp: a) Polymorfi Se Budd kapitel 2 + ordlistan sidan 355. Pooley och Stevens s 24 b) Dynamisk bindning Se Budd avsnitt..2 + ordlistan sidan 350. Pooley och Stevens s 25 2. (5) Para ihop var och en av begreppen i svarstabellen med den beskrivning i listan av beskrivningar (A-O) som bäst passar (0 av 5 beskrivningar skall alltså användas). För varje rätt svar får du plus en halv poäng och för varje felaktigt minus en halv poäng på den totala poängsumman på tentan. Inget svar på viss fråga ger varken plus eller minus. A. Användaren av en komponent måste erbjudas all nödvändig information men ingen annan

NADA, KTH 2D359 & 2D360 999-0-23 Sid 2 () B. Baseras på inkapsling, polymorfi och arv C. Benämningen på en uppmaning till ett objekt att utföra någonting D. Beskrivningen av hur ett objekt skall reagera på ett visst meddelande E. Består av tekniker att hitta objekt, för att strukturera relationer och hantera processen att skapa objekt F. Detaljer i implementationen döljs G. En beskrivning av en viss uppsättning av objekts attribut och beteende H. En brainstormingliknande process I. En inkapsling av data och algoritmer för att manipulera dessa data J. En subklass kan definiera ett attribut med samma namn som ett i en superklass K. En variabel L. Ett objekt av en viss klass M. Meddelanden får endast skickas till argument, instansvariabler, nya objekt som returneras av en meddelandesändning eller globala variabler N. Olika klasser kan ha metoder med samma namn O. Metoder med samma namn åtskiljs genom antalet argument och argumentens typer. Svarstabell: Begrepp Inkapsling Instans Klass Meddelande Metod Objektorienterad analys och design Objektorienterat språk Parnas princip Parameteröverlagring (parametric overloading) The Law of Demeter Bästa alternativ F L G C D E B A O M

NADA, KTH 2D359 & 2D360 999-0-23 Sid 3 () 3. (3) Komposition eller arv? I vissa fall förordas arv och i andra komposition. Diskutera föroch nackdelar med det ena respektive andra sättet. Se Budd avsnitt 0.3

NADA, KTH 2D359 & 2D360 999-0-23 Sid 4 () 4. (3) Designmönster (eng. Design Patterns). a) Förklara kortfattat vad ett designmönster är. Ett designmönster är en lösningen på ett återkommande problem skriven på ett sådant sätt att lösningen kan användas i olika situationer utan att man i detalj behöver använda den på samma sätt i dom olika situationerna. b) Hur brukar designmönster beskrivas? Via en standardiserad mall med följande rubriker: namn, problem, krafter och lösning. Under varje rubrik görs en relativt kort beskrivning av mönstret med avseende på den infallsvinkel rubriken indikerar. Vid behov kan andra rubriker och beskrivningar användas, som: exempel, konsekvenser och relaterade mönster. c) Nämn minst fyra orsaker till att använda designmönster. Förmedlar expertkunskap Ger kraftfull vokabulär Ger snabbare förståelse av programsystem Förenklar underhåll och omstrukturering 5. (6) Förklara vad följande typer av arv innebär och ge något exempel på hur respektive typ kan användas. a) Arv för specifikation (eng. inheritance for specification) Se Budd avsnitt 8.4.2 b) Arv för specialisering (eng. inheritance for specialization) Se Budd avsnitt 8.4.

NADA, KTH 2D359 & 2D360 999-0-23 Sid 5 () c) Arv för konstruktion (eng. inheritance for construction) Se Budd avsnitt 8.4.3 d) Arv för utvidgning (eng. inheritance for extension) Se Budd avsnitt 8.4.4 e) Arv för begränsning (eng. inheritance for limitation) Se Budd avsnitt 8.4.5 f) Arv för kombinering (eng. inheritance for combination) Se Budd avsnitt 8.4.6

NADA, KTH 2D359 & 2D360 999-0-23 Sid 6 () Problemdel (svaren på separata blad) 6. (4) Konstruera ett klassdiagram efter beskrivningen som följer. En skola består, med komposition, av en eller flera avdelningar. En avdelning tillhör precis en skola. På en skola kan det gå noll eller flera studenter. Varje student kan gå på flera skolor. Varje student kan följa noll eller flera kurser och varje kurs kan följas av noll eller flera studenter. En kurs är förutom att den är knuten till studenter också knuten till en eller flera avdelningar samt en eller flera instruktörer. En instruktör kan undervisa på en eller flera kurser. En avdelning kan ha en eller flera kurser. Varje avdelning består, med aggregering, av en eller flera instruktörer. En instruktör kan tillhöra en eller flera avdelningar. På varje avdelning är också noll eller en instruktör chef. En instruktör kan å sin sida vara chef på högst en avdelning. Lösning: ett möjligt diagram (i ett mer detaljerat diagram kan man lägga in namn på associationer som att ge associationen mellan student och kurs namnet går på eller liknande) Skola..* * Student *..* * Avdelning..*..* Kurs 0....*..*..* 0.. chef Lärare 7. (6) Konstruera ett tillståndsdiagram efter beskrivningen som följer. Vi har tre tillstånd: vilande, överföring och det sammansatta tillståndet taemot. Starttillståndet skall vara tillståndet vilande. Om objektet befinner sig i tillståndet vilande och händelsen skickafax inträffar så övergår det aktuella objektet i tillståndet överföring. Om däremot händelsen ringer inträffar så övergår objektet i det nästlade tillståndet taemot. Det sammansatta tillståndet taemot består av tre nästlade tillstånd (dvs deltillstånd): uppkopplad, processar och rensaupp. Starttillstånd i taemot är tillståndet uppkopplad. Om objektet befinner sig i tillståndet uppkoplad och händelsen rubrikok inträffar så övergår objektet i tillståndet processar. Om händelsen checksummaok inträffar i tillståndet processar så går objektet över i tillståndet rensaupp. Från tillståndet rensaupp går objektet ovillkorligt över i tillståndet vilande. Om händelsen läggpå inträffar i något nästlat tillstånd i taemot så går objektet över i tillståndet vilande. Om händelsen fel inträffar i taemot så skall objektet gå över i tillståndet vilande samtidigt som aktiviteten skrivfelrapport skall utföras

NADA, KTH 2D359 & 2D360 999-0-23 Sid 7 () vid övergången. Tillståndet taemot skall också ha ingångsaktiviteten (entry-aktiviteten) lyftupp och utgångsaktiviteten (exit-aktiviteten) kopplaifrån. Lösning: vilande ringer taemot skickafax uppkopplad rubrikok överföring läggpå checksummaok processar fel / skrivfelrapport rensaupp entry / lyftupp exit / kopplaifrån Kommentar: i ett mer realistiskt system borde det finnas en ovillkorlig övergång från övergång till vilande (men detta är ju "bara" en tentafråga så...)

NADA, KTH 2D359 & 2D360 999-0-23 Sid 8 () 8. (5) Konstruera ett aktivitetsdiagram med simbanor efter beskrivningen som följer. Det är tre inblandade parter: en kund, en försäljare och ett lager. Kunden gör en beställning av en viss produkt. Detta resulterar i att försäljaren tar hand om det hela genom att skriva en order till lagret som resulterar i att lagret tar fram materialet och skickar iväg det hela till kunden. Kunden och försäljaren väntar på att beställningen skall bli ivägskickad samtidigt som försäljaren skriver en faktura. Därefter väntar kunden på att ta emot beställningen och den faktura som försäljaren skickat iväg. Då kunden betalat fakturan så avslutar försäljaren ordern. Lösning: Kund Försäljare Lager Fråga efter produkt Ta hand om order Ta fram material Skicka ordern Ta emot order Fakturera kund Betala faktura Avsluta order

NADA, KTH 2D359 & 2D360 999-0-23 Sid 9 () 9. (6) En biluthyrningsfirma önskar ett datorbaserat system för biluthyrning. Firman består av ett huvudkontor och noll eller flera lokalkontor. Vid varje lokalkontor finns ett antal bilar (noll eller flera), ett antal kunder (noll eller flera). Mellan varje kund och ett lokalkontor kan ett hyresavtal ingås om att kunden skall hyra en (eller möjligen flera) bil (bilar). Knutet till varje kontor finns också ett antal anställda uthyrare. En av dessa anställda är också chef på det aktuella kontoret. Förutom denna information vill man också att systemet skall lagra adress, telefonnummer och faxnummer för varje lokalkontor. En uthyrare skall kunna boka en bil, registrera utlämning, registrera återläming samt debitera kund. a) Användningsfall Konstruera ett användnigsfallsdiagram som illustrerar vilka aktiviteter en uthyrare kan utföra med hjälp av systemet. b) Klassdiagram Beskriv systemet med ett klassdiagram. c) Då en kund hyr en bil så utspelar sig ungefär följande förlopp: kunden frågar uthyrare om det finns någon ledig bil uthyrare kontrollerar mot registret om det finns ledig bil om bil finns så görs en kreditupplysning av kunden och om kunden inte har några betalningsanmärkningar så registreras utlämningen (som i sin tur debiterar kunden) (efter ett tag) lämnar kunden tillbaks bilen och återläming registreras

NADA, KTH 2D359 & 2D360 999-0-23 Sid 0 () Konstruera ett sekvensdiagram som illustrerar detta förlopp. Lösning: a) Boka bil Uthyrare Registrera utlämning Registrera återlämning Debitera b) 0..* Uthyrare chef Huvudkontor Kund 0..* 0.. 0..* Lokalkontor Info adress telefon fax 0..* Hyresavtal Bil c) kund: uthyrare: register: kredit: hyrbil() bil := ledigbil() debitering: [bil not null] ok := kreditupplysning(kund) [bil not null and ok] lämnaut(bil) [bil not null and ok] debitera(kund) [bil not null and ok] registrera(kund, bil) skickafaktura() lämatillbaks(bil) återlämnad(kund, bil) Kommentar: flera olika varianter är ju möjliga (tex pilarnas utseende och hur man tar hand om resultatet kan variera, vem lämnar kunden tillbaks bilen till osv..)

NADA, KTH 2D359 & 2D360 999-0-23 Sid () Referenser Budd - UML Distilled Applying The Standard Object Modelling Language st Edition, M. Fowler, K. Scott, 997 208 pages, Addison-Wesley 0-20-32563-2. Fowler - Understanding Object-Oriented Programming With Java st Edition, Timothy Budd, 998 384 pages, Addison-Wesley 0-20-3088-9. Pooley & Stevens - Using UML st Edition, Rob Pooley & Perdita Stevens, 999 260 pages, Addison- Wesley 0-20-36067-5.BC - A Laboratory For Teaching Object-Oriented Thinking, Kent Beck och Ward Cunningham, 989. PW - Dimensions of Object-Based Language Design, Peter Wegner, 987. WBW - Object-Oriented Design: A Responsibility-Driven Approach, Rebecca Wirfs-Brock och Brian Wilkerson, 989. EG - Utdrag ur Design Patterns Elements of Reusable Object-oriented Software (mönstret Observer) av Gamma, Helm, Johnson och Vlissides, 994.