clase #5 modelado básico de objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf ·...

46
07/08/04 Programación II 1 Clase #5 Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes

Upload: others

Post on 20-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

07/08/04 Programación II 1

Clase #5Modelado Básico de Objetos

Prof. Andrés ArciaDepartamento de ComputaciónEscuela de Ingeniería de SistemasFacultad de IngenieríaUniversidad de Los Andes

Page 2: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 207/08/04

Qué es Orientación por Objeto?

➢ Si hablamos de un software orientado por objetos, puede verse como una colección de objetos, donde cada uno está formado por estructura de datos más la especificación de cada una de esas estructuras.

➢ Ejemplo de objetos:➢ Una lápiz, una bicicleta, un elefante.➢ El segundo parrafo de la página 1 del cuento “El

Principito”, El titulo de la obra más importante de D. Knuth “El arte de la programación”.

➢ Una lista de elementos del tipo cadena, un arreglo de enteros.

Page 3: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 307/08/04

Cómo se concibe a un objeto?

Un objeto es un ejemplo de una clase de objetos. Se pueden especificar atributos generales de una clase de objetos y luego ejemplificarlos (los objetos).

Las clases de objetos se denominan CLASES.

Page 4: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 407/08/04

Clases y Objetos

La clase bicicleta es una definición abstracta, sin forma. Una bicicleta debe tener: Una biela, un cuadro, dos pedales, una o más ruedas, un volante, frenos.

Un objeto rueda puede ser: Una bicicleta de montaña, Una bicicleta de ruta, Una bicicleta de velodromo, Una bicicleta de paseo para 2 personas, Una bicicleta especial de

Page 5: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 507/08/04

Un par de objetos bicicleta

Page 6: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 607/08/04

Atributos de la Clase Bicicleta

Page 7: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 707/08/04

Operaciones de la Clase Bicicleta Hacer cambios de la velocidad. Frenar. Mover el volante a la izquierda. Mover el volante a la derecha. Ajustar freno. Observar el presión de aire de las llantas. Ajustar altura del asiento.

Page 8: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 807/08/04

Metodología de OxO: OMT

Análisis: Desde la descripción del problema se pretende construir un modelo de la realidad del problema.

Diseño del Sistema: Decidir como se organiza el modelo, cuales son los subsistemas. Se corrigen aspectos de la visión del sistema.

Page 9: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 907/08/04

Metodología de OxO: OMT

Diseño de Objetos: Se decide cuales serán los objetos y como se interrelacionan. Se pone atención a: estructuras de datos, algoritmos, interfaces.

Implementación: Se lleva a cabo en un lenguaje especifico (C++ por ejemplo), lo antes descrito.

Page 10: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 1007/08/04

Diagramas

D. de Objetos: Proporcionan grafismos formales para modelar objetos, clases y sus relaciones entre si.

D. de Clases: Resume todas las posibles instancias de objetos.

D. de Instancias: Especifica como se relacionan un conjunto de objetos.

Page 11: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 1107/08/04

Ej. de Diagramas

FiguraGeométrica

(Fig. Geometrica)Triangulo

(Fig. Geometrica)Cuadrado

Clase Objetos

Podria añadirsele atributos, que de ninguna manera deben confun-dirse con otros objetos, deberían ser valores puros de datos. Un valor posee identidad cuando es único. Ej. Radio del rin de una rueda es un atributo, mientras que Marca de la bicicleta no lo es.Piense que la marca puede convertirse en el objeto compañia.

Page 12: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 1207/08/04

Diagramas para Atributos

FiguraGeométrica

# Lados: enteroNombre: cadena

(Fig. Geom)

3 ladosTriangulo

(Fig. Geom)

4 ladosCuadrado

Clase + Atributos Objetos + Valores

Page 13: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 1307/08/04

Sobre los atributos

La mayoria de las veces no hace falta escoger identificadores únicos para los objetos, los lenguajes de prog. los proveen automáticamente.

Los Id únicos son simplemente una comodidad.

Page 14: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 1407/08/04

Operaciones y métodos

Las operaciones y los métodos son las acciones que permitirán darle sentido a los datos de los objetos.

Pueden ser referidas como acciones genericas o generales, luego se podrá especificar su conducta.

Page 15: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 1507/08/04

Ejemplo de OperacionesFigura

Geométrica

# Lados: enteroNombre: cadena

real area()rotar (ángulo)seleccionar (punto)

Archivos

Nombre: cadenatamaño en bytespermisos

