Tecnologia de Objetos.ppt

63
Tecnología de Tecnología de Objetos Objetos

Transcript of Tecnologia de Objetos.ppt

Tecnología de Tecnología de ObjetosObjetos

19/04/23 2

AgendaAgenda• Tecnología de objetos.

Clase, objeto, estado, clase abstracta. Encapsulamiento y herencia. Atributos y operaciones. Asociaciones entre clases.

19/04/23 3

Clase Clase • Nivel superior de abstracción.• Representa a un conjunto de elementos con

características o detalles comunes.• Es la descripción de un grupo de objetos con:

Una semántica en común (nombre): Propiedades en común (atributos). Comportamiento similar (operaciones). La misma forma de relacionarse (asociaciones).

figura

origen

mover()redimensionar()dibujar()

19/04/23 4

ClaseClase

Atributos

Operaciones

NombrePersonanombreapellido maternoapellido paternosexoedad

comer()beber()dormir()

19/04/23 5

ClaseClase

Vehículomarcamodelocolornúmero de serie

mover()abrir()girar()detener()

Atributos

Operaciones

Nombre

19/04/23 6

Clase Clase • Se representa a través de un rectángulo dividido en

tres partes.• Parte 1: Se coloca el nombre de la clase. • Parte 2: Se colocan los atributos.• Parte 3: Se especifican las operaciones.

Atributos

Operaciones

Nombre......

...

19/04/23 7

Nombre de la claseNombre de la clase• Debe ser un sustantivo claro y preciso.

• Debe dar idea clara de la unidad de información que representa.

• La primera letra en mayúscula.

• El resto de las letras en minúscula.

AeropuertoLugarVentaTransacciónPilotoRolTiendaContenedor

RutaDescripciónAviónObjeto físico

19/04/23 8

Nombre de la claseNombre de la clase

Factura Cliente

ProductoDetalleFactura

Pais

19/04/23 9

ClaseClase• Atributos:

Forma la parte estática de la clase. Representa una característica de la clase. Debe dar idea clara de la unidad de información que

representa. Los valores del atributo establecen la diferencia entre

los objetos. No debe representar una llave foránea. No debe representar características como tipo, estado,

categoría, etc.

19/04/23 10

Atributo de la claseAtributo de la clase• Nombrarse con un sustantivo claro y preciso.• Puede formarse por una o varias palabras.• Deben ser escritas de forma continua.• Utilizar letra minúscula en su redacción.

Si está compuesto por más de una palabra solo la primera letra de cada palabra a partir de la segunda debe escribirse en mayúsculas.

• Los elementos que definen al atributo son: Nombre, tipo de dato, valor inicial y visibilidad.

• Sintaxis. visibilidad nombre: tipodato = valorInicial

19/04/23 11

Atributo de la claseAtributo de la clase• Nombre.

Nombre del atributo.

• Tipo de dato. Tipo de dato del conjunto de valores que toma el

atributo para cada objeto de la clase.

• Valor inicial. Primer valor que adquiere por defecto el atributo en la

creación de una instancia de la clase.

• Visibilidad. Establece la proporción en que otras clases pueden

utilizar el atributo de la clase.

19/04/23 12

Atributo de la claseAtributo de la clase• Visibilidad.

Privado. El atributo es visible solo para el interior de la clase. Solo sus métodos pueden accederlo.

Protegido. El atributo es visible para el interior y las subclases

respectivas.

Público. El atributo es visible para el interior y exterior de la clase.

Implementación. El atributo es visible solo para el interior de la clase.

19/04/23 13

Atributo de la claseAtributo de la clase

clase X

nombre atributo publiconombre atributo privadonombre atributo protegido

El icono al comienzo del nombre del atributo señala el

tipo de visibilidad.

19/04/23 14

Atributo de la claseAtributo de la clase

Factura

noFactura : Integerfecha : Date = DATE()igv : Double = 18.00descuento : Currency = 0

Cliente

