Diagrami i klasës

Në inxhinieri softuerike, një **diagram i klasës** në Unified Modeling Language (UML) është një lloj është një lloj i strukturës diagramit statik që përshkruan strukturën e sistemit të duke paraqitur klasat e sistemit, atributet e tij, operacionet (ose metodat), dhe lidhjet/relacionet ndërmjet objekteve.

## UML në pergjithësi 
UML është Gjuhë modeluese në fushën e Software Engineering. 
Vegël për vizualizimin,specifikimin, ndërtimin dhe dokumentimin e elementeve të një sistemi softuerik. UML është e përbërë nga 9 diagrame të cilat përdoren për të modeluar një sistem në kohë reale. Nëntë llojet e UML diagrameve janë: Activity diagram, use case diagram, class diagram, object diagram, state diagram, sequence diagram, collaboration diagram, component diagram, deployment diagram.[1]

## Klasat 
Entitetet themelore logjike në UML janë klasat. Klasat percaktojnë të dhënat dhe sjelljen e një njësie strukturore. Ata përdoren si për modelimin e përgjithshëm të një aplikacioni të caktuar ashtu edhe për modelim të detajuar që do të thotë përkthimnin e modeleve në kod të programimit. Klasat përbëhen nga: emri i klasës, të dhënat si dhe operacionet (metodat). Në këtë shembull: Në reshtin e parë është paraqitur emri i klasës, në të dytin janë paraqitur të dhënat e klasës (attribute) si dhe në reshtin e tretë paraqiten metodat së bashku me parametrat.

## Visibiliteti i operacioneve 
Operacionet mund të jenë me qasje:
'+ publike ose të pakufizuar, ' 
'# protedcted - vetëm nënklasa ka qasje dhe janë operacione në të cilën ata bashkëpunojnë dhe krijon varshmëri në nën-klasë nga implementimi i prindit' dhe 
'- private e cila nuk ka qasje nga jashtë dhe shfrytëzohet nga funksionet ndihmëse.'

## Relacionet mes klasave 
Klasat përshkruajnë objekte dhe ata objekte të cilat përshkruhen nga një klasë e caktuar bashkëpunojnë. Relacionet mes klasave janë: Association, Aggregation, Composition, Inheritance.

### Asociacioni 
thumb|350px|right|Shembull i klasave në lidhjen e asociacionit
Asociacionet janë lidhja më e shpeshtë dhe më e zakonshme e cila haset në një klasë diagram. Zakonisht përdoret për te treguar maredheniet ne mes instancave të klasave. Asociacionet mund të jenë unare dhe binare. Tek Asociacionet unare klasa B nuk e njeh klasen A ndërsa tek asociacionet binare te dy klasat e njohin njëra tjetrën.

### Agregacioni 
Është specializim i asociacionit në të cilën një klasë është pjesë e një klase tjetër. Për dallim nga kompozicioni këtu cikli jetësor I klasës përbërëse nuk varet nga cikli jetësor i klasës përmbajtëse .Specifikohet me një “diamante” të zbrazët nga ana e klasës kryesore.

### Kompozicioni 
350px|thumb|right|Shembull i klasave në lidhjen e kompozicionit
Është specializim i aggregation. Cikli jetësor i pjesës përbërëse varet nga cikli jetësor i klasës përmbajtëse që do të thotë nëse të dhënat në klasën kryesore fshihen atëherë në mënyrë automatike Çdo e dhënë tjetër që lidhet me atë klasë do të fshihet (shkaterrohet). Specifikohet me një “diamant” të plotë nga ana e klasës kryesore.

* Trashëgimia – Inheritance

Trashëgimia përdored kur dy klasa janë të ngjashme, por kanë disa dallime ne mes tyre. Gjithashtu mund ta quajme edhe si “is a “ relacion sepse klasa e trasheguar është pjese e klases kryesore.

## Reference 
Dr. Bekim Fetaji (2012), Manuscript, Software Engineering, SEE University, Tetovo, Macedonia

Software Engineering

Donald Bell(2004), UML basics: The class diagram