Speach UML.docx

16
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

description

UML si WEB

Transcript of Speach UML.docx

Page 1: 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.

Page 2: Speach UML.docx

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.

Page 3: Speach UML.docx

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.

Page 4: Speach UML.docx

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. 

Page 5: Speach UML.docx

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

Page 6: Speach UML.docx

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

Page 7: Speach UML.docx

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.

Page 8: Speach UML.docx

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.

Page 9: Speach UML.docx

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

Page 10: Speach UML.docx

ColdFusion

Ruby on Rails

Perl

Python

Page 11: Speach UML.docx

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.

Page 12: Speach UML.docx

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)