Professional Documents
Culture Documents
SE - Java VI
SE - Java VI
Fesal Baxhaku
fbaxhaku@gmail.com
1
Çka është UML?
Pse më duhet? A e përdorin me të vërtet njerzit
UML?
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
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
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
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
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
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
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
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:
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
19
Shembulli 2
Multiplicity
Customer
1 Simple
Class Aggregation
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