codCliente : Integernombre : Stringdni : StringrazonSocial : Stringdireccion : Stringtelefono : Long

Producto

codProducto : Integerdescripcion : Stringum : Stringpu : Currency = 0.00presentacion : String

DetalleFactura

noItem : Integercantidad : Integer = 0descuento : Double

Pais

codPais : IntegerDescripcion : String

19/04/23 15

ClaseClase• Operaciones:

Forma la parte dinámica de la clase. Representa un comportamiento de la clase. Significa un conjunto de acciones con un mismo

objetivo a ser desarrollado por la clase. Debe dar idea clara de la acción que representa. Cada objeto de la clase tiene la capacidad de

desarrollar la operación.

19/04/23 16

Operación de la claseOperación de la clase• Nombrarse con un verbo en infinitivo.• Debe ser claro y preciso.• Puede formarse por una o varias palabras.• Deben ser escritas de forma continua.• Utilizar letra minúscula en su redacción.

Si está compuesto por más de una palabra solo la primera letra de cada palabra a partir de la segunda debe escribirse en mayúsculas.

• Poseen visibilidad al igual que los atributos.

19/04/23 17

Operación de la claseOperación de la clase

clase X

metodo publico()metodo privado()metodo protegido()

19/04/23 18

Operación de la claseOperación de la clase• Las operaciones de una clase reciben parámetros y

devuelven un valor.

• El orden y tipo de dato de los parámetros, así como el tipo de valor que devuelve se conoce como la firma (signature) de la operación.

Cuenta

balance : Integer

depositar(monto : Integer) : Integergirar(monto : Integer) : Boolean

ParámetroValor de retorno

19/04/23 19

Objeto Objeto • Es una instancia específica de una clase.

• Agrupa un conjunto de valores específicos y diferentes para los atributos de la clase a que pertenece y está en condiciones de realizar todas las operaciones especificadas por ella.

• Son ejemplares que existen en la realidad y que presentan un comportamiento específico, modelado y tipificado por una clase.

• Los objetos son los representantes exclusivos de la clase con los cuales el sistema trabaja.

19/04/23 20

• Estos objetos representan a la clase Persona.

• El conjunto de los atributos tiene valores diferentes en cada objeto.

• Cada cada objeto es único con respecto a los otros de su clase.

• Los valores de cada atributo y la forma de responder a las operaciones son los elementos que diferencian entre sí a los objetos de una misma clase.

Objeto Objeto

PersonaJuanGarcíaRodríguezMasculino15

comer()beber()dormir()

PersonaMaríaReyesHernándezFemenino45

comer()beber()dormir()

19/04/23 21

• Estos objetos representan a la clase Vehículo.

• El conjunto de los atributos tiene valores diferentes en cada objeto.

• Cada cada objeto es único con respecto a los otros de su clase.

• Los valores de cada atributo y la forma de responder a las operaciones son los elementos que diferencian entre sí a los objetos de una misma clase.

Objeto Objeto

VehículoFordMustangBlancoSX-548525

mover()abrir()girar()detener()

VehículoChevroletCorsaAzul425-AB-85

mover()abrir()girar()detener()

19/04/23 22

Estado Estado • Es una de las posibles condiciones en las que el

objeto puede existir.

• El estado normalmente cambia en el transcurso del tiempo.

• El estado de un objeto queda definido por el conjunto de propiedades y sus valores (atributos) de un mismo objeto en un instante dado.

19/04/23 23

• Estos elementos. Pertenecen a una misma clase. Representan un mismo objeto.

• La variación del valor del atributo edad establece dos estados diferentes para el mismo objeto.

• El objeto ha modificado el valor del atributo edad en momentos o instantes diferentes de su ciclo de vida.

Estado Estado

PersonaJuanGarcíaRodríguezMasculino15

comer()beber()dormir()

PersonaJuanGarcíaRodríguezMasculino32

comer()beber()dormir()

19/04/23 24

• Estos elementos. Pertenecen a una misma clase. Representan un mismo objeto.

