interaccionan entre s para dar a UML el carcter de completitud y noambigedad que antes comentbamos.
Los bloques de construccin se dividen en tres partes: Elementos, que son
las abstracciones de primer nivel, Relaciones, que unen a los elementos entre
s, y los Diagramas, que son agrupaciones interesantes de elementos.
Existen cuatro tipos de elementos en UML, dependiendo del uso que se haga
de ellos: elementos estructurales, elementos de comportamiento, elementos
de agrupacin y elementos de anotacin. Las relaciones, a su vez se dividen
para abarcar las posibles interacciones entre elementos que se nos pueden
presentar a la hora de modelar usando UML, estas son: relaciones de
dependencia, relaciones de asociacin, relaciones de generalizacin y
relaciones de realizacin.
Se utilizan diferentes diagramas dependiendo de qu, nos interese representar
en cada momento, para dar diferentes perspectivas de un mismo problema,
para ajustar el nivel de detalle..., por esta razn UML soporta un gran numero
de diagramas diferentes aunque, en la practica, slo se utilicen un pequeo
nmero de combinaciones.
Elementos Estructurales
Los elementos estructurales en UML, es su mayora, son las partes estticas del
modelo y representan cosas que son conceptuales o materiales.
Clases
Una clase es una descripcin de un conjunto de objetos que comparten los
mismos atributos, operaciones, relaciones y semntica. Una clase implementa
una o ms interfaces. Grficamente se representa como un rectngulo que
incluye su nombre, sus atributos y sus operaciones (figura 3).
Interfaz
Una interfaz es una coleccin de operaciones que especifican un servicio de
una determinada clase o componente. Una interfaz describe el
comportamiento visible externamente de ese elemento, puede mostrar el
comportamiento completo o slo una parte del mismo. Una interfaz describe
un conjunto de especificaciones de operaciones (o sea su signatura) pero
nunca su implementacin. Se representa con un crculo, como podemos ver en
la figura 4, y rara vez se encuentra aislada sino que ms bien conectada a la
clase o componente que realiza.
Colaboracin
Define una interaccin y es una sociedad de roles y otros elementos que
colaboran para proporcionar un comportamiento cooperativo mayor que la
suma de los comportamientos de sus elementos. Las colaboraciones tienen
una dimensin tanto estructural como de comportamiento. Una misma clase
puede participar en diferentes colaboraciones. Las colaboraciones representan
la implementacin de patrones que forman un sistema. Se representa
mediante una elipse con borde discontinuo, como en la figura 5.
Casos de Uso
Clase Activa
Es una clase cuyos objetos tienen uno o ms procesos o hilos de ejecucin por
lo y tanto pueden dar lugar a actividades de control. Una clase activa es igual
que una clase, excepto que sus objetos representan elementos cuyo
comportamiento es concurrente con otros elementos. Se representa igual que
una clase (figura 3), pero con lneas ms gruesas (figura 7).
Componentes
Un componente es una parte fsica y reemplazable de un sistema que conforma
con un conjunto de interfaces y proporciona la implementacin de dicho
conjunto. Un componente representa tpicamente el empaquetamiento fsico
de diferentes elementos lgicos, como clases, interfaces y colaboraciones.
Nodos
Un nodo es un elemento fsico que existe en tiempo de ejecucin y representa
un recurso computacional que, por lo general, dispone de algo de memoria y,
con frecuencia, de capacidad de procesamiento. Un conjunto de componentes
puede residir en un nodo.
Estos siete elementos vistos son los elementos estructurales bsicos que se
pueden incluir en un modelo UML. Existen variaciones sobre estos elementos
bsicos, tales como actores, seales, utilidades (tipos de clases), procesos e
hilos (tipos de clases activas) y aplicaciones, documentos, archivos, bibliotecas,
pginas y tablas (tipos de componentes).
Elementos de comportamiento
Los elementos de comportamiento son las partes dinmicas de un modelo. Se
podra decir que son los verbos de un modelo y representan el comportamiento
en el tiempo y en el espacio. Los principales elementos son los dos que siguen.
Interaccin
Es un comportamiento que comprende un conjunto de mensajes
intercambiados entre un conjunto de objetos, dentro de un contexto particular
para conseguir un propsito especfico. Una interaccin involucra otros muchos
elementos, incluyendo mensajes, secuencias de accin (comportamiento
Maquinas de estados
Es un comportamiento que especifica las secuencias de estados por las que
van pasando los objetos o las interacciones durante su vida en respuesta a
eventos, junto con las respuestas a esos eventos. Una maquina de estados
involucra otros elementos como son estados, transiciones (flujo de un estado a
otro), eventos (que disparan una transicin) y actividades (respuesta de una
transicin)
Elementos de agrupacin
Forman la parte organizativa de los modelos UML. El principal elemento de
agrupacin es el paquete, que es un mecanismo de propsito general para
organizar elementos en grupos. Los elementos estructurales, los elementos de
comportamiento, incluso los propios elementos de agrupacin se pueden
incluir en un paquete.
Un paquete es puramente conceptual (slo existe en tiempo de desarrollo).
Grficamente se representa como una carpeta conteniendo normalmente su
nombre y, a veces, su contenido.
Elementos de anotacin
Los elementos de anotacin son las partes explicativas de los modelos UML.
Son comentarios que se pueden aplicar para describir, clasificar y hacer
observaciones sobre cualquier elemento de un modelo.
El tipo principal de anotacin es la nota que simplemente es un smbolo para
mostrar restricciones y comentarios junto a un elemento o un conjunto de
elementos.
Relaciones
Existen cuatro tipos de relaciones entre los elementos de un modelo UML.
Dependencia, asociacin, generalizacin y realizacin, estas se describen a
continuacin:
Dependencia
Es una relacin semntica entre dos elementos en la cual un cambio a un
elemento (el elemento independiente) puede afectar a la semntica del otro
elemento (elemento dependiente). Se representa como una lnea discontinua
(figura 14), posiblemente dirigida, que a veces incluye una etiqueta.
Asociacin
Es una relacin estructural que describe un conjunto de enlaces, los cuales son
conexiones entre objetos. La agregacin es un tipo especial de asociacin y
representa una relacin estructural entre un todo y sus partes. La asociacin se
representa con una lnea continua, posiblemente dirigida, que a veces incluye
una etiqueta. A menudo se incluyen otros adornos para indicar la multiplicidad
y roles de los objetos involucrados, como podemos ver en la figura 15.
Generalizacin
Es una relacin de especializacin / generalizacin en la cual los objetos del
elemento especializado (el hijo) pueden sustituir a los objetos del elemento
general (el padre). De esta forma, el hijo comparte la estructura y el
comportamiento del padre. Grficamente, la generalizacin se representa con
una lnea con punta de flecha vaca (figura 16).
Realizacin
Es una relacin semntica entre clasificadores, donde un clasificador especifica
un contrato que otro clasificador garantiza que cumplir. Se pueden encontrar
relaciones de realizacin en dos sitios: entre interfaces y las clases y
componentes que las realizan, y entre los casos de uso y las colaboraciones
que los realizan. La realizacin se representa como una mezcla entre la
generalizacin (figura 16) y la dependencia (figura 14), esto es, una lnea
discontinua con una punta de flecha vaca (figura 17).
Diagramas
Los diagramas se utilizan para representar diferentes perspectivas de un
sistema de forma que un diagrama es una proyeccin del mismo. UML
proporciona un amplio conjunto de diagramas que normalmente se usan en
Diagramas de Clases
Muestran un conjunto de clases, interfaces y colaboraciones, as como sus
relaciones. Estos diagramas son los ms comunes en el modelado de sistemas
orientados a objetos y cubren la vista de diseo esttica o la vista de procesos
esttica (s incluyen clases activas).
Diagramas de Objetos
Muestran un conjunto de objetos y sus relaciones, son como fotos instantneas
de los diagramas de clases y cubren la vista de diseo esttica o la vista de
procesos esttica desde la perspectiva de casos reales o prototpicos.
Diagramas de Estados
Muestran una maquina de estados compuesta por estados, transiciones,
eventos y actividades. Estos diagramas cubren la vista dinmica de un sistema
y son muy importantes a la hora de modelar el comportamiento de una
interfaz, clase o colaboracin.
Diagramas de Actividades
Son un tipo especial de diagramas de estados que se centra en mostrar el flujo
de actividades dentro de un sistema. Los diagramas de actividades cubren la
parte dinmica de un sistema y se utilizan para modelar el funcionamiento de
un sistema resaltando el flujo de control entre objetos.
Diagramas de Componentes
Muestra la organizacin y las dependencias entre un conjunto de componentes.
Cubren la vista de la implementacin esttica y se relacionan con los
diagramas de clases ya que en un componente suele tener una o ms clases,
interfaces o colaboraciones
Diagramas de Despliegue
Representan la configuracin de los nodos de procesamiento en tiempo de
ejecucin y los componentes que residen en ellos. Muestran la vista de
despliegue esttica de una arquitectura y se relacionan con los componentes
ya que, por lo comn, los nodos contienen uno o ms componentes.
Arquitectura
El desarrollo de un sistema con gran cantidad de software requiere que este
sea visto desde diferentes perspectivas. Diferentes usuarios (usuario final,
analistas, desarrolladores, integradores, jefes de proyecto...) siguen diferentes
actividades en diferentes momentos del ciclo de vida del proyecto, lo que da
lugar a las diferentes vistas del proyecto, dependiendo de qu interese ms en
cada instante de tiempo.
La arquitectura es el conjunto de decisiones significativas sobre:
La organizacin del sistema
Seleccin de elementos estructurales y sus interfaces a travs de los cuales
se constituye el sistema.
El Comportamiento, como se especifica las colaboraciones entre esos
componentes.
Composicin de los elementos estructurales y de comportamiento en
subsistemas progresivamente ms grandes.
El estilo arquitectnico que gua esta organizacin: elementos estticos y
dinmicos y sus interfaces, sus colaboraciones y su composicin.
Ciclo de Vida
Se entiende por ciclo de vida de un proyecto software a todas las etapas por
las que pasa un proyecto, desde la concepcin de la idea que hace surgir la
necesidad de disear un sistema software, pasando por el anlisis, desarrollo,
implantacin y mantenimiento del mismo y hasta que finalmente muere por
ser sustituido por otro sistema.
Aunque UML es bastante independiente del proceso, para obtener el mximo
rendimiento de UML se debera considerar un proceso que fuese:
Dirigido por los casos de uso, o sea, que los casos de uso sean un artefacto
bsico para establecer el comportamiento del deseado del sistema, para
validar la arquitectura, para las pruebas y para la comunicacin entre las
personas involucradas en el proyecto.
Centrado en la arquitectura de modo que sea el artefacto bsico para
conceptuar, construir, gestionar y hacer evolucionar el sistema.
Un proceso iterativo, que es aquel que involucra la gestin del flujo de
ejecutables del sistema, e incremental, que es aquel donde cada nueva versin
corrige defectos de la anterior e incorpora nueva funcionalidad. Un proceso
iterativo e incremental se denomina dirigido por el riesgo, lo que significa que
cada nueva versin se ataca y reducen los riesgos ms significativos para el
xito del proyecto.
Un elemento que distingue a este proceso y afecta a las cuatro fases es una
iteracin, que es un conjunto de bien definido de actividades, con un plan y
unos criterios de evaluacin, que acaban en una versin del producto, bien
interna o externa.