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

Slides:



Advertisements
Lignende præsentationer
GOD INFORMATIONSSØGNING for professionsbachelorer Faser i informationssøgeprocessen Strategi for løsning af informationsbehov Identificering af relevante.
Advertisements

Større Skriftlig Opgave
TPG handleplans-skema
Hvordan programmerer man?? STREAM - en model. Programmører arbejder ofte i teams Hver programmør arbejder på sin del af en større helhed.
DIEB9.1 Kursusgang 9 Oversigt: • Sidste kursusgang • Opgaver • Beskrivelser af komponenter • Typiske komponenter • Arkitektur for en GUI.
Visitsite.dk © anja nielsen Forskellige typer websider Søgemaskiner Webshops (betaling) Blog (i forandring – og to-vejs kommunikation) Stationære.
DProg2 E Programmering 2 dProg2 E2010
NetBeans Installation og brug.
Master Thesis Track Software Engineering Henrik Bærbak Christensen.
GP 4, 19/ Grundlæggende programmering Efterår 2001 Forelæsning 4 onsdag 19/ kl. 9:15 – 12:00.
Design af brugerflader11.1 Kursusgang 11 Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing.
01 – Java platform for starters. 2 NOEA2009Java-kursus – Java Platform Introduktion til Java Baggrund Hvad er Java? Faciliteter i Java.
Introduktion/Otto Knudsen 1 Overblik WebForms ASP.NET.
Introduktion til Access (Access, del 1)
Arv Idéen i arv et at kunne genbruge gennem generalisering
Sensus Tilgængelighed i PDF-filer - Adobe Professional Helene Nørgaard Bech Sensus ApS.
Indledende Programmering Uge 5 - Efterår 2006 Om at udvikle korrekte og pålidelige programmer Susanne Lindros.
Visitsite.dk © anja nielsen Forskellige typer websider Søgemaskiner Webshops (betaling) Blog (i forandring – og to-vejs kommunikation) Stationære.
Præsentation 28: Eksamen Objektorienteret Middleware.
Fordybelse og formidling. Udvælge, inddrage og anvende. Overskue, bearbejde, disponere, sammenfatte og formidle.
Forelæsning 3.1 Collections Javas for-each løkke
1 Dagens gang Sidste uges opgaver OA+D: Adfærd Nye opgaver.
OOMI Præsentation 28: Eksamen. Ingeniørhøjskolen i Århus Slide 2 af 6 Pensum Pensum har været noget fragmenteret (ny struktur for faget, nyt indhold og.
Objektorienteret Netværkskommunikation Præsentation 28: Eksamen.
1 Grafalgoritmer I. 2 Plan Grafer - definition - anvendelser - terminologi - eksempler på grafproblemer Grafgennemgang - dybde-først-gennemgang - bredde-først-gennemgang.
Introduktion til Access (Access, del 1). RHS – Informationsteknologi – Fra design til udvikling Vi ved nu, hvordan vi finder et design for en database,
Malermester Mikkel Stoltz
1 Kursusafslutning. 2 Plan Opgaveseminar Kursusevaluering.
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design af interaktionselementer.
Øvelser Usability Metoder. I dag Evaluering af opgaver.  Aflevering.  Strukturen – (se senere). Aftenens øvelse: Usability plan.
GP 4, 27/ Grundlæggende programmering Forår 2002 Forelæsning 4 onsdag 27/ kl. 9:15 – 12:00.
DIEB7.1 Kursusgang 7 Oversigt: Sidste kursusgang Opgaver Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing.
DIEB10.1 Kursusgang 10 Oversigt: Sidste kursusgang Eksempler på løsning af opgaven Arkitektur for brugergrænsefladen og for systemet Dokumentation af designet.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
Obligatorisk opgave nr. 2 – PalmPilot. DAIMIIntroducerende objektorienteret programmeringpalmproject.2 PalmPilot En PalmPilot kan holde styr på –kalender.
DAIMIIntroducerende objektorienteret programmeringIntro.1 Introducerende Objekt-Orienteret Programmering Efterår 2000.
DAIMIIntroducerende objektorienteret programmering3C.1 Design af klasser Specifikation og implementation.
DAIMIIntroducerende objektorienteret programmering4C.1 Systemdesign Design med flere klasser, En kaffeautomat.
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
Oracle Application Express Lektion 1 7. Semester 2008.
DAIMIIntroducerende objektorienteret programmering12A.1 Moduler Packages i Java.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Fejlfinding Kunsten at finde og rette fejl. DAIMIIntroducerende Objektorienteret Programmering10C.2 Taxonomi  Ingen skriver programmer uden fejl!  Fejl.
 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java.
DAIMIIntroducerende objektorienteret programmering1B.1 Skildpadder Modeller, objekter og opførsel.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Trinvis forfinelse Systematisk, gradvis udvikling af programmer.
 Jens Bennedsen 2002Objektorienteret systemudvikling Arkitektur.
Design af brugerflader13.1 Kursusgang 13 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation.
 Astrid Lumbye 2002Objektorienteret systemudvikling Begreber i systemudviklingsprocessen Udviklingsmodel Metode Beskrivelsesteknik Værktøj.
DIEB8.1 Kursusgang 8 Oversigt: Sidste kursusgang Beskrivelser af komponenter Typiske komponenter Arkitektur for en GUI.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
 Jens Bennedsen 2002Objektorienteret systemudvikling Begrebsmodellering Hvordan får vi opbygget en domænemodel/begrebsmodel?
Tutankhamons Grav Et modellerings eksempel
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
DAIMI, AUIntroducerende objektorienteret programmering11A.1 Destilleret UML Oversættelse fra UML til Java.
Opdragsgiver Planlægning og udførelse af møde med jeres opdragsgiver.
DAIMIIntroducerende objektorienteret programmering15A.1 Eksamen…
Objektinteraktion i GUI’er MVC og Observer.  Michael E. Caspersen, 2003Introducerende objektorienteret programmeringmvc.2 AWT framework Listeners og.
Abstraktioner.
Dokumentation.
1. Trin – Problemstilling
Dokumentation.
Dokumentation.
Tests v/Palle.
Quiz Uge 2 – mandag.
Quiz Uge 2 – mandag.
Sæt dit aftryk – udvikling af ideer
VELKOMMEN TIL ENGINEERING DAY 2018
Præsentationens transcript:

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

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

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

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

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

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...

DAIMIIntroducerende objektorienteret programmering12B.7 Domæne model

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

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.

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.

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.

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.

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

DAIMIIntroducerende objektorienteret programmering12B.14 GUI Framework Model

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.

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.

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

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.

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.

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

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!