• La variación del valor del atributo color establece dos estados diferentes para el mismo objeto.

• El objeto ha modificado el valor del atributo color en momentos o instantes diferentes de su ciclo de vida.

Estado Estado

VehículoFordMustangBlancoSX-548525

mover()abrir()girar()detener()

VehículoFordMustangRojoSX-548525

mover()abrir()girar()detener()

19/04/23 25

Encapsulamiento Encapsulamiento • Es la capacidad que tiene la clase de ocultar al

mundo exterior su comportamiento.• Cada clase maneja sus atributos y operaciones.• El mundo exterior se beneficia de estos elementos

sin necesidad de conocer el mecanismo de funcionamiento.

• Permite reducir el potencial de errores generados por la clase en una aplicación.

• Significa que es posible modificar el comportamiento de la clase sin modificar el de otros objetos relacionadas.

19/04/23 26

Encapsulamiento Encapsulamiento

:MandoADistancia :Televisor

Conectar()

Canal(4)

19/04/23 27

Encapsulamiento Encapsulamiento

La persona no necesita conocer el mecanismo de funcionamiento de las operaciones del vehículo y viceversa.

PersonaJuanGarcíaRodríguezMasculino32

comer()beber()dormir()

VehículoFordMustangBlancoSX-54852545

mover()abrir()girar()detener()

19/04/23 28

Herencia Herencia • Es la relación entre clases a través de la cual se

comparten los atributos y/u operaciones de cada una.

• A través de la herencia una clase asume el comportamiento (atributos y operaciones) de otra como parte de su propio comportamiento.

• Producto de la herencia se derivan dos tipos de clases. Superclase. Subclase.

19/04/23 29

Herencia Herencia • Superclase.

Es la clase que contiene el comportamiento a ser heredado por otras clases.

Es la clase más alta en una herencia. Ocupa el nivel superior en la jerarquía establecida por la

herencia.

• Subclase. Es la clase que necesita heredar o incorporar el

comportamiento de la superclase. Es la clase más baja en una herencia. Ocupa el nivel inferior en la jerarquía establecida por la

herencia.

19/04/23 30

Herencia Herencia

Personanombreapellido maternoapellido paternosexoedad

comer()beber()dormir()

Trabajadorcargosalarioausencias

trabajar()registrarEntrada()cobrar()

Jeferangobeneficiospresupuesto

dirige()evalua()contrata()despide()

Estudiantegradocolegio

matricular()estudiar()

Subclase

Superclase

19/04/23 31

Herencia Herencia

Vehículomarcamodelocolornúmero de serie

mover()abrir()girar()detener()

TerrestrenumeroLlantas

AereolongitudAlas

despegar()aterrizar()

MaritimoprofundidadMinimaeslora

anclar()

19/04/23 32

Herencia. Beneficios Herencia. Beneficios • Rapidez.

Cualquier cambio en los datos u operaciones contenidas dentro de una superclase es heredado inmediatamente por todas las subclases que se derivan de la superclase.

Debido a esto los cambios a altos niveles pueden propagarse rápidamente a través de todo el sistema.

19/04/23 33

Herencia. Beneficios Herencia. Beneficios • Rehusabilidad.

Se reutiliza el comportamiento de una clase. Implica mayor confiabilidad.

• Independencia. Cada clase se ocupa solo de su comportamiento. Asume el riesgo solo de los errores que produzca.

• Compartición. El código que comparten 2 o más objetos se escribe

sólo una vez. Sólo una vez contribuye al tamaño resultante del

programa

19/04/23 34

Herencia. BeneficiosHerencia. Beneficios• Productividad:

Solo se implementará el comportamiento nuevo del objeto; la herencia aporta el resto.

Disminuya el tiempo de desarrollo.

• Rapidez del modelado. Al usar componentes rehusables en la programación se

puede utilizar el estilo de programación conocido por “modelado rápido de prototipos”.

