![]() |
![]() ![]() |
ePortafolio POO 2A
jueves, 25 de febrero de 2016
1.2.- Lenguaje Unificado de Modelado: diagrama de clases.
UML
UML es un
Lenguaje de Modelado Unificado basado en una notación gráfica que permite:
especificar, construir, visualizar y documentar los objetos que forman un
sistema software orientado a objetos.
UML
representa la unificación de las notaciones de los métodos Booch, Objectory
(Ivar Jacobson) y OMT (James Rumbaugh) siendo su sucesor directo y compatible.
Igualmente, UML incorpora ideas de otros metodólogos entre los que podemos
incluir a Peter Coad, Derek Coleman, Ward Cunningham, David Harel, Richard
Helm, Ralph Johnson, Stephen Mellor, Bertrand Meyer, Jim Odell, Kenny Rubin,
Sally Shlaer, John Vlissides, Paul Ward, Rebecca Wirfs-Brock y Ed Yourdon.
Algo que
debe quedar bien claro es que se trata de una notación, es decir, reglas y
recomendaciones para representar modelos. UML no es un proceso de desarrollo,
entendido como el conjunto de pasos sistemáticos a seguir para desarrollar
software. UML nos va a permitir documentar y especificar los elementos creados
mediante un lenguaje común describiendo modelos.
Surge la
pregunta, ¿qué es eso del modelado? En todos los ámbitos de la ingeniería se
construyen modelos para entender mejor el sistema que vamos a desarrollar. Así
los arquitectos diseñan planos de edificios que más tarde se van a construir.
Los ingenieros industriales hacen diseños de automóviles. Por tanto, si
hablamos de ingeniería del software, los ingenieros de software deberían hacer
lo propio y construir modelos de los sistemas software.
Para la
construcción de modelos, hay que centrarse en los detalles relevantes mientras
se ignoran los demás, por lo cual con un único modelo no tenemos bastante.
Varios modelos nos aportan diferentes vistas de un sistema para comprenderlo
desde varios puntos de vista. Así, UML recomienda nueve diagramas para representar
los distintos puntos de vista de un sistema: Casos de Uso, Diagrama de Clases,
Diagrama de Objetos, Diagrama de Secuencia, Diagrama de Colaboración, Diagrama
de Estados, Diagrama de Actividades, Diagrama de Componentes y Diagrama de
Despliegue.
UML
maneja un vocabulario que abarca tres clases de bloques: elementos, relaciones
y diagramas.
- Los elementos son abstracciones que representan las entidades principales en un modelo,
- las relaciones son mecanismos para enlazar los elementos,
- los diagramas permiten manejar diferentes visualizaciones de conjuntos de elementos conectados entre sí.
UML
ofrece cuatro clases de elementos: los estructurales, los de comportamiento,
los de agrupación y los de anotación.
Elementos
estructurales
Los
elementos estructurales representan la parte estática del modelo e identifican
las partes que lo forman. UML contempla siete tipos de elementos estructurales:
clases, interfaces, colaboraciones, casos de uso, clases activas, componentes y
nodos. Durante el desarrollo del curso serán necesarios los siguientes:
- Las clases describen un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semántica. En la representación de clases y objetos distinguiremos uno de otro subrayando el nombre del objeto, a diferencia de la clase cuyo nombre irá sin subrayar.
- Una interface es una colección de operaciones que especifica un servicio de una clase o componente, describiendo el comportamiento visible, parcial o total, de un elemento.
Elementos
de comportamiento
Son la
parte dinámica de UML y representan la forma de actuar del sistema, tanto en el
tiempo como en el espacio. Hay dos clases de comportamiento:
- Diagrama de interacción que refleja el conjunto de mensajes que intercambian una colección de objetos dentro de un contexto particular con un propósito específico. El comportamiento involucra los elementos: mensajes, secuencias de acción y ligas.
- Máquina de estados que especifica la secuencia de estados que un objeto o una interacción tiene durante su tiempo de vida al responder a eventos.
Elementos
de agrupación
Son la
parte organizacional de UML. Representan las partes en las que se puede
descomponer un modelo, las cuales son llamadas paquetes. Los paquetes son un
mecanismo de propósito general para organizar elementos en grupos. En un
paquete se pueden agrupar elementos estructurales, de comportamiento y otros.
Es un elemento puramente conceptual, existe sólo en el tiempo de desarrollo.
Elementos
de anotación
Sirven
para documentar los modelos. Hablamos de las notas que utilizaremos para
remarcar restricciones o comentarios a un elemento o a una colección de
elementos.
Nos
permiten modelar los enlaces existentes entre diferentes elementos
estructurales, mostrando además información adicional como nombres de roles
(identificación del papel que juegan cada elemento en la relación) ó
multiplicidad (restricción que limita el número de instancias de una clase que
pueden estar relacionadas con la clase asociada).
UML
maneja cuatro tipos de relaciones:
- Una dependencia es una relación semántica entre dos clases en la cual un cambio de un elemento puede afectar la semántica de otro (dependiente). Una asociación es una relación estructural que describe un conjunto de ligas, las cuales representan conexiones a través de objetos. La agregación es una clase especial de asociación que representa una relación de estructura entre un conjunto y sus partes. Se representa con un diamante en el extremo de la clase agregada.
- La generalización es una relación de especialización/generalización en la cual los objetos de un elemento especializado (hijos) son consistentes con los objetos de un elemento generalizable (el padre). Modeliza el comportamiento de la herencia.
- Una realización es una relación semántica entre clasificadores, en donde un clasificador especifica un contrato que otro clasificador garantiza llevar a cabo. Básicamente modeliza el comportamiento existente entre el interfaz y la clase que implementa el interfaz.
Un
diagrama es la representación gráfica de un conjunto de elementos conectados
entre sí. De los elementos vistos, un mismo elemento puede aparecer en uno,
varios o ningún diagrama. UML incluye nueve tipos de diagramas que son:
- Diagrama de Casos de Uso: modela la funcionalidad del sistema. agrupándola en descripciones de acciones ejecutadas por un sistema para obtener un resultado.
- Diagrama de Clases: muestra las clases que componen el sistema y cómo se relacionan entre sí.
- Diagrama de Objetos: muestra una serie de objetos y sus relaciones.
- Diagrama de Secuencia: Describe la interacción entre los objetos por medio de los mensajes que intercambian a lo largo del tiempo entre sí.
- Diagrama de Colaboración: Muestra la interacción entre los objetos resaltando la organización estructural de los objetos.
· Diagrama de
Estados: modela el comportamiento de acuerdo con eventos.
· Diagrama de
Actividades: simplifica el Diagrama de Estados modelando el comportamiento
mediante flujos de actividades.
· Diagrama de
Componentes: muestra la organización y las dependencias entre un conjunto de
componentes.
· Diagrama de
Despliegue: muestra los dispositivos que se encuentran en un sistema y su
distribución en el mismo.
1.1 Elementos del modelo de objetos: clases, objetos, abstracción, modularidad, encapsulamiento, herencia y polimorfismo.
Clase:
Son los datos y operaciones comunes a un conjunto de objetos que comparten características.
Son los datos y operaciones comunes a un conjunto de objetos que comparten características.
Objetos:
Entidad compuesta de datos y operaciones que realizan sobre esos datos.
Mantienen unas características en una o más variables e implementan su comportamiento con métodos.
Todo objeto del mundo real tiene 2
componentes: características y comportamiento.
Por ejemplo, los automóviles tienen características (marca,
modelo, color, velocidad máxima, etc.) y comportamiento (frenar,
acelerar, retroceder, llenar combustible, cambiar llantas, etc.).
Abstracción:
La abstracción consiste en captar las características esenciales de un objeto, así como su comportamiento. Por ejemplo, volvamos al ejemplo de los automóviles, ¿Qué características podemos abstraer de los automóviles? O lo que es lo mismo ¿Qué características semejantes tienen todos los automóviles? Todos tendrán una marca, un modelo, número de chasis, peso, llantas, puertas, ventanas, etc. Y en cuanto a su comportamiento todos los automóviles podrán acelerar, frenar, retroceder, etc.
La abstracción consiste en captar las características esenciales de un objeto, así como su comportamiento. Por ejemplo, volvamos al ejemplo de los automóviles, ¿Qué características podemos abstraer de los automóviles? O lo que es lo mismo ¿Qué características semejantes tienen todos los automóviles? Todos tendrán una marca, un modelo, número de chasis, peso, llantas, puertas, ventanas, etc. Y en cuanto a su comportamiento todos los automóviles podrán acelerar, frenar, retroceder, etc.
En los lenguajes de programación orientada a objetos,
el concepto de clase es la representación y el mecanismo por el
cual se gestionan las abstracciones.
Por ejemplo, en Java tenemos:
public class Automovil {
// variables
// métodos
}
// variables
// métodos
}
Modularidad:
Es la propiedad que tiene un sistema que ha sido descompuesto en un conjunto de módulos cohesivos y vagamente convexos, cada módulo se puede compilar separadamente aunque tenga conexiones con otros módulos.
En un diseño estructural, popularización comprende el agrupamiento significado de subprogramas en diseño orientado a objetos, la modularidad debe ceñirse a la estructura lógica elegida en el proceso de diseño.
Dividir un programa en componentes individualizados reduce en alguna manera su complejidad; C++ separa los módulos interface de los módulos con implementación.
Encapsulamiento:
Es el ocultamiento de información que no es necesario saber un determinado usuario, la utilidad del encapsulamiento va por la facilidad para manejar la complejidad, donde solo se conoce el comportamiento pero no los detalles internos, aquí lo que interesa es ¿Qué hace la clase? Pero no el ¿Cómo lo hace?
Herencia:
Una herencia puede heredar sus variables y métodos a varias subclases (la clase que hereda es llamada es llamada súper clase o clase padre)
Polimorfismo:
Se basa en utilizar varios métodos con el mismo nombre y con diferente funcionalidad, un objeto polimorfismo es una entidad que puede contener valores de diferentes tipos durante la ejecución de un programa.
Es el ocultamiento de información que no es necesario saber un determinado usuario, la utilidad del encapsulamiento va por la facilidad para manejar la complejidad, donde solo se conoce el comportamiento pero no los detalles internos, aquí lo que interesa es ¿Qué hace la clase? Pero no el ¿Cómo lo hace?
Herencia:
Una herencia puede heredar sus variables y métodos a varias subclases (la clase que hereda es llamada es llamada súper clase o clase padre)
Polimorfismo:
Se basa en utilizar varios métodos con el mismo nombre y con diferente funcionalidad, un objeto polimorfismo es una entidad que puede contener valores de diferentes tipos durante la ejecución de un programa.
Suscribirse a:
Entradas (Atom)
















