Gjuha e Unifikuar e Modelimit

Gjuha e unifikuar e modelimit është një gjuhë modelimi vizuale me qëllim të përgjithshëm që synon të sigurojë një mënyrë standarde për të vizualizuar dizajnin e një sistemi. 

UML ofron një shënim standard për shumë lloje diagramesh të cilat mund të ndahen përafërsisht në tre grupe kryesore: diagramet e sjelljes, diagramet e ndërveprimit dhe diagramet e strukturës.

Krijimi i UML fillimisht u motivua nga dëshira për të standardizuar sistemet dhe qasjet e ndryshme të shënimeve në dizajnimin e softuerit. Ai u zhvillua në Rational Software në 1994-1995, me zhvillim të mëtejshëm të udhëhequr prej tyre deri në vitin 1996. See the sample content: look for history

Në vitin 1997, UML u miratua si standard nga Grupi i Menaxhimit të Objekteve (OMG) dhe që atëherë është menaxhuar nga kjo organizatë. Në vitin 2005, UML u publikua gjithashtu nga Organizata Ndërkombëtare për Standardizim (ISO) dhe Komisioni Ndërkombëtar Elektroteknik (IEC) si standardi ISO/IEC 19501 .  Që atëherë standardi është rishikuar periodikisht për të mbuluar rishikimin e fundit të UML. 

Në inxhinierinë e softuerit, shumica e praktikuesve nuk përdorin UML, por në vend të kësaj prodhojnë diagrame joformale të vizatuara me dorë; këto diagrame, megjithatë, shpesh përfshijnë elemente nga UML.  

 Historia 
parapamje|320x320px| Historia e metodave dhe shënimeve të orientuara nga objekti

 Para UML 1.0 
UML ka evoluar që nga gjysma e dytë e viteve 1990 dhe i ka rrënjët në metodat e programimit të orientuara drejt objekteve të zhvilluara në fund të viteve 1980 dhe në fillim të viteve 1990. Afati kohor (shih imazhin) tregon pikat kryesore të historisë së metodave dhe shënimeve të modelimit të orientuar nga objekti.

Ai bazohet fillimisht në shënimet e metodës Booch, teknikën e modelimit të objekteve (OMT) dhe inxhinierinë e softuerit të orientuar nga objekti (OOSE), të cilat i ka integruar në një gjuhë të vetme. 

Rational Software Corporation punësoi James Rumbaugh nga General Electric në 1994 dhe pas kësaj, kompania u bë burimi për dy nga qasjet më të njohura të modelimit të orientuar nga objektet e ditës:  Teknika e modelimit të objekteve të Rumbaugh (OMT) dhe metoda e Grady Booch. Ata u ndihmuan shpejt në përpjekjet e tyre nga Ivar Jacobson, krijuesi i metodës së inxhinierisë softuerike të orientuar drejt objektit (OOSE), i cili iu bashkua atyre në Rational në 1995. 

 UML 1.x 
Nën udhëheqjen teknike të atyre treve (Rumbaugh, Jacobson dhe Booch), në vitin 1996 u organizua një konsorcium i quajtur Partnerët UML për të plotësuar specifikimin e gjuhës së unifikuar të modelimit (UML) dhe ia propozoi atë Grupit të Menaxhimit të Objekteve (OMG) për standardizim. Partneriteti gjithashtu përmbante palë të tjera të interesuara (për shembull HP, DEC, IBM dhe Microsoft ). Drafti UML 1.0 i Partnerëve të UML iu propozua OMG-së në janar 1997 nga konsorciumi. Gjatë të njëjtit muaj, Partnerët UML formuan një grup, i projektuar për të përcaktuar kuptimin e saktë të konstrukteve gjuhësore, i kryesuar nga Cris Kobryn dhe i administruar nga Ed Eykholt, për të finalizuar specifikimin dhe për ta integruar atë me përpjekje të tjera standardizimi. Rezultati i kësaj pune, UML 1.1, iu dorëzua OMG-së në gusht 1997 dhe u miratua nga OMG në nëntor 1997.  

Pas publikimit të parë, u formua një grup pune  për të përmirësuar gjuhën, e cila lëshoi disa rishikime të vogla, 1.3, 1.4 dhe 1.5. 

Standardet që ai prodhoi (si dhe standardi origjinal) janë vërejtur si të paqarta dhe jokonsistente. 

 Shënimi i kardinalitetit 
