Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Begrebsmodellering, UML og Java

Lignende præsentationer


Præsentationer af emnet: "Begrebsmodellering, UML og Java"— Præsentationens transcript:

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


Download ppt "Begrebsmodellering, UML og Java"

Lignende præsentationer


Annoncer fra Google