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.

Slides:



Advertisements
Lignende præsentationer
Relationer En relation mellem to mængder er en generaliseret funktion
Advertisements

Introduktion til Javascript – Grundlæggende Webdesign, F2004. Introduktion til Javascript.
Notation Oversigt Kapitel 18.
Programmeringsparadigmer.
07 – Kort om OO Introduktion.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Informationsteknologi B-A, HHX, 2005,
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Larman, 2. udgave kap. 11 Grundlæggende Systemudvikling zHvad er systemudvikling ? zHvad er UML ? zHvad er analyse og design ? zHvad er UP ?
04.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Struktur Oversigt, principper og teknikker Kapitel 4.
03.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Klasser Oversigt, principper og teknikker Kapitel 3.
Organisation og omverden
1 Dagens gang Repeter systemvalg Gennemgang af klasser og strukturer (kap. 3+4 OOA+D) Tavle opgave Gruppe opgave til næste gang.
12.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Modelkomponent Oversigt, principper og teknikker Kapitel 12.
Objektorienteret programmering
Introduktion til arkitektur design Arkitektur design handler om at få en forståelse for, hvordan et system skal organiseres og designe den overordnede.
05.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Adfærd Oversigt, principper og teknikker Kapitel 5.
MMP Model og Metode til Programudvikling – MMP 1 Kursusindhold: Modellering af postkontor Objekt Orienteret Programudvikling - OO* Unified Modelling.
Den relationelle model
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.
Fundamentale datastrukturer
Introduktion til databaser (databaser, del 1)
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
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design af interaktionselementer.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design interaktionselementer Analysedokumentet.
Unified Modeling Language
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Systemudvikling – Fra idé til kode.  Jens Bennedsen 2001Multimedie programmering9.2 Begrebsmodellering Problemspecifikke begreber Problem/vision vedrørende.
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
 Jens Bennedsen 2002Objektorienteret systemudvikling To syn på verden Aristotelisk vs. prototypisk syn.
Begrebsmodellering, UML og Java
Objektorienteret programmering – begrebsmodellering
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
Objektorienteret programmering – begrebsmodellering.
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.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Indledende Programmering Uge 6 - Efterår 2006
Interfaces Afkobling af programkomponenter (eksempel: Comparable)
 Jens Bennedsen 2002Objektorienteret systemudvikling Arkitektur.
