Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Objektorienteret programmering – begrebsmodellering

Lignende præsentationer


Præsentationer af emnet: "Objektorienteret programmering – begrebsmodellering"— Præsentationens transcript:

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


Download ppt "Objektorienteret programmering – begrebsmodellering"

Lignende præsentationer


Annoncer fra Google