Download præsentationen
Præsentation er lastning. Vent venligst
Offentliggjort afAlma Dalgaard Redigeret for ca. et år siden
1
Objektorienteret programmering – begrebsmodellering
2
Multimedie programmering
Oversigt En introduktion til objektorientering Et perspektiv (Weltanschaung) Agenter, ansvar, beskeder og metoder Begrebsapparat til objektorientering Begrebsmodellering Anvendes til organisering af viden om problemområdet Understøttes af konstruktioner i OO sprog Modelleringseksempel Case: Bøger og kolleger Abstrakt model Implementation i Java Jens Bennedsen 2001 Multimedie programmering
3
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 er det jeg har gjort for at løse mit problem? Fundet en passende agent eller udbyder af service 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 Jens Bennedsen 2001 Multimedie programmering
4
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. Den fysiske realitet, buketten, stammer til syvende og sidst fra gartneren der dyrker blomsterne, men han er næsten helt forsvundet i de overvejelser jeg gør mig når jeg tænker på at give min farmor blomster. Jens Bennedsen 2001 Multimedie programmering
5
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 hvilken teknik de finder for godt, blot de leverer en løsning på problemet – det er deres ansvar. Forskellige typer agenter Agenten er modtager af min meddelelse og dermed en nødvendig betingelse for at problemet bliver løst. Hver 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. Jens Bennedsen 2001 Multimedie programmering
6
Interaktion mellem agenter
Mig Alexandra Blomster Quist Blomster Bud-Johnny Farmor levér(b,a) levér(b,a) bindBuket(b) bringUd(b) aflever(b) indbetal(gebyr) Jens Bennedsen 2001 Multimedie programmering
7
Forskellige typer agenter
Blomsterhandler Bud levér bindBuket indbetal bringUd Jens Bennedsen 2001 Multimedie programmering
8
Multimedie programmering
Begrebsapparat til OO Objektorienteret programmering et program betragtes som en fysisk model der simulerer opførslen af en imaginær eller reel del af verden. Fysisk modellering er baseret på en opfattelse af virkeligheden i termer af fænomener og begreber. En fysisk model konstrueres ved at modellere fænomener som objekter og begreber som klassser af objekter. Jens Bennedsen 2001 Multimedie programmering
9
Begrebsmodellering Referencesystem Modelsystem Problemspecifikke
begreber modellering Realiserede begreber abstraktion abstraktion Problem/vision vedrørende fænomener Objekter Referencesystem Modelsystem Jens Bennedsen 2001 Multimedie programmering
10
Objektorienteret modellering
Hvilken del af problemområdet er relevant? Hvordan betragtes denne del af problemområdet? Hvilke fænomener skal modelleres? Hvordan forstås fænomener i termer af begreber? Hvad er et begreb? Jens Bennedsen 2001 Multimedie programmering
11
Multimedie programmering
Fænomener og begreber Et fænomen er en ting der har en bestemt, individuel eksistens (fysisk eller imaginær) Et begreb er en generaliseret ide af en samling af fænomener baseret på viden om fælles egenskaber ved fænomenerne i samlingen Jens Bennedsen 2001 Multimedie programmering
12
Multimedie programmering
Om begreber Designation (benævnelse) Den samling af navne under hvilke begrebet er kendt Ekstension Den samling fænomener som begrebet dækker Intension En samling egenskaber som karakteriserer fænomenerne i begrebets ekstension Jens Bennedsen 2001 Multimedie programmering
13
Multimedie programmering
Eksempler på begreber Designation Ekstension Intension Hest Bil Firkant Mad Jens Bennedsen 2001 Multimedie programmering
14
Aristotelisk begrebsopfattelse
Karakteristik (intension :-) Intensionen omfatter definerende egenskaber som alle fænomener i ekstensionen skal have og karakteristiske egenskaber som fænomener i ekstensionen kan have Veldefinerede begreber med skarpe grænser Relativt homogene fænomener Ekstensionen er entydigt fastlagt ved intensionen Eksempler (ekstension :-) Findes inden for veletablerede fagområder som matematik, fysik, zoologi, botanik Jens Bennedsen 2001 Multimedie programmering
15
Prototypisk begrebsopfattelse
Karakteristik (intension :-) Intensionen omfatter eksempler på egenskaber som fænomener i ekstensionen kan have samt en udvalgt samling af typiske fænomener: prototyper “Uldne” begreber med uskarpe grænser Stor variation mellem fænomener Ekstensionen er ikke entydigt fastlagt ved intensionen Eksempler (ekstension :-) Overalt! Jens Bennedsen 2001 Multimedie programmering
16
Begrebsmodellering, igen
Referencesystem Modelsystem RB PSB Problemspecifikke begreber (PSB) er prototypiske Realiserede begreber (RB) er Aristoteliske Udfordring i modellering at give aristoteliansk definition til prototypiske begreber Jens Bennedsen 2001 Multimedie programmering
17
Multimedie programmering
Dannelse af begreber Identifikation af objekter Klassifikation gruppering Generalisering/specialisering is-a Aggregering has-a Associering X-a Organisering af viden... Jens Bennedsen 2001 Multimedie programmering
18
Identifikation af objekter
Sokrates Miss Daimi Hannibals march over alperne Peter Bastian Sirius 2000 Herbie Ritt Bjerregaard Jens Bennedsen 2001 Multimedie programmering
19
Klassifikation (abstraktion)
Uden abstraktion ville alt være _ _ _ ??? Klassifikation er et middel til at danne og skelne mellem forskellige klasser af fænomener og begreber. To former for klassifikation Gruppering Generalisering/specialisering Jens Bennedsen 2001 Multimedie programmering
20
Multimedie programmering
Gruppering Samling af ens fænomener til begreber. Person Sokrates Peter Ritt Bil Miss Daimi Herbie Rejse Sirius 2000 Hannibals march over Alperne Jens Bennedsen 2001 Multimedie programmering
21
Generalisering/specialisering (is-a)
Samling af begreber til overbegreber (generaliserede begreber). Køretøj Truck Bil Bus Taxa Personbil Ambulance Stationcar Sedan Jens Bennedsen 2001 Multimedie programmering
22
Hvad gør et begreb specielt?
Transportmiddel Fly Passagerfly Rutefly 4-personers fly Militærfly Skib Køretøj Bil Bus Lastbil Varevogn Pick-up Truck Personbil Privatbil Taxa Cykel Figur Ellipse Cirkel Trekant Ligebenet Ligesidet Retvinklet Firkant Trapez Parallellogram Rektangel Kvadrat Drage Tilføjelse af egenskaber! Jens Bennedsen 2001 Multimedie programmering
23
Specialisering: ekstra egenskaber
B is-a A Intension(B) Intension(A) A B Ekstension(B) Ekstension(A) Jens Bennedsen 2001 Multimedie programmering
24
Interfaces, klasser og objekter
Interfaces repræsenterer begreber, klasser realiserer begreber Objekter repræsenterer fænomener Alexandra Blomster Blomsterhandler Quist Blomster levér() bindBuket() indbetal() Biering Blomster Jens Bennedsen 2001 Multimedie programmering
25
Multimedie programmering
Super- og sub begreber Udlånsemne Generelt begreb Specielle begreber udlån(l: låner) indlån() erHjemme() Bog Video forfatter() forlag() ISBN() producer() format() spilletid() Jens Bennedsen 2001 Multimedie programmering
26
Super- og sub begreber i Java
public interface Video extends Udlånsemne { /** Hvem har produceret denne video?*/ public String producer(); /** Hvilket format har denne video */ public String format(); /** Hvor lang tid varer denne video */ public Time spilletid(); } public interface Udlånsemne { /** * Dette emne udlånes til l. * Emnet skal være hjemme */ public void udlån(Låner l); * Emnet returneres public void indlån(); * Er emnet hjemme public boolean erHjemme(); } public interface Bog extends Udlånsemne { /** Hvad er forlaget */ public String forlag(); /** Hvad er titlen */ public String titel(); /** Hvad er ISBN nummeret */ public String ISBN(); } Jens Bennedsen 2001 Multimedie programmering
27
Multimedie programmering
Hvad kan jeg gøre? Udlånsemne u = new UdlånsemneImpl(…); Bog b = new BogImpl(…); Video v = new VideoImpl(…); Låner l = new LånerImpl(…); u.udlån(l);? u.erHjemme()? u.forfatter()? u.spilletid()? u.ISBN()? v.spilletid()? v.udlån(l);? v.erHjemme()? v.indlån()? b.ISBN()? v.ISBN()? Hvilke egenskaber har Udlånsemne? Bog? Video? Jens Bennedsen 2001 Multimedie programmering
28
Multimedie programmering
Aggregering (has-a) Struktur mellem begreber der beskriver et hele og (nogle af) de dele som helet består af. Bil Motor Hjul Karosseri Sæde Dør Tag Skærm Rejse Afrejsested Destination Varighed Transportmiddel Jens Bennedsen 2001 Multimedie programmering
29
Multimedie programmering
Aggregering i Java class RejseImpl implements Rejse { … private Time varighed; private String afrejsested; private Transport transportmiddel; private String destination; } Time Rejse Jens Bennedsen 2001 Multimedie programmering
30
Multimedie programmering
Associering (X-a) X = låner / erUdlåntAf Emne Person 0..* 0..1 udlån(l: låner) indlån() erHjemme() registrer(e: emne) afRegistrer(e: emne) Jens Bennedsen 2001 Multimedie programmering
31
Multimedie programmering
Associering i Java (1) class UdlånsemneImpl implements Udlånsemne { public Item() { låner = null; } public boolean inLibrary() { return borrower == null; } public void udlån(Låner l) { låner = l; l.register(this); public void hjemlån() { låner.afRegister(this); låner = null; private Låner låner; Jens Bennedsen 2001 Multimedie programmering
32
Multimedie programmering
Associering i Java (2) class LånerImpl implements Låner { public Låner() { emner = new HashSet(); } public void register(Emne t) { emner.add(t); public void afRegister(Emne t) { emner.remove(t); private Set emner; Jens Bennedsen 2001 Multimedie programmering
33
Begrebsdannelse og Java
Klassifikation gruppering Specialisering is-a Aggregering has-a Associering X-a interface/class extends attribut reference Jens Bennedsen 2001 Multimedie programmering
34
Multimedie programmering
Referencer BlueJ (Michael Köllings oop-omgivelse til undervisning) Michael Kölling H. B. Hansen (autoværksted og blomster til farmor) Kristen Nygaard (faderen til objektorienteret programmering Jens Bennedsen 2001 Multimedie programmering
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.