El sistema se desarrolla en forma incremental e iterativa y se utiliza activamente al usuario para validar los avances.

19/04/23 35

Herencia. DesventajasHerencia. Desventajas• Velocidad de ejecución.

Al fraccionar en exceso la implementación de las operaciones independientes puede que la ejecución de la aplicación se haga un poco más lenta.

• Complejidad. Hace un poco más difícil de entender el flujo de

ejecución de un programa.

• Problema del Yoyo. Requiere múltiples exploraciones hacia arriba y hacia

abajo en la estructura de la herencia.

19/04/23 36

Clase abstracta Clase abstracta • Una clase es abstracta

cuando no tiene asociado ningún objeto o instancia.

• Solo se utilizan para heredar de ella.

• Se pueden encontrar en los niveles más altos de una jerarquía de clases.

19/04/23 37

Clase abstracta Clase abstracta

Personanombreapellido maternoapellido paternosexoedad

comer()beber()dormir()

Trabajadorcargosalarioausencias

trabajar()registrarEntrada()cobrar()

Jeferangobeneficiospresupuesto

dirige()evalua()contrata()despide()

Estudiantegradocolegio

matricular()estudiar()Clase abstracta

19/04/23 38

Asociaciones entre clasesAsociaciones entre clases• La asociación es una relación que indica algún

vínculo o conexión significativa entre dos clases.

• Las asociaciones modelan la forma en que se relacionan los objetos de las clases.

• Se representa a través de una línea continua

Cliente Orden de Compra

0..n1

emite

19/04/23 39

Asociaciones entre clasesAsociaciones entre clases

• Los elementos que definen la asociación son: Nombre. Multiplicidad. Navegabilidad. Tipo.

Cliente Orden de Compra

0..n1

emite

19/04/23 40

Asociaciones entre clasesAsociaciones entre clases• Nombre.

Frase verbal clara y precisa que refleja el propósito de relación.

Describe la manera en que ocurre la asociación. No es elemento obligatorio. Se utiliza solo cuando

mejora la comprensión de la asociación.

Cliente Orden de Compra

0..n1

emite

Se lee: El cliente emite órdenes de compra

19/04/23 41

Asociaciones entre clasesAsociaciones entre clases• Multiplicidad o cardinalidad

Especifica la cardinalidad de la asociación. Modela la cantidad de objetos de un extremo de la

asociación que se asocian a un objeto del otro durante el tiempo de vida del sistema.

Se representa a través de una numeración. Se coloca en cada extremo de la asociación.

Cliente Orden de Compra

0..n1

emite

19/04/23 42

Asociaciones entre clasesAsociaciones entre clases• Multiplicidad o cardinalidad.

Para este ejemplo se hacen las preguntas:¿Cuántas órdenes de compra puede emitir un cliente?

o Ninguna, una o muchas órdenes de compra.

¿Cuántos clientes puede tener asociados una orden de compra?

o Un solo cliente siempre.

Cliente Orden de Compra

0..n1

emite

19/04/23 43

Asociaciones entre clasesAsociaciones entre clases• Tipos de multiplicidad o cardinalidad.

0Un objeto de una clase no se asocia a ningún objeto de la

otra. 0..1

Un objeto de una clase se asocia a ninguno o un objeto de la otra clase.

0..nUn objeto de una clase se asocia a ninguno, uno o más de un

objeto ilimitadamente de la otra clase 0..x

Un objeto de una clase se asocia a ninguno, uno o hasta un máximo de x objetos de la otra clase.

19/04/23 44

Asociaciones entre clasesAsociaciones entre clases• Tipos de multiplicidad o cardinalidad.

1Un objeto de una clase se asocia a únicamente a un objeto

de la otra clase. 1..n

Un objeto de una clase se asocia a uno como mínimo o más de un objeto ilimitadamente de la otra clase.

1..xUn objeto de una clase se asocia a uno como mínimo o

hasta un máximo de x objetos de la otra clase. x

