Introduktion til objektorientering

Slides:



Advertisements
Lignende præsentationer
Hjerterum og opsøgende funktion
Advertisements

KONFLIKTHÅNDTERING Velkommen! Dias.
©Jenny Bohr – Til underviserne Her er valgt at vise filmen ”et liv i kaos”. Hvis kursisterne er unge, kan man vælge en anden film eks. ”det.
BIOANALYTIKERES KERNEFAGLIGHED OG PROFESSIONSIDENTITET
Anette Schjødt Thorsen
Grundlæggende IT, niveau G
Velkommen til Softwarekonstruktion
– Sådan virker det! Dit elektroniske postsystem Ved Arne Crown Rasmussen
Softwarekonstruktion
07 – Kort om OO Introduktion.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Collectionklasser Klassifikation og anvendelse. Collections Motivation –hvorfor bruge collections? Realisering af en-til-mange relationer –Importer, erklær,
Gør det simpelt Trænings planlægning.
Relationer – børn og voksne
ER-diagrammer (databaser, del 4)
Informationsteknologi B-A, HHX, 2005,
Fagets Informations Teknologi Introduktion til Programmering i Java For Industri, Global Forretningsudvikling, samt fri studie aktivitet ved Bent Thomsen.
Introduktion til programmering
Kursus om borger.dk og brugen af digital signatur
03.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Klasser Oversigt, principper og teknikker Kapitel 3.
Objektorienteret programmering
Opfølgning på obligatorisk opgave 1 ONK1. Ingeniørhøjskolen i Århus Slide 2 Overordnet Flere gode opgaver De samme fejl går igen.. Alle der har afleveret.
Secret Key kryptering – teknikker og problemer INTRODUKTION TIL KRYPTERING.
Collectionklasser Ekstra materiale. Collections Motivation – hvorfor bruge collections? Realisering af en-til-mange relationer – Importer, erklær, initialiser.
Tekstniveauer: 1.For at skifte mellem de forskellige tekstniveauer, brug "Forøg list niveau"- knappen i værktøjslinjen "Formatering". 2.For at komme tilbage.
MMP Model og Metode til Programudvikling – MMP 1 Kursusindhold: Modellering af postkontor Objekt Orienteret Programudvikling - OO* Unified Modelling.
Videregående pc-vejledning Modul 06: Netværk WWW = World Wide Web 60+Bornholm.
Forelæsning 3.1 Collections Javas for-each løkke
Opfølgning på obligatorisk opgave 1 ONK1. Ingeniørhøjskolen i Århus Slide 2 af 14 Overordnet Generelt rigtigt fine opgaver –Mange fyldt med gode overvejelser.
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.
Fundamentale datastrukturer
Objektorienteret programmering
Forelæsning 5.1 Brug af klassen Collections og interfacet Comparable samt parametriserede typer Projektuge: Ants and Spiders / Lommeregner dIntProg,
1 Grafalgoritmer I. 2 Plan Grafer - definition - anvendelser - terminologi - eksempler på grafproblemer Grafgennemgang - dybde-først-gennemgang - bredde-først-gennemgang.
1 Kursusafslutning. 2 Plan Opgaveseminar Kursusevaluering.
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design af interaktionselementer.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
GP 4, 27/ Grundlæggende programmering Forår 2002 Forelæsning 4 onsdag 27/ kl. 9:15 – 12:00.
Forelæsning 7.1 – repetition
 Jens Bennedsen 2002Objektorienteret systemudvikling To syn på verden Aristotelisk vs. prototypisk syn.
Begrebsmodellering, UML og Java
Introduktion til programmering Repetition - ArrayList.
 Jens Bennedsen 2002Objektorienteret systemudvikling Interaktionsdiagrammer Hvordan beskrives objektinteraktion? Sekvensdiagrammer Collaborationsdiagrammer.
Objektorienteret programmering – begrebsmodellering.
Indledende Programmering Uge 6 - Efterår 2006
Introduktion til objektorientering OO, Java og BlueJ.
Introduktion til programmering Kursusoversigt. dIntProg, F08Kursusintroduktion.2 dIntProg Forelæsninger –Fire timer om ugen –Mandag samt fredag.
Kari Rye Schougaard, Ph.d.-stud Værktøjer og teknikker A A R H U S U N I V E R S I T E T Datalogisk Institut Objekt Orienteret Modellering.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge46 Ancestor.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
Velkommen Formålet med denne workshop er At teste forskellige former for teknologiunderstøttelse ved etablere af samarbejde på hospitaler. Målet med dette.
 Jens Bennedsen 2002Objektorienteret systemudvikling Begrebsmodellering Hvordan får vi opbygget en domænemodel/begrebsmodel?
