You are on page 1of 21

Dizajni dhe UML klasë diagrami

Fesal Baxhaku
fbaxhaku@gmail.com

1
 Çka është UML?
 Pse më duhet? A e përdorin me të vërtet njerzit
UML?

 Çka është UML class diagram?


 Cfarë lloje të informacioneve shkojnë me atë?
 Si ta krijoj?
 Kur duhet ta krijoj?

2
Faza e Dizajnit
 dizajni: specifikimi i strukturës se si një
system softuerik do të shkruhet dhe të
funksionoj, pa e shkruar implementimin
konkret

 Një tranzicion nga “çka" do të bëjë sistemi në


“si" do ta bëjë sistemi atë
 Cilat janë klasat të cilat duhet implementuar brenda
sistemit që plotësojnë kërkesat tona?
 Cilat fusha dhe metoda duhet ti ketë secila klasë?
 Si klasat bashkëveprojnë njëra me tjetrën?

3
Si ti dizajnojmë klasat?
 Identifikimi i klasave nga specifikimi I projektit/kërkesave
 Emrat janë klasa, objekte, fusha potenciale
 Foljet janë metoda potenciale ose përgjegjësi të klasës

 Class-responsibility-collaboration (CRC) cards janë


mjete për nxjerrjen e ideve në fazën e dizajnit për
modelimin e klasave në OOP.

4
Si ti dizajnojmë klasat?
 Shembull i CRC card
 Shkruaj emrat e klasave në indeksin e kartës
 Për secilën klasë listo:
 përgjegjësitë: problemet që duhet zgjidhur; folje të shkurtëra
 Bashkëpunuesit (collaborators): klasat tjera të cilave u
dërgohet mesazh nga kjo klasë

 UML diagramet
 Klass diagramet
 ...

5
UML – Unified Modeling Language

 UML: figura e nje sistemi në OO


 Gjuhët programuese nuk janë mjaftueshëm të abstrahuara për
dizajnim të OO
 UML është nje standard i hapur; shumica e kompanive e
përdorin atë

 Cka është UML?


 Një gjuhë e përshkrimit: me sintaks formale (sikurse
programimi)
 Gjuhë e rregulluar: me përdorim dhe konventa
 Lejohet që të reduktojmë gjërat në UML diagrame nëse nuk
janë të nevojshme nga grupi/supervizori/instruktori

6
Përdorimi i UML
 Një skeq: për komunikim të aspekteve të sistemit
 forëard design: rregullimi i UML para kodimit
 backëard design: rregullimi i UML pas kodimit si dokumentim
 Shpeshëherë realizohet në fleta

 Si blueprint: dizajn komplet që duhet implementuar


 Ndodh që të realizohet me CASE (Computer-Aided Softëare
Engineering) tools

 Si gjuhë programuese: me veglat adekuate, mund të


gjenerohet kodi në mënyrë automatike dhe të
egzekutohet nga UML

7
UML klasë diagramet
 Cka është UML klasë diagrami?
 UML klasë diagrami: një figurë e klasave të një
sistemi OO, fushat dhe metodat, si dhe lidhjet në
mesë të klasave të cilat bashkveprojnë apo
zgjerohen nga njëra tjetra

 Cilat janë disa gjëra të cilat nuk paraqiten në UML klasë


diagramet?
 Detajet se si klasat bashkveprojnë njëra me tjetrën
 Detaje algoritmike, si një sjellje përkatëse duhet
implementuar

8
Diagrami i një klase
 Emri i klasës në krye të diagramit
 Sheno <<interface>> në fillim të interfejsave
 Përdor italics për emrat e klasave abstrakte

 atributet
 Vendoset të gjitha fushat e objekteve

 Veprimet / methodat
 Mund ti menjanojmë metodat (get/set)
 Por mos largoni metodat nga interfejsi
 Nuk duhet vendosur metodat e klasave që zgjerohen

9
Class attributes
 Atributet (fushat, variablat e instances)
 Emri I dukshëm : tipi [count] = vlera

 Visibility (qasja): + public


# protected
- private
~ package (default)
/ derived
 underline atributet statike

 attribute example:
- balance : double = 0.00

10
Veprimet /metodat e klasave
 operations / methods
 visibility name (parameters) : return_type

 visibility:+ public
# protected
- private
~ package (default)
 underline metodat statike
 Tipet e parametrave (name: type)
 menjano return_type ne konstruktor dhe
 kur metoda ka tipin void

 Shembull i metodës:
+ distance(p1: Point, p2: Point): double

11
Komentet
 Paraqiten si shënime, të vendosura tek klasa/metoda
me viza të ndërprera

12
Pyetje?

13
Lidhjet në mesë të klasave
 gjeneralizimi: lidhje e trashegimis
 Trashëgimia në mesë të klasave
 Implementim I interfejsit

 asociacioni: lidhje e perdorimit


 Varesia (dependency)
 Agregacioni (aggregation)
 Kompozimi (composition)

14
Lidhjet e Gjeneralizimit
 Lidhjet e gjeneralizimit (trashegimise)
 Hierarkite të cilat vizatohen nga larte-
poshte me shigjeta te cilat tregojne prindin
 Lloji I vizes/shigjetes dallon, varesisht nese
prindi eshte :
 klase:

vije e plote, shigjeta e zesë


 Klase abstrakte:

vije e plote, shigjeta bardhe


 interface:

vija te nderprera, shigjete e bardhe

 Shpeshe nuk vizatojme shigjetat te cilate


jane triviale/ ligjet qe nenkuptohen, sikurse
vizatimi i klases Objekt si prind.

15
Lidhjet e asociacionit
 Lidhjet e asociacionit
1. multipliciteti (sa jane perdore)
 *  0, 1, apo me shume
 1  saktesisht 1
 2..4  ne mes 2 dhe 4
 3..*  3 apo me shume
2. emri (cfare lidhje ka objekti)
3. navigimi (drejtimi)

16
Lidhjet asocuese
 Nje-me-nje
 Secili student duhet te mbaj saktesisht nje IdCard

 Nje-me-shume
 Nje list e drejtkendshave mund te mbaj shume
drejtkendesha

17
Car

Llojet e asociacionit
1
 agregacioni: “eshte pjese e" 1
aggregation

 Paraqitet me ane te shenjes diamond ne Engine


brendesi e bardhe

 kompozicioni: “teresishte eshte I Book

bere nga" composition


 Version I plote/fuqishem i agregacionit 1
 Pjeset jetojne dhe shkaterrohen me *
teresin dhe paraqitet me ane te shenjes
diamond e plotesuar me ngjyre te zeze Page

 Varesia (dependency): “perdor


perkohesishte"
dependency
 Paraqitet me ane te vizave te nderprera
 Shpesh eshte implementim I
Lottery Random
Detajuar, e jo nje pjese te
Ticket
brendshme te gjendjes se objektit 18
Shembull 1: Klase diagrami

19
Shembulli 2
Multiplicity

Customer
1 Simple
Class Aggregation

Abstract Rental Invoice


Class

Rental Item 1..*


1 0..1

Composition Simple
Generalization
Association

Checkout Screen
DVD Movie VHS Movie Video Game

20
Shembulli 3

StudentBody Student
1 100
- firstName : String
+ main (args : String[]) - lastName : String
- homeAddress : Address
- schoolAddress : Address

+ toString() : String
Address
- streetAddress : String
- city : String
- state : String
- zipCode : long

+ toString() : String

21

You might also like