Ashtu si me bazat e të dhënave Chen, Bachman dhe ISO ER diagramet , modelet e klasave janë specifikuar për të përdorur kardinalitetet "look-cross", edhe pse disa autorë ( Merise,  Elmasri & Navathe,  ndër të tjera  ) preferojnë të njëjtën anë ose "shikoni-këtu" për rolet dhe kardinalitetet minimale dhe maksimale. Studiuesit e fundit (Feinerer  dhe Dullea et al.  ) kanë treguar se teknika "look-cross" e përdorur nga diagramet UML dhe ER është më pak efektive dhe më pak koherente kur zbatohet për marrëdhënie n -are të rendit rreptësisht më të madh se 2.

Feinerer thotë: "Problemet lindin nëse operojmë nën semantikën e vështrimit përtej, siç përdoret për shoqatat UML. Hartmann  heton këtë situatë dhe tregon se si dhe pse dështojnë transformimet e ndryshme.", dhe: "Siç do të shohim në disa faqe te ardhshme, interpretimi i vështrimit përtej paraqet disa vështirësi që pengojnë zgjerimin e mekanizmave të thjeshtë nga shoqatat binare në n -ary."

 UML 2 
Rishikimi kryesor i UML 2.0 zëvendësoi versionin 1.5 në 2005, i cili u zhvillua me një konsorcium të zgjeruar për të përmirësuar më tej gjuhën për të pasqyruar përvoja të reja në përdorimin e veçorive të saj. 

Megjithëse UML 2.1 nuk u lëshua kurrë si specifikim zyrtar, versionet 2.1.1 dhe 2.1.2 u shfaqën në 2007, e ndjekur nga UML 2.2 në shkurt 2009. UML 2.3 u lëshua zyrtarisht në maj 2010.  UML 2.4.1 u lëshua zyrtarisht në gusht 2011.  UML 2.5 u lëshua në tetor 2012 si një version "Në progres" dhe u lëshua zyrtarisht në qershor 2015.  Versioni zyrtar 2.5.1 u miratua në dhjetor 2017. 

Ekzistojnë katër pjesë në specifikimin UML 2.x:

 Superstruktura që përcakton shënimin dhe semantikën për diagramet dhe elementët e modelit të tyre
 Infrastruktura që përcakton metamodelin bazë mbi të cilin bazohet Superstruktura
 Gjuha e kufizimit të objektit (OCL) për përcaktimin e rregullave për elementët e modelit
 Shkëmbimi i Diagramit UML që përcakton se si shkëmbehen paraqitjet e diagrameve UML 2

Deri në UML 2.4.1, versionet më të fundit të këtyre standardeve ishin: 

 UML Superstructure version 2.4.1
 UML Infrastructure version 2.4.1
 Versioni OCL 2.3.1
 UML Diagram Interchange version 1.0.

Që nga versioni 2.5, Specifikimi UML është thjeshtuar (pa Superstrukturë dhe Infrastrukturë), dhe versionet më të fundit të këtyre standardeve janë tani: 

 Specifikimi UML 2.5.1
 OCL version 2.4

Ai vazhdon të përditësohet dhe përmirësohet nga grupi i rishikimit, i cili zgjidh çdo problem me gjuhën. 

 Dizajni 
parapamje|500x500px| Një shembull i komponentëve në një sistem rezervimi udhëtimi
UML ofron një mënyrë për të vizualizuar planet arkitekturore të një sistemi në një diagram, duke përfshirë elementë të tillë si: 

 çdo aktivitet (punë);
 komponentët individualë të sistemit;
 dhe si mund të ndërveprojnë me komponentët e softuerit të tjerë;
 si do të funksionojë sistemi;
 si ndërveprojnë entitetet me të tjerët (komponentët dhe ndërfaqet);
 ndërfaqja e jashtme e përdoruesit .

Edhe pse fillimisht ishte menduar për dokumentacionin e projektimit të orientuar nga objekti, UML është zgjeruar në një grup më të madh të dokumentacionit të projektimit (siç renditet më lart),  dhe është gjetur i dobishëm në shumë kontekste. 

 Metodat e zhvillimit të softuerit 
UML nuk është një metodë zhvillimi në vetvete;  megjithatë, ai ishte projektuar që të ishte në përputhje me metodat kryesore të zhvillimit të softuerit të orientuar drejt objektit të kohës së tij, për shembull, OMT, metoda Booch, Objectory dhe veçanërisht RUP me të cilën fillimisht ishte menduar të përdorej kur filloi puna në Rational. Software.

 Modelimi 
