Documente Academic
Documente Profesional
Documente Cultură
Historia
Antes de UML 1.x: Despus de que la Rational Software Corporation contratara a
James Rumbaugh de General Electric, en 1994, la compaa se convirti en la
fuente de los dos esquemas de modelado orientado a objetos ms populares de la
poca: Object-Modeling Technique (OMT) de Rumbaugh, que era mejor
para anlisis orientado a objetos, y el Mtodo Booch (de Grady Booch) que era
mejor para el diseo orientado a objetos. Poco despus se les uni Ivar Jacobson,
el creador del mtodo de ingeniera de software orientado a objetos. Los tres
metodologistas eran conocidos como los Tres Amigos, porque se saba de sus
constantes discusiones sobre las prcticas metodolgicas. En 1996 Rational
concluy que la abundancia de lenguajes de modelado estaba alentando la
adopcin de la tecnologa de objetos, y para orientarse hacia un mtodo unificado,
encargaron a los Tres Amigos que desarrollaran un "lenguaje unificado de
modelado" abierto. Se consult con representantes de compaas competidoras en
el rea de la tecnologa de objetos durante la OOPSLA '96; eligieron "cajas" para
representar clases en lugar de la notacin de Booch que utilizaba smbolos de
"nubes". Bajo la direccin tcnica de los Tres Amigos fue organizado un consorcio
internacional llamado UML Partners en 1996 para completar las especificaciones
del UML. El borrador de la especificacin UML 1.0 de UML Partners fue propuesto
a la OMG en enero de 1997. El resultado de este trabajo, el UML 1.1, fue presentado
ante la OMG en agosto de 1997 y adoptado por la OMG en noviembre de 1997.
UML 1.x: Como notacin de modelado, la influencia de la OMT domina UML (por
ejemplo, el uso de rectngulos para clases y objetos). Aunque se quit la notacin
de "nubes" de Booch, s se adopt la capacidad de Booch para especificar detalles
de diseo en los niveles inferiores. La notacin de "Casos de Uso" del Objectory y
la notacin de componentes de Booch fueron integrados al resto de la notacin,
pero la integracin semntica era relativamente dbil en UML 1.1, y no se arregl
realmente hasta la revisin mayor de UML 2.0. Conceptos de muchos otros mtodos
orientados a objetos (MOO) fueron integrados superficialmente en UML con el
propsito de hacerlo compatible con todos los MOO. Adems, el grupo tom en
cuenta muchos otros mtodos de la poca, con el objetivo de asegurar amplia
cobertura en el dominio de los sistemas en tiempo real. Como resultado, UML es
til en una gran variedad de problemas de ingeniera, desde procesos sencillos y
aplicaciones de solamente un usuario a sistemas concurrentes y distribuidos.
UML 2.x: UML ha madurado considerablemente desde UML 1.1, varias revisiones
menores (UML 1.3, 1.4 y 1.5) han corregido defectos y errores de la primera versin
de UML. A estas le ha seguido la revisin mayor UML 2.0 que fue adoptada por el
OMG en 2005. Aunque UML 2.1 nunca fue lanzado como una especificacin formal,
las versiones 2.1.1 y 2.1.2, aparecieron en 2007, seguidas por UML 2.2 en febrero
de 2009. UML 2.3 fue lanzado oficialmente en mayo de 2010. UML 2.4.1 fue lanzado
oficialmente en agosto de 2011. UML 2.5 fue lanzado en octubre de 2012 como una
versin "En proceso" que fue formalmente liberada en junio de 2015.
Diagramas de comportamiento
Diagrama de casos de uso: Permite capturar los requerimientos funcionales
de un sistema.
Diagrama de estado: Permite mostrar el comportamiento de un objeto a lo
largo de su vida.
Diagrama de actividad: Describe la lgica de un procedimiento, un proceso
de negocio o Workflow.
Diagramas de interaccin (Subgrupo dentro de los diagramas de
comportamiento): Describen cmo los grupos de objetos colaboran para
producir un comportamiento.
Diagrama de secuencia: Muestra los mensajes que son pasados entre
objetos en un escenario.
Diagrama de comunicacin: Muestra las interacciones entre los
participantes haciendo nfasis en la secuencia de mensajes.
Diagrama de colaboracin: (Solamente en UML 1.X) Muestra las
interacciones organizadas alrededor de los roles.
Diagrama de (visin de conjunto o resumen de) interaccin: Se trata
de mostrar de forma conjunta diagramas de actividad y diagramas de
secuencia.
Diagrama de tiempo: Pone el foco en las restricciones temporales de un
objeto o un conjunto de objetos.
Diagrama De Clases
Los diagramas de clases muestran las diferentes clases que componen un sistema
y cmo se relacionan unas con otras. Se dice que los diagramas de clases son
diagramas estticos porque muestran las clases, junto con sus mtodos y
atributos, as como las relaciones estticas entre ellas: qu clases conocen a qu
otras clases o qu clases son parte de otras clases, pero no muestran los
mtodos mediante los que se invocan entre ellas.
Un diagrama de clases est compuesto por los siguientes elementos:
Clase: atributos, mtodos y visibilidad.
Relaciones: Herencia, Composicin, Agregacin, Asociacin y Uso.
Clase
Una clase define los atributos y los mtodos de una serie de objetos. Todos los
objetos de esta clase (instancias de esa clase) tienen el mismo comportamiento y
el mismo conjunto de atributos (cada objeto tiene el suyo propio). En ocasiones se
utiliza el trmino tipo en lugar de clase, pero recuerde que no son lo mismo, y que
el trmino tipo tiene un significado ms general.
las clases estn representadas por rectngulos, con el nombre de la clase, y
tambin pueden mostrar atributos y operaciones de la clase en otros dos
compartimentos dentro del rectngulo.
En UML, una clase es representada por un rectngulo que posee tres divisiones:
En donde:
Superior: Contiene el nombre de la Clase
Intermedio: Contiene los atributos (o variables de instancia) que caracterizan a la
Clase (pueden ser private, protected o public).
Inferior: Contiene los mtodos u operaciones, los cuales son la forma como
interacta el objeto con su entorno (dependiendo de la visibilidad: private, protected
o public).
Atributos y Mtodos
Atributos: Los atributos o caractersticas de una Clase pueden ser de tres tipos, los
que definen el grado de comunicacin y visibilidad de ellos con el entorno, estos
son:
Public (+, ): Indica que el atributo ser visible tanto dentro como fuera de la clase,
es decir, es accesible desde todos lados.
Private (-, ): Indica que el atributo slo ser accesible desde dentro de la clase
(slo sus mtodos lo pueden accesar).
Protected (#, ): Indica que el atributo no ser accesible desde fuera de la clase,
pero si podr ser accesado por mtodos de la clase adems de las subclases que
se deriven (ver herencia).
Mtodos: Los mtodos u operaciones de una clase son la forma en como sta
interacta con su entorno, stos pueden tener las caractersticas:
Public (+, ): Indica que el mtodo ser visible tanto dentro como fuera de la clase,
es decir, es accesible desde todos lados.
Private (-, ): Indica que el mtodo slo ser accesible desde dentro de la clase
(slo otros mtodos de la clase lo pueden accesar).
Protected (#, ): Indica que el mtodo no ser accesible desde fuera de la clase,
pero si podr ser accesado por mtodos de la clase adems de mtodos de las
subclases que se deriven (ver herencia).
Relaciones
En UML, la cardinalidad de las relaciones indica el grado y nivel de dependencia,
se anotan en cada extremo de la relacin y stas pueden ser:
1 (No ms de uno)
0 a Uno: 01
Uno a Muchos: 1...* (1...n)
0 a Muchos: 0...* (0...n)
Nmero Fijo: m (m denota el nmero).
Herencia (Especializacin/Generalizacin):
Indica que una subclase hereda los mtodos y atributos especificados por una
Super Clase, por ende, la Subclase adems de poseer sus propios mtodos y
atributos, poseer las caractersticas y atributos visibles de la Super Clase (public y
protected). Ejemplo:
Agregacin:
Para modelar objetos complejos, no bastan los tipos de datos bsicos que proveen
los lenguajes: enteros, reales y secuencias de caracteres. Cuando se requiere
componer objetos que son instancias de clases definidas por el desarrollador de la
aplicacin, tenemos dos posibilidades:
Por Valor: Es un tipo de relacin esttica, en donde el tiempo de vida del
objeto incluido est condicionado por el tiempo de vida del que lo incluye.
Este tipo de relacin es comnmente llamada Composicin (el Objeto base
se construye a partir del objeto incluido, es decir, es "parte/todo").
Por Referencia: Es un tipo de relacin dinmica, en donde el tiempo de vida
del objeto incluido es independiente del que lo incluye. Este tipo de relacin
es comnmente llamada Agregacin (el objeto base utiliza al incluido para su
funcionamiento).
Ejemplo:
Asociacin:
Permite asociar objetos que colaboran entre s. Cabe destacar que no es una
relacin fuerte, es decir, el tiempo de vida de un objeto no depende del otro.
Ejemplo:
Una aplicacin grafica que instancia una ventana (la creacin del Objeto Ventana
est condicionado a la instanciacin proveniente desde el objeto Aplicacin). Cabe
destacar que el objeto creado (en este caso la Ventana grfica) no se almacena
dentro del objeto que lo crea (en este caso la Aplicacin).
Casos Particulares
Clase Abstracta: Una clase abstracta se denota con el nombre de la clase y de los
mtodos con letra "itlica". Esto indica que la clase definida no puede ser
instanciada pues posee mtodos abstractos (an no han sido definidos, es decir,
sin implementacin). La nica forma de utilizarla es definiendo subclases, que
implementan los mtodos abstractos definidos.
Sistema
Un sistema en un diagrama de caso de uso es descrito como una caja; el nombre
del sistema aparece arriba o dentro de la caja. sta tambin contiene los smbolos
para los casos de uso del sistema.
Representacin
Grafica
Actor
Un actor es una entidad externa (de fuera del sistema) que interacciona con el
sistema participando (y normalmente iniciando) en un caso de uso. Los actores
pueden ser gente real (por ejemplo, usuarios del sistema), otros ordenadores o
eventos externos. Los actores no representan a personas fsicas o a sistemas, sino
su rol. Esto significa que cuando una persona interacta con el sistema de diferentes
maneras (asumiendo diferentes papeles), estar representado por varios actores.
Por ejemplo, una persona que proporciona servicios de atencin telefnica a
clientes y realiza pedidos para los clientes estara representada por un actor equipo
de soporte y por otro actor representante de ventas.
Representacin
Grafica
Encontrando a los actores de un diagrama de casos de uso.
Es posible obtener a los actores de un diagrama de casos de uso a travs de las
siguientes preguntas:
Quin utilizar la funcionalidad principal del sistema (actores primarios)?
Quin necesitar soporte del sistema para realizar sus actividades diarias?
Quin necesitar mantener, administrar y trabajar el sistema (actores
secundarios)?
Qu dispositivos de hardware necesitar manejar el sistema?
Con qu otro sistema necesitar interactuar el sistema a desarrollar?
Quin o qu tiene inters en los resultados (los valores) que el sistema
producir?
Caso de uso
Un caso de uso describe (desde el punto de vista de los actores) un grupo de
actividades de un sistema que produce un resultado concreto y tangible. Los casos
de uso son descriptores de las interacciones tpicas entre los usuarios de un sistema
y ese mismo sistema. Representan el interfaz externo del sistema y especifican qu
requisitos de funcionamiento debe tener este (recuerde, nicamente el qu, nunca
el cmo). Cuando se trabaja con casos de uso, es importante tener presentes
algunas sencillas reglas:
Cada caso de uso est relacionado como mnimo con un actor
Cada caso de uso es un iniciador (es decir, un actor)
Cada caso de uso lleva a un resultado relevante (un resultado con valor
intrnseco)
Representacin
Grafica
Relaciones
Comunicacin: Relacin (asociacin) entre un actor y un caso de uso. El
estereotipo de la relacin de comunicacin es: <<communicate>> aunque
generalmente no se estipula ningn nombre, como podemos apreciar en el
siguiente ejemplo de comunicacin:
Ventajas
Da la posibilidad de representar los mensajes en funcin del tiempo.
La separacin de los mensajes no indica intervalos o cantidades de tiempo, solo
ordenacin temporal.
Es posible aadir restricciones temporales.
Desventajas
Una representacin de un diagrama de secuencia demasiado largo, puede ser
difcilmente entendido por alguien ajeno al Sistema.
Interacciones
Las Interacciones modelan aspectos dinmicos del sistema
Llamada: Invoca una operacin sobre un objeto. Puede ser a s mismo.
Secuenciacin
El flujo de mensajes forma una secuencia.
La secuencia es indicada por un nmero antes del mensaje y una flecha
dirigida.
Para modelar caminos alternativos, se coloca el mismo nmero de secuencia
seguido de un nmero de subsecuencia.
Elementos de un Diagrama de Colaboracin
Objetos o Roles: nodos del grafo.
Enlaces o comunicaciones: arcos del grafo.
Mensajes: llevan nmero de secuencia y flecha dirigida.
Anidamiento: se utiliza la numeracin decimal
Iteracin: colocar un * antes del nmero de secuencia y una clusula de condicin,
si es necesario. ej. *[x>0].
Bifurcacin: los caminos alternativos tendrn el mismo nmero de secuencia,
seguido del nmero de subsecuencia, y se deben distinguir por una condicin.
Elementos bsicos
Objeto: se representa con un rectngulo, que contiene el nombre y la clase del
objeto en un formato nombreObjeto: nombreClase.
Enlaces: Un enlace es una instancia de una asociacin en un diagrama de clases.
Se representa como una lnea continua que une a dos objetos. Esta acompaada
por un nmero que indica el orden dentro de la interaccin y por un estereotipo que
indica que tipo de objeto recibe el mensaje.
Flujo de mensajes: Expresa el envo de un mensaje. Se representa mediante una
flecha dirigida cercana a un enlace.
Marcadores de creacin y destruccin de objetos: Puede mostrarse en la grfica
cules objetos son creados y destruidos, agregando una restriccin con la
palabra new o delete, respectivamente, cercana al rectngulo del objeto
Notacin.
Notacin Bsica: Objetos y Mensajes
Notacin
Diagrama De Actividades
El diagrama de actividades es una variacin directa del diagrama de estados,
nicamente que el diagrama de actividades est enfocado a las actividades y a los
eventos que hacen cambiar de actividad y que no precisamente los nodos son
actividades sino tambin pueden ser estados. Por ejemplo, en un diagrama de
estados, los nodos son: encendido, funcionando, reiniciado, apagado, como lo ven
son estados mientras que en un diagrama de actividades los nodos son encender,
poner en funcionamiento, reiniciar o apagar, como lo notan son actividades que
implican una accin.
Otros Elementos
Caractersticas
Los diagramas de componentes describen los elementos fsicos del sistema
y sus relaciones
Muestran las opciones de realizacin incluyendo cdigo fuente, binario y
ejecutable
Los componentes representan todos los tipos de elementos software que
entran en la fabricacin de aplicaciones informticas
Pueden ser simples archivos, paquetes, bibliotecas cargadas
dinmicamente, etc.