UML 2 - ima.udg.eduima.udg.edu/~sellares/EINF-ES2/Present1213/UML2.pdf · UML 2 -3- Introducció...
Transcript of UML 2 - ima.udg.eduima.udg.edu/~sellares/EINF-ES2/Present1213/UML2.pdf · UML 2 -3- Introducció...
UML 2 Enginyeria del Software II (EINF)
Jordi Coll Caballero, u1906230
UML 2
-2-
Índex Introducció ........................................................................................................................ 3
Superestructura ............................................................................................................. 4
Infraestructura ............................................................................................................... 5
OCL .............................................................................................................................. 5
Especificació per a l’intercanvi de diagrames (XMI) ................................................... 5
Diagrames de comportament ............................................................................................ 6
Diagrames de casos d’ús............................................................................................... 6
Diagrames d’activitat .................................................................................................... 8
Diagrames d’estat ......................................................................................................... 9
Diagrames d’interacció ................................................................................................... 10
Diagrames de seqüència ............................................................................................. 11
Diagrames de comunicació ......................................................................................... 13
Diagrames de temporització ....................................................................................... 14
Diagrames de revisió de la interacció ......................................................................... 15
Diagrames d’estructura ................................................................................................... 16
Diagrames de classes .................................................................................................. 16
Diagrames d’objectes ................................................................................................. 19
Diagrames de components .......................................................................................... 20
Diagrames de desplegament ....................................................................................... 21
Diagrames d’estructura de composició....................................................................... 22
Diagrames de paquets ................................................................................................. 23
Referències ..................................................................................................................... 24
UML 2
-3-
Introducció
UML (Unified Modeling Language) és un llenguatge gràfic per especificar, visualitzar,
construït i documentar els elements d’un sistema de programari amb orientació a
objectes. Mitjançant UML podem desenvolupar models (abstraccions que capturen
coneixement sobre un problema).
UML va ser creat per l’OMG (Object Management Group), que s’encarrega de revisar
UML i actualitzar-lo amb noves versions. La última revisió és UML 2, que es va
plantejar amb dos objectius principals:
Fer el llenguatge de modelat més extensible.
Permetre la validació i execució de models.
En la versió 2 s’avança cap a la idea d’obtenir codi més complet per ser executat,
mitjançant una millor especificació del comportament. Està conformada per quatre
estàndards, que són la superestructura, la infraestructura, OCL i l’especificació per
intercanvi de diagrames (XMI).
Fig.1 Especificacions principals de UML 2
UML 2
-4-
Superestructura
La superestructura és la definició formal dels elements de UML. És la que utilitzen
normalment els desenvolupadors d’aplicacions. En ella es defineixen els diagrames de
comportament, d’interacció i d’estructura.
Fig.2 Diagrames d'UML 2.
No tots els diagrames tenen la mateixa importància, en el sentit que n’hi ha alguns que
quasi sempre s’utilitzen en els models, mentre que n’hi ha que només s’utilitzen en
casos més puntuals. La taula següent ens mostra, segons algunes referències, quin grau
de prioritat té l’ús dels diferents diagrames.
Diagrama Prioritat
Classes Alta
Components Mitjana
Estructura de composició Baixa
Desplegament Mitjana
Objectes Baixa
Paquets Baixa
Activitat Alta
Comunicació Baixa
Seqüència Alta
Estats Mitjana
Temporització Baixa
Cas d’ús Mitjana
Revisió de la interacció Baixa
UML 2
-5-
Infraestructura
A la infraestructura es defineixen els conceptes centrals i de més baix nivell. Proveeix
un metallenguatge emprat per definir UML en si. Aquesta secció no és directament
rellevant per els usuaris de UML, ja que no s’utilitza a l’hora de dissenyar models.
OCL
Són les sigles angleses de Object Constraint Language, i s’utilitza per establir
restriccions sobre elements d’un model. Ofereix la possibilitat de definir elements com
invariants, precondicions, postcondicions o restriccions. OCL va ser afegit al UML a la
versió 1.1.
Especificació per a l’intercanvi de diagrames (XMI)
La especificació per l’intercanvi de diagrames va ser descrita per facilitar una manera de
compartir models UML entre diferents eines de modelat (eines CASE). En versions
anteriors d’UML s’especificava un Schema XML per definir els elements utilitzats en
un diagrama. XMI (XML Metadata Interchange) és una nova especificació que a més de
donar informació sobre els elements d’un diagrama, conté informació sobre la
representació, de manera que facilita desenvolupar un mateix model amb diferents
aplicacions de modelat.
UML 2
-6-
Diagrames de comportament
Els diagrames de comportament representen característiques de comportament del
sistema o del procés de negoci. Són els diagrames de casos d’ús, d’activitat, d’estat, i
d’interacció.
Diagrames de casos d’ús
Els casos d’ús descriuen quines han de ser les funcionalitats del sistema a desenvolupar.
Descriuen com ha de reaccionar els sistema davant la interacció amb un actor, ja sigui
una persona, un subsistema, un procés, un dispositiu, etc. Representen els requeriments
funcionals, descriuen què ha de fer el sistema i dirigeixen tot el procés de
desenvolupament del sistema.
Una de les maneres d’especificar els casos d’ús és mitjançant una especificació formal,
mitjançant fitxes de cas d’ús.
Fig.3 Fitxa de cas d'ús (especificació formal)
Una altra manera és mitjançant els diagrames de casos d’ús. Aquests diagrames mostren
les relacions entre els actors i els sistema, i els casos d’ús (el cas o motiu per el que
interactuen), és a dir, quines han de ser les funcionalitats del sistema.
Aquests diagrames consten de:
Actors: representats per figures i un nom descriptiu
Casos d’ús: representats per el·lipses amb un nom descriptiu a l’interior.
Comunicacions: representades per línies que uneixen actors i casos d’ús
A més, per simbolitzar la frontera entre el sistema i els actors, es delimiten les el·lipses
dels casos d’ús a dins d’un rectangle, i els actors a fora del rectangle.
Es poden establir relacions d’herència entre actors, fent que un actor hereti tots els rols i
comunicacions del seu actor pare. Es representa amb una fletxa amb punta triangular de
l’actor fill cap al pare.
UML 2
-7-
També es poden establir les següents relacions entre casos d’ús:
Generalització: mostra que un cas d’ús E és un tipus especial d’un cas d’ús G (E
fa tot el que fa G més algun procés específic).
Inclusió: un cas d’ús incorpora el comportament d’altres casos d’ús.
Extensió: un cas d’ús es pot executar com a extensió d’un altre quan es
compleixi alguna condició determinada.
En la següent figura veiem un exemple de diagrama de casos d’ús:
Fig.4 Exemple de diagrama de cas d'ús
UML 2
-8-
Diagrames d’activitat
Aquests diagrames representen els processos de negoci d’alt nivell, inclosos els fluxos
de dades. També es poden utilitzar per modelar lògica complexa o paral·lela dins d’un
sistema. Generalment s’emmarquen dins d’un o diversos casos d’ús. En aquest
diagrama es veu en quin ordre s’executen les parts del procés i com depenen unes de
les altres.
Es representen de la següent manera:
Inicien en un cercle ple, i acaben en un cercle buit amb un altre cercle concèntric
ple.
Les activitats es representen amb rectangles arrodonits.
Les activitats es poden dividir en seccions per mostrar qui és el responsable de
l’activitat.
De cada activitat se’n deriva una transició
que arribarà a un altre estat.
Una transició pot generar diverses
branques excloents, que es triaran segons
un criteri especificat a dins de parèntesis
quadrats. La ramificació es representa
amb un rombe, que té com a entrada una
transició, i com a sortida vàries
transicions.
Vàries transicions es poden unir per anar a
parar a una mateixa activitat. Es
representa com un rombe en el que entren
vàries transicions i en surt una cap al
següent estat.
Una transició pot derivar cap a varis fils
(subconjunts d’estats i transicions)
paral·lels. La bifurcació i la unió dels fils
es representen mitjançant una barra sòlida
que creua perpendicularment.
Fig.5 Exemple de diagrama d'activitat
UML 2
-9-
Diagrames d’estat
Un diagrama d’estat il·lustra com un objecte o sistema es pot moure entre estats que
classifiquen el seu comportament. També reflecteix quins són els esdeveniments que
provoquen aquests canvis d’estat.
Es representen de la següent manera:
Els estats són rectangles arrodonits. Poden arribar a estar dividits per tres
seccions, que contenen el nom de l’estat, el segon per valors característics de
l’objecte o sistema quan es troba en aquest estat, i el tercer per les accions que
s’executen quan s’entra a l’estat, mentre s’hi està, i quan se’n surt.
L’estat inicial es representa amb un cercle ple, i el final amb cercle buit amb un
altre cercle concèntric ple.
Les transicions es representen mitjançant fletxes entre els estats. S’etiqueten les
fletxes amb el nom de l’esdeveniment que provoca la transició. Opcionalment
poden tenir associada acció ( /acció ), i l’acció pot estar subjecta a una condició
([condició]). Així doncs, l’etiqueta d’una transició pot ser esdeveniment
[condició]/acció.
Fig.6 Exemple de diagrama d'estat
UML 2
-10-
Diagrames d’interacció
Els diagrames d’interacció són un subconjunt dels diagrames de comportament.
Defineixen com col·laboren els objectes que configuren un cas d’ús mitjançant el pas de
missatges. Aquests diagrames són els de seqüència, de comunicació, de temporització i
de revisió de la interacció.
Alguns d’aquests diagrames tenen notacions comunes com ara:
Un objecte es representa amb un rectangle. A l’interior del rectangle hi posarem
:NomClasse, o opcionalment NomObjecte:NomClasse. És la mateixa notació
utilitzada en els diagrames d’objectes.
Per passar un missatge d’un objecte a un altre, es fa una fletxa de l’objecte
d’origen al de destí. El missatge té el format
valorRetorn:=nomMissatge(param1:tipusParam1,...,paramN:tipusParamN):
tipusRetorn
En aquests diagrames també podrem trobar actors representats amb ninots, tal i com es
fa en els diagrames de cas d’ús, i classes d’entitat, de control o frontera
Classes d’entitats: contenen objectes que corresponen al mon real,
com poden ser els emmagatzemats a una base de dades. Es
comuniquen a través dels objectes de les classes de control.
Classes de control: s’ocupen de dirigir els diferents camins del
cas d’ús.
Classes frontera: defineixen les interfícies amb els actors.
Generalment seran pantalles de computador.
UML 2
-11-
Diagrames de seqüència
Permeten descriure quins elements o objectes s’envien els missatges, quan s’envien els
missatges i quin temps de vida té cada missatge.
Es representen per columnes. A sobre de cada columna, es situa un element (objecte,
actor...), i d’ell penja una línia discontínua. Els missatges es passen entre línies. El
temps de durada dels processos que es comuniquen amb un missatge es representen amb
un rectangle vertical, a sobre de l’eix vertical de cada objecte.
Fig.7 Exemple de diagrama de seqüència
Es poden usar requadres constructors de diferents estructures o patrons de missatges:
bucles, condicionals, referències a fragments de diagrama, fragments d’execució
paral·lela, breaks i fragments alternatius. Aquests requadres tenen un operador (loop,
opt, ref, par, break i alt respectivament), i una clàusula condicional.
UML 2
-12-
En el següent cas veiem un exemple d’ús d’un requadre constructor sobre un diagrama,
en aquest cas representant una iteració (loop).
Fig.8 Requadre d'iteració
UML 2
-13-
Diagrames de comunicació
Els diagrames de comunicació són una simplificació dels ja existents a UML diagrames
de col·laboració. Es centren en la identificació dels objectes que es passen un missatge,
és a dir, en la comunicació entre objectes.
Els objectes es representen de la mateixa manera que en els diagrames de seqüència. Els
missatges són numerats per representar la seqüenciació, l’ordre temporal en que són
enviats.
Fig.9 Exemple de diagrama de comunicació
UML 2
-14-
Diagrames de temporització
Aquests diagrames mostren el comportament dels objectes durant un període de temps
concret. Tenen un eix temporal horitzontal, i els diferents comportaments que poden
tenir els objectes en files, de manera que es representa com una funció escalonada el
comportament de l’objecte. També representen, mitjançant fletxes, les comunicacions
entre objectes.
Fig.10 Exemple de diagrama de temporització
UML 2
-15-
Diagrames de revisió de la interacció
Els diagrames de revisió de la interacció es centren en un visió general del flux de
control de les interaccions. És una variant dels diagrames d’activitat, en que els nodes
(activitats) són interaccions. Així doncs, per ser representats, s’utilitza tant la notació
dels diagrames d’interacció com la dels diagrames d’activitat.
Fig.11 Exemple de diagrama de revisió de la interacció
UML 2
-16-
Diagrames d’estructura
Els diagrames estructurals representen els elements que composen un sistema o una
funció. Els diagrames UML d’aquest tipus són els diagrames de classes, de paquets, de
desplegament, de components, d’objectes i d’estructura de composició.
Diagrames de classes
El diagrama de classes és el que ens mostra els tipus d’objectes que tindrà el software, i
les relacions entre ells. Conté:
Classes, ja siguin instanciables, o bé classes abstractes i interfícies.
Relacions entre classes.
Classes
Les classes es representen amb un rectangle que consta de tres parts dividides
horitzontalment:
La part superior conté el nom de la classe
La part central conté els atributs de la classe
La part inferior conté els mètodes de la classe
El nom
El nom s’escriu amb lletra normal per a les classes que es poden instanciar. Pel que fa a
les classes abstractes (aquelles que contenen com a mínim un mètode abstracte)
normalment s’escriu amb lletra cursiva. I pel que fa a les interfícies (elements que
només contenen la declaració d’una classe amb signatures de mètodes) es representen
posant a sobre del nom <<interface>>.
Els atributs
La sintaxi dels atributs és visibilitat nomAtribut: tipus = valorInicial. La única part
obligatòria és el nom de l’atribut.
La visibilitat o accés d’un atribut pot ser públic, privat, protegit, o del paquet, i es
simbolitzen de la següent manera:
Si no s’indica explícitament la visibilitat d’un atribut, s’entén que és privat.
UML 2
-17-
Els mètodes
La sintaxi dels mètodes és:
visibilitat nomOperació(nomParàmetre:tipusParàmetre,...):tipusRetorn
La visibilitat pot ser la mateixa que amb els atributs. Si no s’especifica, s’entén que és
públic. Es poden ometre els constructors i destructors, i les operacions de get/set si es
vol. Els mètodes també poden ser de classe (o estàtics), cas que s’indica subrallant-lo.
Relacions entre classes
Poden ser:
Generalització/Especialització: és una relació d’herència entre dues classes. Es
representen amb una fletxa amb la pinta triangular tancada cap a la classe pare
(superclasse).
Associació: indica que una instància d’una classe ha de disposar d’informació
d’una altra instància d’una altra classe (pot ser la mateixa). Es representa amb un
segment.
Agregació: és una associació en la que un a instància es relaciona amb una
col·lecció d’instàncies d’una altra classe. Es representa amb un segment que
comença per un rombe buit a la classe singular.
Composició: és una associació en que una instància d’una classe (feble) no pot
existir sense estar relacionada amb una altra classe. Es representa amb un
segment amb un rombe ple a la classe no feble.
Les associacions, agregacions i composicions tenen un nom associat que s’escriu
juntament al segment. També tenen una multiplicitat que s’indica a cada extrem del
segment, per saber quantes instàncies de classes s’estan associant:
Si l’associació acaba en punta (fent una fletxa), indica un sentit únic de navegació:
només es poden enviar missatges en la direcció de la fletxa.
UML 2
-18-
Fig.12 Exemple d'un diagrama de classes
També podem tenir associacions qualificades. Un qualificador és un atribut en una
relació binària que determina unívocament un objecte o un conjunt d’objectes d’una de
les classes. Els qualificadors serveixen com a identificadors: un objecte de la classe font
(classe que té el qualificador) juntament amb un valor del qualificador, selecciona
unívocament un objecte o conjunt d’objectes de l’altra classe (classe objectiu).
Fig.13 Exemple d'associació qualificada
Un altre element són les classes associació, que són associacions que tenen el mateix
comportament que una classe. Es representen com veiem en la següent imatge, en que
propietari és una classe associació.
Fig. 14 Exemple de classe associació
UML 2
-19-
Diagrames d’objectes
Els diagrames d’objectes són semblants als diagrames de classes, però enlloc de mostrar
classes, mostren instàncies d’objectes d’aquestes classes. Aquests diagrames ens
permeten veure exemples d’instàncies d’objectes en un moment donat de l’execució de
l’aplicació en qüestió.
La representació és semblant a la dels diagrames de classe, amb la excepció que enlloc
de representar classes en els requadres, representem instàncies. El nom de la instància es
posarà amb el format :nomClasse, o opcionalment, es pot especificar un nom per a la
instància posant nomInstància:nomClasse.
Els diagrames d’objectes poden mostrar l’estat de les instàncies, és a dir, quin valor
prenen els seus atributs.
Fig.15 Exemple de diagrama d'objectes
UML 2
-20-
Diagrames de components
Una component és una part d’un sistema com ho pot ser una llibreria, un codi binari,
uns documents, o una base de dades. Aquestes components estan relacionades entre
elles. Aquests diagrames ens permeten veure quines components són dependents entre
elles, quines són reemplaçables, i què comporta substituir o eliminar una d’aquestes
components.
Una component es representa amb un rectangle amb dues pestanyes a la part esquerra.
Els diagrames de components també poden contenir altres elements, com interfícies
(representades amb una rodona) o bases de dades (representades amb un cilindre).
Fig.16 Exemple de diagrama de components
UML 2
-21-
Diagrames de desplegament
Aquests diagrames mostren a on es desplegarà físicament el sistema (quin hardware
utilitzarà).
Els components de hardware es representen mitjançant un cub, i les seves relacions amb
línies rectes.
Fig.17 Exemple de diagrama de desplegament
UML 2
-22-
Diagrames d’estructura de composició
Representa la estructura interna d’un classificador (com una classe, un component o un
cas d’ús), incloent els punts d’interacció amb altres parts del sistema.
Es representen:
Els ports són els punts d’interacció amb els altres classificadors o entre elements
interns d’un classificador. Es representen amb quadrats a l’aresta del
classificador.
Les propietats són un conjunt d’elements que corresponen a la instància del
classificador. Es representen a dins del classificador, amb un rectangle
discontinu i el nom a dins.
Les interaccions es representen amb segments.
Fig.18 Exemple de diagrama d'estructura de composició
UML 2
-23-
Diagrames de paquets
Un paquet és una col·lecció d’elements del model (classes, altres paquets, casos d’ús,
etc.) que estan relacionats lògicament. Un paquet depèn d’un segon paquet si els canvis
fets al segon paquet poden forçar canvis al primer. Els paquets continguts en altres
paquets veuen tot allò que el paquet contenidor importa.
Els diagrames de paquets mostren aquestes relacions lògiques mitjançant paquets. Es
representen:
Els paquets es representen com a rectangles amb una pestanya a la part superior
esquerra.
El nom es posa dins del paquet o a la pestanya.
Les dependències s’indiquen amb fletxes discontinues.
Fig.19 Exemple de diagrama de paquets
Fig.20 Exemple de diagrama de paquets
UML 2
-24-
Referències
Introducció a UML – Toni Sellarès: http://ima.udg.edu/~sellares/ETIG-ES/index.html
http://www.tutorialspoint.com/uml/uml_2_overview.htm
http://www.epidataconsulting.com/tikiwiki/tiki-
read_article.php?articleId=15#El_Nuevo_Enfoque_del_UML_2.0
http://www.agilemodeling.com/essays/umlDiagrams.htm
http://sourcemaking.com/uml/basic-principles-and-background/uml2
http://www.visual-paradigm.com/VPGallery/diagrams/
http://www.drdobbs.com/web-development/whats-new-in-uml-2/184415097
http://en.wikipedia.org/wiki