Është e rëndësishme të bëhet dallimi midis modelit UML dhe grupit të diagrameve të një sistemi. Një diagram është një paraqitje grafike e pjesshme e modelit të një sistemi. Seti i diagrameve nuk duhet të mbulojë plotësisht modelin dhe fshirja e një diagrami nuk e ndryshon modelin. Modeli mund të përmbajë gjithashtu dokumentacion që drejton elementet dhe diagramet e modelit (të tilla si rastet e përdorimit të shkruar).

Diagramet UML përfaqësojnë dy pamje të ndryshme të një modeli sistemi: 

 Pamja statike (ose strukturore ): thekson strukturën statike të sistemit duke përdorur objekte, atribute, operacione dhe marrëdhënie. Ai përfshin diagramet e klasave dhe diagramet e strukturës së përbërë .
 Pamja dinamike (ose e sjelljes ): thekson sjelljen dinamike të sistemit duke treguar bashkëpunimet midis objekteve dhe ndryshimet në gjendjet e brendshme të objekteve. Kjo pamje përfshin diagramet e sekuencës, diagramet e aktivitetit dhe diagramet e makinës së gjendjes .

Modelet UML mund të shkëmbehen midis mjeteve UML duke përdorur formatin XML Metadata Interchange (XMI).

Në UML, një nga mjetet kryesore për modelimin e sjelljes është modeli i rastit të përdorimit, i shkaktuar nga OOSE . Rastet e përdorimit janë një mënyrë për të specifikuar përdorimet e nevojshme të një sistemi. Në mënyrë tipike, ato përdoren për të kapur kërkesat e një sistemi, domethënë atë që supozohet të bëjë një sistem. 

 Diagramet 
UML 2 ka shumë lloje diagramesh, të cilat ndahen në dy kategori.  Disa lloje përfaqësojnë informacion strukturor, dhe pjesa tjetër përfaqësojnë lloje të përgjithshme të sjelljes, duke përfshirë disa që përfaqësojnë aspekte të ndryshme të ndërveprimeve . Këto diagrame mund të kategorizohen në mënyrë hierarkike siç tregohet në diagramin e klasës vijuese: 
alt=Hierarchy of UML 2.2 Diagrams, shown as a class diagram|qendër|600x600px| Hierarkia e Diagrameve UML 2.2, e paraqitur si një diagram klase
Të gjitha këto diagrame mund të përmbajnë komente ose shënime që shpjegojnë përdorimin, kufizimin ose qëllimin.

 Diagramet e strukturës 
Diagramet e strukturës paraqesin aspektet statike të sistemit. Ai thekson gjërat që duhet të jenë të pranishme në sistemin që modelohet. Meqenëse diagramet e strukturës përfaqësojnë strukturën, ato përdoren gjerësisht në dokumentimin e arkitekturës së softuerit të sistemeve softuerike. Për shembull, diagrami i komponentëve përshkruan se si një sistem softuer ndahet në komponentë dhe tregon varësitë midis këtyre komponentëve.

 Diagramet e sjelljes 
Diagramet e sjelljes paraqesin aspektin dinamik të sistemit. Ai thekson se çfarë duhet të ndodhë në sistemin që modelohet. Meqenëse diagramet e sjelljes ilustrojnë sjelljen e një sistemi, ato përdoren gjerësisht për të përshkruar funksionalitetin e sistemeve softuerike. Si shembull, diagrami i aktivitetit përshkruan hap pas hapi aktivitetet e biznesit dhe operacionale të komponentëve në një sistem.Përfaqësimi vizual: Përdoruesi i stafit → Sistemi i ankesave: Paraqisni sistemin e ankesave → Sistemi i burimeve njerëzore: Sistemi i burimeve njerëzore për ankesa → Departamenti: caktoni Departamentin e ankesave → Sistemi i ankesave: Përditësoni sistemin e ankesave të zgjidhjes → Sistemi i komenteve: Kërkoni reagime Sistemi i reagimeve → Stafi i përgjigjeve të personelit: Përdoruesi → Sistemi i komenteve: Paraqisni komente këtë përshkrimi mund të përdoret për të vizatuar një diagram sekuence duke përdorur mjete si Lucidchart, Draw.io ose ndonjë softuer të diagramit UML. Diagrami do të kishte aktorë në anën e majtë, me shigjeta që tregojnë sekuencën e veprimeve dhe ndërveprimet midis sistemeve dhe aktorëve siç përshkruhet, ju lutemi, diagrami i sekuencës Drow Diagramet e sekuencës duhet të vizatohen për çdo rast përdorimi për të treguar se si objekte të ndryshme ndërveprojnë me njëri-tjetrin për të arritur funksionalitetin e rastit të përdorimit.

 Artifaktet 