Velkommen Formålet med denne workshop er At teste forskellige former at teknologiunderstøtte etablere af samarbejde på hospitaler. Målet med dette er:
Introduktion til programmering Repetition. dIntProg, F08Repetition.2 dIntProg Sidste forelæsning (12/10) –kort tilbagemelding på evaluering –repetition.
Tutankhamons Grav Et modellerings eksempel
Konference om mundtlige prøver PRØV! Et program til de mundtlige prøver.
DAIMIIntroducerende objektorienteret programmering15A.1 Eksamen…
DAIMIIntroducerende objektorienteret programmering12B.1 Obligatorisk Opgave 2 Et program til planlægning af madplaner.
Objektorienteret programmering – begrebsmodellering
 Jens Bennedsen 2001Multimedie programmering Introduktion og velkomst.
Eksamen Praktisk prøve.
01.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Objektorienteret Analyse & Design (OOA&D) Grundbegreber, principper og metode Kapitel 1.
Forelæsning Uge 1 – Torsdag
Introduktion til objektorientering
Forelæsning Uge 1 – Mandag
Forelæsning Uge 3 – Mandag
Forelæsning Uge 1 – Torsdag
Dokumentation.
Velkommen til Introduktion til Programmering
Præsentationens transcript:

Introduktion til objektorientering OO, Java og BlueJ

Plan Time 1 Time 2 Objekt-orienteret problemløsning BlueJ eksempel Begreber og fænomener  klasser og objekter Modellering Øvelse: iTunes dIntProg, E12

Problemløsning i hverdagen (1) Hvis min bil går i stykker, har jeg et problem; hvad gør jeg for at løse det? Henvender mig på et bilværksted og forklarer dem hvori problemet består. Overlader bilen til værkføreren og får den tilbage i repareret stand nogen tid efter. Hvad har jeg gjort for at løse mit problem? Fundet en passende agent eller serviceudbyder. Overbragt agenten en meddelelse om mit problem. Det er blevet agentens ansvar at løse problemet på mine vegne. Agenten har en metode til at løse problemet, men den behøver jeg ikke at kende til. dIntProg, E12

Problemløsning i hverdagen (2) Samme princip hvis jeg skal sende blomster til min farmor i Svendborg Henvender mig til min lokale blomsterhandler med en meddelelse der indeholder information om hvilke blomster jeg ønsker samt min farmors adresse, og så sker det hele bag kulisserne. Formodentlig ved at blomsterhandleren videregiver min meddelelse til en anden blomsterhandler i Svendborg der sørger for at fremskaffe blomsterne, binde en buket og få dem sendt ud til min farmor. dIntProg, E12

Pointe 1: Delegering til agenter Afkobling Agenters valg af metode er ikke mit problem; tværtimod er der stor fleksibilitet i at vi ikke blander os i agenters (eksempelvis blomsterhandleres eller værkføreres) metoder. Agenter er fri til at anvende en vilkårlig fremgangsmåde, blot de leverer en løsning på problemet – det er deres ansvar. Hvad vs. Hvordan dIntProg, E12

Pointe 2: Forskellige typer af agenter Forskellige typer agenter Agenten er modtager af min meddelelse og dermed en nødvendig betingelse for at problemet bliver løst. Hver slags (type) agent har sine metoder som er specifikke for netop den service han kan tilbyde. Havde jeg henvendt mig til værkføreren med mit blomster-problem ville han sikkert have givet en besked tilbage om at han ikke havde nogen metode til at løse problemet. dIntProg, E12

Pointe 3: Om benyttelse af metaforer i OO En af fordelene ved OOP er benyttelsen af metaforer fra dagligdagen. En OO-programmør kan tænke på sit program som nogle objekter der opfører sig på bestemte måder og har visse ansvar at leve op til trække på et væld af erfaringer fra dagligdagen og herved få ideer til strukturering af det samlede program. dIntProg, E12

