Tutankhamons Grav Et modellerings eksempel

Slides:



Advertisements
Lignende præsentationer
Fagre nye tider! Jamen det er jo dejligt, at tingene udvikler sig så hurtigt, at det nu er muligt, at præsentere sine billeder i noget der nær ligner.
Advertisements

Velkommen til Softwarekonstruktion
Formularer (Access, del 3)
07 – Kort om OO Introduktion.
Lektion 3 – Kompasretninger og kompasset
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
GP 4, 19/ Grundlæggende programmering Efterår 2001 Forelæsning 4 onsdag 19/ kl. 9:15 – 12:00.
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Objektorienteret programmering
Mønstre En lille introduktion. Singleton Tilgå et objekt igennem klassereference i stedet for objektreference.  Overflødiggør referencer til objektet.
1 Grafalgoritmer I. 2 Plan Grafer - definition - anvendelser - terminologi - eksempler på grafproblemer Grafgennemgang - dybde-først-gennemgang - bredde-først-gennemgang.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
Forelæsning 2.2 Tilstand og opførsel (repetition)
FEN IntroJava AAU1 Endnu mere om Klasser og Objekter Mange til mange relationer Student-Course v3.
Interaktive knapper Web-udvikling med FrontPage 2003 RHS - Informationsteknologi.
Længste plateau En klassisk problemstilling (Gries, 1981) - og her i Java!!! Denne opgave drejer sig om at bestemme længden af det længste plateau i en.
GP 4, 27/ Grundlæggende programmering Forår 2002 Forelæsning 4 onsdag 27/ kl. 9:15 – 12:00.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Forelæsning 7.1 – repetition
Unified Modeling Language
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
 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.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering3C.1 Design af klasser Specifikation og implementation.
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
DAIMIIntroducerende objektorienteret programmering4C.1 Systemdesign Design med flere klasser, En kaffeautomat.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
 Jens Bennedsen 2002Objektorienteret systemudvikling Persistens.
 Bærbak & Caspersen, 2000Introducerende objektorienteret programmering1.1 Turtlemaskinen Arkitektur, instruktionssæt og eksempler.
DAIMIIntroducerende Objektorienteret Programmering1 Polymorfi og nedarvning Motivation for arv og “mange former”
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
DAIMIIntroducerende objektorienteret programmering12A.1 Moduler Packages i Java.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 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,
Indledende Programmering Uge 6 - Efterår 2006
I o p o DAIMI, AU, Marts 1999Introducerende objektorienteret programmering5B.1 Et lille banksystem Modellering ved hjælp af UML.
Objektorienteret analyse og design Ó Bennedsen 2001 Design - part Programmering og systemudvikling Lektion 7 Design - part 2.
Frameworks Hændelsesstyret programmering: ”Don’t call us – we’ll call you”
 Jens Bennedsen 2002Objektorienteret systemudvikling Modelleringsperspektiver Hvad betyder en klassemodel egentlig?
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation.
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2001Multimedie programmering1.1 Skildpadder Modeller, objekter og opførsel.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
Klassevariable- og metoder Funktionalitet på klasseniveau.
DAIMIIntroducerende objektorienteret programmering1 Et lille banksystem Modellering beskrevet ved et UML klassediagram.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge45 Associeringer.
DAIMIIntroducerende objektorienteret programmeringfletning.1 Fletning.
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
DAIMI, AUIntroducerende objektorienteret programmering11A.1 Destilleret UML Oversættelse fra UML til Java.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering12B.1 Obligatorisk Opgave 2 Et program til planlægning af madplaner.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Frameworks Hændelsesstyret programmering: ”Don’t call us - we call you”
DAIMIIntroducerende objektorienteret programmering2A.1 Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
Skildpadder Modeller, objekter og opførsel.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.2 Model Modeller bruges.
Eksamen Praktisk prøve.
Formularer (Access, del 3). RHS – Informationsteknologi – Udgangspunkt Vi har oprettet en database Vi har defineret en eller flere tabeller Vi.
Præsentationens transcript:

Tutankhamons Grav Et modellerings eksempel Virtuel rundvisning Tutankhamons Grav Et modellerings eksempel

