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  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.2 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

3  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.3 Problemløsning (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

4  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.4 Problemløsning (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.

5  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.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.

6  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.6 Metaforer i OO En af fordelene ved OOP er benyttelsen af metaforer fra dagligdagen. En 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 –Disse ideer melder sig ikke på samme selvfølgelige måde hvis man (dybest set) tænker i termer af lagerceller der indeholder værdier og instruktioner der bruges til at overføre værdier fra celle til celle.

7  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.7 Interaktion mellem agenter MigAlexandra BlomsterQuist BlomsterBud-JohnnyFarmor levér(b,a) indbetal(gebyr) bindBuket(b) bringUd(b) aflever(b)

8  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.8 Forskellige typer agenter BlomsterhandlerBud levér bindBuket indbetal bringUd

9  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.9 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.

10  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.10 Begrebsmodellering Problemspecifikke begreber Problem/vision vedrørende fænomener Realiserede begreber Objekter abstraktion modellering ReferencesystemModelsystem

11  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.11 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?

12  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.12 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

13  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.13 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

14  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.14 Eksempler på begreber Designation EkstensionIntension Hest Bil Firkant Mad

15  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.15 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

16  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.16 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!

17  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.17 Begrebsmodellering, igen Problemspecifikke begreber (PSB) er prototypiske Realiserede begreber (RB) er Aristoteliske Udfordring i modellering –at give aristoteliansk definition til prototypiske begreber ReferencesystemModelsystem RBPSB

18  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.18 Dannelse af begreber Identifikation af objekter Klassifikation –gruppering Generalisering/specialisering –is-a Aggregering –has-a Associering –X-a Organisering af viden...

19  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.19 Identifikation af objekter Sokrates Miss Daimi Hannibals march over alperne Peter Bastian Sirius 2000 Herbie Ritt Bjerregaard

20  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.20 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

21  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.21 Gruppering Samling af ens fænomener til begreber. Person SokratesPeterRitt Bil Miss DaimiHerbie Rejse Sirius 2000Hannibals march over Alperne

22  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.22 Generalisering/specialisering Samling af begreber til overbegreber (generaliserede begreber). Køretøj TruckBilBus Taxa PersonbilAmbulance StationcarSedan is-a

23  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.23 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!

24  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.24 Specialisering: flere egenskaber A B B is-a A Intension(B) Intension(A) Ekstension(B) Ekstension(A)  

25  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.25 Klasser og objekter Klasser repræsenterer begreber Objekter repræsenterer fænomener Blomsterhandler levér() bindBuket() indbetal() Alexandra Blomster Quist Blomster Biering Blomster

26  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.26 Superklasser og subklasser Udlånsemne udlån(l: låner) indlån() erHjemme() Bog forfatter() forlag() ISBN() Video producer() format() spilletid() Generelt begreb Specielle begreber

27  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.27 Klasser i Java class Udlånsemne { void udlån(Låner l) { // kode for udlån } void indlån() { // kode for hjemlån } boolean erHjemme() { // kode for erHjemme } class Bog extends Udlånsemne { String forfatter() {... } String forlag() {... } String ISBN() {... } } class Video extends Udlånsemne { String producer() {... } String format() {... } int spilletid() {... } }

28  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.28 Aggregering (has-a) Struktur mellem begreber der beskriver et hele og (nogle af) de dele som helet består af. Bil MotorHjulKarosseriSæde DørTagSkærm Rejse AfrejsestedDestinationVarighedTransportmiddel

29  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.29 Associering (X-a) Emne udlån(l: låner) indlån() erHjemme() Person registrer(e: emne) afRegistrer(e: emne) 0..*0..1 X = låner / erUdlåntAf

30  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.30 Associering i Java class Person { Vector items; Person() { items = new Vector(); } void register(Item t) { items.add(t); } void unRegister(Item t) { items.remove(t); } abstract class Item { Person borrower; Item() { borrower = null; } boolean inLibrary() { return borrower == null; } void borrow(Person p) { borrower = p; p.register(this); } void returnItem() { borrower.unRegister(this); borrower = null; }

31  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.31 Begrebsdannelse og oop-sprog Klassifikation –gruppering Specialisering –is-a Aggregering –has-a Associering –X-a class extends attribut reference

32  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.32 Direkte repræsentation ReferencesystemModelsystem RBPSB Objektorienterede programmeringssprog har abstraktions- mekanismer der muliggør en direkte repræsentation af begreber og begrebsstrukturer fra problemområdet.

33  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.33 Demonstration Bibliotekssystem –Lånere –Udlånsemner Bøger Video BlueJ –Programmeringsomgivelse til Java –Udviklet specielt til undervisningsbrug –Benyttes på kurset ”Introducerende objektorienteret programmering” (IOOP) i efteråret 2000

34  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.34 BlueJ (1)

35  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.35 BlueJ (2)

36  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.36 BlueJ (3)

37  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.37 BlueJ (4)

38  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.38 BlueJ (5)

39  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.39 BlueJ (6)

40  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.40 BlueJ (7)

41  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.41 BlueJ (8)

42  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.42 BlueJ (9)

43  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.43 BlueJ (10)

44  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.44 BlueJ (11)

45  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.45 BlueJ (12)

46  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.46 BlueJ (13)

47  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.47 BlueJ (14)

48  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.48 BlueJ (15)

49  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.49 Udvalgte OO sprog Fortran Algol Pascal Simula C C++ Smalltalk Java 1960 1957 1967 1971 1980 1985 1995 Lisp 1958 FP Miranda Haskell Standard ML Prolog BETA Imperative sprog Funktions- sprog Logik- sprog

50  Michael E. Caspersen, 2000Introducerende objektorienteret programmering3B.50 Referencer BlueJ (Michael Köllings oop-omgivelse til undervisning) http://www.pscit.monash.edu.au/bluej/ Michael Kölling http://www.pscit.monash.edu.au/~mik/ H. B. Hansen (autoværksted og blomster til farmor) http://www.dat.ruc.dk/~hbh/ http://www.dat.ruc.dk/~hbh/OOP/oop-hvorfor.html Kristen Nygaard (faderen til objektorienteret programmering http://www.ifi.uio.no/~kristen/index.html


Download ppt "Objektorienteret programmering – begrebsmodellering."

Lignende præsentationer


Annoncer fra Google