Oversigt. Modellering.6. Begrebsmodellering. Begrebsapparat til OO. Fænomener og begreber. Objektorienteret modellering



Relaterede dokumenter
Problemløsning i hverdagen (1) Introduktion til objektorientering. Delegering til agenter. Problemløsning i hverdagen (2)

Introduktion til objektorientering. OO, Java og BlueJ

Forelæsning Uge 1 Torsdag

Objektorienteret programmering

Forelæsning Uge 1 Torsdag

Forelæsning Uge 1 Torsdag

Objects First with Java A Practical Introduction Using BlueJ

Analyse, problemområde, anvendelsesområde

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

Forelæsning Uge 2 Mandag

2 Abstrakte datatyper.

Datalogi OB, Efterår 2002 OH er, forelæsning 3/ forstå datastrukturer og algoritmer (teoretisk forståelse og intuition)

Forelæsning Uge 3 Torsdag

Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5

Klasser. Grundlæggende Programmering med Projekt. Peter Sestoft Tirsdag 2. september (Tak til Jakob Bardram for nogle slides) Dagens begreber

Mattip om. Geometri former og figurer. Du skal lære: Kan ikke Kan næsten Kan. At finde og tegne former og figurer

UML til kravspecificering

Objektorienteret design med arv og polymorfi:

Designmønstre. Grundbegreber fra objektorienteret design

b) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.

Kompetencetræning #2 også til prøven. 31. Januar 2019

4 Basal Objekt-orienteret Programmering I.

Objektorientering. Programkvalitet

Jacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004

Geometri i plan og rum

Forelæsning Uge 3 Torsdag

Geometriske tegning - Fase 2 Fremstille præcise tegninger

Trekanthøjder Figurer

Abstrakte datatyper C#-version

Forelæsning Uge 3 Mandag

Ugeseddel 4 1. marts - 8. marts

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

Forelæsning Uge 2 Mandag

Tabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations

Matematik i stort format Udematematik med åbne sanser

dintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4

Objektorienteret Analyse & Design

KonteXt +5, Kernebog

29 Opsamling af Objekt-orienteret Programmering.

Videregående programmering i Java

Design af genbrugeligt objektorienteret software

Bjørn Grøn. Euklids konstruktion af femkanten

Klasser og objekter. (Afsnit i manualen)

DM502. Peter Schneider-Kamp

Den sproglige vending i filosofien

Polymorfi. Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type. Coercion

ER-modellen. Databaser, efterår Troels Andreasen. Efterår 2002

class Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.

SUP-specifikation, version 2.0. Bilag 14. SUP-Styregruppen. Ordliste (informativ) Udkast af 12. juni Udarbejdet for

Lær Python - Dag 4, modul 2 Objektorienteret programmering

Skriftlig eksamen i Datalogi

Undersøgelser af trekanter

På opdagelse i GeoGebra

Matematik med LEGO WeDo klasse. Lærervejledning Symmetri og drejning. Formål: Aktivitet

Skriftlig eksamen i Datalogi

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 6

Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net)

matematik grundbog basis preben bernitt

class subklasse-navn extends superklasse-navn { } NorwaySpruce har superklassen Spruce, som igen har superklassen Tree.

Tree klassen fra sidste forelæsning

Greenfoot En kort introduktion til Programmering og Objekt-Orientering

Errata pr. 1. sept Rettelser til Ypsilon 1. udgave, 1. oplag

Hvordan organiseres et programs grafik-elementer? OOP e uge kursusgang. Advarsel! Component-objekter

Forelæsning Uge 2 Mandag

Løsningsforslag til Camp Let. Case Beskrivelse: Camp Let

Udvidelse og specialisering. Klassehierarkier. Nedarvningsterminologi. Interfaces. Statiske og dynamiske typer. Polymorfi. Abstrakte klasser.

Miniprojekt2011. Formålet er at lære og indlære god objektorienteret programudvikling og programmering med Java, samt undervejs at opfylde studiekrav.

Udgangspunktet for designet er informationer fra analysen, samt nedenstående justerede tilstandsdiagrammer: Station. nedlagt H. Købt (dato) nedlagt

Datalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning

Lær Python - Dag 4, modul 1 Objektorienteret programmering

UML-Light (Note: UML-Light T133, ver. 2004) Finn Overgaard Hansen, IHA

Lektion 3. Grundlæggende programmering i VR

Videregående Programmering Obligatorisk opgave - 3. semester, efterår 2004

Fundamentale sprogbegreber