Introducerende Objektorienteret Programmering Vores opgave Det Egyptiske museum i Cairo har bedt os om at lave en Web-baseret præsentation af Howard Carters udgravning af Tutankhamons grav, 1922-1928. Man skal kunne bevæge sig mellem de forskellige kamre i graven, se billeder fra udgravningen af disse kamre, samt få en detaljeret beskrivelse af det enkelte kammer. DAIMI Introducerende Objektorienteret Programmering

Vores Web præsentation DAIMI Introducerende Objektorienteret Programmering

Introducerende Objektorienteret Programmering Tutankhamons grav Problembeskrivelse: Ens ‘virtuelle’ jeg; kan flyttes ved angivelse af en kompasretning, e.g. “west” flytter “jeg’et” til forrummet. Annex Grav- kammer Forrum Skatkam. N Korridor Trappe (passer ikke, men hva’...) DAIMI Introducerende Objektorienteret Programmering

Introducerende Objektorienteret Programmering Problemstilling I datalogien har man lært nytten af at have ”skidt for sig og snot for sig”—at skille tingene af. En af de (dyrtkøbte) erfaringer i software udvikling er vigtigheden af at skille ens program af i to dele: brugergrænseflade og interaktion med brugeren modellen (basale elementer og begreber) Vi har i dette kursus fokuseret meget stærkt på modelbyggeri! DAIMI Introducerende Objektorienteret Programmering

Det er jo hele tre opgaver! Altså: Opgave 1: Et systemdesign som er en model der beskriver et antal forbundne rum samt et ’virtuelt’ jeg, som kan bevæge sig imellem rummene. Opgave 2: Et systemdesign for en brugergrænseflade som kan vise billeder, tekst og som har et redskab til navigation. Hvad er opgave 3  ? I denne lektion vil vi kigge på modellen—en senere lektion vil kigge på brugergrænsefladen. DAIMI Introducerende Objektorienteret Programmering

Introducerende Objektorienteret Programmering Opgave 1: Domænet Til at løse opgave 1 bruger vi Arnow&Weiss’ udmærkede model til system-design §5: Problembeskrivelse Find primære klasser/objekter Definere opførsel og samspil (testscenarie) Realisere de enkelte klasser. Nogle bud? DAIMI Introducerende Objektorienteret Programmering

<<testprogram>> UML klassediagram Er forbundet med 1 Kammer 1..4 Billede Beskrivelse 1 <<testprogram>> GravPræsentation Bevæger sig i/ befinder sig i 1 1 flytter 1 Virtuelle jeg præsenterer indtryk position Programlag DAIMI Introducerende Objektorienteret Programmering

Implementation, domæne... class Room { Vector exit; public Room( ... ) { ... exit = new Vector(); exit.addElement( null ); // north exit.addElement( null ); // east exit.addElement( null ); // south exit.addElement( null ); // west public Room leadsTo( int direction ) { return (Room) exit.elementAt(direction); } Er forbundet med 1 Kammer 1..4 Billede Beskrivelse Konvention: 0 = nord, 1 = øst, 2 = syd, 3 = vest DAIMI Introducerende Objektorienteret Programmering

Introducerende Objektorienteret Programmering Implementation... Forrum Annex annex Gravk. Korridor exit: Annex Grav- kammer forrum Forrum gravkammer Skatkam. Korridor korridor Trappe DAIMI Introducerende Objektorienteret Programmering

Introducerende Objektorienteret Programmering Implementation Det er svært at huske sådanne talværdier: Hvad var 2? Syd eller øst? Bedre at udtrykke dem ved hjælp af konstanter: class Room { … public final static int NORTH = 0; public final static int EAST = 1; public final static int SOUTH = 2; public final static int WEST = 3; } I klassen TutankhamonPresentation: public void northButtonPressed() { guest.move(Room.NORTH); } DAIMI Introducerende Objektorienteret Programmering

Implementation... Oprettelse af kamre og layout: Hvad med konsistens af referencer??? Room antechamber = new Room("You are a dark room known as the antechamber. "+ "There are a lot of precious antiques here, but ...”, "tutantechamber.jpg" ); antechamber.connectTo( staircase, Room.SOUTH ); antechamber.connectTo( annex, Room.NORTH ); antechamber.connectTo( tomb, Room.EAST ); DAIMI Introducerende Objektorienteret Programmering