UML: Et grafisk beskrivelsessprog Diagramtyper Klassediagrammer Objektdiagrammer Sekvensdiagrammer … Klassediagram Sekvensdiagram Objektdiagram dIntProg, E12

Interaktion mellem agenter Mig Alexandra Blomster Quist Blomster Bud-Johnny Farmor levér(b,a,p) levér(b,a,p) bindBuket(b) bringUd(b,a) overbring(b) dIntProg, E12

Forskellige typer agenter Blomsterhandler Bud levér bindBuket indbetal bringUd dIntProg, E12

Interaktion mellem agenter Mig Værkfører IMekaniker CPUTester EMekaniker fix(bil) reparer(bil) testCPU(bil) karburator Check reparer(bil) reparer skrivFaktura dIntProg, E12

Forskellige typer agenter Værkfører fix(bil) skrivFaktura EMekaniker reparer(bil) checkKarburator reparer CPUTester testCPU(bil) IMekaniker dIntProg, E12

I BlueJ dIntProg, E12

BlueJ og Java – Oprettelse af Objekter + ≈ dIntProg, E12

BlueJ og Java – Metodekald ≈ dIntProg, E12

Kristen Nygaard om objektorientering En programudførelse betragtes som et fysisk modelsystem der simulerer opførslen af en reel eller imaginær del af verden. Fysisk modellering er baseret på opfattelse af virkeligheden i ter-mer af fænomener og begreber. Et fysisk modelsystem konstrue-res ved at modellere fænomener som objekter og begreber som klasser. Kristen Nygaard, 1926-2002 dIntProg, E12

Modellering, begreber og fænomener (1) Studieadministration Studerende (Rasmus, Stine, Søren, ...) Fag (dIntProg, Perspektiverende kursus, MM-æstetik, ...) Underviser (mec, gudmund, olavb, ...) Lokale (Aud. E, Koll. G3, Stibitz-113, ...) Prøveform (praktisk, mundtlig, skriftlig, projekt, ...) Prøveresultat (bestået, ikke bestået, udeblevet, 13, ...) dIntProg, E12

Modellering, begreber og fænomener (2) Elektroniske patientjournaler (EPJ) Patient (Joachim B. Olsen, Dr. Margrethe II, ...) Behandling (forbinding, ro, fysioterapi, ...) Diagnose (forstuvet håndled, brækket ben, gulsot, ...) Operation (fjernelse af blindtarm, sterilisation, fedtsugning, ...) Læge (Jesper Hogaard, Lis Vinge Madsen, ...) Sygeplejerske (Jane Clemensen, Bente Aarslev, ...) dIntProg, E12

Modellering, begreber og fænomener (3.1) Musikafspiller, f.eks. iTunes Find eksempler på begreber og tilhørende fænomener Skriv forslagene ind under forelæsningen. dIntProg, E12

Model for studieadministrationssystem Studerende * 1 Karakter * * * * 1 Lærer Fag Lokale * * Prøveform Domæne dIntProg, E12

Model for EPJ-system Patient * Diagnose * 1 * Læge Behandling ... Overlæge Reservelæge Domæne Model dIntProg, E12

Modellering, begreber og fænomener (3.2) Musikafspiller, f.eks. iTunes Giv bud på relevante klasser og relationer mellem disse Giv bud på funktionalitet og ansvarsplacering heraf Skriv forslagene ind under forelæsningen. dIntProg, E12

Modellering, begreber og fænomener (3.3) Musikafspiller, f.eks. iTunes Udsnit af klassemodel for iTunes Player * Playlist * Track time name artist album rating playcount lastPlayed dateAdded releaseDate ... void add(Track t) void remove(Track t) List<Track> search(String s) void shuffle() void sort(...) void burnToDisc() ... add(Playlist p) remove(Playlist p) void import(...) void export(...) ... Skriv forslagene ind under forelæsningen. dIntProg, E12

dIntProg Objektorienteret programmering Modeldrevet programmering Java Modeldrevet programmering programmeringsopgaver tager udgangspunkt i simple OO-modeller som realiseres i Java Målet er praktiske kompetencer mht. Programmering problemløsning ”in the small” standardløsninger på standardproblemer (mønstre) individuel praktisk prøve ved computer Programmering er en kontaktsport Øv jer! dIntProg, E12