Sei sulla pagina 1di 20

UML Unified Modeling Language

El Lenguaje de Modelamiento Unificado (UML - Unified Modeling Language) es un lenguaje grfico


utilizado para visualizar, especificar y documentar modelos en sistemas de software orientado a
ojetos! Estos modelos son astracciones del mundo real en t"rminos de ojetos, #ue esconden los
detalles espec$ficos relacionados a un prolema, pero #ue son dise%ados para dar soluciones!
UML no es un lenguaje de desarrollo, no dice #ue &acer primero ni #ue &acer luego, ni como dise%ar un
sistema' pero ayuda a visualizar un dise%o y comunicarlo con otros de la misma manera #ue
ar#uitectos, traajadores e ingenieros se entienden a trav"s de planos!
UML tiene distinto tipos de diagramas #ue pueden ser utilizados para descriir un modelo desde
diferentes tipos de vistas y #ue pueden ser categorizados en tres categor$as(
Modelado Funcional
El diagrama utilizado para modelar la parte funcional de un sistema, es decir a#uello #ue indica #ue es
lo #ue &ace el sistema, es el diagrama de casos de usuarios!
Modelado de Objetos
El diagrama utilizado para modelar la parte de estructural de un sistema, es decir a#uel #ue muestra el
estado y el comportamiento del sistema, es el diagrama de clases!
Modelado Dinmico
Los diagramas utilizados para modelar la parte dinmica de un sistema, son el )iagrama de *ecuencias,
El )iagrama de +ctividades, y El diagrama de estado de m#uinas!
Diagramas de Casos de Usuarios
)escrien #u" ms #ue c,mo, lo #ue un sistema &ace desde el punto de vista de un oservador e-terno!
+ continuaci,n se descrie los elementos #ue son parte de un diagrama de casos de usuarios(
Uso de de Caso o escenario

