Limbaj de modelare unificat
În ingineria software , UML ( Unified Modeling Language ) este un limbaj de modelare și specificație bazat pe paradigma orientată obiect . Nucleul limbajului a fost definit în 1996 de Grady Booch , Jim Rumbaugh și Ivar Jacobson (numiți „cei trei prieteni”) sub egida Object Management Group (OMG) , un consorțiu care încă gestionează standardul UML.
Istorie
Limbajele pentru modelarea orientată pe obiecte au început să se dezvolte în diferite contexte începând cu anii 1980 . Acestea au fost notații de diferite tipuri, care au făcut posibilă descrierea structurii unui sistem software orientat obiect, în termeni de clase și relații între clase și, eventual, comportamentul său dinamic. Proliferarea acestor notații a dat naștere la ceea ce mai târziu a fost numit „ războaie de metode ”, mai mulți designeri sau organizații adoptând și susținând o anumită notație în detrimentul altora adoptate în altă parte. Pe la mijlocul anilor '90 au început să se contopească diferite metode și limbaje și a început să apară posibilitatea integrării formalismelor principale într-o notație universal acceptabilă.
Printre cele mai populare și răspândite metode și notații ale perioadei s-au remarcat OMT (Object Modeling Technique) de Jim Rumbaugh și așa-numita metodă Booch de Grady Booch , ambii cercetători de la Rational Software . Munca de unificare a început cu ei; Jacobson s-a alăturat mai târziu acestui efort cu casa sa software Objectory . Prima realizare comună a acestei echipe a fost OOSE (Object Oriented Software Engineering) .
În timp ce „cei trei prieteni” au lucrat pentru a-și uni abordările în ceea ce privește analiza și proiectarea orientată pe obiecte, proiectul a fost binevenit sub auspiciile OMG (Object Management Group) , un consorțiu fondat cu scopul de a crea și gestiona standarde în contextul dezvoltarea de software orientat obiect. În 1995, OMG a adunat pe toți metodologii de frunte în domeniu la o întâlnire internațională pentru a discuta notația unificată. În 1996, OMG a emis o cerere de propunere (RFP) pentru această notație. În același an, Booch, Rumbaugh și Jacobson au finalizat versiunile UML de 0,9 și 0,91. Proiectul a fost bine primit de comunitatea internațională și nenumărate organizații mari s-au alăturat companiei Rational pentru a-l continua, de exemplu Digital , Hewlett-Packard , IBM , Microsoft , Oracle și Unisys . În 1997, acest grup extins a lansat UML 1.0, care a fost trimis către OMG ca răspuns la cererea de oferte din anul precedent.
Lansarea 1.1 a UML a contribuit la consolidarea semanticii limbajului și a inclus elemente dintr-o propunere făcută independent către OMG de un grup de IBM , ObjectTime , Ptech și alții.
Descriere
Limba s-a născut cu intenția de a unifica abordările anterioare, datorită celor trei părinți ai UML și a altor persoane, adunând cele mai bune practici din sector și definind astfel un standard industrial unificat. UML joacă un rol foarte important ca „ lingua franca ” în comunitatea de proiectare și programare orientată pe obiecte. O mare parte din literatura de specialitate utilizează UML pentru a descrie soluții analitice și de proiectare într-un mod sintetic și ușor de înțeles pentru un public larg.
Versiunea 2.0 a fost consolidată în 2004 și oficializată de OMG în 2005. UML 2.0 reorganizează multe dintre elementele versiunii anterioare (1.5) într-un cadru extins și introduce multe noi instrumente, inclusiv câteva noi tipuri de diagrame. Deși OMG se referă la UML 2.0 ca versiunea „actuală” a limbajului, tranziția este de fapt încă în curs; aceleași specificații publicate de OMG nu sunt încă complet actualizate și suportul instrumentelor pentru UML 2.0 este, în majoritatea cazurilor, abia schițat. Cea mai recentă versiune este 2.5, finalizată în 2013.
Caracteristici generale
Notarea UML este semi-grafică și semi-formală ; un model UML este alcătuit dintr-o colecție organizată de diagrame conexe, construite prin compunerea de elemente grafice cu semnificație definită formal, elemente textuale formale și elemente de text liber. Are o semantică foarte precisă și o mare putere descriptivă.
Limbajul a fost conceput cu scopul explicit de a facilita suportul software pentru construirea de modele și integrarea acestui suport cu medii de dezvoltare integrate . În special, OMG gestionează o familie de standarde legate de UML, numită Model Driven Architecture (MDA), care își propune să ofere bazele conceptuale și semantice pentru dezvoltarea unor medii avansate de inginerie dus-întors în care modelarea UML poate înlocui de fapt programarea tradițională într-o oarecare măsură. Deși acest obiectiv este încă de atins, multe IDE includ instrumente de modelare în UML și oferă mecanisme automate pentru traducerea diagramelor UML parțiale în cod și invers. În schimb, multe medii software dedicate modelării UML vă permit să generați cod în diferite limbi.
UML este un limbaj general de modelare care oferă concepte și instrumente aplicabile în toate contextele. Deoarece anumite domenii de aplicații sau familii de aplicații pot avea nevoie de concepte suplimentare și specifice, UML oferă un mecanism standard care permite extinderea limbajului. O extensie UML pentru un anumit context se numește profil UML .
Aspecte ale modelării
UML vă permite să descrieți un sistem în conformitate cu trei aspecte principale, pentru fiecare dintre care sunt utilizate diagrame specifice care pot fi apoi legate între ele:
- modelul funcțional ( modelul funcțional) reprezintă sistemul din punctul de vedere al utilizatorului, care descrie comportamentul său așa cum este perceput în exterior, în afară de funcționarea sa interioară. Acest tip de modelare corespunde, în ingineria software-ului , analizei cerințelor . Modelarea funcțională utilizează Diagrame de caz de utilizare .
- modelul obiect reprezintă structura și substructura sistemului folosind conceptele orientate pe obiecte de clasă , obiect , relații între clase și între obiecte. În ingineria software, acest tip de modelare poate fi utilizat atât în faza de analiză a domeniului , cât și în diferitele faze ale proiectului, la diferite niveluri de detaliu. Utilizați diagrame de clasă , diagrame de obiecte și diagrame de implementare .
- modelul dinamic reprezintă comportamentul obiectelor din sistem, adică evoluția lor în timp și dinamica interacțiunilor lor. Este strâns legat de modelul obiect și este utilizat în aceleași cazuri. Folosește diagrame de succesiune , diagrame de activitate și diagrame de statistică .
UML 2.0
Versiunea 2.0 a UML, oficializată de OMG în 2005, are multe caracteristici noi în comparație cu versiunea anterioară 1.5, care este încă cea mai larg susținută de instrumentele de modelare și menționată în literatură.
Printre principalele caracteristici noi ale UML 2.0 se numără:
- extinderea, raționalizarea și revizuirea metamodelului, inclusiv o definiție mai riguroasă a conceptului de stereotip și a mecanismelor de extindere ( profiluri )
- introducerea limbajului formal OCL ca parte integrantă a UML
- numeroase elemente noi pentru construirea diagramelor tradiționale
- câteva noi tipuri de diagrame:
- sprijin pentru abordarea Model Driven Architecture
Unele elemente de model și diagrame și-au schimbat numele; de exemplu, diagramele de colaborare sunt acum numite diagrame de comunicare.
Aplicații
UML nu definește nicio metodă specifică pentru crearea modelelor. Prin urmare, UML poate fi utilizat în contextul diferitelor abordări. OMG menține o metodă standard legată de UML, dar propusă ca specificație independentă, numită RUP .
UML vă permite să creați modele orientate obiect pentru a reprezenta domenii de diferite tipuri. În contextul ingineriei software, este utilizat în principal pentru a descrie domeniul aplicației unui sistem software și / sau comportamentul și structura sistemului în sine. Modelul este structurat în funcție de un set de puncte de vedere care reprezintă diferite aspecte ale lucrului modelat (funcționare, structură, comportament și așa mai departe), atât în scopuri de analiză, cât și de proiectare , menținând trasabilitatea conceptelor utilizate în diferite puncte de vedere. În plus față de modelarea sistemelor software, UML este adesea folosit pentru a descrie domenii de alte tipuri, cum ar fi sisteme hardware , structuri organizaționale corporative, procese de afaceri.
Standardul UML, administrat de OMG, definește o sintaxă și reguli de interpretare; de aceea nu este o metodă de proiectare și din acest motiv poate fi adoptată cu metode diferite sau în alte domenii decât IT.
Structura unui model UML
Un model UML constă din:
- Vizualizări: arată diferitele aspecte ale sistemului prin intermediul unui set de diagrame.
- Diagrame: vă permit să descrieți grafic vizualizările logice.
- Elemente ale modelului: concepte care vă permit să creați diferite diagrame (de exemplu, actori, clase, pachete, obiecte și așa mai departe).
Vizualizările
Stratul cel mai exterior al UML constă din următoarele vizualizări :
- Utilizați Vizualizare caz utilizată pentru a analiza cerințele utilizatorilor. Obiectivul acestui nivel de analiză este de a studia sistemul considerându-l ca o cutie neagră. Este necesar să ne concentrăm asupra a ceea ce trebuie să facă sistemul, abstractizând cât mai mult posibilul mod: este necesar să identificăm toți actorii, cazurile de utilizare și asociațiile acestora. Este important să detaliați cerințele clientului, să le înțelegeți dorințele mai mult sau mai puțin conștiente, să încercați să preziceți posibilele evoluții viitoare etc.
- Design View descrie modul de implementare a funcționalităților sistemului; cu alte cuvinte, analizează sistemul din interior (casetă transparentă).
- Vizualizarea implementării descrie pachetele, clasele și dependențele lor una de cealaltă.
- Vizualizarea proceselor identifică procesele și entitățile care le execută atât pentru o utilizare eficientă a resurselor, cât și pentru a putea stabili executarea paralelă a obiectelor.
- Deployment View arată arhitectura fizică a sistemului și definește poziția componentelor software în structura însăși.
Diagramele clasice (UML 1.x)
Diagrama cazului de utilizare
Use Case Diagrams (UCDs) modelează comportamentul extern al unui sistem în ceea ce privește funcțiile pe care le pune la dispoziția actorilor care interacționează cu aceștia (utilizatori, alte sisteme software etc.). UCD-urile sunt diagrama principală din Vizualizarea cazului de utilizare . În multe modele de dezvoltare de software bazate pe UML, cazurile de utilizare sunt principala viziune a sistemului (procesele „folosite de cazurile de utilizare”).
Diagrama clasei
Diagrama obiectelor
Diagramă statechart
Diagrama de activitate
Diagrama secvenței
Diagrama de comunicare
Notă : Acest tip de diagramă se numea „Diagrama de colaborare” în UML 1.x
Diagrama componentelor
Diagrama de implementare
Relațiile dintre diagrame
Diagrama de clasă și diagramele de interacțiune sunt utilizate pentru a modela implementarea cazurilor de utilizare, în timp ce diagrama de componente și diagrama de implementare vă permit să specificați arhitectura sistemului care va implementa cazurile de utilizare. Un rol specific poate fi jucat de diagramele de stare și de activitate. Puteți utiliza o diagramă de stare pentru a reprezenta evoluția stărilor, adică a condițiilor în care sistemul se poate găsi în timpul executării cazului de utilizare. În plus, puteți reprezenta secvența de pași și condiții care specifică unul sau mai multe scenarii de caz de utilizare cu o diagramă de activitate. Diagramele UML permit modelarea structurii statice și a comportamentului dinamic al unui sistem. Sistemul este reprezentat ca un set de obiecte (module software) care colaborează și reacționează la evenimente externe pentru a efectua activități în beneficiul clienților (utilizatorilor). Anumite modele UML subliniază unele aspecte ale sistemului și ignoră altele care pot fi evidențiate de alte modele. Împreună, toate modelele oferă o descriere completă a sistemului și pot fi clasificate în trei grupe:
- modele de stare (vizualizare statică): descriu structurile de date statice și pot fi obținute folosind de exemplu diagrame de clasă;
- Modele de comportament (vedere operațională): descrie colaborarea dintre obiecte. Există multe tehnici de vizualizare pentru modelarea comportamentului, cum ar fi diagrama de caz de utilizare, diagrama de secvență, diagrama de colaborare și diagrama de activitate;
- modele de schimbare a stării (vizualizare dinamică): descrie stările permise de sistem în timp. Prima tehnică de vizualizare este diagrama de stare, bazată pe un model de evoluție a stărilor unui obiect.
Noi diagrame introduse în UML 2.0
Diagrama pachetului
Diagrama structurii compozite
Diagrama de sincronizare
Diagrama de prezentare generală a interacțiunii
Extensibilitate și profiluri
UML include trei mecanisme care permit utilizatorului să își extindă sintaxa și semantica : stereotipuri , valori etichetate și constrângeri . Aceste instrumente pot fi utilizate în contextul unui model pentru a exprima concepte altfel nereprezentabile în UML sau nereprezentabile într-un mod clar, suficient de abstract și așa mai departe. Profilurile UML sunt colecții de stereotipuri, valori etichetate și constrângeri care specializează limba pentru anumite domenii de aplicații sau pentru utilizarea UML împreună cu anumite tehnologii. Printre profilurile recunoscute oficial de OMG există profiluri pentru CORBA , pentru sisteme distribuite , pentru sisteme cu constrângeri QoS și pentru sisteme în timp real .
Software UML
Există multe instrumente software pentru modelare în UML și multe medii de dezvoltare integrate care includ funcții de modelare în UML.
Instrumente software gratuite
Iată câteva instrumente software gratuite și open source pentru modelarea în UML. Consultați și site-ul oficial UML pentru o listă actualizată. Majoritatea acestor instrumente doar parțial sau nu acceptă versiunea UML 2.0.
- ArgoUML [1] - un instrument UML bazat pe Java
- ATL [2]
- BOUML [3] , licență din nou gratuită de la versiunea 7.0; acceptă, de asemenea, UML 2.0
- Dia [4] - un instrument pentru crearea diagramelor GTK + / GNOME care acceptă și UML [5] .
- Draw.io [6] - software online gratuit pentru diagrame uml.
- Eclipse - cu Eclipse Modeling Framework (EMF) și UML 2.0
- Fujaba [7] - Platforma de dezvoltare UML / Java; există o versiune pentru Eclipse.
- GitMind [8] - Exemple gratuite de diagrame uml gata de utilizat.
- MonoUML - proiect bazat pe platforma Mono , GTK + și ExpertCoder .
- NetBeans [9] - plugin pentru mediul NetBeans al Sunului (nu mai este disponibil de la netbeans 6.7 în continuare)
- StarUML [10] - Platforma open source UML MDA (sub GPL )
- Umbrello UML Modeller - componentă a KDE .
- UML Pad [11] - instrument dezvoltat în wxWidgets ușoare fără instalare (comprimat într-un fișier zip).
- UMLet [12] - un instrument bazat pe Java.
- Violet UML Editor [21] - un instrument vizual bazat pe Java.
Instrumente proprietare
Sunt raportate instrumente proprietare pentru modelarea UML.
- Altova UModel 2005 [13]
- ARTiSAN Studio [14]
- Borland Împreună
- Editor Cadifra UML
- Creately [15]
- Gliffy [16]
- I-Logix Rhapsody [17]
- Jude
- NoMagic MagicDraw [18]
- Lucidchart [19]
- JME modelist
- Microsoft Visio
- Objecteering / UML [20]
- OmniGraffle
- Poseidon pentru UML
- Rational Rose , de la Rational Software , este de departe cel mai cunoscut și cel mai utilizat instrument. Este, de asemenea, primul mediu UML din istorie: doi dintre cei trei părinți ai UML au lucrat inițial pentru Rational Software.
- Rational Software Architect - ca mai sus
- SMARTDRAW [21]
- Sparx Enterprise Architect
- Selectați fabrica de componente [22]
- Software Ideas Modeler [23]
- punga
- Arhitect de sistem telelogic [24]
- Unimodeler [25]
- Paradigma vizuală [26]
Bibliografie
- UML sau către standard ( JPG ), în MCmicrocomputer , n. 180, Roma, Technimedia, ianuarie 1998, pp. 126-128, ISSN 1123-2714 .
- (RO) Grady Booch , James Rumbaugh , Ivar Jacobson , Unified Modeling Language Ghidul utilizatorului, Addison-Wesley 1999
- (EN) Ivar Jacobson, Grady Booch, James Rumbaugh, Unified Software Development Process, Addison-Wesley 1999
- ( RO ) James Rumbaugh, Ivar Jacobson, Grady Booch, Unified Modeling Language Reference Manual , Addison-Wesley 2004 (bazat pe UML 2.0)
- ( EN ) Martin Fowler , Uml Distilled: Aplicarea limbajului standard de modelare a obiectelor , Addison-Wesley 2003 (UML 2.0)
- ( EN ) Craig Larman , Aplicarea UML și tiparele: o introducere în analiza și proiectarea orientate pe obiecte și procesul unificat , Prentice Hall 2005
- (RO) Robert C. Martin , UML pentru programatori Java, Addison Wesley, 2003 (UML și programare în Java )
Elemente conexe
- Programare orientată pe obiecte
- Analiză (inginerie software)
- Modele de design
- Proiect (inginerie software)
- Design orientat spre obiecte
- Model conceptual (informatică)
Alte proiecte
- Wikimedia Commons conține imagini sau alte fișiere pe Limbajul de modelare unificată
linkuri externe
- ( RO ) Site oficial , pe uml.org .
Controllo di autorità | LCCN ( EN ) sh97003561 · GND ( DE ) 4469781-8 · BNF ( FR ) cb131836959 (data) |
---|