cambiar nombreasignar permisos

Operaciones

Page 16: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 1607/08/04

Modelo para la notación de Clases

Nombre de la Clase

nombre del atributo 1: tipo = valor por omisión.nombre del atributo 2: tipo = valor por omisión....

nombre del método 1 (argumentos): tipo resultado.nombre del método 2 (argumentos): tipo resultado....

Page 17: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 1707/08/04

Asociaciones

Mediante enlances y asociaciones se pueden establecer las relaciones entre las clases que modelan al sistema.

Representan conexiones físicas o conceptuales.

En el argot matemático se conocen como tuplas, ó listas de elementos relacionados.

Son bidireccionales.

Page 18: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 1807/08/04

Asociaciones

Suelen ser los apuntadores en los lenguajes de programación. Sin embargo, no piense en ellos mientras está modelando.

Page 19: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 1907/08/04

Asociaciones Uno a Uno

Tiene-unBicletaTipo

VolanteTipo

(Bicleta)Montaña

(Volante)Descenso

(Bicleta)Ruta

(Volante)Sprint

Tiene-un

Tiene-un

Diagramade Clases

Diagramade Instancias

Page 20: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 2007/08/04

Asociaciones muchos a muchos

EstudianteNombre

ProfesorNombre

(Estudiante)X

(Profesor)XY

(Estudiante)Y (Profesor)

ZP(Estudiante)Z

(Estudiante)I

(Estudiante)J

Diagramade Clases

Diagramade Instancias

Page 21: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 2107/08/04

Asociaciones Ternarias

BicicletaCompetidor

(Ciclista)

Carrera

Observe que para que este tipo de asociación tenga sentido, ningunode las tres clases puede estar fuera.

Trek Lance Armstrong

Tour de France

Page 22: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 2207/08/04

Importancia

Es utilizado en muchos campos, Ej. Las Bases de Datos.

Puede ser utilizado en muchos otros campos: modelado de aspectos de la vida real, programación OxO, etc.

No es una manera infalible de modelar, hay quienes opinan que las relaciones entre clases no deben existir.

Page 23: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 2307/08/04

Multiplicidad

Dice que cantidad de instancias de clase están relacionadas con otras clases de relación explicita.

Expresa una cantidad finita o infinita de elementos relacionados.

Hay simbolos especiales para expresar la relación de multiplicidad.

Page 24: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 2407/08/04

Multiplicidad Cero o Uno

AutoTriangulo de Seguridad

Un auto puede tener o no un triángulo de seguridad.

Para poder escribir la multiplicidad, primero se determinan:objetos, clases y asociaciones.

Page 25: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 2507/08/04

Atributos en los Enlaces

Un atributo es un descriptor inherente a los objetos de una clase. Asi mismo, un atributo de enlace es un descriptor inherente a los enlaces de asociación.

Vea el gran parecido entre los atributos de objetos y atributos de enlaces.

Las asociaciones del tipo muchos a muchos proporcionan el escenario ideal para colocar atributos a los enlaces.

Page 26: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 2607/08/04

Atributos en los Enlaces Los atributos son propiedad del enlace, y

pierde sentido (información) si se asociara a alguno de los objetos.

Computador Aplicaciónejecuta

prioridad de ejecución

200.43.114.21 (99) X server200.43.114.21 (50) Sendmail180.34.21.34 (10) Apache Webserver

Page 27: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 2707/08/04

Atributos dentro de Asoc. uno a muchos

ancho de banda

usuario servidorpide servicio a

maximo # clientestamaño máximo de petición

Identificador universal.privilegios.

publica

descarga

tasa de transferencia

ofrece

Page 28: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 2807/08/04

Atributos para los enlaces en asociaciones ternarias

Emisor

e-mail

receptor

attachmentprioridad

Page 29: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 2907/08/04

Atributos de enlace vs. atributos de objetos.

nombre del buscadoralgoritmo de busqueda

usuario servidor temáticohace busqueda en

maximo # clientestamaño máximo de petición

Tema de interesPalabras relacionadas

usuario servidor temáticohace busqueda en

maximo # clientestamaño máximo de petición

Tema de interesPalabras relacionadasnombre del buscadoralgoritmo de busqueda

Page 30: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 3007/08/04

Asociaciones en Forma de Clase

nombre del buscadoralgoritmo de busqueda

usuario servidor temáticohace busqueda en

maximo # clientestamaño máximo de petición

