POO Y UML (Entornos de Desarrollo)
POO Y UML (Entornos de Desarrollo)
POO Y UML (Entornos de Desarrollo)
Diagramas UML:
Son el corazón de UML y se pueden clasificar en diagramas estructurales y comportamiento:
- Diagramas estructurales: Visión estática del sistema y describen como se organiza el
sistema. Especifican clases y objetos.
- Diagramas de comportamiento: Visión dinámica del sistema y describen el comportamiento
del sistema. Instancias y objetos que integran el sistema.
▪ Diagrama de Clases:
Muestra el conjunto de clases y objetos importantes
que forman parte de un sistema.
Muestra de una manera estática la estructura de
información del sistema y visibilidad que tiene cada
una de las clases. (Prioridad ALTA)
▪ Diagrama de Colaboración:
Se centra en el intercambio de mensajes entre un grupo de objetos y las relaciones entre los
objetos. (Prioridad BAJA)
▪ Diagrama de Actividades:
Representa una actividad que muestra el orden en el que se van realizando tareas dentro del
sistema. Una acción o actividad provoca algún cambio en el sistema. (Prioridad ALTA)
▪ Diagrama de Estados:
Muestra el ciclo de vida o estados que un objeto o interacción puede tener. (Prioridad MEDIA)
Diagrama de Clases
Modela la vida estática del sistema.
Elementos:
- Relaciones: Relaciona los elementos del sistema entre dos clases que se incluyen en el
diagrama, se representa como una línea continua.
- Notas: Se representa como un cuadro donde escribimos comentarios que ayudan a
entender conceptos que queremos representar.
- Elementos de agrupación: Se utilizan cuando hay que modelar un sistema grande, las
clases y relaciones se agrupan en paquetes que se relacionan entre si.
- Objeto: Algo distinguible que percibimos que tiene existencia física o conceptual [Lucia, La
Luna]
- Clases: Objetos de una familia que se perciben con características llamadas atributos y
comportamientos llamado métodos. [Persona, Satélite]
- Instancia de una clase: Representación de un objeto de una clase
[Persona persona1=new Persona (Lucia)]
▪ Elementos:
- Atributo: Es una característica de la clase, el nombre es corto
y se suele poner la primera letra de cada palabra en
mayúscula excepto la primera (velocidadMaxima), y junto a
este nombre se puede añadir el tipo (String, int), el valor por
defecto, etc.
- Operación: Comportamiento del objeto, el nombre es un
verbo y se suele poner la primera letra de cada palabra en
mayúscula excepto la primera (cogerArma())
▪ Restricciones:
- Dentro de una misma clase no se pueden repetir nombres de atributos.
- El nombre de las clases se escribe en negrita.
- Los nombres de las clases y asociaciones empiezan por mayúscula.
- Los nombres de los atributos y las operaciones empiezan por minúscula.
- Public (UML: signo +): Puede acceder desde cualquier clase y cualquier parte del programa.
Las operaciones deben ser públicas.
- Private (UML: signo -): Solo puede acceder desde dentro de la misma clase, los atributos
deben ser privados.
- Protected (UML: signo #): Punto medio entre publico y privado, no se puede acceder a la
variable desde una instancia de la clase, pero puede acceder desde las subclases de esta sin
importar si se encuentran o no en el mismo paquete.
Relaciones entre clases:
Formas de relación entre clases:
- Asociación, Composición y Agresión.
▪ Asociación:
Expresa una conexión bidireccional entre objetos y especifica que los objetos de una clase
están conectados con objetos de otra clase.
- Rol: Papel especifico que juega una clase en dicha relación, una clase puede jugar el
mismo o diferentes roles.
• Clase Asociación:
- Clase Asociación: Asociación que también es una clase que puede tener atributos y
operaciones y estar vinculadas a otras clases a través de asociaciones.
- Atributo Asociación: Propiedad en una asociación.
- Los vínculos/enlaces entre las instancias de las clases pueden llevar informaciones.
▪ Composición:
- Composición fuerte: Agregación fuerte en la que una instancia ‘parte’ está relacionada como
máximo con una instancia ‘todo’. Su cardinalidad máxima es uno y cuando un objeto ‘todo’
es eliminado también son eliminados los objetos ‘parte’.
Estas relaciones se representan con un rombo en el extremo de la entidad contenedora. La
agregación es de color blanco y la composición negra.
- Composición débil: Los componentes pueden ser compartidos por varios compuestos (de la
misma asociación de agregación o de varias distintas). La eliminación del compuesto no
permite la eliminación de los componentes. La agregación es más común que la
composición.
▪ Agregación:
Asociación binaria que representa una relación
todo-parte (es parte de). El tiempo de vida de
los objetos no tiene porque coincidir.
• Agregaciones típicas:
- Partes que componen un objeto de nivel superior:
▪ Generalización (supertipo):
Asociación entre una clase y otra mas general de modo que la primera describe una
subfamilia de objetos de la otra, consiste en factorizar las propiedades comunes de un
conjunto de clases en una clase más general.
Indica una relación más general (supertipo) y un caso mas especifico (subtipo) de ese
elemento.
Este método produce una estructura jerárquica en la que existen clases sin padres (clase
base) y clases sin hijos (clases especializadas u hojas).