Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

DAIMIIntroducerende objektorienteret programmering12B.1 Obligatorisk Opgave 2 Et program til planlægning af madplaner.

Lignende præsentationer


Præsentationer af emnet: "DAIMIIntroducerende objektorienteret programmering12B.1 Obligatorisk Opgave 2 Et program til planlægning af madplaner."— Præsentationens transcript:

1 DAIMIIntroducerende objektorienteret programmering12B.1 Obligatorisk Opgave 2 Et program til planlægning af madplaner

2 DAIMIIntroducerende objektorienteret programmering12B.2 Formål  Den sidste obligatoriske opgave belyser fire vigtige ting, som en programmør skal mestre: At sætte sig ind i en kompliceret problemstilling At bygge applikationer ud fra givne dele/komponenter Oversætte et design (UML) til kørende program Implementere standard algoritmer

3 DAIMIIntroducerende objektorienteret programmering12B.3 Problemstilling  Vi skal lave et system som kan hjælpe med at producere madplaner for en uge på et hospital:  Menuen ligger fast for hver dag, kun aftensmåltidet behandles

4 DAIMIIntroducerende objektorienteret programmering12B.4 Krav  Hotellet og kokkene stiller nogle krav: En samling af opskrifter at vælge ud fra Muligt at redigere ugeplanen i vilkårlig rækkefølge. Skal kunne udskrive ugeplanen Skal kunne lave en indkøbsseddel af ingredienser Skal være muligt at udvælge opskrifter med bestemte ingredienser i

5 DAIMIIntroducerende objektorienteret programmering12B.5 Overordnede opgave  1) Sætte jer ind i problemstillingen, forstå det foreslåede design, og de komponenter, som bliver stillet til rådighed  2) Oversætte et givet design i UML til kørende Java kode  3) Realisere funktionalitet svarende til krav  4) Koble jeres model op på et GUI framework

6 DAIMIIntroducerende objektorienteret programmering12B.6 Analyse GUI Framework Framework specialisering Opskriftssamling Planlægning Vi stiller en pakke til håndtering af opskriftsamlinger, samt et GUI framework til rådighed, I skal lave resten...

7 DAIMIIntroducerende objektorienteret programmering12B.7 Domæne model

8 DAIMIIntroducerende objektorienteret programmering12B.8 “Outsourcing”  Firmaet MartinoSoft er specialiseret i software til opskriftssamlinger og databaser, så derfor er denne del af koden blevet leveret af dette firma.  Pakken hedder ioop.recipes  JavaDoc kan findes de “normale” steder, på vores hjemmeside samt på jeres harddisk efter download af Obl2 skelettet

9 DAIMIIntroducerende objektorienteret programmering12B.9 Demonstration  I opgaveskelettet ligger et java program “ListDB” som demonstrerer, hvordan den medleverede samling “opskrifter.db” kan håndteres.  Programmet kan udskrive en oversigt over alle opskrifter, eller udskrive en enkelt opskrift i detaljer.

10 DAIMIIntroducerende objektorienteret programmering12B.10 Konkrete opgaver (1)  1) Realiser modellen som planlægning baserer sig på Implementer klasserne PeriodPlan, Meal, og Course og deres indbyrdes relationer og relation til klasserne i recipes pakken.  2) Udskrivning af ugeplan Implementer en kaskade af ‘toString’ metoder  3) Aftest koden Lav et testscenarie som godtgør at den implementerede javakode virker.

11 DAIMIIntroducerende objektorienteret programmering12B.11 Konkrete opgaver (2)  1) Beregn en indkøbsseddel Implementer metoden String buildShoppingList(), i vidst muligt opfang skal e.g. ”gulerødder” kun optræde een gang.  2) Godtgør at den fungerer Lav et testscenarie, som opbygger en overskuelig ugeplan (f.eks. kun 2 retter), og check at den beregnede indkøbsliste er korrekt.  Opgavebegrænsning: Opskriftsdatabasen er blevet konverteret fra HTML mekanisk, derfor kan mængdeangivelser o.a. mangle.

12 DAIMIIntroducerende objektorienteret programmering12B.12 Brugergrænseflade  Kokkene skal have et fleksibelt og let anvendeligt værktøj. Så vi skal have lavet en grafisk brugergrænseflade. I får et framework som består af tre klasser: PlannerGrafisk oversigt over ugeplanen SelectorDialog til at udvælge en opskrift ViewerDialog til at vise en tekst.  Disse klasser er uafhængige i frameworket, jeres specialisering af disse skal koble dem sammen til et brugbart planlægningsværktøj for madplaner.

13 DAIMIIntroducerende objektorienteret programmering12B.13 Framework Demo  I får udleveret en testdriver, “PlannerSelectorDemo”, som viser, hvordan frameworket virker på attrapdata.

14 DAIMIIntroducerende objektorienteret programmering12B.14 GUI Framework Model

15 DAIMIIntroducerende objektorienteret programmering12B.15 Diskussion  Bemærk at frameworket i sig selv ikke binder klasserne sammen; det er jeres kode, der skal gøre dette, oplagt på samme måde som i demo programmet.  Forholdet mellem specialiseringen af Planner og Selector er eksempel på en bi-direktional associering: Planner skaber Selector, og Selector kalder metoder i Planner.

16 DAIMIIntroducerende objektorienteret programmering12B.16 Diskussion  Der er en 1-* relation mellem DemoSelector og Viewer i demonstrationen, men denne relation er indirekte i koden; faktisk er det Java’s vinduesklasser, som opretholder relationen for os.

17 DAIMIIntroducerende objektorienteret programmering12B.17 Konkrete opgaver (3)  Bind jeres fysiske model af planlægningsdelen sammen med GUI frameworket

18 DAIMIIntroducerende objektorienteret programmering12B.18 Konkrete opgaver (4)  Selector klassen har en søge knap: Sidste delopgave er at implementere en filterfunktion, som filtrerer kandidatlisten baseret på den angivne søgestreng.

19 DAIMIIntroducerende objektorienteret programmering12B.19 Gode råd  Arbejd i grupper (op til 3 personer)  Vær sikker på I forstår opgaven, modellen og demoen inden i kaster jer over Java og implementation  Spørg instruktorerne eller os, hvis I er i tvivl.

20 DAIMIIntroducerende objektorienteret programmering12B.20 Læg vægt på...  Vi lægger vægt på En kortfattet rapport (2-3 sider) –Oversigt over jeres valg og løsninger Klasser og test er velskrevne: –Gode og informative kommentarer –Problemløsningerne fornuftige, i tråd med hvad I har lært –Viser I har forstået den sammenhæng hvori de skal bruges –Koden letlæselig (gode variabelnavne, indentering, osv.) At jeres løsning faktisk kan afvikles og fungerer

21 DAIMIIntroducerende objektorienteret programmering12B.21 Øvelsesgange  Forelæsningen svarende til ugeseddel 13 (d. 2 Dec) aflyst, tiden er afsat til obligatorisk opgave istedet.  Ingen instruktion/opgaveregning i uge 49!  Aflevering: Søndag 12 December.  Og godkendes opgaven ikke, kan I ikke gå til eksamen!


Download ppt "DAIMIIntroducerende objektorienteret programmering12B.1 Obligatorisk Opgave 2 Et program til planlægning af madplaner."

Lignende præsentationer


Annoncer fra Google