Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

Projektovanje i modelovanje

Šesto predavanje

prof. dr Kristijan Kuk

Osnovne akademske studije


Informatika i računarstvo
Relacije između klasa u UML

2 Projektovanje i modelovanje
Zavisnost (dependency) u UML

 Zavisnost između dva elementa postoji ako promene


definicije jednog elementa, tzv. davaoca (supplier),
mogu izazvati promene drugog elementa, tzv.
klijenta (client).

 Razlozi zavisnosti između klasa:


 jedna klasa šalje poruku drugoj
 jedna klasa sadrži drugu klasu
 objekat jedne klase prosleđuje objekat druge klase kao
parametar neke operacije
3 Projektovanje i modelovanje
Implementacija zavisnosti u Javi

Primer 1:
import B;
public class A {
public void method1(B b) { dependency
// . . . Primer 2:
} import B;
public void method2() { public class A {
B tempB = new B(); private B b; // pogrešno!
// . . . public B getB() {
} return b;
} }
}
4 Projektovanje i modelovanje
Asocijacije (associations) u UML

 Asocijacija opisuje neko svojstvo punom linijom


između dve klase, usmerenom od izvorne klase ka
odredišnoj. Ime svojstva je na odredišnom kraju
asocijacije, kao i njena kardinalnost.

 Odredišna klasa određuje tip svojstva.


 Kardinalnost asocijacije može biti definisana na oba
kraja linije.

5 Projektovanje i modelovanje
Implementacija asocijacije u Javi

associations

import B1;
public class A1 {
private B1 b1;
public B1 getB1() {
return b1;
}
}

6 Projektovanje i modelovanje
Asocijacije sa listama u UML
 Razlika između java.util.List i java.util.ArrayList je:
 java.util.List je interfejs i ne može da se konstruišu
objekti
 java.util.ArrayList je klasa koja implementira java.util.List
interfejs

 To znači da smo kreirali listu kao ArrayList objekt, ali u


kom su dostupne samo metode koje su deklarisane u
List intrerfejsu.
 Ako bi se ArrayList klasa proširila novim metodama, one
ne bi mogle da se koriste u objektu katalog.
7 Projektovanje i modelovanje
Implementacija asocijacije u Javi

import java.util.ArrayList;
import java.util.List;
import B1;
associations
public class A1 {
private List b1List;
public A1() {
super();
b1List = new ArrayList();
}
// . . .
}

8 Projektovanje i modelovanje
Agregacija (aggregation) u UML
 Agregacija asocijacije određuje “deo od” vezu
među klasama.
 Postoje dve vrste agregacije:
 Jaka agregacija (kompozicija) -povezuje deo sa celinom
s tim da se deo ne može izostaviti od celine

 Slaba agregacija -povezuje deo sa celinom s tim da se


deo može izostaviti iz celine

9 Projektovanje i modelovanje
Implementacija kompozicije u Javi

import B1;
public class A1 {
composition
private B1[] b1;
// . . .
public B1 getB1(int anIndex) {
return b1[anIndex];
}
}

10 Projektovanje i modelovanje
Primer agregacije i kompozicije
public class Student {
}

public class School {


private Student student;
}
public class Employee {
}
public class Company {
private Employee[] employee;
}
11 Projektovanje i modelovanje
Generalizacija(generalization) u UML
 Generalizacija podrazumeva smeštanje zajedničkih
osobina u opštu klasu koja predstavlja nadtip.
 Sve što važi za klasu koja je nadtip, važi i za klasu
koja je podtip. Generalizacija se realizuje
nasleđivanjem (inheritance). Važne posledice
nasleđivanja su:
 Zemenljivost (substitutability) koja omogućava da se
umesto nadtipa može koristiti objekat bilo kog podtipa te
klase.
 Polimorfizam koji omogućava dobijanje različitih odgovora
ne vodeći računa o pozivanju od strane klijenta.

12 Projektovanje i modelovanje
Implementacija generalizacije u Javi

generalization

import B2;
public class A2 extends B2 {
// . . .
}

13 Projektovanje i modelovanje
Realizacija (realization) u UML

 Generalizacija je veza među klasama kod koje jedna


klasa dijeli strukturu i/ili ponašanje druge klase.

 Podklasa superklase nasljeđuje atribute, metode i


odnose.

14 Projektovanje i modelovanje
Implementacija realizacija u Javi

realization

import B3;
public class A3 implements B3 {
// . . .
}

15 Projektovanje i modelovanje

You might also like