Anteriormente los
programadores intentaban de manera somera representar los
requerimientos del cliente dibujando dos o tres garabatillos que solo
ellos entendían. Seguidamente casi sin analizar un poco más lo que
han obtenido del cliente empezaban a programar el sistema agregando
poco a poco el código que fuera necesario en el proceso. Hoy en día
ésta no es una práctica recomendada dado que no se transmite una
idea clara del proceso al cliente y éste no puede evidenciar de
manera correcta el avance del sistema. Puede ocurrir el caso de que
el analista haya malinterpretrado al cliente y esto solo se evidencie
después de la progamación del proyecto.
Es por esto, que hoy en
día es necesario contar con un plan bien definido del proceso de
desarrollo de software. Se debe organizar el proceso de diseño de
tal forma que los analistas, desarrolladores, project manger, y otras
personas involucradas en el desarrollo del sistema comprendan cuál
es el objetivo general del mismo y el lugar que ocupa cada uno dentro
de él. Es entonces cuando aparece el concepto de UML (Lenguaje
unificado de modelado) que solidifica el proceso de creación de
proyectos de software permitiendo al observador distinguir los
aspectos relevantes del sistema, así como visualizar de forma clara
y fácil el flujo del mismo.
UML utiliza una serie de
diagramas para representar el comportamiento, flujo e interacción
del sistema. A continuación se presentará de forma breve cada
diagrama y los conceptos que representan.
Diagrama de clases
El concepto de clase hace
referencia a la agrupación de entidades del mundo real según sus
características y comportamiento similares. Por ejemplo, podríamos
denominar una clase Laptop, con atributos como marca, modelo,
memoria, y precio; y comportamientos como encender, apagar, y
ejecutar aplicaciones. Para representar esta clase se utiliza el
siguiente diagrama:
![]() |
| Diagrama de clase |
Note como el símbolo UML
de una clase está conformado por tres rectángulos. El primo es el
nombre de la clase que debe tener su primera letra en mayúscula, el
rectángulo del medio representa los atributos de la clase que deben
estar minúsculas y finalmente el último rectángulo representa los
métodos (comportamiento) de la clase en notación CamelCase.
Los diagramas de clases
son importantes debido a que representan una parte del mundo real y
de esta forma es más fácil comunicarle al cliente los detalles de
los problemas que requieren ser resueltos.
Diagrama de objetos
Un objeto es un elemento
propio de la clase con valores de atributos definidos. Por ejemplo,
un objeto Laptop podría tener las siguientes características:
Marca: Sony
Modelo: Vaio SVE14121CLW
Memoria: 4Gb
Precio: 700 USD
Para representar
cualquier objeto de la clase Laptop se utiliza el siguiente diagrama:
![]() |
| Diagrama de objetos |
Diagrama de casos de uso
Un caso de uso es la descripción de una parte del comportamiento del sistema desde el punto de vista del usuario. Los personajes que tomarán parte en el caso de uso de denominan actores. Un caso de uso sirve para visualizar el flujo e interacción dentro del sistema de algún proceso.
Más adelante se verá detalladamente los componentes de un caso de uso y cómo debe ser utilizado correctamente. Por ahora se muestra un ejemplo muy sencillo del caso de uso Encender laptop que tiene como objetivo encender la computadora.
![]() |
| Diagrama de caso de uso |
Note como el actor "Usuario de laptop" ha sido representado con un "muñeco" de palo y el caso de uso con una elipse.
Diagrama de estados
El diagrama de estados es usado para dar una descripción abstracta del comportamiento del sistema. Este comportamiento es analizado y representado por una serie de eventos que pueden representar a su vez uno más posibles estados. El cambio entre estados se denomina transición. A continuación presentamos los dos estados que posiblemente podría presentar un objeto de la clase Laptop.
![]() |
| Diagrama de estados |
Diagrama de secuencias
Los diagramas de secuencia son utilizados para modelar la interacción entre objetos en un sistema. Los diagramas vistos anteriormente como el de clases y objetos presentan información estática, sin embargo el diagrama de secuencias muestra cómo el sistema fluye de acuerdo a una secuencia preestablecida. Continuando con el ejemplo de la clase Laptop qué sucedería cuando se invoque al caso de uso "Encender Laptop" ?, la secuencia de interacción deberá ser la siguiente:
1. El computador indicará mediante un led que ya está encendido
1. El computador indicará mediante un led que ya está encendido
2. El programa BIOS iniciará la secuencia POST en el computador
3. Se cargará el sistema operativo instalado
4. Se cargará el entorno de escritorio o GUI
5. Se cargarán los programas de inicio
6. El usuario interactúa con el sistema
7. Se iniciar la orden de apagado
8. El sistema cierra las aplicaciones abiertas y la GUI
9. El sistema detiene los procesos
10. El led se apaga
3. Se cargará el sistema operativo instalado
4. Se cargará el entorno de escritorio o GUI
5. Se cargarán los programas de inicio
6. El usuario interactúa con el sistema
7. Se iniciar la orden de apagado
8. El sistema cierra las aplicaciones abiertas y la GUI
9. El sistema detiene los procesos
10. El led se apaga
![]() |
| Diagrama de secuencia |
Diagrama de actividades
El diagrama de actividades de UML
permite representar los comportamientos que tiene el sistema en un paso a paso
por orden pero no tan generalizado como se ha visto en el diagrama de secuencia.
| Diagrama de actividades - Encendido laptop |
Diagrama de colaboraciones
En la vida cotidiana observamos
diversos elementos que trabajando en conjunto llevan a un fin específico, en
UML fue necesario implementar una serie de diagramas que permiten representar
ello.
Diagrama de componentes
Los diagramas de componentes son
empleados en UML para representar piezas específicas de un sistema, en el caso
del laptop se podría mostrar de componente como ejemplo, su unidad de DVD.
Diagrama de distribución
El diagrama de distribución se
puede entender como la versión macro del diagrama de componentes pues éste está
diseñado para representar la arquitectura física de cualquier sistema informático
en donde, para continuar con nuestro ejemplo del laptop, vendría a ser
representado con un cubo y de estar conectado a un sistema, se enlazaría por
medio de líneas.
| Diagrama de distribución |
Diagrama de paquetes
Pero cuando tenemos tantos
diagramas, es necesario en ocasiones organizar elementos en grupos y es allí
donde entran los diagramas de paquetes que nos permite reunir dichos elementos
en un solo lugar, UML para éstos, usa el gráfico de un folder o carpeta y
dentro de ella vendrán los ítems que hemos agrupado.
| Diagrama de paquetes |
Referencias
Joseph Schmuller - Aprendiendo UML en 24 Horas.
http://es.wikipedia.org/wiki/Caso_de_uso
http://en.wikipedia.org/wiki/State_diagram
http://es.wikipedia.org/wiki/Diagrama_de_secuencia
http://es.wikipedia.org/wiki/Diagrama_de_secuencia
http://msdn.microsoft.com/es-es/library/dd409360.aspx