Tema de interesPalabras relacionadas

Page 31: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 3107/08/04

Asociaciones en Forma de Clase

nombre del buscadorpalabras clave

usuario servidor temáticohace busqueda en

maximo # clientestamaño máximo de petición

Tema de interesPalabras relacionadas

Macro Buscador

Buscador

Page 32: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 3207/08/04

Nombres de Rol

Un rol es se situa en un extremo de la asociación y la identifica univocamente.

Se denomina binario si existen valores en ambos extremos de la asociación.

Estudiante Buscadorusa un

nuevoservicio de busqueda

Page 33: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 3307/08/04

Nombres de Rol

Un rol es un atributo propio de la clase que contenga la frase que describa el rol.

Usuarios Servidor

administra

hacen uso

se comunica

recibecomunicación

Page 34: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 3407/08/04

Clasificación

Los objetos en el lado “muchos” no tiene un orden explicito y se puede calificar de conjunto.

Esto nos dice que es posible expresarlo explicitamente.

Usuario Servidorusa un

{orden: tiempo de acceso}

Page 35: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 3507/08/04

Agregación

Varios componentes más pequeños y de cierta forma independientes forman uno más grande (el conjunto forma un ente sinergico). Por ejemplo: las funciones, argumentos, bloques, son componentes agregados a un programa.

Page 36: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 3607/08/04

Agregación

Hay un par de propiedades que se cumplen con la agregación:Transitividad: Si A ⊃ B y B ⊃ C, entonces A ⊃

C.Antisimetría: Si A es parte de B, B no es parte

de A.

Para utilizar la agregación, deben existir propiedades comunes de los componentes que luego permitan hacer sinergia.

Page 37: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 3707/08/04

Ejemplo de Agregación (controversial)

bosque arboles raiz

hoja

rama

Page 38: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 3807/08/04

Ejercicios propuestos

Investigue a fondo los siguientes objetos y trate de establecer un modelo OMT, trate de profundizar en cada uno de ellos:ComputadorBicicletaAutomovilUna carrera universitariaLápiz (parece simple, pero pruebe a ver...)

Page 39: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 3907/08/04

Generalización y Herencia

Generalización: Es la relación entre una clase y una o más versiones refinadas de esa misma clase. Cuando se refina, la nueva clase, será una subclase que partio de una superclase. Se dice que cada subclase hereda las características (datos + operaciones) de la superclase.

Page 40: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 4007/08/04

EjemploVehiculo de Dos Ruedas

nombre_modelopesodimensiones

BicicletaLongitud de CadenaRadio del RinTipo de Sillin

Bicicleta de Montaña

Tipo de SuspensiónFrenos de Disco

Page 41: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 4107/08/04

Herencia: Reutilización de Código Anulación: Una subclase puede anular (to

overide) todas o algunas características de una superclase si se asigna igual nombre.

Esto se hace para obtener una conducta más parecida a las necesidades de la clase refinada (subclase).

Page 42: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 4207/08/04

Modelo de Objetos

Modulos = clases + asociaciones + generalizaciones + bloques de construcción (clases + asociaciones).

Hojas: El grafismo de un modelo completo ocupa un espacio que a veces se excede del espacio donde se expondrá. Para obtener trozos más pequeños se agrupan por hojas.

Page 43: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 4307/08/04

Consejos para programar a Objetos Comprenda bien el problema. Haga el máximo esfuerzo para que el modelo sea

sencillo y completo. Adopte un sistema de nombramiento. No ate su modelo a un lenguaje de programación

especifico. Evite generalizaciones muy anidadas. Revise varias veces el modelo. Documente bien su modelo.

Page 44: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 4407/08/04

Ejemplo

Persona

Jardinero arbol

raiz

rama

podar

podar

podar

poda

Page 45: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 4507/08/04

Clase Abstractas

Es una clase que no tiene instancias directamente. Es el contrario de una clase concreta.

Generalmente se utilizan para definir interfaces generales que podrían ser especializadas en subclases.

Page 46: Clase #5 Modelado Básico de Objetoswebdelprofesor.ula.ve/ingenieria/amoret/pr2/clase_5.pdf · Modelado Básico de Objetos Prof. Andrés Arcia Departamento de Computación ... Las

Programación II 4607/08/04

Herencia Múltiple Permite que una clase tenga más de una

superclase. Este es un mecanismo que hace más

poderosa la especificación de las clases.

Vehiculo

V. de Tierra V. de Agua

Anfibio