Documente Academic
Documente Profesional
Documente Cultură
TUTORIAL
TEMATIC
LA UNITATEA DE CURS:
TEHNOLOGII AVANSATE DE PROGRAMARE
Grupa: P-1841
Elev (ul/a):
Ciobanu Stanislav
Profesor:
Luncașu G.
Chişinău, 2021
CUPRINS:
4. Concluzie
5. Bibliografie
2
Noțiuni și elemente generale ale
limbajului UML și scopul utilizării acestuia:
De exemplu, într-un interval scurt de timp din 1989 până în 1994, numărul de
instrumente orientate pe obiect a crescut de la o duzină la mai mult de cincizeci. Cu
toate acestea, mulți dezvoltatori au găsit dificil să găsească un limbaj de modelare care
să le satisfacă pe deplin toate nevoile. Drept urmare, a apărut o nouă generație de
metode de dezvoltare, printre care metoda Booch, creată de Jacobson’s Object-Oriented
Software Engineering (OOSE) și dezvoltată de Object Modeling Technique (OMT) a lui
Rambeau, a câștigat o popularitate deosebită. Pe lângă acestea, au existat și alte
tehnologii finalizate, precum Fusion, Shlaer-Mellor și Coad-Yourdon, dar toate aveau nu
numai avantaje, ci și dezavantaje semnificative.
În octombrie 1995, a fost lansată o versiune preliminară a UML (0.8), iar cea mai
recentă versiune este în prezent 2.5.1, care a apărut în decembrie 2017 și a fost
acceptată ca standard ISO international în domeniul metodelor și notațiilor orientate
obiect.
Limbajul UML a fost ales ca standard deoarece are numeroase avantaje, printre
care:
4
permite să descriem sistemul din aproape toate punctele de vedere posibile
și diferite aspecte ale comportamentului sistemului;
Probabil ați atras atenția că am menționat mai sus noțiunea de diagrame UML. Se
pare că este timpul să vă discrifrez ce sunt acestea, deoarece anume pe conceptul de
diagrame se bazează limbajul UML. Așadar, o diagramă în limbajul de modelare UML
este o reprezentare vizuală a unui anumit set de elemente ale unui model de sistem sub
forma unui grafic pe care arce (relații) conectează vârfuri (entități).
5
împiedică pe proiectant să-și definească propriul tip de diagramă pe baza cerințelor
acestei sarcini particulare.
În cadrul notației UML, patru tipuri de primitive grafice sunt utilizate pentru a
construi toate tipurile de diagrame:
pictograme,
rute,
simboluri bidimensionale,
șiruri.
Diagrame structurale:
Diagrama de clasă
Diagrama componentelor
Diagrama de cooperare
Diagrama de implementare
Diagrama obiectului
Diagrama pachetului
Diagrama de profil
6
Diagrame de comportament:
Diagrama de activitate
Diagrama stărilor
Diagrame de interacțiune:
o Diagrama de comunicare
o Diagrama de cooperare
o Diagrama secvenței
o Diagrama de sincronizare
7
În ciuda faptului că UML este un standard destul de răspândit și utilizat, este
adesea criticat pentru următoarele neajunsuri:
Numai codul oglindește codul. După cum spunea succint Jack Reeves,
„Codul este designul”. Conform acestui punct de vedere, este nevoie de o
modalitate mai bună de a scrie software; orice cod generat va fi limitat la
ceea ce poate vedea sau presupune un instrument de interpret UML.
Numai codul oglindește codul. După cum spunea succint Jack Reeves,
„Codul este designul”. Conform acestui punct de vedere, este nevoie de o
modalitate mai bună de a scrie software; orice cod generat va fi limitat la
ceea ce poate vedea sau presupune un instrument de interpret UML.
Încearcă să fie totul pentru toată lumea. UML este un limbaj de modelare
de uz general care încearcă să realizeze compatibilitatea cu toate limbajele
de dezvoltare posibile (ceea ce nu mereu îi reușește).
8
Aplicare practică UML se poate realiza chiar din IDE. Să luăm, de exemplu IntelliJ
Idea ca IDE. Dacă utilizați IntelliJ Idea Ultimate, atunci pluginul „UML Support” va fi
instalat „din cutie”. Acest plugin vă permite să generați automat diagrame de clasă
frumoase. De exemplu, prin Ctrl + N sau elementul de meniu „Navigate” -> „Class”,
accesați clasa ArrayList. Acum, prin meniul contextual lângă numele clasei, selectați
„Diagramă” -> „Afișați pop-up diagramă”. Ca rezultat, vom obține o diagramă frumoasă:
Dar dacă vrei să te desenezi și chiar dacă nu există o versiune Ultimate a IntelliJ
Idea? Dacă folosim IntelliJ Idea Community Edition, atunci nu avem altă opțiune. Pentru
a face acest lucru, trebuie să înțelegem cum funcționează o astfel de diagramă UML. În
primul rând, trebuie să instalăm Graphviz. Este un set de utilități de vizualizare grafică.
Este folosit de pluginul pe care îl vom folosi. După instalare, trebuie să adăugați
directorul bin din directorul Graphviz instalat, la variabila de mediu PATH.
După aceea, în IntelliJ Idea, selectați Fișier -> Setări din meniu. În fereastra „Setări”,
selectați categoria „Plugin-uri”, faceți clic pe butonul „Răsfoiți depozitele” și instalați
pluginul de integrare PlantUML.
@startuml
class ArrayList {
}
class LinkedList {
}
@enduml
Pentru a vedea rezultatul în Idea, selectați „View” -> „Tool Windows” ->
„PlantUML”. Obținem doar două pătrate reprezentând clasele. După cum știm, ambele
clase implementează interfața List. Această relație de clasă se numește realizare. O
săgeată cu o linie întreruptă este folosită pentru a descrie o astfel de conexiune. Să-l
descriem:
interface List
List <|.. ArrayList
List <|.. LinkedList
1
0
List este una dintre clasele secundare ale Collection. Adică moștenește din
Collection. Această relație se numește generalizare. Arată ca o săgeată cu o linie
continuă obișnuită. Să-l descriem:
interface Collection
Collection <|-- List
~Object[] elementData
Acum vrem să arătăm că ArrayList conține câteva obiecte. În acest caz, tipul de link
va fi agregare. Agregatul în acest caz este ArrayList, deoarece contine si alte obiecte.
Alegem agregarea deoarece obiectele din listă pot trăi fără listă: nu sunt părți integrante
ale acesteia. Viața lor nu este legată de durata de viață a listei. Agregat din latină se
traduce prin „asamblat”, adică ceva alcătuit din ceva. De exemplu, în viață, există o
unitate de pompare, care constă dintr-o pompă și un motor. Unitatea în sine poate fi
dezasamblată, lăsând ceva din părțile sale componente. De exemplu, pentru a vinde sau
a pune în altă unitate. Deci așa este și în listă. Și acest lucru este exprimat sub forma unui
romb gol la unitate și a unei linii continue. Să-l descriem după cum urmează:
class Object{
}
ArrayList o- Object
Acum vrem să arătăm că, spre deosebire de ArrayList, clasa LinkedList conține
Node - containere care se referă la datele stocate. În acest caz, nodurile fac parte din
LinkedList în sine și nu pot trăi separat. Node nu este conținut stocat direct, ci conține
doar un link către acesta. De exemplu, când adăugăm o linie la LinkedList, adăugăm un
nou Nod care conține o legătură către acea linie, precum și o legătură către Nodul
anterior și următorul.
1
1
Acest tip de relație se numește Compoziție. Pentru a afișa compozitul (cel format
din piese), este desenat un romb pictat, o linie continuă duce la acesta. Să scriem acum
acest lucru sub forma unei afișari textuale a relației:
class Node{
}
LinkedList *-- Node
class ListIterator
ListIterator <... ArrayList : create
ListIterator <... LinkedList : create
1
2
Puteți detalia atât cât este necesar. toate informațiile suplimentare necesare, pot fi
găsite ușor pe resurse Internet. În plus, nu există nimic supranatural în desenarea unei
astfel de scheme și, atunci când lucrați la sarcinile dvs., o puteți desena rapid cu mâna.
Acest lucru va dezvolta abilitățile de a gândi prin arhitectura aplicației dvs. și vă va ajuta
să identificați defectele din structura clasei devreme, mai degrabă decât atunci când ați
petrecut deja ziua implementând modelul greșit. Cred că acesta este un motiv bun să
încercați să învățați și să aplicați UML.
1
3
Concluzie
Lucrarea dată mi s-a părut un pic mai puțin captivantă, deoarece deja știam
câte ceva despre UML. Însă până la moment nu știam că este atât de complex, și
că este un standard internațional cu numeroase tipuri de diagrame. Mă bucur că
există limbaje speciale de creare a schemelor. Până la inventarea și intrarea în
modă a acestora, toate reprezentările schematice erau desenate manual de către
programatori.
UML ne permite să vizualizăm structura aplicației noastre Java. Cel mai des,
UML se folosește în programare pentru a reprezenta clasele și relațiile dintre ele
(OOP). La fel, cu ajutorul său putem descrie bussines-procese, în limita cărora
lucrează funcția (metoda) care o creăm.
1
4
Bibliografie
1. https://javarush.ru/groups/posts/uml-v-java
2. https://ru.wikipedia.org/wiki/UML
3. https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%B0%D0%B3%D
1%80%D0%B0%D0%BC%D0%BC%D0%B0_(UML)
1
5