Download præsentationen
Præsentation er lastning. Vent venligst
Offentliggjort afLars Winther Redigeret for ca. et år siden
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!
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.