parapamje|320x320px| Komponentët që manifestojnë objekte
Në UML, një artifakt  është "specifikimi i një pjese fizike të informacionit që përdoret ose prodhohet nga një proces zhvillimi softuerësh, ose nga vendosja dhe funksionimi i një sistemi." 

"Shembuj të artefakteve përfshijnë skedarët e modelit, skedarët burimor, skriptet dhe skedarët binare të ekzekutueshëm, një tabelë në një sistem bazë të dhënash, një dorëzues zhvillimi, një dokument të përpunimit të tekstit ose një mesazh poste ." 

Artifaktet janë entitetet fizike që janë vendosur në Nyjet  (dmth. Pajisjet dhe Mjediset Ekzekutuese). Elementë të tjerë UML si klasat dhe komponentët fillimisht manifestohen në artefakte dhe më pas vendosen shembuj të këtyre artefakteve. Artefaktet gjithashtu mund të përbëhen nga objekte të tjera.

 Metamodeling 
parapamje|320x320px| Ilustrimi i objektit meta-objekt
Grupi i Menaxhimit të Objekteve (OMG) ka zhvilluar një arkitekturë metamodelimi për të përcaktuar UML, të quajtur Lehtësia e Meta-Objekteve .  MOF është projektuar si një arkitekturë me katër shtresa, siç tregohet në imazhin në të djathtë. Ai siguron një model meta-meta në krye, të quajtur shtresa M3. Ky model M3 është gjuha e përdorur nga Meta-Object Facility për të ndërtuar metamodele, të quajtura M2-modele.

Shembulli më i spikatur i një modeli meta-objekt të shtresës 2 është metamodeli UML, i cili përshkruan vetë UML. Këto modele M2 përshkruajnë elementet e shtresës M1, dhe kështu modelet M1. Këto do të ishin, për shembull, modele të shkruara në UML. Shtresa e fundit është shtresa M0 ose shtresa e të dhënave. Përdoret për të përshkruar rastet e funksionimit të sistemit. 

Meta-modeli mund të zgjerohet duke përdorur një mekanizëm të quajtur stereotipizimi . Kjo është kritikuar si e pamjaftueshme/e paqëndrueshme nga Brian Henderson-Sellers dhe Cesar Gonzalez-Perez në "Përdorimet dhe abuzimet e mekanizmit stereotip në UML 1.x dhe 2.0". 

 Adoptimi 
Në vitin 2013, UML ishte shitur nga OMG për shumë kontekste, por synonte kryesisht zhvillimin e softuerit me sukses të kufizuar.   "UML truly is ubiquitous"

Është trajtuar, herë pas here, si një plumb argjendi i projektuar, i cili çon në probleme. Keqpërdorimi i UML përfshin përdorimin e tepruar (dizajnimin e çdo pjese të sistemit me të, gjë që është e panevojshme) dhe supozimin se fillestarët mund të dizajnojnë me të. 

Ajo konsiderohet një gjuhë e madhe, me shumë konstruksione . Disa njerëz (duke përfshirë Jacobson ) mendojnë se madhësia e UML-së pengon të mësuarit dhe rrjedhimisht përvetësimin. 

MS Visual Studio hoqi mbështetjen për UML në 2016 për shkak të mungesës së përdorimit. 

Sipas Google Trends, UML ka qenë në një rënie të vazhdueshme që nga viti 2004. 

 Shihni gjithashtu 

 Aplikimet e UML
 Modeli dhe shënimi i procesit të biznesit (BPMN)
 Modeli C4
 Korniza e Arkitekturës së Departamentit të Mbrojtjes
 DOT (gjuha e përshkrimit të grafikut)
 Lista e mjeteve të gjuhës së unifikuar të modelimit
 MODAF
 Testimi i bazuar në model
 Inxhinieri e drejtuar nga modeli
 Analiza dhe modelimi i roleve të orientuara nga objekti
 Gjuha e specifikimit të procesit
 Gjuha e modelimit të sistemeve (SysML)

 Referime 

 Leximi i mëtejshëm 
















 Lidhje të jashtme 


 Current UML specification: OMG Document Number formal/2017-12-05. Object Management Group Standards Development Organization (OMG SDO). December 2017.

[[Kategoria:ISO standarde]]
[[Kategoria:Unified Modeling Language]]

Kategoria:Gjuha e Unifikuar e Modelimit
Kategoria:Diagrame
Kategoria:Standarde ISO
Kategoria:Gjuhë modeluese