Forelsning Uge 1 Torsdag Problemlsning i hverdagen Agenter
Forelæsning Uge 1 – Torsdag • Problemløsning i hverdagen – Agenter og metoder • UML specifikationssproget – Klassediagrammer – Sekvensdiagrammer • Eksempler på modellering – – – Mekanikværksted Blomsterhandel Studieadministration Patientjournaler på hospital Musikafspiller • Afleveringsopgave: Krabbe (Crab)
Praktiske ting • Mails – Det er VIGTIGT, at I ser de mails, som jeg og instruktorerne sender – Alle mails sendes til jeres officielle AU adresse – Videresendelse af (al mail til AU adressen) kan sættes op via mit. au. dk – Hvis I har problemer, så spørg jeres instruktor og/eller medstuderende • I skal installere Java 8 JDK, Blue. J og Greenfoot – Hvis I har problemer, så spørg jeres instruktor og/eller medstuderende • Læs kursets websider og følge med i de nyheder, der kommer på webboardet – Herunder ugebrevene, som indeholder vigtig information om, hvad der sker på kurset i den pågældende uge 2
● Problemløsning i hverdagen • Hvis min bil går i stykker – Henvender mig på et autoværksted og forklarer dem hvad problemet er – Overlader bilen til værkstedet og får den senere tilbage i repareret stand • 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 3
Problemløsning i hverdagen • Samme princip hvis jeg skal sende blomster til min farmor i Svendborg – Jeg henvender mig til min lokale blomsterhandler med en meddelelse, der indeholder information om, hvilke blomster jeg ønsker, samt min farmors adresse, og så sker resten bag kulisserne uden min indblanding – Formodentlig ved at blomsterhandleren videregiver min meddelelse til en blomsterhandler i Svendborg, der sørger for at fremskaffe blomsterne, binde en buket og få dem sendt ud til min farmor 4
Delegering til agenter • Der er forskellige slags agenter – Hver type agent har sine metoder, som er specifikke for netop den service, vedkommende tilbyder – Havde jeg henvendt mig til autoværkstedet med mit blomsterproblem, ville de have svaret, at de ikke har nogen metode til at løse det problem – Omvendt kan blomsterhandleren ikke reparere biler • Løsning af problemet er agentens ansvar – Agenter kan frit anvende en vilkårlig fremgangsmåde til at løse et problem – De skal blot levere en løsning på den type service, de tilbyder – Det giver stor fleksibilitet, at vi andre ikke blander os i agenters måde at løse problemerne på 5
Objektorienteret programmering • I objektorienteret programmering benyttes metaforer fra dagligdagen – Et program er en model, der simulerer (beskriver) opførslen af en del af verden (reel eller imaginær) – OO-modellering beskriver virkeligheden ved hjælp af: • Klasser modellerer begreber (fx. Menneske) • Objekter er instanser af klasser (fx. Peter Hansen, Sofus Arndt, …. ) Lidt historik: Ovenstående definitioner stammer fra sproget Simula 67 og er dermed næsten 50 år gamle Kristen Nygaard (1926 -2002) • grundlægger af objektorienteret modellering og programmering (sammen med Ole-Johan Dahl) • gæsteprofessor på Aarhus Universitet i en årrække, hvor han havde stor betydning for opbygningen af datalogi • Nygaard-bygningen i IT-parken er opkaldt efter Kristen 6
● UML: Et grafisk specifikationssprog • Diagramtyper – – Klassediagrammer Sekvensdiagrammer Objektdiagrammer (senere) … Klassediagram Sekvensdiagram 7
Eksempler på modellering • I det følgende skal vi se, hvordan forskellige systemer kan opdeles i klasser – der hver har deres helt specifikke metoder – Blomsterhandel – Mekanikerværksted – Studieadministration – Hospital (med elektroniske patientjournaler) – Musikafspiller (f. eks. i. Tunes) 8
Forskellige typer agenter (blomster) Bud Blomsterhandler levér bind. Buket 1 * bring. Ud overbring indbetal UML klassediagram STRUKTUR (statisk) 9
Interaktion mellem agenter (blomster) Mig Alexandra Blomster Quist Blomster Bud Johnny Farmor levér(b, a) bind. Buket(b) UML Sekvensdiagram OPFØRSEL (dynamisk) bring. Ud(b, a) overbring(b, a) 10
Forskellige typer agenter (værksted) I-Mekaniker reparer(bil) Værkfører * 1 fix(bil) skriv. Faktura E-Mekaniker 1 * reparer(bil) check. Karburator reparer. Karburator * 1 CPUTester UML klassediagram test. CPU(bil) STRUKTUR (statisk) 11
Interaktion mellem agenter (værksted) Mig Værkfører fix(bil) I-Mekaniker reparer(bil) CPUTester E-Mekaniker test. CPU(bil) check Karburator UML Sekvensdiagram OPFØRSEL (dynamisk) skriv. Faktura reparer Karburator 12
● Oprettelse af objekter og metodekald i Blue. J o m De 13
Oprettelse af objekter i Blue. J og Java ≈ 14
Metodekald i Blue. J og Java ≈ 15
● Modellering af studieadministration • Klasser (begreber) Objekter (instanser af begreber) – Studerende (Rasmus, Stine, Søren, . . . ) – Fag (d. Int. Prog, Perspektiverende kursus, MM-æstetik, . . . ) – Lærer (Kurt Jensen, …. . ) – Lokale (Aud. E, Aud. F, Koll. G 3, Stibitz-113, . . . ) – Prøveform (mundtlig, skriftlig, projekt, . . . ) – Karakter (bestået, ikke bestået, udeblevet, 7, . . . ) 16
Klassediagram for studieadministration Studerende * 1 Karakter * Lærer * * Fag * 1 Lokale * * Prøveform Domæne Model 17
Modellering af elektroniske patientjournaler (EPJ) • Klasser (begreber) Objekter (instanser af begreber) – 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, . . . ) 18
Klassediagram for EPJ-system Patient * Diagnose * 1 * Læge Behandling. . . Overlæge Domæne Reservelæge Model 19
Subklasser og superklasser • Pilene (med trekantet hoved) angiver, at Overlæge og Reservelæge er subklasser af Læge • Omvendt er Læge en superklasse for Overlæge og Reservelæge – En subklasse arver superklassens egenskaber (metoder mv) – Metoderne kan dog ændres (forfines) i subklassen Patient * 1 Læge Overlæge • I værksteds projektet kan I-Mekaniker og E-Mekaniker være subklasser af en Mekaniker klasse – Fælles egenskaber kan så (en gang for alle) defineres i Mekaniker klassen * Diagnose * Behandling. . . Reservelæge 20
Wombat projektet • Wombat. World en subklasse af World • Wombat og Leaf er subklasser af Actor er en abstrakt klasse – Det betyder, at man ikke kan skabe Actor objekter – Actor kan kun bruges til at erklære subklasser 21
Modellering af musikafspiller, f. eks. i. Tunes • Find eksempler på – Klasser (begreber) – Metoder (services) – Attributter (egenskaber) 22
Klassediagram for musikafspiller Playlist add(Playlist p) remove(Playlist p) void import(. . . ) void export(. . . ). . . Track void add(Track t) void remove(Track t) * List<Track> search(String s) void sort() void shuffle() void burn. To. Disc(). . . * duration title artist album rating play. Count last. Played. . . 23
● Afleveringsopgave: Krabbe (Crab) I Greenfoot implementeres et system med 3 klasser • Krabbe (Crab) – Bevæger sig fremad (når act eller run aktiveres) – Drejer, når den rammer kanten af "verden" – Løber i zig-zag (styret af en tilfældighedsgenerator) • Orm (Worm) – Kan ikke gøre noget (andet end at blive spist af en krabbe) • Hummer (Lobster) – Opfører sig på samme måde som krabber – bortset fra at de spiser krabber i stedet for orme 24
Afleveringsopgave Krabbe (Crab) – fortsat Dernæst skal I • Modificere krabben så dens løberetning kan styres via piletasterne på tastaturet ( og ) – Vi har nu et lille computer spil, hvor I styrer en krabbe, som skal spise flest mulige orme, mens den selv undgår at blive spist af de farlige hummere • Tilføje lyde – Krabben siger SLUUUURP, når den æder en orm, og AUUURGH, når den selv bliver ædt af en hummer • Afslutte spillet – Når krabben bliver ædt af en hummer o m De 25
● Opsummering • Problemløsning i hverdagen – Agenter og metoder • UML specifikationssproget – Klassediagrammer – Sekvensdiagrammer • Eksempler på modellering – – – Mekanikværksted Blomsterhandel Studieadministration Patientjournaler på hospital Musikafspiller • Afleveringsopgave: Krabbe (Crab) 26
Indholdet af kurset d. Int. Prog • Objektorienteret programmering – Java (Blue. J og Greenfoot) • Modeldrevet programmering – Programmeringsopgaver tager udgangspunkt i simple OO-modeller (klassediagrammer og sekvensdiagrammer), som realiseres i Java – UML diagrammerne er vores specifikationssprog – Java er vores implementationssprog o m De • To Blue. J projekter – Person (person) – Dato (date) 27
Studiestartsprøve • Gælder alle nye bachelorstuderende – Prøvens hovedformål er at identificere de studerende, der ikke har påbegyndt studiet, så de kan udmeldes inden det officielle sommeroptag opgøres • Mandag den 5. september 2016 vil I modtage en mail på jeres au-mailadresse – Mailen indeholder et link til et spørgeskema, som I skal besvare. – Det er obligatorisk at gennemføre studiestartsprøven, da den bruges til at registrere, om I er studieaktive. – I skal besvare spørgeskemaet inden fredag d. 9. september 2016 kl 12. 00 28
Det var alt for nu…. . … spørgsmål 29
- Slides: 29