Objektorienteret analyse og design Ó Bennedsen 2001 Design - part Programmering og systemudvikling Lektion 7 Design - part 2.
Kari Rye Schougaard, Ph.d.-stud. Værktøjer og Teknikker, 2006 A A R H U S U N I V E R S I T E T DATALOGISK INSTITUT Java på 20 minutter (eller lidt mere)
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation.
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
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.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation,
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
 Jens Bennedsen 2001Multimedie programmering3A.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Jens Bennedsen 2002Objektorienteret systemudvikling Begrebsmodellering Hvordan får vi opbygget en domænemodel/begrebsmodel?
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge44 Java til Lingo Klasser, statements og lister.
Tutankhamons Grav Et modellerings eksempel
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
DAIMI, AUIntroducerende objektorienteret programmering11A.1 Destilleret UML Oversættelse fra UML til Java.
Objektorienteret programmering – begrebsmodellering
Eksamen Praktisk prøve.
01.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2001 © Objektorienteret Analyse & Design (OOA&D) Grundbegreber, principper og metode Kapitel 1.
Objecter Introduktion Webintegrator HF1 PHP Object orienteret.
Fænomen og begreb.
Abstraktioner.
Præsentationens transcript:

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

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 Programmerings paradigmer  Det funktionelle paradigme  Program: En funktion mellem input og output f:x → y  Fordele: matematisk velfunderet, formel analyse  Programmeringssprog?  Det procedurale paradigme  Program: Maskininstruktioner som ændrer data  Fordele: Tæt på hvordan hardware virker  Programmeringssprog?

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 paradigme  Shalloway & Trott:  ”centered on the concept of object”  object = ”data with methods” (limiting perspective)  object = ”something with responsibilities” (”new” perspective)  Skandinavisk model:  Et program betragtes som en fysisk model der simulerer opførslen af en imaginær eller reel del af verden.

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 Centrale elementer  Objekter  ”something”  Model  samling af objekter ... men er det bare en vilkårlig samling?  Den skandinaviske model: en model af en del af verden. Hvordan kan man opfatte ”verden”.

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 Begrebsopfattelse  Menneskets forståelse af den fysiske verden beskrives i termer af fænomener og begreber.  Fænomen:  Kan erkendes eller sanses.  Har individuel eksistens.  Begreb:  En abstrakt, generaliseret ide  Samler fænomener med sammenlignelige egenskaber og karakteristika.

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 Eksempel  Den familie vi bor sammen med har en lille pige på 2.  kan sanses og erkendes (af og til voldsomt!)  har individuel eksistens  … er et fænomen  Begrebet ’Barn’ (eller ’2-årig’)  dækker over en stor mængde fænomener med sammenlignelige egenskaber.

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 Begreber  Begreber har af tre egenskaber  Designation (benævnelse) Den samling af navne under hvilke begrebet er kendt  Ekstension (udbredelse/udstrækning) Den samling fænomener som begrebet dækker  Intension (beskrivelse) En samling egenskaber som karakteriserer fænomenerne i begrebets ekstension

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 Eksempler på begreber Designation EkstensionIntension Barn Bil Rektangel Mad

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 Aristotelisk begrebsopfattelse  Karakteristik  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  Findes inden for veletablerede fagområder som matematik, fysik, zoologi, botanik

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 Prototypisk begrebsopfattelse  Karakteristik  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 findes overalt

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 Relationer  Fænomener og begreber er ofte relaterede. Udtrykkes i relationer.  Relationer bruges til at strukturere og organisere viden om vores omverden.  Typer af relationer:  Klassifikation  Generalisering  Associering  Aggregering og komposition

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 Relationer  Klassifikation:  mellem et fænomen og et begreb  eks: Vera klassificeres som et barn  modsatte relation: eksemplificering  Generalisering:  mellem begreber  eks: pattedyr er en generalisering af aber, mus, pindsvin,…  modsatte relation: specialisering

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 Relationer  Associering  mellem begreber (oftest)  eks: en person er associeret et CPR-nummer  en ikke-hierarkisk relation  Aggregering (whole/part)  mellem begreber (oftest)  eks: en menneskekrop består af hoved, torso,...  Komposition  mellem begreber (oftest)  eks: et kapitel består af afsnit

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 Relationer til UML  UML er et visuelt sprog som benyttes til at beskrive modeller.  Alle de beskrevne relationer kan beskrives direkte i UML...

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 Modeller i software  En objekt-orienteret software model modellerer  fænomener som objekter  begreber som klasser af objekter.

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 Øvelse  Argumenter for  at objekter modeller fænomener  at begreber modelleres ved hjælp af klasser  Repræsenterer klasser en prototypisk eller aristotelsk begrebsopfattelse?

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 Software Objekter  Et objekt er karakteriseret ved tilstand og opførsel.  Objektet har en øjeblikkelig tilstand under en programudførsel.  Tilstandsrum: mængden af mulige tilstande for objektet.  Tilstandsrummet er defineret eksplicit via klassedefinitionens mængde af attributter.

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 Øvelse  Angiv tilstandsrummet for et objekt af klassen  Indeholder tilstandsrummet tilstande som kan karakteriseres som ’ulovlige’?  Hvad betyder ’ulovlig’ egentlig?  Kan man indskrænke tilstandsrummet således at kun ’lovlige’ tilstande er mulige? public class Person { String CPR; String Name; }

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 Relatering  Et program:  En fysisk model  Simulerer opførslen af en imaginær eller reel del af verden.  Objekter:  ’Delene’ i den fysiske model, ligesom metalstænger, motorer, og plastflader er det i modelhelikopteren.  Så mangler vi: simulerer opførsel

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 Opførsel  Objekter har opførsel (behaviour): de kan gøre noget.  Opførsel er et helt centralt begreb idet det jo netop er program afviklingen som genererer en værdi hos brugerne.

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 Alternativ definition  Alternativ definition af objekt- orientering:  A program execution is the collective behaviour of a set of collaborating objects.  Fokus er nyt: Systemets ydre synlige opførsel er summen af en masse objekters kollektive opførsel.

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 Eksempel  En lille lommeregner public static void AWTAdvanced() { Calculator model = new AdvancedCalculator(); UserInterface view = new AWTUserInterface(model); model.setUserInterface(view); }

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 Opførsel

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 Inspiration  Dele en større opgave op i mindre og mere overskuelige dele  Uddelegere delopgaver til ”objekter” som så er ansvarlige for deres del.  En velafprøvet model  organisation af arbejdsprocesser i firmaer/institutioner  familielivet  mekaniske produkter

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 Definition af opførsel  Opførselsrum: Definerer et objekts mulige opførsel.  Opførelsesrummet er defineret eksplicit via klassedefinitionens mængde af metoder og disses tilhørende metodekroppe.  Objekter opnår kollektiv opførsel ved at sende beskeder (message-passing) til hinanden. Java: metode-kald (method invocation).

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 Eksempel  … at køre en bil ?

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 Eksempel  … at køre en bil

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 Modellering  At opfatte programmering som modelbygning afspejler sig at vi ofte vil bruge ordet modellere til at betegne processen at designe og konstruere et program.  Et centralt emne i objekt-orienteret programmering er derfor:  hvordan finder vi en passende model?

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 Begrebsmodellering Problemspecifikke begreber Problem/vision vedrørende fænomener Realiserede begreber Objekter abstraktion modellering Domæne (”virkeligheden”/reference) Modelsystem (software systemet)

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 Afsæt i virkeligheden  Figuren udtrykker den oprindelige definition af objekt-orientering.  Et OO program tager afsæt i de fænomener og begreber som findes i den virkelighed, som man ønsker éns IT-system skal virke i.

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 Fordele ved OO  At tage udgangspunkt i ”virkeligheden” har en række fordele  eksisterende fænomener og begreber ændrer sig relativt langsomt over tid  funktionalitetskrav ændrer sig relativt hurtigt  vores program bliver mere robust overfor nye krav når funktionalitet bygger ovenpå en ”virkelighedsnær” model  programmet er lettere at forstå og vedligeholde

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 Diskussion  … men: Et objekt-orienteret program skal mere end blot forsøge at kopiere virkeligheden – det skal skabe en værdi som ligger ud over hvad ”virkeligheden” kan klare.  Øvelse:  Hvilken virkelighed tager et tekstbehandlingssystem udgangspunkt i? Hvilken opførsel tilbyder det ”ud over virkeligheden”?

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 Udfordringen  Udfordringen i objekt-orienteret modellering er:  at finde relevante objekter/klasser  at finde deres indbyrdes relationer  statisk  og dynamisk  at tildele dem opførsels- og tilstandsrum  På en måde så ens program opnår ønskelige kvaliteter

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 Kursus indhold  Teknikker og værktøjer der bruges i større programmer  Programmering af Store Objekt- Orienterede Systemer  Arkitektur, patterns og frameworks  Programmeringsprojekt