Download præsentationen
Præsentation er lastning. Vent venligst
1
Begrebsmodellering, UML og Java
2
Oversigt Begrebsapparat til objektorientering Modelleringseksempler
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 dIntProg, F08
3
Begrebsapparat til OO Objektorienteret programmering á la Nygaard
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 begreber og fænomener. En fysisk model konstrueres ved at modellere begreber som klassser og fænomener som objekter. dIntProg, F08
4
Problem/vision vedrørende fænomener
Begrebsmodellering Problemspecifikke begreber modellering Realiserede begreber abstraktion abstraktion Problem/vision vedrørende fænomener Objekter Problemdomæne Model dIntProg, F08
5
Objektorienteret modellering
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 begreber? Hvad er et begreb? dIntProg, F08
6
Fænomener og begreber Et fænomen er Et begreb 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 dIntProg, F08
7
Om begreber Designation (benævnelse) Ekstension Intension
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 dIntProg, F08
8
Eksempler på begreber Designation Ekstension Intension Hest Bil
Rektangel Mad dIntProg, F08
9
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 dIntProg, F08
10
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! dIntProg, F08
11
Begrebsmodellering, igen
Problemdomæne Model RB PSB Problemspecifikke begreber (PSB) er oftest prototypiske Realiserede begreber (RB) er Aristoteliske Udfordring i modellering at give aristotelisk definition til prototypiske begreber dIntProg, F08
12
Dannelse af begreber Identifikation af objekter Klassifikation
gruppering Generalisering/specialisering is-a Aggregering has-a Associering X-a Organisering af viden... dIntProg, F08
13
Identifikation af objekter
Sokrates Miss Daimi Hannibals march over alperne Peter Bastian Sirius 2000 Herbie Ritt Bjerregaard dIntProg, F08
14
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 dIntProg, F08
15
Gruppering Samling af ens fænomener til begreber. Person Sokrates
Peter Ritt Bil Miss Daimi Herbie Rejse Sirius 2000 Hannibals march over Alperne dIntProg, F08
16
Generalisering/specialisering (is-a)
Samling af begreber til overbegreber (generaliserede begreber). Køretøj Truck Bil Bus Taxa Personbil Ambulance Stationcar Sedan dIntProg, F08
17
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! dIntProg, F08
18
Specialisering: ekstra egenskaber
B is-a A Intension(B) Intension(A) A B Ekstension(B) Ekstension(A) dIntProg, F08
19
Klasser og objekter Klasser repræsenterer begreber
Objekter repræsenterer fænomener Alexandra Blomster Blomsterhandler Quist Blomster levér() bindBuket() indbetal() Biering Blomster dIntProg, F08
20
Specialisering i UML (is-a)
Udlånsemne Generelt begreb Specielle begreber udlån(l: låner) indlån() erHjemme() Bog Video forfatter() forlag() ISBN() producer() format() spilletid() dIntProg, F08
21
Specialisering i Java Behandles først i detaljer i kapitel 8-9
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() { ... } Behandles først i detaljer i kapitel 8-9 dIntProg, F08
22
Associering i UML (X-a)
X = har-lejet Bil Kunde 0..* ... lej(b: Bil) aflever(b: Bil) ... dIntProg, F08
23
Associering i Java 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); dIntProg, F08
24
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 dIntProg, F08
25
Aggregering i UML og Java
Die 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() { ... } roll() value() * DieCup rollAll() sum() dIntProg, F08
26
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) dIntProg, F08
27
Eksempel: et biografbookingsystem
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 telefon-nummer. En reservation er til en bestemt forestilling. Forestillinger planlægges ved fastsættelse af film, sal, dato og klokkeslet. Navneord bookingsystem, reservation, biograf, sal, sæde, række, kunde, forestilling, film, dato, klokkeslet, telefonnummer Udsagnsord reservere, planlægge dIntProg, F08
28
Begrebsmodel i UML Kunde Reservation Dato 1 * 1 * 1 * * Booking-
system Sæde Forestilling Film * 1 * * * 1 1 Række Sal Klokkeslet * dIntProg, F08
29
Begrebsdannelse og oo-sprog
Klassifikation gruppering Specialisering is-a Aggregering has-a Associering X-a class extends Reference (attribut) evt. indre klasse dIntProg, F08
30
Direkte repræsentation
Referencesystem Modelsystem RB PSB Objektorienterede programmeringssprog har abstraktions-mekanismer der muliggør en direkte repræsentation af begreber og begrebsstrukturer fra problemområdet. dIntProg, F08
31
Systematik i OOP Modellering Implementering
fra problembeskrivelse til begrebsmodel forfinelse til klassemodel (metodesignaturer og specifikationer) Implementering strukturelt: fra klassemodel til Java-kode (automatik) indmad: attributter og metoder (kreativitet og systematik) Problem- domæne dIntProg, F08
32
Udvalgte objektorienterede sprog
1957 Fortran 1958 Lisp Algol 1960 1967 Simula Pascal C 1971 FP 1980 Smalltalk Prolog Standard ML 1985 BETA C++ Miranda Haskell 1995 Java Imperative sprog Funktions- sprog Logik- sprog dIntProg, F08
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.