Beruflich Dokumente
Kultur Dokumente
Departamento de Informática
FCEFN – UNSJ
Año 2019
INTRODUCCION A LA O.O (1)
Objetivos:
Al término de esta unidad se espera:
- Que el alumno distinga las ventajas de la orientación a
objetos, frente a otros tipos de diseño.
- Que el alumno Interprete los conceptos de encapsulamiento,
abstracción, reusabilidad y herencia.
- Que el alumno diseñe y organice adecuadamente una
jerarquía de clases, atendiendo a los distintos tipos de
relaciones entre clases.
INTRODUCCION A LA O.O (2)
Programación Imperativa
Programación Modular
Así, la programación modular permitió dividir el programa en módulos
autónomos que se pudieran programar, verificar y modificar individualmente
TDA:
1. Un tipo de datos definido por el programador,
El objeto combina los datos (atributos del objeto) con los
procedimientos u operaciones (métodos) que actúan sobre dichos datos.
Para hacer buena POO hay que desarrollar todo el sistema utilizando el paradigma,
empezando por un análisis y un diseño orientados a objetos.
En general, el desarrollo de software implica, desde una visión orientada a objetos,
una serie de etapas para hacer: requerimientos, análisis, diseño, implementación y
prueba.
ACTIVIDAD 1
Programación – Pág. 16 a 23
Diagramas de
Diagrams Descripción
Diagrams de Diagramas de
Diagrams Diagramas de
Diagrams
Diagrams Diagrams Paquetes Diagrams
Tiempo la Interacción Casos de Uso Clases
1. Objetos
2. Clases
3. Métodos y Mensajes
4. Herencia
Objetos
EXTRACCIONES MOSTRAR
Objetos
UnCoche
Ford K
BBA 123
40
80
?
? RECEPTOR
UnaCuenta
32.123.451
1345,56
3
EMISOR
Objetos
OBJETO ABSTRACIÓN
y
ENCAPSULAMIENTO
Gerente
Objetos – Diagramas de Comunicación
Notación
Objetos con estereotipos (II)
b) Objeto de Control (Controllers): se
ocupa de organizar y controlar la
lógica requerida para alcanzar el
objetivo de una determinada
funcionalidad. Media entre los objetos
de interfaz y los de entidad. Ejemplo,
lectura de datos del usuario del
sistema de correo electrónico.
Notación
c) Objeto de Entidad (Entity): para
cada uno de los objetos (entidades)
del dominio requeridos para realizar
la funcionalidad. Modelan información
asociada a algún fenómeno o
concepto, como persona o un objeto.
Notación
Objetos con estereotipos (III)
El diagrama de secuencia del ejemplo del usuario del correo electrónico, usando
objetos estereotipados sería el siguiente:
Clases
Reglas de visibilidad
+ Atributo público
# Atributo protegido
- Atributo privado
+ Método público
# Método protegido
- Método privado
Clases – Métodos y Mensajes
unAlumno.mostrarEdad() otroAlumno.mostrarEdad()
Mensaje
Método Alumno.mostrarEdad()
Clases – variables de clases y de instancia
A) Dada la clase ALUMNO, grafique dos instancias de dicha clase usando UML.
B) Indique claramente el estado de uno de los objetos propuestos y diga los posibles
comportamientos.
ALUMNO
- facultad=“FCEFyN”
- matricula: cadena
- ingreso: entero
- promedio: flotante
+ mostrarDatos()
+ actualizarPromedio()
E.mostrarIndice()?
Egresado
E
E.mostrarPromedio()?
- fechaEgre: cadena Juan García
- promGral: real 21/10/83 E.mostrarDatos()?
+ mostrarPromedio() 15/3/1992
+ mostrarIndice() 15/8/1998
+ mostrarFegreso() 7.50
Herencia
Impresión
ImpresiónFacturas ImpresiónNotaCredito
ImpresiónRecibos
-Nro_Factura
............
-nomCliente
-......................
+ emitirfactura()
+ ………. variables de instancia
Herencia – Tipos de herencia
Herencia Simple
Herencia Múltiple
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
cd Business Process Model
• • • • • • • • • • • • • • • • • • • • • • • •Persona
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
Alumno
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • Empleado
• • • • • • • • • • • • • • • • • • • • • • • • • •
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
Docente NoDocente
Hereda
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • características
• • • • • • • • • • •
de Alumno y
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
de Docente
• • • • • • • • • • • • • • • • • Ayudante
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
Herencia
cd Business Process Model
• • • • • • • • • • • • • • • • • • • • • • • • • •
Vehículo Conclusión: podemos
• • - • velocidad:
• • • • Kmh
• • • • • • • • • • • • • • • • • • •
decir que, dentro de una
• jerarquía
• • • • • • de • • clases, la
+ viajar(Lugar, Lugar) : void
• • • • • • • • • • • • • • • • •
+ mostrarDatos() : void
herencia propaga las
• • • • • • • • • • • • • • • • • características
• • • • • • • • • de la clase
superior en sus clases
• • • • • • Av• ion• • • • • • • • • • • • • • • • • • •
descendientes, de modo
- altitud: long
• • • + • aterrizar()
• • • :• void• • • • • • • • • que • • • varias
• • • • clases
• • pueden
+
+
despegar() : void
mostrarDatos() : void
compartir una misma
• • • • • • • • • • • • • • • • • • • • • descripción.
• • • • •
• • • • • • • • • • • • • • • • • • • • • • • • • •
Relaciones entre clases
En la primera etapa del DOO, se identifican las clases.
Las relaciones entre las clases expresan cómo se comunican los objetos de
esas clases entre sí.
Asociación
Agregación
Una asociación puede verse como una abstracción de los vínculos que
existen entre objetos instancias de las clases asociadas.
Alumno Asignatura
-matrícula -código
- nombre
-DNI inscripción
- .............
- ............. 1..* 1..*
+ ............. + .............
Un alumno está inscripto en una o mas asignaturas - Una asignatura tiene uno o mas
inscriptos.
Asociación
En UML, el número de instancias (cardinalidad) que participan en la
relación, y se anota en cada extremo de la relación, y se llama
multiplicidad.
Docente_Director
Alumno_Tesista
-matrícula
Asociación
Ejemplos:
Profesor Departamento
1 Dirige 0..1
Un departamento tiene un solo profesor que lo dirige y un profesor puede dirigir uno o ningún
departamento
Profesor Departamento
* pertenece 1
+pacientes Atendidos
Ubicación
Obras_Arte
-piso
-autor -num_sala
-estilo
? ?
+.......... +..........
http://www.devx.com/enterprise/Article/28576
Asociación
sitio
Para esto se trabaja con dos conceptos distintos según sea el caso:
56
http://www.devx.com/enterprise/Article/28576
Contexto: Supongamos un sistema que almacena información sobre los registros civiles de la
provincia de San Juan, y las personas nacidas en la jurisdicción del mismo. Los nacimientos se
registran en un acta de nacimiento, que posee entre otros datos: número de acta, fecha de inscripción,
número de libro, etc. Como se puede observar en este ejemplo, si bien, hay una asociación entre
Registro Civil y Persona, los datos propios del acta de nacimiento, no son datos inherentes al Registro
Civil, ni a la Persona, esta información debe ser almacenada como atributos de una clase asociación.
Supongamos un sistema que contempla las inscripciones a exámenes de turno del mes de
julio (CONTEXTO ACOTADO SOLO A UN TURNO), donde cada alumno puede inscribirse en
una o más asignaturas, y por cada inscripción recibe un comprobante.
Materia Alumno
-Nombre_asig 1..* 1..* -Matricula
-curso -mail
+ .............
?
+ .............
+ ............. + .............
Comprobante
Que pasa si
- fecha_insc contemplo todas
-fecha_exa las mesas de julio
o las mesas de
+ .... .......
todo el año
Comprobante es una clase Asociación: Para una dupla de objetos (materia, alumno) existe
un único objeto asociado a la clase comprobante.
58
Asociación – Clase que modela la asociación
Materia Alumno
-Nombre_asig -Matricula
-curso -mail
+ ............. + .............
+ ............. + .............
1 Comprobante
- 1
- fecha_insc
n
-fecha_exa n
+ .... .......
Comprobante es la clase que Modela la asociación entre Materia y Alumno: Para una
dupla de objetos (materia, alumno) existe más de objeto asociado a la clase
comprobante. 59
Asociación – Clase que modela la asociación
dni: string
-nombre: nombre
-nombre: nombre
- cant_habitantes
+
+
1
1 Reserva
- fecha
n n
- nro_reserva
Para una instancia de Vuelo y una instancia de Vendedor de Billetes, existen más de un objeto
de la clase Reserva. Es decir, podemos tener múltiples reservas por vuelo y vendedor. En este
caso no podemos definir a Reserva como una clase asociación, sino que existe una relación de
asociación entre Vuelo y Vendedor de Billetes que se deriva o modela a través de Reserva.
60
Agregación
Reutilización y extensión:
La extensión se basa en aprovechar las clases desarrolladas para una aplicación, utilizándolas
para la construcción de nuevas clases, en la misma u otra aplicación.
Como la extensión es una forma particular de reutilización, se suele englobar bajo el concepto
común de reutilización.
Agregación Composición
Agregación (propiamente dicha 1)
Este tipo de relación se presenta en aplicaciones en las cuales un objeto contiene como
partes a objetos de otras clases, pero de tal modo que la destrucción del objeto continente no
implica la destrucción de sus partes. Esto es, el objeto continente o contenedor incluye
referencias a objetos de otras clases y que los objetos contenidos pueden existir
independientemente del objeto contenedor.
Los tiempos de vida de los objetos continente y contenido no están tan estrechamente
acoplados, de modo que se pueden crear y destruir instancias de cada clase
independientemente.
todo parte
parte parte
Agregación (propiamente dicha 2)
parte
todo
La forma más simple de reutilizar una clase es simplemente haciendo una nueva
clase que la contenga. Esta técnica se llama composición.
Las composiciones generan una relación de existencia entre el todo y cada una de
sus partes.
Arreglar pdf sacar nota y lugar
Agregación (Composición )
Alumno
-nombre: cadena
-Curso: entero Garage
-grupo: entero Lugar
-nombre=”Ruta 10”
-disponibilidad=75 -piso
+imprimir datos 1 1..n
-libre: entero -zona
1 -numero
+Ocupar() + estado()
1
+Liberar +..............
Nota_Final +..........
-calificacion
-comentario_prof
Los objetos de una clase están subordinados a los objetos de otra clase.
Una acción sobre objetos de una clase implica una acción sobre objetos de
otra clase.
asociación
composición
Diagrama de Clases
Video Ejemplar
-código -codigo
-nombre -numero
-genero 1 1..* -estado
+ObtenerEstado
+devolver +CambiarEstado
1
+alquilar + .........................
+ ......................... Cliente
-nombre
1
1..* -dirección
- moroso
Alquiler
+ObtenerNombre
-fechaPrestamo + ...................
-fechaAlquiler
1.
1..*
.
+registrarPrestamo
+ .....................
Diagrama de Clases
Diagrama de Clases
Objetos
Diagrama de Clases (ACTIVIDAD a consultar)
Persona
- ApellidoNombre: String
- dni: int
Identifique el
tipo de
• • • • • • • • • • • • • • • • Domicilio
•••••••••• relaciones
Viajero Mucama - calle: String
existentes
- numeroTarjeta: int -
• • • • • • • • • • -• • • numero:
fechaIngreso: Fecha
• • • • • • • • int• • • • • entre las clases
- telefono: int - legajo: int
-
-
piso: int
departamento: char
y la
•••••••••••••••••••••••••• cardinalidad
- mail: int
de las mismas.
••••••••••••••••••••••••••
Habitación
Localidad Provincia
- numero: int
-
• • • • • • • • • • • • • • • • • • • • •- • • • identificador:
identificador: int
•• int
- tipo: int
Ocupa - nombre: String - nombre: int
Polimorfismo
Capacidad que tienen objetos de clases diferentes, relacionados
mediante la herencia, a responder de forma distinta a una misma
llamada de un método.
Fomenta la extensibilidad del software
Software escrito para invocar comportamiento polimórfico se escribe
en forma independiente del tipo de los objetos a los cuales los
mensajes son enviados
Nuevos tipos de objetos, que pudieran responder a mensajes
existentes, pueden ser agregados en dicho sistema sin modificar el
sistema base.
Conceptos Claves (3)
Persistencia
designa la capacidad de un objeto de trascender el tiempo o el espacio
un objeto persistente conserva su estado en un sistema de
almacenamiento permanente (pasivación del objeto)
el objeto puede ser reconstruido (activación del objeto) por otro proceso y
se comportará exactamente como en el proceso inicial