UML
EL LENGUAJE UNIFICADO
DE MODELADO (UML)
En todas las disciplinas de la
Ingeniería se hace evidente la importancia de los modelos ya que describen el
aspecto y la conducta de "algo". Ese "algo"
puede existir, estar en un estado de desarrollo o estar, todavía, en un estado
de planeación. Es en este momento cuando los diseñadores del modelo deben
investigar los requerimientos del producto terminado y dichos requerimientos
pueden incluir áreas tales como funcionalidad, performance y
confiabilidad. Además, a menudo, el modelo es dividido en un número de vistas,
cada una de las cuales describe un aspecto específico del producto o sistema en
construcción.
El modelado sirve no solamente para los
grandes sistemas, aun en aplicaciones de pequeño tamaño se obtienen beneficios
de modelado, sin embargo es un hecho que entre más grande y más complejo es el
sistema, más importante es el papel de que juega el modelado por una simple
razón: "El hombre hace modelos de sistemas complejos porque no puede
entenderlos en su totalidad".
UML es una técnica para la
especificación sistemas en todas sus fases. Nació en 1994 cubriendo los
aspectos principales de todos los métodos de diseño antecesores y,
precisamente, los padres de UML son Grady Booch, autor del método Booch; James
Rumbaugh, autor del método OMT e Ivar Jacobson, autor de los métodos OOSE y
Objectory. La versión 1.0 de UML fue liberada en Enero de 1997 y ha sido
utilizado con éxito en sistemas construidos para toda clase de industrias
alrededor del mundo: hospitales, bancos, comunicaciones, aeronáutica, finanzas,
etc.
Los principales
beneficios de UML son:
- Mejores tiempos totales de desarrollo (de 50 %
o más).
- Modelar sistemas (y no sólo de software)
utilizando conceptos orientados a objetos.
- Establecer conceptos y artefactos ejecutables.
- Encaminar el desarrollo del escalamiento en
sistemas complejos de misión crítica.
- Crear un lenguaje de modelado utilizado tanto
por humanos como por máquinas.
- Mejor soporte a la planeación y al control de
proyectos.
- Alta reutilización y minimización de costos.
UML, ¿Método o
Lenguaje de Modelado?
UML es un lenguaje para hacer modelos y
es independiente de los métodos de análisis y diseño. Existen diferencias
importantes entre un método y un lenguaje de modelado. Un método es
una manera explícita de estructurar el pensamiento y las acciones de cada
individuo. Además, el método le dice al usuario qué hacer, cómo hacerlo, cuándo
hacerlo y por qué hacerlo; mientras que el lenguaje de modelado carece de estas
instrucciones. Los métodos contienen modelos y esos modelos son utilizados para
describir algo y comunicar los resultados del uso del método.
Un modelo es expresado en un lenguaje
de modelado. Un lenguaje de modelado consiste de vistas, diagramas,
elementos de modelo ¾ los símbolos utilizados en los
modelos ¾ y un conjunto de mecanismos generales o
reglas que indican cómo utilizar los elementos. Las reglas son sintácticas,
semánticas y pragmáticas (figura 1).
Vistas: Las vistas muestran
diferentes aspectos del sistema modelado. Una vista no es una gráfica, pero sí
una abstracción que consiste en un número de diagramas y todos esos diagramas
juntos muestran una "fotografía" completa del sistema. Las vistas
también ligan el lenguaje de modelado a los métodos o procesos elegidos para el
desarrollo. Las diferentes vistas que UML tiene son:
- Vista Use-Case: Una vista que muestra la
funcionalidad del sistema como la perciben los actores externos.
- Vista Lógica: Muestra cómo se diseña la
funcionalidad dentro del sistema, en términos de la estructura estática y
la conducta dinámica del sistema.
- Vista de Componentes: Muestra la organización
de los componentes de código.
- Vista Concurrente: Muestra la concurrencia en
el sistema, direccionando los problemas con la comunicación y
sincronización que están presentes en un sistema concurrente.
- Vista de Distribución: muestra la distribución
del sistema en la arquitectura física con computadoras y dispositivos
llamados nodos.
Diagramas: Los diagramas son
las gráficas que describen el contenido de una vista. UML tiene nueve tipos de
diagramas que son utilizados en combinación para proveer todas las vistas de un
sistema: diagramas de caso de uso, de clases, de objetos, de estados, de secuencia,
de colaboración, de actividad, de componentes y de distribución.
Símbolos o Elementos
de modelo: Los conceptos utilizados en los diagramas son los elementos de modelo
que representan conceptos comunes orientados a objetos, tales como clases,
objetos y mensajes, y las relaciones entre estos conceptos incluyendo la
asociación, dependencia y generalización. Un elemento de modelo es utilizado en
varios diagramas diferentes, pero siempre tiene el mismo significado y
simbología.
Reglas o Mecanismos
generales: Proveen comentarios extras, información o semántica acerca del
elemento de modelo; además proveen mecanismos de extensión para adaptar o
extender UML a un método o proceso específico, organización o usuario.
FASES DEL DESARROLLO
DE UN SISTEMA
Las fases del desarrollo de sistemas
que soporta UML son: Análisis de requerimientos, Análisis, Diseño, Programación y Pruebas.
Análisis de
Requerimientos
UML tiene casos de uso (use-cases) para
capturar los requerimientos del cliente. A través del modelado de casos de uso,
los actores externos que tienen interés en el sistema son modelados con la
funcionalidad que ellos requieren del sistema (los casos de uso). Los actores y
los casos de uso son modelados con relaciones y tienen asociaciones entre ellos
o éstas son divididas en jerarquías. Los actores y casos de uso son descritos
en un diagrama use-case. Cada use-case es descrito en texto y especifica los
requerimientos del cliente: lo que él (o ella) espera del sistema sin
considerar la funcionalidad que se implementará. Un análisis de requerimientos
puede ser realizado también para procesos de negocios, no solamente para
sistemas de software.
Análisis
La fase de análisis abarca las
abstracciones primarias (clases y objetos) y mecanismos que están presentes en
el dominio del problema. Las clases que se modelan son identificadas, con sus
relaciones y descritas en un diagrama de clases. Las colaboraciones entre las
clases para ejecutar los casos de uso también se consideran en esta fase a
través de los modelos dinámicos en UML. Es importante notar que sólo se
consideran clases que están en el dominio del problema (conceptos del mundo
real) y todavía no se consideran clases que definen detalles y soluciones en el
sistema de software, tales como clases para interfaces de usuario, bases de
datos, comunicaciones, concurrencia, etc.
Diseño
En la fase de diseño, el resultado del
análisis es expandido a una solución técnica. Se agregan nuevas clases que
proveen de la infraestructura técnica: interfaces de usuario, manejo de bases
de datos para almacenar objetos en una base de datos, comunicaciones con otros
sistemas, etc. Las clases de dominio del problema del análisis son agregadas en
esta fase. El diseño resulta en especificaciones detalladas para la fase de
programación.
Programación
En esta fase las clases del diseño son
convertidas a código en un lenguaje de programación orientado a objetos. Cuando
se crean los modelos de análisis y diseño en UML, lo más aconsejable es
trasladar mentalmente esos modelos a código.
Pruebas
Normalmente, un sistema es tratado en
pruebas de unidades, pruebas de integración, pruebas de sistema, pruebas de
aceptación, etc. Las pruebas de unidades se realizan a clases individuales o a
un grupo de clases y son típicamente ejecutadas por el programador. Las pruebas
de integración integran componentes y clases en orden para verificar que se
ejecutan como se especificó. Las pruebas de sistema ven al sistema como una
"caja negra" y validan que el sistema tenga la funcionalidad final
que le usuario final espera. Las pruebas de aceptación conducidas por el
cliente verifican que el sistema satisface los requerimientos y son similares a
las pruebas de sistema.
Comentarios
Publicar un comentario