Objektorienteret programmering – begrebsmodellering.

Slides:



Advertisements
Lignende præsentationer
Programmeringsparadigmer.
Advertisements

Systemvalg Oversigt og teknikker Kapitel 2.
Softwarekonstruktion
07 – Kort om OO Introduktion.
Af: Michael Jørgensen. Entity Life Cycle: Hvad er det ?  Er en måde, hvordan man, eventuelt tidligt i programmeringsforløbet, kan bestemme hvordan et.
Introduktion til objektorientering
Selve objektet versus referencen til objektet Nedarvning
Informationsteknologi B-A, HHX, 2005,
Objektorienteret programmering
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
04.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Struktur Oversigt, principper og teknikker Kapitel 4.
1 Dagens gang Repeter systemvalg Gennemgang af klasser og strukturer (kap. 3+4 OOA+D) Tavle opgave Gruppe opgave til næste gang.
Objektorienteret programmering
09.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Kriterier Oversigt, principper og teknikker Kapitel 9.
1 Dagens gang Sidste uges opgaver OA+D: Adfærd Nye opgaver.
Objektorienteret programmering
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
1 Grafalgoritmer I. 2 Plan Grafer - definition - anvendelser - terminologi - eksempler på grafproblemer Grafgennemgang - dybde-først-gennemgang - bredde-først-gennemgang.
Objekter og klasser Rasmus D. Lehrmann DM
Repetition: Introduktion til OOP med C# og .NET
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design af interaktionselementer.
Generelt om abstraktion og modellering Tietgen Skolen.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Objektorienteret programmering – UML2Java.  Jens Bennedsen 2001Multimedie programmering8.2 Indhold Klasser og associering til enkelt objekt –Programmering.
Systemudvikling – Fra idé til kode.  Jens Bennedsen 2001Multimedie programmering9.2 Begrebsmodellering Problemspecifikke begreber Problem/vision vedrørende.
 Jens Bennedsen 2002Objektorienteret systemudvikling To syn på verden Aristotelisk vs. prototypisk syn.
Begrebsmodellering, UML og Java
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
 Bærbak & Caspersen, 2000Introducerende objektorienteret programmering1.1 Turtlemaskinen Arkitektur, instruktionssæt og eksempler.
Objektorienteret programmering – begrebsmodellering
 Jens Bennedsen 2001Multimedie programmering10A.1 Polymorfi og nedarvning Motivation for arv og “mange former”
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java.
DAIMIIntroducerende objektorienteret programmering1B.1 Skildpadder Modeller, objekter og opførsel.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Klassehierarkier Specialisering vha. subklasser. dIntProg, E05Klassehierarkier.2 Oversigt Eksempler på specialisering –Aktør, Koreograf, Skuespiller,
Indledende Programmering Uge 6 - Efterår 2006
I o p o DAIMI, AU, Marts 1999Introducerende objektorienteret programmering5B.1 Et lille banksystem Modellering ved hjælp af UML.
Introduktion til objektorientering OO, Java og BlueJ.
Lærde skildpadder Specialisering af skildpadder – nye kompetencer (metoder/kommandoer)
Uffes Udlejningsservice.  A. Lumbye, 2004 & E. Ernst 2005Introducerende objektorienteret programmeringmodellering Uffes Udlejningsservice Uffe Ellehammer.
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
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.
Interfaces – hvorfor, hvad og hvordan?.  Michael E. Caspersen 2003IOOPInterfaces.2 Oversigt Interfaces, hvorfor –Separering af specifikation (interface)
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2001Multimedie programmering1.1 Skildpadder Modeller, objekter og opførsel.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
DAIMI, AUIntroducerende objektorienteret programmering11A.1 Destilleret UML Oversættelse fra UML til Java.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Objektorienteret programmering – begrebsmodellering
Skildpadder Modeller, objekter og opførsel.  Michael E. Caspersen, 2000Introducerende objektorienteret programmeringSkildpadder.2 Model Modeller bruges.
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
Fænomen og begreb.
Fænomen og begreb.
Fænomen og begreb.
Forelæsning Uge 1 – Torsdag
Præsentationens transcript:

Objektorienteret programmering – begrebsmodellering

 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

 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

 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.

 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.

 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.

 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)

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

 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.

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

 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?

 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

 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

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

 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

 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!

 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

 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...

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

 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

 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

 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

 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!

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

 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

 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

 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() {... } }

 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

 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

 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; }

 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

 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.

 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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