Post on 24-Dec-2015
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 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 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.