miércoles, 27 de mayo de 2009

UML

En paralelo con los avances en la programación orientada objetos, el moldeamiento de sistemas bajo este paradigma también ha evolucionado considerablemente, UML (Lenguaje Unificado de Modelado) es un lenguaje de moldeamiento que nos permite diseñar sistemas orientados a objetos, que entre muchas ventajas ofrece, un medio de comunicación entre desarrolladores, permite desglosar un problema complejo de forma entendible, promueve la reutilización identificando los componentes implicados en el desarrollo y como tal define la arquitectura del software (componentes, interfaces de usuario, bases de datos, lógica del negocio). En otras palabras, pensemos en UML como un lenguaje hecho para crear planos de software que análogamente a los planos en arquitectura nos indican cómo construir nuestro programa. Por estas razones es vital que en el mundo de la ingeniería de software todos conozcan por lo menos lo más importante y general sobre UML, en este artículo se presenta un breve resumen de los diagramas más importantes que hacen parte de este lenguaje, enfocándose meramente a definirlos sin entrar en detalle, a excepción de los diagramas de clase que como se dará cuenta sino es que ya lo hizo, son ampliamente utilizados en este blog para describir la estructura de los diferentes patrones que aquí se tratan.
En la versión 2.0 del lenguaje se incluyen 13 diagramas diferentes, que son clasificados en diagramas estructurales (trabajan sobre la estructura del sistema), diagramas de comportamiento (enfatizan en lo que debe hacer el sistema) y diagramas de interacción (enfatizan el flujo entre los diferentes elementos del sistema). Dentro de estos se hace una descripción general de los diagramas de clase y objetos que son de tipo estructural, los casos de uso de comportamiento y finalmente del diagrama de secuencia que es de interacción.


Diagramas de clase


Este es uno de los diagramas más importantes y populares del UML, debido a las numerosas herramientas CASE que pueden generar código a partir de estos. Los componentes que conforman los diagramas de clases son las relaciones y las clases.

En el diagrama de clases, una clase hace referencia a lo que entendemos por clase en la programación orientada objetos, así una clase, es la generalización de un objeto de la realidad, que posee métodos y atributos. La representación de una clase se hace mediante un rectángulo dividido en tres secciones. En la parte superior deberemos indicar su nombre, a continuación sus propiedades o atributos y en la tercera sección sus métodos. El nombre de la clase puede estar acompañados de etiquetas como <<>> para indicar que no es una clase sino una interfaz. Los atributos y los métodos pueden incorporar información adicional como por ejemplo el tipo de acceso
(Público, privado, protegido), el tipo de datos de los atributos los parámetros de los métodos e incluso el tipo de retorno en el caso de las operaciones. Teniendo en cuenta lo anterior a continuación se muestra una típica clase en estos diagramas.


Hay diferentes tipos de relaciones en el diagrama de clases, a continuación se describen.
• Asociación: Indica una relación genérica entre dos clases que puede estar acompañada por una multiplicidad, su anotación es simplemente una línea que une a las dos clases.

• Composición o agregación: Esta relación se da cuando una clase está contenida en otra, si una clase es parte fundamental en otra entonces hay composición, en este caso, la clase no puede existir sin su relación con la clase que asocia. En la agregación simplemente una clase incluye a la otra, pero la clase que es incluida
tiene identidad en sí misma.

• Dependencia: Es cuando una clase depende de otra porque la utiliza como atributo o parámetro de otra.
• Generalización: es cuando hay una relación de herencia entre dos clases.


Otros diagramas

• Diagramas de objeto: Los diagramas de objetos muestran las relaciones entre objetos, se asemejan en cierta medida a los diagramas de clase, porque también se representan con rectángulos, pero en estos caso el nombre esta subrayado y está acompañado por dos punto y luego la clase de la cual es instancia el objeto.
• Diagramas de casos de uso: Los casos de uso son un modelo de la funcionalidad del sistema desde el punto de vista del usuario, son muy utilizados para encontrar aciertos y errores, así como requerimientos del sistema desde el punto de vista del usuario. Nos permiten expresar gráficamente las relaciones entre los diferentes usos del mismo y sus participantes o actores. El resultado es un conjunto de diagramas muy fácilmente entendibles tanto por el cliente, como por los analistas del proyecto. Se compone de actores y casos de uso relaciones y limites del sistema.

• Diagramas de secuencia: Los diagramas de secuencia muestran la interacción entre los objetos del sistema en el tiempo. Proporcionando una buena base para identificar el comportamiento del sistema, pues muestran la lógica del flujo del sistema. Son comúnmente utilizados para describir problemas complejos, ya que muestran los elementos implicados en ellos. Se componen de objetos, actor, vida del objetos y activación y mensaje.


No hay comentarios: