 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java.

Slides:



Advertisements
Lignende præsentationer
07 – Kort om OO Introduktion.
Advertisements

Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Lavet af: Paw Petersen Design Design Class Diagram (DCD)
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Larman, 2. udgave kap. 11 Grundlæggende Systemudvikling zHvad er systemudvikling ? zHvad er UML ? zHvad er analyse og design ? zHvad er UP ?
MMP Model og Metode til Programudvikling – MMP 1 Kursusindhold: Modellering af postkontor Objekt Orienteret Programudvikling - OO* Unified Modelling.
Grundlæggende elementer i UML
Interfaces – brug. Overblik Tidligere: –Interfaces Comparable gør det muligt at bruge Collections metoderne –min, max, sort, … –Algoritmemønstre Find.
1 Dagens gang Sidste uges opgaver OA+D: Adfærd Nye opgaver.
Eksempel på realisering af domænemodel
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
1 Grafalgoritmer I. 2 Plan Grafer - definition - anvendelser - terminologi - eksempler på grafproblemer Grafgennemgang - dybde-først-gennemgang - bredde-først-gennemgang.
Objekter og klasser Rasmus D. Lehrmann DM
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.
Database.
Begreber og Redskaber 11. Plan for idag Lidt afrunding: Collections Framework i Java Noget om oversættere og sprog Evaluering Sidste gang øvelser før.
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.
Objektorienteret programmering – UML2Java.  Jens Bennedsen 2001Multimedie programmering8.2 Indhold Klasser og associering til enkelt objekt –Programmering.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
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.
Klassevariable- og metoder Tilstand og opførsel på klasseniveau.
 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”
 1999, Henrik B. ChristensenIntroducerende objektorienteret programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
 Jens Bennedsen 2001Multimedie programmering10A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
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.
 Bærbak & Caspersen, 2000 Introducerende objektorienteret programmering4B.1 Talsystemer Positionstalsystemer Decimale og binære tal.
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,
Klassehierarkier Specialisering vha. subklasser. dIntProg, E05Klassehierarkier.2 Oversigt Eksempler på specialisering –Aktør, Koreograf, Skuespiller,
I o p o DAIMI, AU, Marts 1999Introducerende objektorienteret programmering5B.1 Et lille banksystem Modellering ved hjælp af UML.
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
Polymorfi Abstrakte klasser, substitutionsprincippet, statisk og dynamisk type.
Objektorienteret analyse og design Ó Bennedsen 2001 Design - part Programmering og systemudvikling Lektion 7 Design - part 2.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
Kari Rye Schougaard, Ph.d.-stud. Værktøjer og Teknikker, 2006 A A R H U S U N I V E R S I T E T DATALOGISK INSTITUT Java på 20 minutter (eller lidt mere)
DAIMIIntroducerende Objektorienteret Programmering8A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
Grafik Modeller, objekter og opførsel. dIntProg, F08Grafik.2 Nye begreber Repetition (iteration) –gentagelse af opførsel Parametrisering –generalisering.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge46 Ancestor.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
Klassevariable- og metoder Funktionalitet på klasseniveau.
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
DAIMIIntroducerende objektorienteret programmering1 Et lille banksystem Modellering beskrevet ved et UML klassediagram.
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.
DAIMIIntroducerende objektorienteret programmering15A.1 Eksamen…
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.
Objecter Introduktion Webintegrator HF1 PHP Object orienteret.
Abstraktioner.
Parametrisering En kort introduktion.
Præsentationens transcript:

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.2 UML  Unified Modeling Language er ved at være en industristandard til at give overblik over objekt- orienterede systemer i en kompakt, grafisk, form.  Vi vil kun bruge en lille delmængde af UML, primært klassediagrammer.

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.3 Klasser  En klasse beskrives ved en kasse, delt i tre lag triangle b: int c: Color draw() move() erase() Navn Attributter/variable Metoder (overblik)

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.4 Klasser  Det primære formål med et UML diagram er overblik over de væsentlige aspekter af ens model—ikke at beskrivelsen er komplet.  Derfor viser man ofte overhovedet ikke variable og metoder: triangle

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.5 Oversættelse til Java  Oversættelsen er simpel i et objekt-orienteret sprog: triangle b: int c: Color draw() move() erase() class triangle … { int b; Color c; … public void draw() { … } … }

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.6 Abstrakte klasser  Abstrakte klasser kan man angive vha. en indskrænkning (constraint): shape {abstract}

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.7 Relationer  Vi vil kun beskæftige os med 2 (3) relationer  Associering~ “tilknytning / afhængighed”  Aggregering~ “indhold (permanent)”  (Komposition~ “(uadskillelig) del-helhed”)  Disse angiver en stigende grad af tilknytning 

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.8 Et eksempel  Vi skal lave et systemdesign for elektronisk handel med bøger – en virtuel boghandel ala amazon.com.  Problembeskrivelse: En kunde præsenteres for de bøger, som boghandlen ligger inde med. Kunden udvælger en bog og lægger den i sin indkøbskurv. Dette gentages til kunden ikke ønsker flere bøger. Derefter betaler kunden for bøgerne i kurven ved kasseapparatet.

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.9 Find primære objekter Kunde Bog Kasseapparat Boghandel Indkøbskurv

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.10 Forsimpling KundeBog Kasseapparat Boghandel Indkøbskurv

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.11 Relationer KundeBog Boghandel Indkøbskurv Nedarvning? Associering? Aggregering?

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.12 Relationer: Én mulighed KundeBog Boghandel Indkøbskurv * * Associering, 1-1, 1-mange, mange-mange Aggregering, 1-1, 1-mange Komposition, 1-1, 1-mange

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.13 Roller KundeBog Boghandel Indkøbskurv * * betjener handler i bærer Læses f.eks: En kunde handler i en boghandel. En kunde bærer en indkøbskurv. Osv.

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.14 Orientering KundeBog Boghandel Indkøbskurv * * betjener handler bærer Orientering (navigability) udtaler sig om ansvar og kendskab (og implementation). En kunde ved hun handler i boghandlen, men boghandlen ved ikke nødvendigvis at kunden er der.

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.15 Specialisering KundeBog Boghandel Indkøbskurv * * betjener handler bærer TilbudsBog

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.16 Implementation af relationer  Nedarvning/specialisering er direkte understøttet i objektorienterede sprog: Bog TilbudsBog class Book { … } class TilbudsBook extends book { … }

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.17 Implementation af relationer  Associering og aggregering implementeres generelt på samme måde, nemlig ved hjælp af referencer. Orientering angiver, hvilken klasse der ”har” referencen AB class A { // 1-1 relation til B B bRelation; } class B { // Ingen relation til A }

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.18 Implementation af relationer  Tovejs relationer kan implementeres ved at de har referencer til hinanden. Her skal man passe på ved oprettelse, at de faktisk refererer til hinanden AB class A { // Relation til B B bRelation; } class B { // Relation til A A aRelaion; }

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.19 Implementation af relationer  1-mange relationer implementeres oftest ved hjælp af en collection, typisk Vector eller Dictionary. 1 AB class A { // Relation til B collection som kan indeholde B objekter ; } class B { // No relation til A } * * *

 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.20 Øvelse  Hvordan vil du implementere denne her?  Hvordan vil du sikre konsistens? AB * *