Estn relacionados con escenarios! Un escenario o caso de uso es lo #ue ocurre, la tarea u operaci,n
#ue se ejecuta, cuando alguien interactua con el sistema! Un caso de uso es representado por un
ovalado(
Actor
Ese alguien, algo o cliente #ue origina las tareas o interactua con el sistema es denominado +ctor, y no
necesariamente es una persona, o un ojeto' sino ms ien representa un rol! Un actor puede ser a su
vez otro caso de uso respectivamente! Un actor es representado por la siguiente figura(
Relacin
La relaci,n por asociaci,n indica la invocaci,n desde un actor o caso de uso a otro caso de uso y esta
representado simplemente por una flec&a!
Un diagrama de .asos puede tener varios escenarios o usos de casos y un escenario puede contar con
ms de un actor!
Ejemplo /( *istema tradicional de pedido de radiom,viles(
Diagramas de Clases
Muestra la estructura o una vista general del sistema, representando sus clases y las
relaciones entre ellas! E-presa amos, el estado persistente del sistema, as$ como
tami"n el comportamiento del sistema!
*in emargo los diagramas de .lases son estticos! Ellos descrien #ue ojetos
interactuan, pero no descrien #ue pasa cuando ellos lo &acen!
Un diagrama de clases tiene los siguientes elementos(
Clase
Una clase es lo #ue encapsula la informaci,n sica de un ojeto! Es tami"n un plano
del cual se crean o instancian los ojetos!
*olicita radiom,vil
0peradora
.liente
.onsulta radiom,vil
1eclama radiom,vil
.ancela radiom,vil
Una clase esta representada en un diagrama UML por un rectangulo compuesto de tres
secciones &orizontales, cada una de ellas representando a su vez el nomre, los atriutos
y las operaciones o m"todos de la clase respectivamente, tal como se ilustra a
continuaci,n(
2omre de la .lase 3 Nombre de la Clase
+triutos
M"todos 3 Mtodos
El nomre de la clase dee estar en italicas, cuando la clase es astracta!
)e acuerdo a la visiilidad de los atriutos, "stos pueden ser representados de la
siguiente manera(
4 pulic
- private
5 protected
.uando los m"todos son definidos astractos, "stos tami"n deen estar en
italicas!
)e acuerdo a la visiilidad de los m"todos, "stos pueden ser representados de la
siguiente manera(
4 pulic
- private
5 protected
6 pac7et-private
Relacin
.uando se modela un sistema, ciertos ojetos estan relacionados entre ellos! )e acuerdo
a la forma como se relacionan &ay cinco tipo de relaciones(
.lase+ .lase8
+sociaci,n 8idireccional(
9odo :arte
+gregaci,n(
:arte)ependiente :arte1e#uerida
)ependencia(
*uper.lase *u.lase
;eneralizaci,n(
.lase+ .lase8
+sociaci,n )ireccional(
Una asociaci,n es una relaci,n entre las instancias de dos clases! En el diagrama
es representado por un enlace connectando a dos clases!
Una asociaci,n es idireccional entre dos clases, cuando amas instancias
necesitan saer una de la otra para e-istir o poder &acer su traajo! 9odas las
relaciones entre ojetos se asumen idireccionales por defecto! :or ejemplo(
Un avi,n para volar tiene #ue saer de un vuelo! +s$ mismo un ojeto vuelo para
e-istir, dee estar relacionado con un avi,n!

Una asociaci,n es unidireccional entre dos clases, cuando la asociaci,n es
solamente conocida por una de las clases! La flec&a indica la direcci,n en #ue la
asociaci,n puede ser consultada o recorrida! :or ejemplo un detalle de venta esta
relacionado a un item de producto oligadamente! *in emargo desde un item de
producto no podemos recorrer a un detalle de venta espec$fico! 0tro ejemplo
ser$a la relac$on entre un ojeto de reporte de cuentas sore giradas y el ojeto de
cuenta ancaria! El ojeto de reporte de cuentas soregiradas dee saer de las
cuentas ancarias con esa condici,n en determinada fec&a! :ero una cuenta
ancaria por ms #ue "ste soregirada no tiene idea a #ue reporte de ctas sore
girada pertenece o &a pertenecido en el pasado!
+gregaci,n es un tipo especial de relaci,n para modelar una relaci,n entre un
todo y sus partes! <ay dos tipos de relaciones por +gregaci,n(
+gregaci,n 8sica
+gregaci,n por .omposici,n
En la agregaci,n sica, el tiempo de vida de la clase #ue es parte, es
independiente de la clase #ue es el todo! :ara modelar, este tipo de relaci,n se
traza una l$nea entre amas clases con un romo vac$o del lado de la clase #ue es
todo! Un ejemplo ser$a la relaci,n #ue &ay entre una clase auto y otra llanta! Una
llanta puede estar lista semanas antes, y puede permanecer en un almcen antes de
ser colocadas a un autom,vil en la l$nea de ensamlaje!
1ep.tas*ore;iro .ta8ancaria
+vi,n =uelo
En la agregaci,n por composici,n, el tiempo de vida de la clase #ue es parte, s$ es
dependiente de la clase #ue es el todo! :ara modelar, "ste tipo de relaci,n se traza
una l$nea entre amas clases con un romo relleno del lado de la clase #ue es un
todo! Un ejemplo ser$a la relaci,n #ue &ay entre una empresa y sus
departamentos! 2o pueden &aer instancias de departamentos, sin antes o despu"s
de e-istir una empresa!
La relaci,n de dependencia, representa un tipo de relaci,n muy particular, cuando
la instanciaci,n de una clase es dependiente de otro ojeto o clase! *e denota por
una flec&a a rayas! :or ejemplo la relaci,n entre una aplicaci,n y sus cuadros de
dialogo! Un ojeto de clase cuadro de dialogo, necesita de un ojeto de clase
aplicaci,n para #ue pueda e-istir o funcionar correctamente! Un ojeto de clase
de aplicaci,n de juego de ingo, necesita de otro ojeto de matemticas de juego
#ue est" cargado previamente!
+s$ mismo, a partir de UML >!? una interface es considerada como un elemento
de modelado, de manera similar a un clase, s,lo #ue lleva la palara
@@interfaceAA antes del nomre! +l igual #ue en la relaci,n de dependencia, una
relaci,n entre una clase y la interface #ue implementa es especificada por una
flec&a a rayas! La orientaci,n de la flec&a va desde la clase #ue implementa una
interface y #ue es la parte dependiente, &asta la interface #ue es la parte re#uerida!
Matemticas Buego
:rofesor
@@CnterfaceAA
:ersona
=e&iculo Llanta
Empresa )epartamento
La relaci,n de generalizaci,n "sta relacionada con &erencia! Una clase puede
&eredar las funciones y propiedades de una superclase, y adems puede a%adir su
propia funcionalidad! :ara modelar &erencia en un diagrama se diuja una flec&a
sin la punta rellenada desde la clase &ijo &asta la clase padre! Un ejemplo puede
ser #ue tanto una clase cuenta corriente, como otra clase caja de a&orro, amas
pueden &eredar de una clase padre cuenta ancaria!
Cardinalidad de Relaciones
La cardinalidad de las relaciones indica el grado y nivel de dependencia, se
anotan en cada e-tremo de la relaci,n y "stas pueden ser(
uno o muc&os( /!!D (/!!n)
? o muc&os( ?!!D (?!!n)
n nEmero fijo( m (m denota el n mero)
uno( /
? o muc&os( D
? a cinco( ?!!F
Nombres de Rol
+l igual #ue la cardinalidad #ue se coloca en los e-tremos de una relaci,n,
tami"n se puede colocar los nomre de rol para clasificar la naturaleza de la
asociaci,n
a!uetes
Los pa#uete o pac7ages, permiten organizar a las clases en namespaces, lo #ue es
similar a carpetas en un sistema de arc&ivos! )ividir un sistema en pa#uetes, lo
&ace ms fcil de entenderlo, especialmente s$ los pa#uetes representan una parte
espec$fica del sistema! Los pa#uetes son representados en el diagrama de clases
como unos cuadrados, con una solapa en la parte superior iz#uierda indicando el
espacio de nomre! :uede representar las clases #ue agrupa de dos maneras
diferentes, tal como se muestra a continuaci,n(
.ta8ancaria
.ja+&orro
+ continuaci,n se presenta un ejemplo ms detallado(
Sistema de Pedido de Ordenes
.ta8ancaria
.ja+&orro .ja+&orro
.uentas
.ta8ancaria
.ja+&orro .ja+&orro
.uentas
4
Diagrama de "ecuencia
+ petici,n de un evento o para realizar alguna tarea, un diagrama de secuencias
representa en el tiempo como los ojetos interactuan entre s$ secuencialmente!
Es decir un diagrama de secuencia muestra #ue mensajes son enviados entre los
ojetos del sistema, as$ como tami"n el orden en #ue ocurren!
Los diagramas de secuencia esta organizados de acuerdo al tiempo! El tiempo
progresa a medida #ue se va aajo de la pgina!
Los ojetos involucrados en la operaci,n son mostrados de iz#uierda a derec&a,
de acuerdo a cuando ellos van formando parte de la secuencia de mensajes! Estn
representados por cuadrados indicando de manera surayada el nomre de la
instancia en minEsculas y el nomre de la clase a la #ue pertenecen en mayEsculas
seguido de dos puntos!
.ada ojeto tiene un a-is de tiempo vertical representado por una l$nea a rayas,
indicando el tiempo #ue el ojeto se encuentra vivo! Ej(
<ay veces #ue en vez de mostrar instancias de un ojeto, en un diagrama de
secuencias se muestran roles! :or ejemplo podemos especificar roles tales como
comprador o vendedor, sin especificar #uien juega esos roles! En esos casos el
nomre del rol en el cuadrado no va surayado!
En cada a-is se encuentra una arra de activaci,n #ue indica el tiempo de
ejecuci,n de un mensaje o m"todo invocado!
Los mensaje son enviados, o los m"todos son invocados de un ojeto a otro, a
trav"s de flec&as &orizontales, #ue van desde la arra de activaci,n de un ojeto,
&asta la punta o el comienzo de la arra de activaci,n de otro ojeto!
*$ la llamada al m"todo del ojeto #ue esta reciiendo el mensaje, es s$ncrona' la
flec&a #ue representa dic&a operaci,n es s,lida! )e lo contrario s$ la llamada es
as$ncrona, la punta de la flec&a es normal! :or ejemplo el siguiente diagrama de
secuencias muestra llamadas s$ncronas(
rojo(.olor
El primer mensaje de un diagrama de secuencias siempre empieza arria a la
iz#uierda! *usecuentemente los mensajes a%adidos al sistema se uican
ligeramente ms aajo y a la derec&a #ue el anterior mensaje!
Los mensajes de retorno #ue se ven en el anterior diagrama son opcionales y son
representados por una flec&a normal de retorno de l$nea punteada! Encima de la
flec&a se descrie el o los ojetos #ue esta retornando el mensaje!
Un ojeto puede invocar un m"todo en s$ mismo! En tal caso la flec&a &ace un
loop! El siguiente diagrama por ejemplo, es una versi,n mejorada del anterior, en
el cual el ojeto system se env$a un mensaje as$ mismo para determina cuales son
los reportes disponiles, despu"s #ue &a verificado #ue el usuario esta limpio
registro criminales y de formar la respuesta con los reportes disponiles!

*e puede colocar tami"n e-presiones entre corc&etes para representar
condiciones #ue controlen el flujo en la secuencia! )ic&as condiciones se colocan
encima de la l$nea de mensaje y antes del nomre de mensaje! *$ se cumple la
condici,n reci"n se envia el mensaje, tal como se ilustra en el siguiente ejemplo(
.omo se puede ver en el diagrama de secuencias, la oficina de registros solo
puede registrar a un estudiante a una clase, siempre #ue no tenga cuentas
pendientes!
*e puede utilizar fragmentos cominados tami"n para relacionar ms de una
iteracci,n entre otros ojetos #ue est"n sujeta a una condici,n! )ic&os
fragmentos cominados son cuadros #ue engloan las iteracciones de ojetos
sujetas a una condici,n, con una eti#ueta en forma de oreja de perro en la parte
superior iz#uierda con la palara reservada option, y la condici,n entre corc&etes
deajo de la misma! :or ejemplose puede detallarse ms aEn el anterior ejemplo,
tal como se muestra a continuaci,n(
9ami"n se puede utilizar fragmentos cominados para modelar una condici,n
l,gica if t&en else! *in emargo ya no se utiliza opt, sino alt, tal como se muestra
a continuaci,n(
9ami"n se puede utilizar fragmentos cominados para modelar una iteracci,n en
ucles! *in emargo ya no se utiliza ni opt, ni alt como la eti#ueta! *e utiliza
loop! + continuaci,n se presenta un ejemplo(
*olicita.onfirmaci,n
(tiempo)
asigna9iempo+tenci,n(tiempo)
new(datoEncargo)
encargo
tiluc&i(1adioM,vil cliente(.liente (Encargo pedido(:edidoMovil
solicitaMovil(cliente,
uicaci,n, datosEncargo)
loop
G<ay EncargoH
crear:edido(cliente,
uicaci,n)
a%adir.ola:edidos(pedido)
a%adir(encargo)
reciir.onfirmaci,n
(confirmaci,n)
alt
Gconfirmaci,n I 0!7!H
asigna(movil)
GelseH
elimina(pedido)
Diagrama de Com#onentes
El principal prop,sito de un diagrama de componentes es mostrar las relaci,nes
estructurales entre los componentes de un sistema!
Un diagrama de componentes tiene un nivel de astracci,n ms grande #ue un
diagrama de clases! Usualmente un componento esta compuesto por una o ms
clases, o por uno o ms ojetos en tiempo de ejecuci,n!
Un componente es considerado una unidad auton,ma dentro de un sistema o
susistema #ue encapsula comportamiento a trav"s de una o ms interfaces por lo
cual es reutilizale!
)esarrolladores &allan Etil el diagrama de componentes, por#ue provee una vista
ar#uitect,nica de alto nivel del sistema #ue empezarn a construir!
+ntes de UML > se representaa la relaci,n entre dos componentes de la siguiente
forma(
La notaci,n anterior era muy simple y no escalaa ien en sistemas muy grandes,
por lo #ue UML >!? mejor, consideralemente el conjuto de notaciones para
diagramas de componentes!
En UML >!? un componente es representado por una caja con divisiones
opcionales alineadas verticalmente! .omo m$nimo se dee colocar el nomre del
componente y el te-to yJo icono #ue representa un componente tal como se
muestra a continuaci,n(
En las otras divisiones de un componente se pueden colocar las interfaces #ue un
componente provee y re#uiere! Las interfaces #ue un componente provee
representan un contrato formal de los servicios #ue presta! :ero un componente
KcomponentL
0rden

0rden
KcomponentL
0rden
*istema
de 0rden
*istema
de 0rden
tami"n puede re#uerir interfaces de otros componentes, por#ue a pesar de ser una
unidad auton,ma, para funcionar un componente tami"n puede re#uerir de los
servicios de otros componentes!
El mismo componente puede ser ilustrado en una una notaci,n ligeramente
diferente de la siguiente manera(
En esta notaci,n s$molos con un circElo completo, tami"n conocidos como
c&upetes, representan las interfaces #ue el componente provee! Mientras los
s$molos de medio circElos, tami"n conocidos como soc7et, representan las
interfaces #ue un componente re#uiere!
:ara mostrar las relaciones entre componentes, se dee diujar una flec&a de
dependencia #ue va desde la interface re#uerida de un componente &asta la
interface provista por otro componente!
KcomponentL
0rden
Kinterfaces proveidasL
Entrada)e:edido
.uenta:agale
Kinterfaces re#ueridasL
:ersona
KcomponentL
0rden
Entrada)e:edido
.uenta:agale
:ersona
KcomponentL
*istema de 0rdenes
8us#ueda.liente
KcomponentL
*istema de Cnventario
+cceso:roducto
+cceso:roducto
KcomponentL
1epositorio de .liente
8us#ueda.liente
En el anterior diagrama a pesar de #ue el nomre de las interfaces re#uerida y
provista entre dos componentes relacionados es la misma, &ay veces #ue puede
ser diferente! :or ejemplo cuando un componente provee una interface #ue es una
su-clase de una interface re#uerida!
9ami"n se puede modelar la estructura interna de un componente, cuando esta
compuesta por otros componentes, tal como se muestra a continuaci,n(
En el anterior diagrama el componente tienda esta compuesto de tres
componentes( *istema de 0rdenes, *istema de Cnventario y 1epositorio de
.liente! + su vez provee la interface Entrada0rden y re#uiere la interface .uenta!
Las relaciones entre componentes internamente dentro de otro componente son
modeladas, con lo #ue en UML se llama conector ensamlador( es decir
directamente el soc7et y c&upete juntos sin l$neas de dependencia!
*e puede usar un conector ensamlador tami"n cuando varios componentes
re#uieren la misma interface de un solo componente, como forma de simplificar
varias lineas de dependencia!
El componente cuenta con dos puertos en forma de cuadrado en los lados, #ue
representan la forma de modelar como las interfaces de un componente se
.uenta
9ienda
KcomponentL
*istema de 0rdenes
KdelegaL
KcomponentL
*istema de Cnventario
+cceso:roducto
Entrada0rden
KcomponentL
1epositorio de .liente
8us#ueda.liente
Entrada0rden
KdelegaL
.uenta
relacionan con sus partes internas! En el anterior caso el diagrama es sencillo, y es
ovio #ue la interface entrada ordenes est relacionada con el componente sistema
de ordenes! :ero en un ejemplo ms adelante se puede apreciar ms como las
interfaces se relacionan con clases y partes internas de un componente, a trav"s de
los puertos!
En un puerto de un componente se pueden colocar todas las interfaces #ue est"n
relacionadas o con otro componente o por una agrupaci,n l,gica!
:or claridad es mejor relacionar un puerto con una sola interface! +dems los
puertos pueden soportar comunicaci,n unidireccional o idireccional! :ueden
&aer puertos de entrada, de salida, o de entrada y salida!
En el siguiente ejemplo se muestra por#ue es ms fcil relacionar una interface
con un solo puerto, y #ue los puertos ayudan a modelar como las interfaces se
relacionan con las clases, otros componentes o partes internas de un componente!
KcomponentL
Estudiante
+dministracionEstudiante
<orarioEstudiante
.ontrol+cceso
Encryptacion
:ersistencia
)ataacceso
KcomponentL
M-*ecurity
.ontrol+cceso
Encriptacion
KcomponentL
MegaEncrypter
Encriptacion
Un diagrama de componentes puede representar tanto aspectos t"cnicos como
l,gicos! :or ejemplo un componente puede ser t"cnico al relacionarse a la api de
una ase de datos, o puede ser un componente relacionado con la inteface grfica,
o tami"n puede ser l,gico como referirse a un componente estudiante! +
continuaci,n por ejemplo se presenta un diagrama del dominio de componentes
de un sistema universitario en mayor escala(
Estudiante
Nacade+dministracion
+dministracionEstudiante
KinfrastructureL
:rocesador MML
MML
Nacade<orario
)ataEstudiante
Estudiante
)ireccion
)ata
*eguridad
<orarioEstudiante
)ata+cceso
.ontrol+cceso
Encryptacion
:ersistencia
<ay dos estrategias para desarrollar un modelo por componentes, el de arria
&ac$a aajo o el de aajo &ac$a arria! La estrateg$a de arria &ac$a aajo es un
uen mecan$smo para proveer una visi,n de la ar#uitectura del sistema temprano
en el proyecto! +lgo #ue es importante cuando se traaja en e#uipos, ya #ue se
#uiere traajar &ac$a una misma visi,n! El prolema de "ste enfo#ue, es #ue sufre
de una tendencia a sore dise%ar el sistema con componentes #ue tal vez no &ayan
sido necesarios! :or ejemplo en el anterior diagrama se colocan los componentes
de seguridad y persistencia, y posilemente la verdad no se necesita nada tan
remotamente complicado!
El otro enfo#ue de desarrollar un modelo por componentes, es el de aajo &ac$a
arria! *e &ace "sto, cuando ya &ay un sistema orientado ojetos y se desea
componetizarlo para rescatar funcionalidad reutilizale o se lo decide dividirlo
entre e#uipos! .uando estamos siguiendo "ste enfo#ue es uena prctica seguir
los siguientes pasos(
Mantener a los componentes co&esivos! Un componente dee implementar
un conjunto simple de funcionaliades relacionadas! Un componente es un
conjunto de clases #ue colaoran entre ellas para proveer servicios a trav"s
KcomponentL
Edificios
+cceso)ata
Edificios
KcomponentL
Estudiante
+cceso)ata
Estudiante
KcomponentL
*eminario
+cceso)ata
*eminario
KcomponentL
<orario
+cceso)ata
<orario
Encripcion
.ontrol+cceso
:ersistencia
KUCL
+dm*eminario
KUCL
+dmEstudiante
KCnfraestructuraL
*eguridad
KCnfraestructuraL
:ersistencia
KasededatosL
8) U2C=!
B)8.
de un conjunto de contratos o interfaces co&esivas!
*e asignan todas las clases relacionadas a la l,gica de negocio a
componentes estereotipados como dominio!
*e asignan todas las clases relacionadas a la interfaces con el usuario a
componentes estereotipados como aplicaci,n
*e asignan todas las clases t"cnicas, es decir a#uellas #ue presentan
servicios a nivel de sistema como seguridad, persistencia, o midleware, a
componentes estereotipados como infraestructura,
Cdentificar el tipo de colaoraci,n de una clase de negocio! <ay clases #ue
son servidor, otras clientes, y otras servidorJcliente! 9odas las clases #ue
son servidor a menudo forman su propio componente de dominio! Las
clases #ue son clientes pura, normalmente no pertenecen a componentes de
dominio por#ue solo recien mensajes y no a%aden a la funcionalidad! Las
clases cliente normalmente terminan en componentes de aplicaci,n!
Minimizar el tama%o del flujo de mensajes entre componentes! La
comunicaci,n dentro de un componente normalmente se refiere a mensajes
enviados entre ojetos en memoria! :ero la comunicaci,n entre
componentes puede re#uerir un esfuerzo caro denominado mars&alling' en
el #ue un mensaje y sus parmetros son convertidos en datos, transmitido, y
luego convertido en mensaje nuevamente! :or lo #ue &ay #ue ver donde
corresponde ms convenientemente una clase, s$ fuera de un componente o
incluida en un componente de acuerdo a como se tiene #ue comunicar con
otras clases!

Potrebbero piacerti anche