DAIMI, AUIntroducerende objektorienteret programmering11A.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)
Selve objektet versus referencen til objektet Nedarvning
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.
FEN NOEA/IT Programmeringsteknologi 1 Arv og polymorfi Substitutionsprincippet Abstrakte klasser Design Patterns (Composite)
Grundlæggende elementer i UML
Forelæsning 3.1 Collections Javas for-each løkke
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.
 Jens Bennedsen 2002Objektorienteret systemudvikling Persistens.
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.
 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,
Klassehierarkier Specialisering vha. subklasser. dIntProg, E05Klassehierarkier.2 Oversigt Eksempler på specialisering –Aktør, Koreograf, Skuespiller,
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.
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 programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation.
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.
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.
DAIMIIntroducerende objektorienteret programmering15A.1 Eksamen…
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:

DAIMI, AUIntroducerende objektorienteret programmering11A.1 Destilleret UML Oversættelse fra UML til Java

DAIMI, AUIntroducerende objektorienteret programmering11A.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.

DAIMI, AUIntroducerende objektorienteret programmering11A.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)

DAIMI, AUIntroducerende objektorienteret programmering11A.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

DAIMI, AUIntroducerende objektorienteret programmering11A.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() { … } … }

DAIMI, AUIntroducerende objektorienteret programmering11A.6 Abstrakte klasser  Abstrakte klasser kan man angive vha. en indskrænkning (constraint): shape {abstract}

DAIMI, AUIntroducerende objektorienteret programmering11A.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 

DAIMI, AUIntroducerende objektorienteret programmering11A.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.

DAIMI, AUIntroducerende objektorienteret programmering11A.9 Find primære objekter Kunde Bog Kasseapparat Boghandel Indkøbskurv

DAIMI, AUIntroducerende objektorienteret programmering11A.10 Forsimpling KundeBog Kasseapparat Boghandel Indkøbskurv

DAIMI, AUIntroducerende objektorienteret programmering11A.11 Relationer KundeBog Boghandel Indkøbskurv Nedarvning? Associering? Aggregering?

DAIMI, AUIntroducerende objektorienteret programmering11A.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

DAIMI, AUIntroducerende objektorienteret programmering11A.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.

DAIMI, AUIntroducerende objektorienteret programmering11A.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.

DAIMI, AUIntroducerende objektorienteret programmering11A.15 Specialisering KundeBog Boghandel Indkøbskurv * * betjener handler bærer TilbudsBog

DAIMI, AUIntroducerende objektorienteret programmering11A.16 Implementation af relationer  Nedarvning/specialisering er direkte understøttet i objektorienterede sprog: Bog TilbudsBog class Book { … } class TilbudsBook extends book { … }

DAIMI, AUIntroducerende objektorienteret programmering11A.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 }

DAIMI, AUIntroducerende objektorienteret programmering11A.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; }

DAIMI, AUIntroducerende objektorienteret programmering11A.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 } * * *

DAIMI, AUIntroducerende objektorienteret programmering11A.20 Øvelse  Hvordan vil du implementere denne her?  Hvordan vil du sikre konsistens? AB * *