Un objeto de una clase se asocia a x exactos objetos de la otra clase.

19/04/23 45

Asociaciones entre clasesAsociaciones entre clases• Navegabilidad

Define el sentido u orientación de la comunicación o intercambio entre las clases.

Las asociaciones son unidireccionales o bidireccionales.

Define el sentido u orientación de la comunicación o intercambio entre las clases.

Se representa a través de una línea continua con una flecha en el extremo que indique la dirección deseada solo cuando es unidireccional.

19/04/23 46

Asociaciones entre clasesAsociaciones entre clases• Navegabilidad

¿Qué significa en este ejemplo? Significa que:

Para acceder a una orden de compra hay que hacerlo a través del cliente.

La orden de compra no conoce a qué cliente pertenece.

Cliente Orden de Compra

0..n1

emite

19/04/23 47

Asociaciones entre clasesAsociaciones entre clases• Navegabilidad

¿Qué significa en este ejemplo? Significa que:

La orden de compra conoce a qué cliente pertenece Para localizar las ordenes de compra de un cliente hay que

hacerlo a través de la colección de ordenes.

Cliente Orden de Compra

0..n1

emite

19/04/23 48

Asociaciones entre clasesAsociaciones entre clases• Navegabilidad

¿Qué significa en este ejemplo? Significa que:

La orden de compra conoce a qué cliente pertenece y viceversa.

Para acceder a una orden de compra hay que hacerlo a través del cliente y viceversa.

Cliente Orden de Compra

0..n1

emite

19/04/23 49

Asociaciones entre clasesAsociaciones entre clases• Tipo.

El tipo de asociación define la manera en que ocurre el intercambio entre las clases que intervienen en la asociación.

Existen 5 tipos de asociaciones. Asociación simple. Asociación múltiple. (Asociación de clases). Generalización. Agregación. Composición.

19/04/23 50

Asociaciones entre clasesAsociaciones entre clases• Asociación Simple.

Representa una relación o conexión semántica simple entre dos clases.

Se representa a través de una flecha a la línea continua de la asociación en el extremo que indique la dirección solo si la navegabilidad es unidireccional.

Cliente Orden de Compra

0..n1

emite

19/04/23 51

Asociaciones entre clasesAsociaciones entre clases• Asociación Simple.

Factura

noFactura : Integerfecha : Date = DATE()igv : Double = 18.00descuento : Currency = 0

Producto

codProducto : Integerdescripcion : Stringum : Stringpu : Currency = 0.00presentacion : String

DetalleFactura

noItem : Integercantidad : Integer = 0descuento : Double

Pais

codPais : IntegerDescripcion : String

1..n1..n

realiza

1 0..n 1

reside

1..n

1

rstá compuesta

10..n

rstá asociada

Cliente

codCliente : Integernombre : Stringdni : StringrazonSocial : Stringdireccion : Stringtelefono : Long

19/04/23 52

Asociaciones entre clasesAsociaciones entre clases• Asociación Múltiple. (Asociación de clases).

Representa una relación o conexión semántica producto de una asociación simple previamente establecida entre dos clases.

Produce una tercera clase nueva (múltiple) que asume la responsabilidad de las características (atributos) y comportamiento (operaciones) que surgen de la asociación simple entre las dos clases orígenes.

Los objetos de la clase múltiple existen después de que los objetos de las clases origen se asocien y se active la asociación simple respectiva.

19/04/23 53

Asociaciones entre clasesAsociaciones entre clases• Asociación Múltiple. (Asociación de clases).

En la asociaciones simples entre clases con multiplicidad de muchos a muchos se puede modelar una asociación múltiple.

Se representa a través de una línea discontinua que parte de la asociación simple hasta la nueva clase.

19/04/23 54

Asociaciones entre clasesAsociaciones entre clases• Asociación Múltiple. (Asociación de clases).

Libro

isbn : Stringftitulo :Stringfecha : Dateprecio : Currency

Autor

dni : Integernombre :Stringsexo : Charemail : string

