UML (Unified Modeling Language) surge de la necesidad de establecer un lenguaje unificado para el modelado de cualquier proyecto de oftware profesional, pero es realmente necesario tener todos los diagramas que UML no ofrece, actualmente son 8 y éstos dictan la forma correcta del desarrollo de software.
Lenguaje Unificado de Modelaje es el significado en español para estas siglas. Mediante UML es posible establecer los requerimientos y estructuras necesarias para establecer un sistema de software previo al proceso largo de escritura de código.
En otras palabras, al igual que un arquitecto necesita planos del edificio que va a construir, el equipo de trabajo necesita diagramas UML que dicten los tópicos del software a desarrollar, mismos que propician a los integrantes participar e intercomunicarse fácilmente, y que van desde los analistas, diseñadores, especialistas de área y desde luego los programadores.
Puesto que UML es empleado en sistemas de media-alta complejidad es de esperarse que se usen lenguajes de alto nivel y por supuesto la programación orientada a objetos, por lo que para trabajar en UML puede ser considerado un pre-requisito, tener experiencia en un lenguaje orientado a objetos, tener un desarrollo complejo y desde luego desarrollar según los estándares de la arquitectura de software.
Conceptos / Diagramas
Entre los conceptos fundamentales de orientación a objetos se encuentran los siguientes:
- Un modelo es una abstracción del problema que se intenta
resolver.
- Un dominio es el mundo de donde proviene el problema.
- Un modelo consiste de objetos que interactúan entre sí
enviándose mensajes.
- Cada objeto posee características propias (atributos) y operaciones que
puede realizar (métodos); las valores asignados a un objeto en determinado momento determinan su
estado.
- Una clase es un molde para describir un objeto que agrupa
características (atributos) y comportamientos (métodos).
- Los objetos son instancias de Clases.
A continuación se enumeran los 8 diagramas que forman la base de UML, y dictan la manera en que es diseñado un sistema:
|
|
Casos de Uso
El diagrama de casos de uso representa la
forma en como un Cliente (Actor) opera con el sistema en desarrollo, además de la forma, tipo y orden en como
los elementos interactúan (operaciones o casos de uso).
Diagrama de Clases
Es un tipo de diagrama de estructura
estática que describe la estructura de un sistema mostrando las clases del sistema, sus atributos,
operaciones (o métodos), y las relaciones entre los objetos.
Diagrama de Objetos
Es un tipo de diagrama que muestra una
vista completa o parcial de los objetos de un sistema en un instante de ejecución específico.
Diagrama de Secuencia
El diagrama de
secuencia es un tipo de diagrama usado para modelar interacción entre objetos.
Diagrama de Colaboración
Un diagrama de
colaboración es esencialmente un diagrama que muestra interacciones organizadas alrededor de los
roles. A diferencia de los diagramas de secuencia, los diagramas de colaboración, también llamados
diagramas de comunicación, muestran explícitamente las relaciones de los roles.
Diagrama de Estado
Los diagramas de estado muestran el
conjunto de estados por los cuales pasa un objeto durante su vida en una aplicación en respuesta a eventos.
Ej. Diagrama estado de una lavadora.
Diagrama de Actividad (¡El famoso diagrama de
flujo!)
El diagrama de flujo o diagrama de actividades es la representación gráfica del
algoritmo o proceso.
Diagrama de componentes
Un diagrama de componentes, como
un sistema de software, es dividido en componentes y muestra las dependencias entre éstos. Los componentes
físicos incluyen archivos, cabeceras, bibliotecas compartidas, módulos, ejecutables, o paquetes.
El tema es basto y cada uno de estos diagramas tiene sus reglas, los invito a conocer más de UML en esta Wiki que es dedicada al tema.
https://wikiuml.wikispaces.com/
Personalmente,
considero que son necesarios estos diagramas para un software profesional y bien documentado, ya que en un
futuro, si alguien más retoma el proyecto que nosotros trabajamos, con estos diagramas lo entenderá de
forma más rápida y así, se llevará un proceso de desarrollo de software más
controlado.