POO Y UML (Entornos de Desarrollo)

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 12

Programación Orientada a Objetos (POO):

Se centra en simular los elementos de la realidad asociada al problema de la forma más


cercana posible.
Características:
- Formado por un conjunto de atributos que son los datos que le caracterizan.
- Conjunto de operaciones que definen su comportamiento.
Un objeto es una instancia de una clase.

Cuando se ejecuta un Programa Orientado a Objetos ocurren tres sucesos:


- Los objetos se crean a medida que se necesitan.
- Los mensajes se mueven de un objeto a otro.
- Cuando los objetos ya no se necesitan se borran y se libera la memoria.

Lenguaje Unificado de Modelado (UML):


Es un lenguaje de modelado de software que permite a los desarrolladores a visualizar el
producto de su trabajo en esquemas o diagramas denominados modelos.
Un diagrama es la representación grafica de un conjunto de elementos con sus relaciones.
Permite:
- Modularidad: Permite subdividir una aplicación en partes más pequeñas (módulos)
- Visualizar: Expresar de una forma gráfica un sistema de forma que otro lo pueda entender.
- Especificar: Especificar cuáles son las características de un sistema antes de su
construcción.
- Construir: A partir de los modelos especificados se pueden construir los sistemas
diseñados (sofware).
- Documentar: Documentar el sistema desarrollado que puede servir para su futura revisión.

Compuesto por tres clases de bloques de construcción:


- Elementos: Abstracciones de cosas reales o ficticias (objetos, acciones, etc.) a partir de las
que se construyen los modelos.
- Relaciones: Relacionan los elementos entre sí.
- Diagramas: Colecciones de elementos con sus relaciones.
VENTAJAS DESVENTAJAS
Permite la reutilización. No es un método de desarrollo estandarizado.
Fácil de modificar y modular. Extensiblemente complejo y para sistemas
complejos se requiere invertir bastante para
obtener diagramas aceptables.
Facilita la adaptación al entorno. Un software con un buen diseño UML aumenta
los costes.

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.

DIAGRAMAS ESATICOS DIAGRAMAS DINAMICOS


Diagrama de Clases Diagrama de Casos de Uso
Diagramas de objetos Diagrama de Secuencia
Diagrama de componentes Diagrama de Colaboración
Diagrama de despliegue Diagrama de Actividades
Diagrama de Estados

▪ 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 Casos de Uso:


Sirve para especificar el comportamiento de un sistema, representa las acciones a realizar en
el sistema desde el punto de vista de los usuarios. (Prioridad MEDIA)
▪ Diagrama de Secuencia:
Se centra en el intercambio de mensajes entre un grupo de objetos y el orden de los
mensajes. (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)]

La clase define un conjunto de objetos y cada objeto pertenece a una clase.


Características de un objeto:
- Estado: Valores de los atributos y por las relaciones del objeto con otros objetos.
- Comportamiento: Indica todo lo que el objeto puede hacer.
- Identidad: Cada objeto es único, aunque tenga el mismo estado que otros.

Notación gráfica de las Clases:


Cada clase se representa en un rectángulo con tres compartimientos:
- Nombre de la clase.
- Atributos de la clase.
- Operaciones de la clase.

▪ 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.

Adornos que se pueden incluir en la asociación:


- Nombre: Describe la relación que existe entre las clases.

- Rol: Papel especifico que juega una clase en dicha relación, una clase puede jugar el
mismo o diferentes roles.

- Multiplicidad: Indica cuantos objetos pueden participar en una instancia de la relación, se


indican tantas multiplicidades como clases participen en la asociación. Describe el numero
mínimo y máximo de enlaces posibles.
CARDINALIDAD SIGNIFICADO
1 Uno y solo uno (clase unitaria)
0..1 Cero y uno
0.1 Cero o uno
N..M Desde N hasta M
0..4 Entre cero y cuatro
3.7 Tres o siete
* De cero a varias (por defecto)
0..* Mayor o igual de cero
1..* Uno o varias
0..3.7.9..* Cualquier numero menos 4, 5, 6 y 8
Dependiendo del número de clases que participan en una asociación pueden ser:
- Reflexiva: Asociación de una clase consigo misma.

- Binaria: Asociación entre dos clases.

- Ternaria: Asociación entre tres clases.

OCL: Lenguaje para la descripción formal de expresiones en los modelos UML,


su papel principal es complementar los diferentes artefactos de la notación
UML con requerimientos formalmente expresados.

- N-aria: Asociación entre tres o más clases.

• 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:

- Elementos contenidos en otro nivel superior:

- Miembros de una colección o conjunto:

• Caracterizaciones relacionadas con la multiplicidad:

DIFERENCIAS ENTRE COMPOSICIÓN Y AGREGACIÓN


AGREGACIÓN COMPOSICIÓN
Representación Rombo transparente Rombo negro
Varias asociaciones comparten los
SI NO
componentes
Destrucción de los componentes al
NO SI
destruir el compuesto
Cardinalidad as nivel compuesto Cualquiera 0..1 ó 1
Jerarquía de clases:
- Herencia: Relación entre una superclase y una o varias subclases. Una clase hereda los
atributos y métodos de la superclase permitiendo la reutilización.
- Herencia simple: Adquiere datos y métodos de una única clase base.
- Herencia múltiple: Adquiere datos y métodos de más de una clase. Se recomienda un suso
restringido. (JAVA no la permite)

La herencia se puede encontrar mediante dos


métodos:
- Generalización y Especialización.

▪ 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).

Se define un supertipo cuando los conceptos comparten entre si varios atributos o


comportamientos semejantes.
▪ Especialización (subtipo):
Es una técnica muy eficaz para la extensión y reutilización.

Se define un subtipo cuando este tiene otros atributos y asociaciones.

Pasos para realizar el Diagrama de Clases:


1. Identificar las clases.
- Subrayar los sustantivos correspondientes a las clases excluyendo las repeticiones y todo
en singular.
- Eliminar las clases innecesarias, las que son irrelevantes para el problema, ya que muchos
serán atributos.
2. Identificar las relaciones y multiplicidades.
- Subrayar las expresiones verbales, las relaciones de herencia se suelen encontrar al
comparar objetos semejantes entre si.
3. Identificar los atributos.
Ejemplos de Diagramas de Clases:

También podría gustarte