Metodehåndbog. Begrebsmodeller, Informationsmodeller og Begrebsdefinitioner. Udarbejdet i fællesskab mellem Udbetaling Danmark/KL/KOMBIT

MAS Trappe Robot. Programmering af Robotter og andre Fysiske Enheder University of Southern Denmark

Objektorienteret Programmering

Objektorienteret programmering!

Klasser og Objekter i Python. Uge 46 Learning Python: kap 15-16,

************************************************************************

DM507 Algoritmer og datastrukturer

Mødet. 6 Geometri. Begreb Eksempel Navn. Parallel. Vinkelret. Linjestykke. Polygon. Cirkelperiferi. Midtpunkt. Linje. Diagonal. Radius.

Videregående Programmering for Diplom-E Noter

CS CHALLENGE MICHAEL I. SCHWARTZBACH MARTIN TOLDAM TORP INSTITUT FOR DATALOGI CS.AU.DK/CHALLENGE AARHUS UNIVERSITET

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11

Det Digitale Fundament. Digitalisering af byggeriet resultater og eksempler ved Gunnar Friborg, bips til årsmøde i Lean Construction DK

Forelæsning Uge 3 Mandag

FFM Matematik pop-up eftermiddag. CFU, UCC 11. Maj 2015

SWC Elementer i klassedefinition

Dynamiske konstruktioner med et dynamisk geometriprogram En øvelsessamling

Forskelle på begrebsmodellering og datamodellering

geometri trin 2 brikkerne til regning & matematik preben bernitt

Grundlæggende Programmering ITU, Efterår Skriftlig eksamen i Grundlæggende Programmering

dintprog Manual Revision: 731 September 30, Introduktion Notation... 3 I Begreber 4 2 Grundbegreber om programmering 4

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002

Eksempel: et ordresystem note 5 Lagdeling s. 1

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

Opgaver hørende til undervisningsmateriale om Herons formel

Forelæsning Uge 3 Mandag

Forelæsning Uge 2 Torsdag

Transkript:

Oversigt Modellering Begrebsmodellering, UML og Java Begrebsapparat til objektorientering Begrebsopfattelser og -modellering Strukturer: specialisering, aggregering, associering Anvendes til organisering af viden om problemområdet Understøttes (i nogen grad) af konstruktioner i OO sprog Modelleringseksempler Abstrakte modeller i UML Implementation i Java Mindre eksempler: bibliotek, biludlejning, terning og raflebæger Case: Biografbookingsystem Modellering.2 Begrebsapparat til OO Begrebsmodellering Objektorienteret programmering á la Nygaard et program betragtes som en fysisk model der simulerer opførslen af en imaginær eller reel del af verden. Problemspecifikke modellering Realiserede Fysisk modellering er baseret på en opfattelse af virkeligheden i termer af og fænomener. abstraktion abstraktion En fysisk model konstrueres ved at modellere som klassser og fænomener som objekter. Problem/vision vedrørende fænomener Objekter Problemdomæne Model Modellering.3 Modellering.4 Objektorienteret modellering Fænomener og Hvilken del af problemdomænet er relevant? Hvordan betragtes denne del af problemdomænet? Hvilke fænomener skal modelleres? Hvordan forstås fænomener i termer af? 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 Hvad er et begreb? Modellering.5 Modellering.6

Om Eksempler på 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 Designation Ekstension Intension Hest Rektangel Mad Modellering.7 Modellering.8 Aristotelisk begrebsopfattelse Prototypisk 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 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 Karakteristik (intension :-) Intensionen omfatter eksempler på egenskaber som fænomener i ekstensionen kan have samt en udvalgt samling af typiske fænomener: prototyper Uldne med uskarpe grænser Stor variation mellem fænomener Ekstensionen er ikke entydigt fastlagt ved intensionen Eksempler (ekstension :-) Overalt! Modellering.9 Modellering.0 Begrebsmodellering, igen Dannelse af PSB Problemdomæne RB Model Identifikation af objekter Klassifikation gruppering Generalisering/specialisering is-a Problemspecifikke (PSB) er oftest prototypiske Realiserede (RB) er Aristoteliske Udfordring i modellering at give aristotelisk definition til prototypiske Aggregering has-a Associering X-a Organisering af viden Modellering. Modellering.2 2

