Speach UML.docx
-
Upload
adriana-marincea -
Category
Documents
-
view
220 -
download
0
description
Transcript of Speach UML.docx
Slide 1.
Scopul acestei lucrări este prezentarea aspectelor teoretice și practice în legătură cu
utilizarea limbajului de modelare în procesul de dezvoltare al aplicațiilor Web, limbaj ce oferă
posibilitarea modelării design-ului sistemului.
Obiectivele sunt:
Evidențierea importanței limbajului de modelare UML;
Prezentarea principalelor aspecte privind profilele UML;
Prezentarea principalelor diagrame UML;
Modelarea unei aplicații Web cu UML 2 folosind metodologia lui Pascal Roques.
Slide 2. Lucrarea de disertație este structurată astfel încât să cuprindă aspecte necesare
pentru a putea realiza înțelege importanța modelării aplicațiilor Web și a UML-ului; și este
structurată astfel:
Capitolul 1. Aspecte generale privind utilizarea UML în dezvoltarea de soft
Capitolul 2: Aplicațiile WEB
Capitolul 3: Studiu de caz: Modelarea unei aplicații web cu UML 2
Slide 3. UML reprezintă un limbaj de modelare, cu scop general în domeniul ingineriei
software, care a fost conceput spre oferirea unui mod standard de a vizualiza design-ul unui
sistem. De asemenea, acest limbaj ne oferă posibilitatea de a reproduce ”pe hârtie” ceea ce
reprezintă un produs în procesul de dezvoltare a unui sistem software.
UML se baza inițial pe notațiile metodei Booch, pe tehnica de modelare-obiect (Object-
modeling technique - OMT) și ingineria software orientată pe obiect (Object-oriented software
engineering - OOSE), acestea fiind integrate într-un singur limbaj.
Unified Modeling Language (UML) oferă o modalitate standard de vizualizare a planurilor
arhitecturale ale unui sistem într-o diagramă, incluzând elemente precum:
activități;
procese de business;
componente logice;
actori;
declarații ale limbajelor de programare;
schemele bazelor de date;
componente software reutilizabile.
Slide 4. Din punct de vedere al modelării unui sistem utilizând limbajul UML, putem lua în
considerare trei perspective:
Perspectiva utilizatorului sau Functional requierements view, care vizează
cerințele sistemului;
Perspectiva statică sau Static structural view, care vizează obiecte, operații, relații
și atribute;
Perspectiva dinamică sau Dynamic behavior view, care vizează interacțiunile între
obiecte, stările interne ale acestora, precum și comportamentul dinamic al sistemului.
UML 2.0 defineşte treisprezece tipuri de diagrame, împărţite în trei categorii și
anume: şase tipuri de diagrame care reprezintă vizual structura aplicațiilor statice; trei reprezintă
tipurile generale de comportament; şi patru reprezintă diferite aspecte ale interacţiunilor.
Categoriile de care tocmai am amintit, sunt:
Diagramele de structura sunt: diagrama de clasă, diagrama de obiect, diagrama
de componentă, diagrama de structură, diagrama de pachet şi diagrama de implementare.
Diagramele de comportament sunt diagrama cazurilor de utilizare, diagrama de activitate și
diagrama de stare.
Diagramele de interacţiune sunt derivate din diagrama de comportament generală, acestea
fiind: diagrama de secvență, diagrama de comunicare, diagrama de ’timing’ și diagrama de
interacțiune.
În continuare voi prezenta pe scurt fiecare tip de diagramă din fiecare categorie.
A. Diagramele de structură definesc arhitectura statică a unui model. Ele sunt folosite pentru a
modela "lucruri", care alcătuiesc un model - clase, obiecte, interfețele și componentele fizice.
În plus, acestea sunt utilizate pentru relaţiile şi dependenţele între elementele modelului.
Diagrama de pachete este utilizată pentru a împărţi modelul în containere logice sau
"pachete" și pentru a descrie interacţiunile dintre ele la un nivel ridicat.
Diagrama de clasă definește blocurile de construcţie de bază ale unui model: tipuri, clase
şi materiale generale, care sunt folosite pentru a construi un model complet.
Diagrama de obiect arată cum instanțele elementelor structurale sunt legate şi folosite în
momentul rulării.
Diagrama de structură oferă un mijloc de stratificare a structurii unui element şi se
concentrează pe detalii interne şi pe relaţii.
Diagrama de componente este folosită pentru a modela structuri complexe sau de cel mai
înalt nivel, de obicei, construită din unul sau mai multe clase, furnizând o interfaţă bine definită.
Diagrama de implementare arată dispoziţia fizică a artefactelor importante într-un cadru
real-lume (real-world).
B. Diagramele de comportament captează diferite tipuri de interacțiune și stări ce apar în timp
ce se execută un model. Aceste diagrame sunt realizate cu scopul vizualizării, specificării,
construirii și documentării aspectelor dinamice ale unui sistem.
Diagrama cazurilor de utilizare este folosită pentru a modela interacțiunile de tip
utilizator/sistem. Această diagramă definește un comportament, precum și cerinţele şi
constrângerile sistemului în formă de script-uri sau scenarii.
Diagrama de activitate are un număr mare de utilizări, de la definirea fluxului programului
de bază, la capturarea punctelor de decizie şi a acţiunilor în orice proces generalizat.
Diagrama de stare este utilizată pentru specificarea posibilelor stări prin care poate trece
un obiect şi modul în care se poate trece de la o stare la alta.
C. Diagramele de interacțiune evidenţiază fluxul de control dintre elementele sistemului,
precum şi fluxul de date dintre acestea.
Diagrama de comunicare arată rețeaua și secvența de mesaje și comunicații între obiecte în
timpul rulării, cum ar fi instanța de colaborare.
Diagrama de secvenţă este strâns legată de diagrama de comunicare și arată secvența
mesajelor schimbate de obiecte folosind o cronologie verticală.
Diagrama de sincronizare(timing) este utilizată pentru a afișa modificarea în timp a stării
sau valorii unuia sau a mai multor elemente. Se poate arăta, de asemenea, interacțiunea dintre
evenimentele temporizate precum și constrângerile de timp și durată care le guvernează.
Diagrama de interacțiune este utilizată pentru vizualizarea comportamentului interactiv a
sistemului.
Slide 5. Profile UML
UML (Unified Modeling Language) a devenit unul dintre cele mai utilizate standarde
pentru specificarea și documentarea sistemelor informatice. Cu toate acestea, faptul că UML este
o notație de uz general, poate limita capacitatea sa de modelare a unor domenii specifice, pentru
care limbajele specializate pot fi mai adecvate. UML oferă un set de mecanisme de extindere
pentru a aborda această problemă, care permit personalizarea și extinderea propriei sintaxe și
semantici, în scopul de a se adapta la anumite domenii de aplicare.
Profile UML au fost definite inițial în versiunea 1 de UML, cu toate că aplicabilitatea lor și
utilizarea pe scară largă de către comunitatea software a fost limitată, deoarece acestea nu aveau
nici o definiție clară sau orientări de utilizare precise.
UML 2.0 prezintă mai multe motive pentru care un dezvoltator de sistem ar trebui să-şi
dorească personalizarea metamodelului său1:
Pentru a avea o sintaxă pentru construcții care nu au o notație (cum este cazul acțiunilor în
UML);
Pentru a avea o notație diferită pentru simbolurile deja existente, mai potrivite pentru
domeniul de aplicare țintă;
Pentru a adăuga semantica ce a rămas nespecificată în metamodel (cum ar fi modul de a da
prioritate la primirea de semnale de la o mașină de stat, precum ambulanţa sau pompierii);
Pentru a adăuga semantica care nu există în metamodel (cum ar fi definirea unui timer sau a
unui ceas);
Pentru a adăuga constrângeri care limitează modul în care se poate folosi metamodelul și
construcțiile sale (cum ar fi interzicerea acțiunilor de a fi executabile în paralel într-o singură
trecere, sau forțarea existenței unor asociații între clase de model);
Pentru a adăuga informații care pot fi folosite atunci când se transformă un model în alt
model sau în cod (cum ar fi de definire a normelor de cartografiere între un model și codul
Java).
Un profil UML este definit ca un pachet UML cu stereotipul ”profile”, care poate extinde
fie un metamodel, fie un alt profil.
Profilele UML sunt definite în termeni de trei mecanisme de bază: stereotipuri,
constrângeri, și valori etichetate.
Un stereotip se definește printr-un nume și de un set de elemente ale metamodelului care
pot fi atașate acestuia.
1 http://profs.info.uaic.ro/~alaiba/mw/index.php?title=Analiz%C4%83_comparativ%C4%83_UML_%E2%80%93_TLA%2B Accesat la data de 23.04.2015
Constrângerile pot fi asociate stereotipurilor, impunând restricții elementelelor
metamodelului corespunzător. În acest fel, un designer poate defini proprietățile unui model
"wellformed".
Constrângerile pot fi exprimate în orice limbaj, inclusiv limbaj natural sau OCL (Object
Constraint Language).
OCL este un limbaj, acum parte a UML, adoptat de OMG pentru a exprima constrângeri și
proprietăți ale elementelor modelului. Exemple de constrângeri includ pre- și post-condiţii ale
operațiunilor, reguli de derivare pentru atribute și asociații, corpul operațiunilor de interogare,
etc. Cuvântul ”Constraint” în numele limbajului provine de la prima versiune, în care doar
constrângerile puteau fi exprimate. Noul OCL 2.0 a evoluat într-un limbaj de interogare mai
expresiv și puternic, a cărui expresivitate este similară cu cea a SQL-ului.
O valoare etichetată este un meta-atribut suplimentar, care este atașat la o meta-clasă a
metamodelului extins cu un profil. Valorile etichetate au un nume și un tip, și sunt asociate cu un
anumit stereotip.
Profiluri permite adaptarea metamodelului UML pentru diferite:
- platforme, cum ar fi J2EE sau .NET
- domenii de activitate.
Un profil UML este un set de mecanisme de extindere, grupate într-un pachet UML cu
stereotipul <<profile>>. Așa cum am menționat mai devreme, aceste mecanisme permit
extinderea sintaxei și semanticii elementelor UML, dar trebuie să respecte semantica lor
originală, de exemplu, profilele UML nu pot schimba semantica elementelor UML. Cu toate
acestea ele pot fi foarte utile atunci când sunt necesare personalizări de UML pentru anumite
domenii de aplicare.
Mai multe profile UML există în prezent și sunt disponibile pentru uz public. Unele dintre
ele au fost chiar adoptate și standardizate de OMG, cum ar fi profilul UML pentru CORBA și
pentru CCM (CORBA Component model), profilul UML pentru eDoc (Enterprise Distributed
Computing Object), profilul UML pentru EAI (Enterprise Application Integration ), precum și
profilul UML pentru programare, performanță, și de timp. Unele profile UML au fost deja
definite, iar acum sunt în curs de aprobare de către OMG, astfel încât numărul de profile OMG
este în creștere rapidă. Unul dintre beneficiile profilelor UML este că acestea pot fi refolosite
direct în orice aplicație.
Alte Profile UML au fost definite de către organizații private și companii de software, și
sunt în prezent folosite în multe domenii de aplicare (de aici devenind standarde de fapt).
Slide 6. Abordari metodologice
UWE sau UML-based Web Engineering reprezintă o abordare ce propune tehnici
adecvate pentru captarea cerințelor precum interviuri, chestionare și liste de verificare, însă nu
oferă sprijin pentru trasabilitate. În ceea ce privește caietul de sarcini, această fază se realizează
prin profilele UML.2
NDT sau Navigational Development Techniques aplică diagramele cazurilor de utilizare
și un set de template-uri pentru cerințe cu o descriere textuală în faza de analiză a cerințelor.3
Trasabilitatea este susținut printr-un set de matrice de trasabilitate care pastreaza relatia dintre o
cerință și artefact lor respective că îndeplinește (Escalona, Mejías et al. 2004).
Faza de analiză a cerințelor și trasabilitatea sunt sprijinite de instrumentul NDT-Suite
(NDT-Profile, NDT-Driver-Quality NDT), care folosește profile pentru a lucra cu instrumentul
CASE, numit Enterprise Architect. Escalona și Koch în ”Metamodeling the Requirements of
Web Systems. Lecture Notes in Business Information Processing”, se amintește faptul că autorii
NDT și UWE au dezvoltat un profil UML pentru cerințele web numit Webre. În combinația
celor două abordări, modelele conceptuale pot fi derivate din caietului de sarcini; principalul
dezavantaj al acestei abordări este lipsa instrumentului de sprijin pentru transformările de tip
model – model.
WebML sau Web Modeling Language este o metodă utilizată pentru proiectarea site-
urilor care permit modelarea la nivel înalt.4 Faza de analiză a cerințelor nu este descrisă în
detaliu, dar în WebML 2009 autorul propune utilizarea UML (Unified Modeling Language), prin 2 Escalona, M. J. & Koch, N., Metamodeling the Requirements of Web Systems. Lecture Notes in Business Information Processing. Vol. 1. 2007. pp. 267-2823 Escalona, M. J. & Aragon, G., NDT. A Model Driven Approach for Web Requirements. Software Engineering, IEEE Transactions on, 2008, pp. 377-390.
utilizarea diagramelor de utilizare și a diagramelor de activități pentru caietul de sarcini. Această
abordare nu are suport de trasabilitate.5
WSDM sau Web Site Design Method. Primele două etape ale acestei abordări (declararea
misiunii și modelare utilizatorului) sunt responsabile pentru gestionarea cerințelor prin tehnici
cum ar fi hărțile conceptuale (de roluri și activități) și dicționarul de date pentru definirea
cerințelor funcționale și de securitate. Cerințele din această abordare sunt specificate într-o formă
textuală. Lipsa de transformări între modele și sprijin pentru trasabilitate, precum și lipsa unui
instrument prototip care susține specificarea cerințelor demonstrează limitările acestei abordări.6
OOWS sau An Object-Oriented Approach for Web Solutions Modeling reprezintă o
abordare orientată obiect pentru soluții de modelare Web ce oferă o fază de colectare a cerințelor
printr-o serie de strategii care implementează FRT (Function Rafinament TREE), cazuri de
utilizare și un set de diagrame (sarcini, caietul de sarcini și descrierea datelor) pentru cerințele de
navigație. Această abordare oferă suport pentru trasabilitate, acest lucru realizându-se printr-un
set de reguli de transformare definite de teoria grafurilor.7 În ceea ce privește instrumentul de
sprijin, această abordare are un mediu numit OOWS-Suite, care este integrat cu instrumentul
OlivaNova de a oferi sprijin pentru faza de colectare a cerințelor. Pentru sprijinirea trasabilității,
această abordare utilizează două instrumente, primul este instrumentul open source numit AGG
(Atribuit Graph Grammar System), iar al doilea este TaskTracer dezvoltat de autori pentru a
genera rapoarte de trasabilitate.8
A-OOH sau Adaptive Object Oriented Hypermedia este o extensie a metodei de
modelare OOH (Object Oriented Hypermedia) adresată utilizatorului.
Slide 7. Tehnologii
4 Ceri, S., Fraternali, P. & Bongio, A., Web Modeling Language (WebML): a modeling language for designing Web sites. Computer Networks, 2000, pp. 137- 157.5 WebML: The Web Modeling Language. 2009, http://www.webml.org6 De Troyer, O. M. F. & Leune, C. J., WSDM: a user centered design method for Web sites. Computer Networks and ISDN Systems, 1998,pp. 85-94.7 Valderas, P. & Pelechano, V. , Introducing requirements traceability support in model-driven development of web applications. Information and Software Technologies, 2009, pp 749-768.8 Valverde, F., Valderas, P. & Fons, J. Year. OOWS Suite: Un Entorno de desarrollo para Aplicaciones Web basado en MDA. In: 11th International Database Engineering & Applications Symposium, 2007 Banff, Canada.
A. Client Side Scripting / Coding - Scripting Client Side este tipul de cod care este executat
sau interpretat de browsere.
Scripting Client Side este, în general, vizibil prin orice vizitator pe un site (din meniul
Vizualizare, faceți clic pe "View Source" pentru a vizualiza codul sursă).
Mai jos sunt câteva tehnologii de scripting Client Side Scripting:
HTML (HyperText Markup Language)
CSS (Cascading Style Sheets)
JavaScript
Ajax (Asynchronous JavaScript si XML)
jQuery (JavaScript Library Framework - frecvent utilizat în dezvoltarea Ajax)
MooTools (JavaScript Library Framework - frecvent utilizat în dezvoltarea Ajax)
Dojo Toolkit (JavaScript Library Framework - frecvent utilizat în dezvoltarea
Ajax).9
B. Server Side Scripting / Coding - Scripting Server Side este tipul de cod care este executat
sau interpretat de serverul de web.
Scripting Server Side nu este vizibil sau accesibil pentru orice vizitator sau publicului larg.
Mai jos sunt tehnologiile cele mai utilizate pentru Server Scripting Side:
PHP
Zend Framework
ASP
ASP.NET
9 Bernard Kohan, Guide to Web Application Development, http://www.comentum.com/guide-to-web-application-development.html
ColdFusion
Ruby on Rails
Perl
Python
Slide 12. În urma realizării acestei lucrări am ajuns la concluzia că UML este un limbaj de
modelare cu posibilitatea de a modela diferite funcționalități ale unei aplicații Web și care, prin
diferite instrumente dedicate, poate oferi un cod sursă pentru aplicație, în cazul în care se dorește să
se implementeze aplicația.
UML reprezintă un limbaj de modelare, cu scop general în domeniul ingineriei software,
care a fost conceput spre oferirea unui mod standard de a vizualiza design-ul unui sistem.10 De
asemenea, acest limbaj ne oferă posibilitatea de a reproduce ”pe hârtie” ceea ce reprezintă un
produs în procesul de dezvoltare a unui sistem software.
Slide 15. Va multumesc!
10„UML Diagram Software”. ( https://www.edrawsoft.com/UML-Diagrams.php Accesat la data de 13.03.2015)