28
Objektno-orijentisano modelovanje na jeziku UML Aleksandar Milosavljević Dijagrami klasa

UML Dijagrami Klasa1

Embed Size (px)

DESCRIPTION

Uml dijagrami - opste o uml dijagramima

Citation preview

Page 1: UML Dijagrami Klasa1

Objektno-orijentisano modelovanje na jeziku UML

Aleksandar Milosavljević

Dijagrami klasa

Page 2: UML Dijagrami Klasa1

Dijagrami klasa

KlaseAtributiMetodeRelacije

AsocijacijaAgregacija (Kompozicija)ZavisnostGeneralizacija

Page 3: UML Dijagrami Klasa1

Dijagrami klasa

Page 4: UML Dijagrami Klasa1

Asocijacija

Page 5: UML Dijagrami Klasa1

Asocijacija

Page 6: UML Dijagrami Klasa1

Asocijacija

Page 7: UML Dijagrami Klasa1

Asocijacija

Klasa A Klasa B1..*

Page 8: UML Dijagrami Klasa1

Asocijacija

Page 9: UML Dijagrami Klasa1

Agregacija

Page 10: UML Dijagrami Klasa1

Kompozicija

Page 11: UML Dijagrami Klasa1

Generalizacija

Page 12: UML Dijagrami Klasa1

Generalizacija

Page 13: UML Dijagrami Klasa1

Zavisnost

Page 14: UML Dijagrami Klasa1

Preslikavanje dijagrama klasa u C++ kod

Page 15: UML Dijagrami Klasa1

Zadatak 1.

Napisati C++ kod za klasu prikazanu na slici:

Toaster

m_nDarkness : intm_State : ToasterState

StartHeat()LowerToaster()RaiseToaster()

Page 16: UML Dijagrami Klasa1

Zadatak 1. (Toaster.h)

class Toaster{public:int m_nDarkness;

void StartHeat();void LowerToast();void RaiseToast();

private:ToasterState m_State;

};

Page 17: UML Dijagrami Klasa1

Zadatak 1. (Toaster.cpp)

#include "Toaster.h"

void Toaster::StartHeat(){

//...}void Toaster::LowerToast(){

//...}void Toaster::RaiseToast(){

//...}

Page 18: UML Dijagrami Klasa1

Zadatak 2.

Napisati C++ kod za dijagram klasa prikazan na slici:

Left Right+right+left

Page 19: UML Dijagrami Klasa1

Zadatak 2. (LeftRight.h)

class Right;

class Left{public:Right* right;

};

class Right{public:Left* left;

};

Page 20: UML Dijagrami Klasa1

Zadatak 3.

Napisati C++ kod za dijagram klasa prikazan na slici:

Car Wheel

44

+m_aWheel

Page 21: UML Dijagrami Klasa1

Zadatak 3. (Car.h)

#include "Wheel.h"

class Car

{

public:

Wheel m_aWheel[4];

};

Page 22: UML Dijagrami Klasa1

Zadatak 4.

Napisati C++ kod za dijagram klasa prikazan na slici:

Rectangle

Shape

Page 23: UML Dijagrami Klasa1

Zadatak 4. (Rectangle.h)

#include "Shape.h"

class Rectangle : public Shape

{

//...

};

Page 24: UML Dijagrami Klasa1

Primena dijagrama klasa za modelovanje domena

Page 25: UML Dijagrami Klasa1

Zadatak 5.

Dijagramom klasa predstaviti model fakulteta. Svaki student upisuje studije na jednom i samo jednom odseku, a odsek pridapa jednom i samo jednom fakultetu.

Detaljno opisati atribute klase student.

Page 26: UML Dijagrami Klasa1

Zadatak 5. (rešenje)

Fakultet Odsek

1..n1

Student

brojIndeksa : Integerime : Stringprezime : Stringadresa : Stringgodina : Byte

1..n

1

+odsek

1..n

+fakultet

1

+student

+studiraNa

1..n

1

Page 27: UML Dijagrami Klasa1

Zadatak 6.

Dijagramom klasa predstaviti logičku arhitekturu sistema za automatsku prijavu studenata za kurseve.

Studenti biraju 4 primarna kursa.Jedan kurs može pohađati maksimalno 10

studenata. Minimalan broj studenata za kurs je 3. Jedan profesor može da ponudi maksimalno 4

kursa, pri čemu više profesora mogu da ponude isti kurs.

Page 28: UML Dijagrami Klasa1

Zadatak 6. (rešenje)

Algoritam rasporeda

Osoba

ime : String

Profesor

titula : String

Student

smer : String

Forma registracije

PonudaKursa

lokacija : String

Otvori()DodajStudenta(s : Student)

1

0..4

3..10

4

Menadzer registracije

DodajStudenta(k : Kurs, s : Student)

1

0..n

Kurs

naziv

Otvori()DodajStudenta(s : Student)

1..n 1

1..n

1

1..n

11

0..4

3..10

4

1

0..n

1..n 1