Libro-Autor

%participacion : Doubletema :String

1..n

escribe

0..n

19/04/23 55

Asociaciones entre clasesAsociaciones entre clases• Generalización.

Modela la necesidad de herencia entre clases. identifica conceptos que se caractericen por.

Comportamiento generalizado. (superclase).Comportamiento específico. (subclase).

Se representa a través de un triángulo transparente a la línea continua de la asociación en el extremo cercano a la superclase.

• Se encuentra en aquellas clases que tienen ciertos atributos y/u operaciones en común.

• Se crea una clase nueva (superclase) que asume dicho comportamiento común.

19/04/23 56

Asociaciones entre clasesAsociaciones entre clases• Generalización

Estudiante

nombreapellidoscodigo del estudiantefecha de nacimiento

estudiante curso regular

forma de ingreso

estudiante formacion complementaria

centro de trabajo

19/04/23 57

Asociaciones entre clasesAsociaciones entre clases• Generalización.

Factura

noFactura : Integerfecha : Date = DATE()igv : Double = 18.00descuento : Currency = 0

Cliente

codCliente : Integerdireccion : Stringtelefono : Long

Producto

codProducto : Integerdescripcion : Stringum : Stringpu : Currency = 0.00presentacion : String

DetalleFactura

noItem : Integercantidad : Integer = 0descuento : Double

Pais

codPais : IntegerDescripcion : String

PersonaNatural

nombre : Stringdni : String

PersonaJuridica

razonSocial : Stringruc : String

1..n1..n

realiza

1 0..n 1

reside

1..n

1

está compuesta

10..n

está asociada

19/04/23 58

Asociaciones entre clasesAsociaciones entre clases• Agregación.

Es una relación que implica en su significado que una clase “contiene a” otras clases independientes.

Es una asociación de “todo / parte”. Cuando deja de existir la clase agregada no tiene por

qué dejar de existir el resto de las clases de la agregación.

El tiempo de vida de la clase agregada no define el tiempo de vida del resto de las clases.

Se representa a través de un rombo transparente en el extremo de la clase agregada.

19/04/23 59

Asociaciones entre clasesAsociaciones entre clases• Agregación.

Computadora

Monitor CPU Teclado RatónParlante

DiscoDuro RAM UnidadCD TarjetaVideo TarjetaSonido Botón Bola

19/04/23 60

Asociaciones entre clasesAsociaciones entre clases• Composición.

Es una agregación en la que se cumple lo siguiente. Si la destrucción del todo implica la destrucción de la

parte entonces el rombo se oscurece para expresar que la agregación es de tipo composición.

19/04/23 61

Asociaciones entre clasesAsociaciones entre clases• Composición.

Persona

Brazo Pierna Cabeza Cuerpo

Ojo Boca Nariz Oreja Pelo

1

2 2 1 1

1

2 1 1 2 0..n

19/04/23 62

Asociaciones entre clasesAsociaciones entre clases• Composición.

Factura

noFactura : Integerfecha : Date = DATE()igv : Double = 18.00descuento : Currency = 0

Cliente

codCliente : Integerdireccion : Stringtelefono : Long

Producto

codProducto : Integerdescripcion : Stringum : Stringpu : Currency = 0.00presentacion : String

DetalleFactura

noItem : Integercantidad : Integer = 0descuento : Double

Pais

codPais : IntegerDescripcion : String

PersonaNatural

nombre : Stringdni : String

PersonaJuridica

razonSocial : Stringruc : String

1..n1..n

realiza

1 0..n 1

reside

1..n

1

está compuesta

10..n

está asociada

19/04/23 63

ConclusionesConclusiones• La tecnología de objetos agrupa conceptos

fundamentales.

• La identificación de las clases, atributos y asociaciones contribuye un aspecto importante de la arquitectura del sistema.

• El modelamiento adecuado de las clases conduce al éxito de sistemas informáticos basados en tecnología orientada a objetos.