UF3: UML Flashcards
UML
Unified Modeling Languaje.
Lenguaje que se utiliza para documentar.
Es un lenguaje gráfico para visualizar, especificar y documentar cada una de las partes que comprende el desarrollo de software.
Se puede utilizar para: modelar sistemas de software, hardware u organizaciones.
Utiliza diagramas.
Existen 2 grandes versiones de UML
- UML1.x (finales de los 90)
- UML2.x (2005)
TIPOS DE DIAGRAMA
- Diagrama de estructura (parte estática del modelo)
- Diagrama de clases
- Diagrama de estructuras compuestas
- Diagrama de componentes
- Diagrama de despliegue
- Diagrama de objetos
- Diagrama de paquetes
- Diagrama de comportamientos (parte dinámica del modelo).
- Diagrama de interacción (se centran en el flujo de control y de datos entre los elementos del sistema modelado)
- Diagrama de secuencia
- Diagrama de resumen de interacción
- Diagrama de comunicación
- Diagrama de tiempo
- Diagrama de actividad
- Diagrama de casos de uso
- Diagrama de máquina de estado
Diagrama de estructura
Parte estática del modelo
Diagramas de comportamiento
Parte dinámica del modelo
OBJETO
Un objeto es la instancia de una clase.
Y está constituido por un conjunto de atributos (valores), métodos (acciones) e identidad propia (que lo distingue de los demás objetos.
La estructura y comportamiento de objetos similares tendrán una clase común.
Una clase es: un conjunto de objetos con estructura y comportamientos similares.
PRINCIPIOS DEL MODELO ORIENTADO A OBJETOS
- Abstracción: características esenciales de un objeto de tal forma que lo distingue de los demás. Indican que trabajo va a realizar ese objeto, como se comunica con los demás, sin necesidad de mostrar como se implementan esas características.
- Encapsulación: conjunto de elementos que pertenecen a la misma entidad y al mismo nivel de abstracción. Gracias a esto, permite una mayor cohesión de sus componentes y separa la parte interna inaccesible para otros objetos de la externa, que sí será accesible. Oculta los métodos y atributos a otros objetos, pasando a ser privados.
- Modularidad: es la capacidad de un sistema o aplicación para dividirse en pequeños módulos independientes.
- Jerarquía o herencia: propiedad que permite que algunas clases tengan propiedades y características de una clase superior. La clase principal se llama clase padre o superclase. La nueva clase se denominará clase hija o subclase, que heredará todos los métodos y atributos de la superclase. Cada subclase estará formada con objetos más especializados.
- Polimorfismo: cuando dos instancias u objetos pertenecientes a distintas clases pueden responder a la llamada a métodos del mismo nombre, cada uno de ellos con distinto comportamiento encapsulado. Ambos responden a una interfaz común (marcada a través del mecanismo de la herencia).
- Tipificación: definición precisa de un objeto de forma que objetos de diferentes tipos no se pueden intercambiar.
- Concurrencia: propiedad de un objeto que está activo respecto de otro que no lo está.
- Persistencia: propiedad de un objeto en virtud de la cual su existencia trasciende en el tiempo y/o el espacio.
DIAGRAMA DE CLASES:
Clase
Una representación gráfica y estática de la estructura general de un sistema, mostrando cada una de las clases (atributos, métodos y visibilidad) y sus interacciones (relaciones: asociación, herencia, agregación, composición, realización y dependencia) representadas en forma de bloques. Vamos a poder visualizar las relaciones que existen entre las clases.
Estará compuesto por los siguientes elementos:
- Clases: atributos, métodos y visibilidad.
- Relaciones: asociación, herencia, agregación, composición y dependencia.
Representación de una clase en UML
DIAGRAMA DE CLASES
Podemos representarla con un rectángulo dividido en tres partes:
- Parte superior: nombre de la clase.
- Parte central: atributos, que caracterizan la clase (private, protected, package o public).
- Parte inferior: métodos u operaciones, forma de interactuar del objeto con el entorno (según visibilidad: private, protected, package o public).
Al representar la clase, podemos obviar señalar los atributos y métodos. La visibilidad de los métodos debe ser por defecto public, y la de los atributos, private.
Atributos y métodos pueden ser
DIAGRAMA DE CLASES
- Public: Visible tanto dentro como fuera de la clase. “+”
- Private: Visible dentro de la clase. “-“
- Protected: No será accesible desde fuera de la clase, pero sí por los métodos de la clase y subclases. “#”.
- Package: Será visible en las clases del mismo paquete. “~”
Relaciones
DIAGRAMA DE CLASE
Los objetos estarán vinculados entre sí, y se corresponden con asociaciones entre objetos En UML estos vínculos se describen a través de asociaciones al igual que los objetos se describen mediante clases.
Poseen un nombre y una cardinalidad llamada multiplicidad, que representa el número de instancias de una clase que se relaciona con las instancias de otra clase: La asociación es similar a la utilizada en el modelo entidad/relación. En cada extremo será posible indicar la multiplicidad mínima y máxima para indicar el intervalo de valores al que tendrá que pertenecer siempre la multiplicidad
Notación:
Tipos de Relaciones
DIAGRAMA DE CLASE
-
ASOCIACIÓN (dependiendo de si una conoce la existencia de la otra, clase cuenta con un rol, que se indica en la parte superior o inferior de la línea que conecta a ambas clases, y, además, este vínculo también tendrá un nombre, representado con una línea que conecta a ambas clases.):
- Unidireccional: la clase destino no sabrá de la existencia de la clase origen y la clase origen contendrá un objeto o set de objetos de la clase destino.
- Bidireccional: se puede recorrer en ambos sentidos entre las dos clases.
Dependiendo de la multiplicidad, podemos pasar de un objeto de una clase a uno o varios de la otra. A este proceso se le llama navegabilidad. En la asociación unidireccional, la navegabilidad es solo en un sentido, desde el origen al destino, pero no al contrario. Algunas clases pueden asociarse consigo mismas, creando así una _asociación reflexiva_. Estas asociaciones unen entre sí instancias de una misma clase.
-
HERENCIA: Podremos organizar las clases de forma jerárquica y, gracias a la herencia, seremos capaces de compartir atributos y operaciones comunes con las demás clases a través de una superclase. Las demás clases se conocen como subclases.
- La subclase hereda los atributos y métodos de la otra. La superclase generaliza a las subclases y las subclases especializan a la superclase. para representar esta asociación se usará una flecha, donde el extremo de la flecha apunta a la superclase.
- La superclase
- Generalización
- Especialización
- CLASE ASOCIACIÓN: Hay asociaciones entre clases que podrán tener información necesaria para dicha relación.
-
COMPOSICIÓN: consiste en que un objeto puede estar compuesto por otros objetos. Existirán dos formas:
- asociación fuerte, conocida como composición (los objetos están constituidos por componentes y la supresión del objeto comporta la supresión de los componentes. La cardinalidad será de uno a varios. Se representa con una línea con un rombo lleno).
- asociación débil, conocida como agregación.
- REALIZACIÓN: Relación de herencia que existe entre la clase interfaz y una subclase que implementa esa interfaz.
- DEPENDENCIA: Muestra la relación entre un cliente y un proveedor de un servicio usado por el cliente.. (Ej. Clase Ecuación - - - - -> Clase Math)
Asociación
DIAGRAMA DE CLASE
- Unidireccional
- Bidireccional
Determina navegabilidad
Asociación reflexiva
DIAGRAMA DE CLASE
Se da cuando una instancia de clase se relaciona con otra instancia de su misma clase (Ej: empleado - empleado jefe)
Clase asociación
DIAGRAMA DE CLASE
Hay asociaciones entre clases que podrán tener información necesaria para dicha relación.
HERENCIA (GENERALIZACIÓN / ESPECIALIZACIÓN)
DIAGRAMA DE CLASE
El extremo de la flecha apuntará a la superclase.