Documentos de Académico
Documentos de Profesional
Documentos de Cultura
al
Paradigma
Orientado a Objetos
Objetos
• ¿Qué es un objeto?
2
Objetos
Objetos
4
Objetos
Nombre de la Clase
-------------------------------
• Atributo1 Se puede permitir o restringir su
• Atributo2
------------------------------- acceso desde “afuera”
• Metodo1
• Metodo2 Pueden ser Públicos o Privados
• Metodo3
Identidad
Comportamiento
8
Objetos
Objetos
10
Objetos vs. Clases
11
Herencia
13
Polimorfismo
14
¿Preguntas?
15
UML
16
Objetivos de UML
17
Objetivos de UML
18
Diagrama
de
Clases
19
Diagrama de Clases
20
Diagrama de Clases
• Nombre de la clase
• Atributos de la clase
• Operaciones de la clase
21
• Tipo:
Tipo: puede llegar a depender del lenguaje de programación a utilizar.
utilizar.
• Valor inicial:
inicial: valor que poseerá el atributo al crear un objeto.
• Visibilidad:
Visibilidad: está relacionado con el encapsulamiento.
• Multiplicidad:
Multiplicidad: determinar si un atributo debe estar o no, y si posee un único valor o
una lista de valores.
• Ordenamiento:
Ordenamiento: especifica si el atributo determina alguna relación de orden dentro dentro de la
clase.
• Capacidad de cambio:
cambio: permite definir atributos con valores constantes.
• Modificadores:
Modificadores: un atributo puede ser de clase, derivado, volátil, transitorio.
transitorio.
22
Diagrama de Clases: Atributos
Visibilidad
Niveles de encapsulamiento:
Multiplicidad
1 El atributo debe tener un único valor.
0..1 El atributo puede o no tener un valor.
0..* El atributo puede tener varios valores o ninguno.
1..* El atributo puede tener varios valores, pero debe tener al menos uno
* El atributo puede tener varios valores.
M..N El atributo puede tener entre M y N valores.
Modificadores
• De clase o estático:
estático: el atributo se aparece subrayado. No es necesario contar
con un objeto para ejecutarlo.
• Derivado:
Derivado: es calculable a partir de otros atributos.
• Transitorio:
Transitorio: tendrá valor sólo durante una porción de la ejecución.
• Volátil:
Volátil: no se persiste.
24
Diagrama de Clases: Operaciones
• Tipo devuelto:
devuelto: puede llegar a depender del lenguaje de programación a utilizar.
utilizar.
• Parámetros:
Parámetros: además del tipo, puede especificarse si son In, Out o InOut.
• Visibilidad:
Visibilidad: está relacionado con el encapsulamiento.
• Modificadores:
Modificadores: una operación puede ser de clase, abstracta, query o constructor.
constructor.
25
Diagrama de Clases
Relaciones entre Clases
26
Diagrama de Clases: Asociación
Enlace
27
Diagrama de Clases
Relaciones entre Clases
Multiplicidad
1 Un elemento relacionado.
0..1 Uno o ningún elemento relacionado.
0..* Varios elementos relacionados o ninguno.
1..* Varios elementos relacionados pero al menos uno.
* Varios elementos relacionados.
M..N Entre M y N elementos relacionados.
28
Diagrama de Clases: Asociación
Rol
• Identificado como un nombre a los finales de la asociació
asociación,
describe la semá
semántica de la relació
relación en el sentido indicado.
• Cada asociació
asociación tiene dos roles; cada rol es una direcció
dirección en
la asociació
asociación.
29
30
Diagrama de Clases: Agregación
31
32
Diagrama de Clases: Asociación Calificada
fila:
fila: int
columna:
columna: int
33
La relaciones n-
n-arias
pueden ser usadas
para impedir
inconsistencias en el
modelo.
34
Diagrama de Clases: Generalización
35
Restricciones predefinidas
en UML:
• Overlapping
• Disjoint
• Complete
• Incomplete
36
Diagrama de Clases: Generalización
Discriminador
37
38
Diagrama de Clases: Clase de asociación
39
40
Diagrama de Clases: Dependencia
• use:
use: el funcionamiento del origen depende de la
presencia del destino
• instantiate:
instantiate: el origen crea instancias del destino
• derive:
derive: el origen puede calcularse a partir del destino
• refine:
refine: el origen está
está un grado de abstracció
abstracción má
más
detallado.
• bind():
bind(): derivació
derivación gené
genérica de una plantilla
• friend:
friend: visibilidad caracterí
característica de C++
41
42
Diagrama de Clases: Interfaces
43
44
Diagrama de Clases: Interfaces
45
Ejemplo
46
Modelo de Dominio vs. Modelo de Diseño
47
Modelo de Dominio
48
Modelo de Dominio
49
Modelo de Dominio
50
Modelo de Dominio: Clases Conceptuales
Es vá
válido…
lido…
• Tener clases conceptuales sin atributos.
• Tener clases conceptuales para las cuales no haya
requerimientos de informació
información a registrar.
• Tener clases conceptuales con rol de
comportamiento,
comportamiento, en lugar de informació
información.
51
52
Modelo de Dominio: Clases Conceptuales
53
Ejemplo
54
Modelo de Diseño
Modelo de Diseño
56
Principios de Diseño
• Descomposición
• Abstracción
• Cohesión
• Bajo Acoplamiento
• Modularidad
• Encapsulamiento
57
Descomposición
58
Abstracción
• Representaciones / Algoritmos
• Arquitectura / Estructura
• Externo / Funcional
59
Cohesión
60
Bajo Acoplamiento
61
Modularidad
• Representaciones de datos
• Algoritmos
• Entradas y salidas
• Interfaces de bajo nivel
63
Patrones de Diseño
64
Patrones de Diseño
Patrones de Diseño
Tipos de Patrones
• De Creación:
Creación: abstraen el proceso de creación
de instancias.
• Estructurales:
Estructurales: se ocupan de cómo clases y
objetos son utilizados para componer
estructuras de mayor tamaño.
• De Comportamiento:
Comportamiento: atañen a los algoritmos
y a la asignación de responsabilidades entre
objetos.
66
Patrones de Diseño
Algunos nombres:
• De Creación:
• Factory Method,
Method, Prototype,
Prototype, Singleton,
Singleton, etc.
• Estructurales:
• Facade,
Facade, Proxy,
Proxy, Adapter,
Adapter, etc.
• De Comportamiento:
• Observer,
Observer, Command,
Command, Strategy,
Strategy, etc.
67
Patrones de Diseño
69
Paquetes
70
Paquetes
71
Paquetes
• Entre
paquetes puede aparecer una relació
relación de
dependencia.
73
Paquetes
74
Paquetes
75
Ejemplo
• Posible estructuración
76
¿Preguntas?
77
Diagrama
de
Objetos
78
Diagrama de Objetos
79
Diagrama de Objetos
80
¿Preguntas?
81
Diagrama
de
Secuencia
82
Diagrama de Secuencia
Mensajes
Líneas de vida
Activación
83
Diagrama de Secuencia
objeto otroObjeto
84
Diagrama de Secuencia
objeto otroObjeto
85
Diagrama de Secuencia
Recursión
• La operación oper() se llama a sí misma.
Habrá una condición en la operación que parará la recursión.
• Se muestra explícitamente la respuesta.
objeto
86
Diagrama de Secuencia
Ciclos y alternativas
87
Ejemplo
88
Otro ejemplo
Un posible diseñ
diseño para el caso del local de venta de electrodomé
electrodomésticos…
sticos…
89
Ejemplo
90
Ejemplo
91
¿Preguntas?
92
Diagrama
de
Colaboración
93
Diagrama de Colaboración
94
Diagrama de Colaboración: Mensajes
• Un mensaje desencadena una acción en el objeto destinatario.
95
Diagrama de Colaboración
96
Colaboración vs. Secuencia