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:

  • Uso-Caso

  • Clases

  • Objetos

  • Secuencia

  • Colaboración

  • De Estado (Statechart)

  • Actividad

  • Componentes

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.

 

File:CrearPais.png

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.

external image dde.JPG

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.

Diagrama de estado en UML

 

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.