Identifikation af objekter Klassifikation (abstraktion) Sokrates Uden abstraktion ville alt være _??? Miss Daimi Hannibals march over alperne Peter Bastian Sirius 2000 Herbie Ritt Bjerregaard Klassifikation er et middel til at danne og skelne mellem forskellige klasser af fænomener og To former for klassifikation Gruppering Generalisering/specialisering Modellering.3 Modellering.4 Gruppering Generalisering/specialisering (is-a) Samling af ens fænomener til. Samling af til over (generaliserede ). Person Køretøj Peter Sokrates Ritt Miss Daimi Herbie Truck Bus Rejse Personbil Taxa Ambulance Sirius 2000 Hannibals march over Alperne Stationcar Sedan Modellering.5 Modellering.6 Hvad gør et begreb specielt? Specialisering: ekstra egenskaber Transportmiddel Fly Passagerfly Rutefly 4-personers fly Militærfly Skib Køretøj 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! A B B is-a A Intension(B) Intension(A) Ekstension(B) Ekstension(A) Modellering.7 Modellering.8 3

Klasser og objekter Specialisering i UML (is-a) Klasser repræsenterer Objekter repræsenterer fænomener Blomsterhandler levér() bindbuket() indbetal() Alexandra Blomster Quist Blomster Biering Blomster Generelt begreb Specielle Bog forfatter() forlag() ISBN() Udlånsemne udlån(l: låner) indlån() erhjemme() Video producer() format() spilletid() Modellering.9 Modellering.20 Specialisering i Java Associering i UML (X-a) 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() { X = har-lejet 0.. Kunde lej(b: ) aflever(b: ) Behandles først i detaljer i kapitel 8-9 Modellering.2 Modellering.22 Associering i Java Aggregering (has-a) class Car { Car() { class Customer { Collection<Car> cars; Customer() { cars = new ArrayList<Car>(); void rent(car c) { cars.add(c); void derent(car c) { cars.remove(c); Struktur mellem der beskriver et hele og (nogle af) de dele som helet består af. Varighed Afrejsested Rejse Motor Hjul Karosseri Sæde Dør Tag Skærm Transportmiddel Destination Modellering.23 Modellering.24 4

Aggregering i UML og Java Die roll() value() DieCup rollall() sum() class Die { private int eyes; public Die() { public void roll() { public int value() { class DieCup { private Collection<Die> c; public DieCup(int s) { c = new ArrayList<Die>(); for (int i=0; i<s; i++) { Die d = new Die(); c.add(d); public void rollall() { public int sum() { Modellering.25 Aggregering vs. associering Hårfin grænse mellem aggregering og associering Hvis du er i tvivl: benyt associering! Aggregering komponenten eksisterer kun fordi den er en del af aggregatet aggregatet har ansvaret for oprettelse af komponenten når aggregatet ophører med at eksistere, ophører også komponenten med at eksistere Associering objekterne kan ekistere uafhængigt af hinanden relationen er dynamisk (eks: bil udlejet til person) Modellering.26 Eksempel: et biografbookingsystem Begrebsmodel i UML En reservation er til en bestemt forestilling. Forestillinger planlægges ved fastsættelse af film, sal, dato og klokkeslet. Beskrivelse Et biografbookingsystem skal holde styr på reservationer til en biograf med et antal sale. Hver sal har sæder arrangeret i rækker. En kunde kan reservere et eller flere sæder og får et række- og sædenummer retur for hvert sæde der reserveres. Kundens identifikation er telefonnummer. Bookingsystem Kunde Sæde Reservation Forestilling Dato Film Navneord bookingsystem, reservation, biograf, sal, sæde, række, kunde, forestilling, film, dato, klokkeslet, telefonnummer Række Sal Klokkeslet Udsagnsord reservere, planlægge Modellering.27 Modellering.28 Begrebsdannelse og oo-sprog Direkte repræsentation Klassifikation gruppering class PSB RB Specialisering is-a extends Aggregering has-a Reference (attribut) evt. indre klasse Referencesystem Modelsystem Associering X-a Reference (attribut) Objektorienterede programmeringssprog har abstraktionsmekanismer der muliggør en direkte repræsentation af og begrebsstrukturer fra problemområdet. Modellering.29 Modellering.30 5

Systematik i OOP Udvalgte objektorienterede sprog Modellering fra problembeskrivelse til begrebsmodel forfinelse til klassemodel (metodesignaturer og specifikationer) 957 958 960 Fortran Algol Lisp Implementering strukturelt: fra klassemodel til Java-kode (automatik) indmad: attributter og metoder (kreativitet og systematik) 967 97 980 985 995 Pascal Simula BETA C++ Imperative sprog C Java Smalltalk FP Standard ML Miranda Haskell Prolog Problemdomæne Funktionssprog Logiksprog Modellering.3 Modellering.32 6