Documentos de Académico
Documentos de Profesional
Documentos de Cultura
( Parte I )
Ing. Luis Zuloaga Rotta
Complejidad del dominio del problema. Dificultad de administrar el desarrollo de procesos. Problemas al caracterizar el comportamiento de sistemas discretos. Flexibilidad posible a travs del software.
Ing. Luis Zuloaga Rotta
Qu es Orientado a Objetos ?
En 1er lugar es una forma de pensar - una forma de modelar una solucin a un problema. En 2do lugar, es una extensin a las metodologas de desarrollo previas, semejantes a la programacin estructurada. En 3er lugar la orientacin a objetos reconoce que los procesos naturales de pensamiento humano obtienen muchas ventajas evolucionarias, y por lo tanto trata de darle un adecuado soporte.
Ing. Luis Zuloaga Rotta
10
11
13
14
15
16
Qu es un objeto ?
Un objeto tiene estado, comportamiento, e identidad; la estructura y comportamiento de objetos similares son definidos en su clase comn; los terminos instancia y objeto son intercambiables . Grady Booch 91
Ing. Luis Zuloaga Rotta
17
Otro Concepto
Un objeto es cualquier cosa a la que se le aplica un concepto, el que representa una idea o nocin que nosotros compartimos y aplicable a ciertos objetos en nuestro conocimiento . James Martin 92
Ing. Luis Zuloaga Rotta
18
Otro Concepto
Nosotros definimos un objeto como un concepto, abstraccin o cosa con un significado y lmites bien definidos para el problema a manejar . Rumbaugh 91
19
Los Objetos
El objeto es una unidad atmica formada por la unin de un estado y de un comportamiento. El objeto revela su verdadero papel y su verdadera responsabilidad cuando, por medio del envo de mensajes, se inserta es un escenario de comunicacin.
Ing. Luis Zuloaga Rotta
20
Caractersticas de un Objeto
OBJETO = ESTADO + COMPORTAMIENTO + IDENTIDAD
21
El Estado
Agrupa los valores instantneos de todos los atributos de un objeto sabiendo que un atributo es una informacin que cualifica al objeto que la contiene. El estado evoluciona con el tiempo, es variable y puede verse como la consecuencia de sus comportamientos pasados.
Ing. Luis Zuloaga Rotta
22
El Comportamiento
Agrupa todas las competencias de un objeto y describe sus acciones y reacciones. Cada tomo de comportamiento se llama operacin. Las operaciones de un objeto se desencadenan a consecuencia de un estmulo externo, representando en forma de un mensaje enviado por otro objeto.
Ing. Luis Zuloaga Rotta
23
Estado y Comportamiento
El estado y el comportamiento estn relacionados: el comportamiento en un instante dado depende del estado actual, y el estado puede ser modificado por el comportamiento.
Slo es posible hacer aterrizar un avin si este est volando ....
24
La Identidad
Distingue los objetos de forma no ambigua, independientemente de su estado. Distingue dos objetos en los que todos los valores de atributos son idnticos. La identidad es un concepto, no se representa de manera especfica en el modelado. Cada objeto posee una identidad de manera implcita.
Ing. Luis Zuloaga Rotta
25
Constituye un identificador nico y global para cada objeto dentro del sistema. Es determinado en el momento de la creacin del objeto. Es independiente de la localizacin fsica del objeto, es decir, provee completa independencia de localizacin.
Ing. Luis Zuloaga Rotta
26
Es independiente de las propiedades del objeto, lo cual implica independencia de valor y de estructura No cambia durante toda la vida del objeto. Adems, un oid no se reutiliza aunque el objeto deje de existir No se tiene ningn control sobre los oids y su manipulacin resulta transparente
Sin embargo, es preciso contar con algn medio para hacer referencia a un objeto utilizando referencias del dominio (valores de atributos).
Ing. Luis Zuloaga Rotta
27
Categoras de comportamiento
Los objetos interactan para realizar las funciones de la aplicacin. Segn la naturaleza de las interacciones, es decir, segn la direccin de los mensajes intercambiados, es posible describir de manera general el comportamiento de los objetos. Las tres categoras de comportamiento: los actores, servidores y agentes.
Ing. Luis Zuloaga Rotta
28
29
30
CLIENTE
AGENTE
SERVIDORES
31
El concepto de mensaje
La unidad de comunicacin entre objetos se llama mensaje. El mensaje es el soporte de una relacin de comunicacin que vincula, de forma dinmica, los objetos que han sido separados por el proceso de descomposicin.
Ing. Luis Zuloaga Rotta
32
33
Tipos de Objetos
g g g g g
Concretos: Persona-Carro-PC Roles: Doctor-Propietario-Maestro Relacional: Sociedad-Hijo-Matrimonio Eventos: Venta-Compra-Arribo Exponibles: Icono-Window-Imagen-Men
34
36
Qu es la Abstraccin ?
Es una de las vas fundamentales por la que los humanos combatimos la complejidad. La abstraccin surge del reconocimiento de las similitudes entre ciertos objetos, situaciones o procesos del mundo real, y en la decisin de concentrarse en esas similitudes e ignorar por el momento las diferencias.
Ing. Luis Zuloaga Rotta
37
La abstraccin centra su atencin en las caractersticas esenciales de un objeto en relacin a la perspectiva del observador
Ing. Luis Zuloaga Rotta
38
La Abstraccin
Es una facultad de los seres humanos que consiste en la identificacin de las caractersticas comunes a un conjunto de elementos, hacia la descripcin condensada de estas caractersticas en lo que se ha convenido en llamar una CLASE. El mtodo de abstraccin es arbitrario. Lo que permite que un objeto pueda ser visto a travs de abstracciones diferentes.
Ing. Luis Zuloaga Rotta
39
Descubrimiento e invencin
g
Con el descubrimiento se llega a reconocer las abstracciones utilizadas por expertos del dominio; si el experto del dominio habla de ella, entonces la abstraccin suele ser importante. Mediante la invencin, se crean nuevas clases y objetos que no son parte del dominio del problema pero que son tiles en el diseo e implantacin.
Ing. Luis Zuloaga Rotta
40
Describiendo Objetos
Despus de identificar un objeto, se crea una abstraccin para describir esta como un conjunto de atributos y operaciones. Los atributos almacenan valores de datos relativos a un objeto. Ejemplo de atributos :
Peso Tamao Nro Identidad
Ing. Luis Zuloaga Rotta
41
Describiendo Objetos
Operaciones o mtodos son actividades llevadas a cabo por un objeto como resultado de un evento.
Ejemplo de actividades : Listar Facturas Calcular Volumen Totalizar Items
42
Atributo
Es un valor de dato vlido para los objetos en una clase. Diferentes instancias de objetos pueden tener el mismo o diferentes valores para un atributo dado. Cada nombre de atributo es nico en una clase, regla que no necesariamente tiene que cumplirse para clases diferentes. Un atributo debera ser un valor de dato puro, no un objeto.
Ing. Luis Zuloaga Rotta
43
Seleccionando Atributos
Definir atributos que son independientes de cualquier otro. Ejemplo de atributos dependientes :
Una locomotora tiene los siguientes atributos Hecho en, y Motor tipo En el siguiente caso ellos son dependientes Hecho en puede ser General Electric u Otro Motor tipo es diesel si es hecho por GE, en cualquier otro caso es a gas.
44
45
46
Operaciones y Mtodos
Una operacin es una funcin o transformacin que puede ser aplicada a o por objetos en una clase. Cada operacin tiene un objeto destino como un argumento implcito. La misma operacin puede aplicarse a muchas clases diferentes. Un mtodo es la implementacin de una operacin para una clase.
Ing. Luis Zuloaga Rotta
47
48
Nombre
Atributo 1 Atributo 2 Atributo 3 Operacin 01 ( ) Operacin 02 ( )
Motocicleta
Color Cilindrada Velocidad maxima arrancar ( ) acelerar ( ) frenar ( ) Llenar tanque ( )
49
Las Clases
La clase describe el mbito de definicin de un conjunto de objetos. Cada objeto pertenece a una clase. Las generalidades estn contenidas en la clase y las particularidades estn contenidas en los objetos.
50
51
Qu es Encapsulacin ?
La abstraccin y el encapsulamiento son conceptos complementarios: la primera se centra en el comportamiento observable de un objeto, mientras el encapsulamiento se centra en la implementacin que da lugar a este comportamiento. Para que la abstraccin funcione la implementacin debe estar encapsulada.
Ing. Luis Zuloaga Rotta
52
53
Encapsulamiento
De modo predeterminado, los valores de atributos de un objeto se encapsulan en el objeto y no puden ser manipulados directamente por los dems objetos. Todas las interacciones entre los objetos se efectan invocando las diversas operaciones declaradas en la especificacin de la clase y accesibles desde los dems objetos, de acuerdo a las reglas de visibilidad.
Ing. Luis Zuloaga Rotta
54
Reglas de Visibilidad
Privada ( - ): visible slo para la clase y para las clases amigas (C++). Protegida( # ): visible slo para las clases derivadas (subclases). Pblica ( + ): visible para todas las clases con las que esta asociada.
Ing. Luis Zuloaga Rotta
55
La Asociacin
Expresa una conexin semntica bidireccional entre clases. Una asociacin es una abstraccin de los enlaces que existen entre los objetos instancias de las clases asociadas.
enlace Pedro: Alumno
UNI : Universidad
enlace Oscar: Alumno
enlace
UNFV: Universidad
Juana: Alumno
asociacion
Universidad
Alumno
56
Clarificacin de la Asociacin
Para mejorar la legibilidad de los diagramas, la asociacin puede ir acompaada por una forma verbal activa o pasiva. Es posible precisar el rol de una clase al interior de una asociacin.
registra a >
Universidad
< estudia en
Alumno
empleador
docente estudiante
Universidad
Persona
57
Multiplicidad
Los roles continen tambien una informacin de multiplicidad que precisa el nmero de instancias que participan en la relacin.
1 0..1 m..n uno y slo uno cero o uno de "m" a "n" muchos cero a muchos uno a muchos
*
0..* 1..*
empleador
docente estudiante
Universidad
0..1
Persona
58
La Agregacin
Una relacin expresa una forma de acoplamiento entre abstracciones. La fuerza del acoplamiento depende de la naturaleza de la relacin en el mbito del problema. De modo predeterminado, la asociacin expresa un acoplamiento dbil. La agregacin es una forma particular de asociacin que expresa un acoplamiento ms fuerte entre clases. La agregacin permite representar relaciones del tipo todo y partes o compuesto y componentes.
Ing. Luis Zuloaga Rotta
59
Representacin de la agregacin
Se representa como una asociacin, 1 con el aadido de un pequeo Auto rombo colocado al lado del agregado. La agregacin favorece la propagacin de los valores de atributos y de operaciones del Persona agregado hacia las partes o hijos componentes. * Cuando la multiplicidad del agregado vale 1, la destruccin del agregado entraa la destruccin de las partes.
Ing. Luis Zuloaga Rotta
Motor
padre
0..2
60
?
PERSONA ( Clase )
Civil MUJER
61
La Generalizacin
Consiste en factorizar los elementos comunes (atributos, operaciones y restricciones) de un conjunto de clases en una clase ms general llamada superclase.
Vehiculo terrestre
Vehculo areo
Auto
Camin
Avin
Helicoptero
62
La Especializacin
Permite capturar las particularidades de un conjunto de objetos no discriminados por las clases ya identificadas. Las nuevas caractersticas se representan por una nueva clase, sub clase de una de las clases existentes.
Vehiculo terrestre
Vehculo
Vehculo areo
Auto
Camin
Avin
Helicoptero
63
Propiedades de la Generalizacin
La generalizacin solo afecta a las clases y significa : es un o es una especie de. No establece ninguna indicacin de multiplicidad. No es una relacin reflexiva. No es una relacin simtrica Es una relacin transitiva.
Vehculo Animal
NO ...!
Vehculo
Ave
Mobil Canario
NO ...!
SI ...! 64
Herbvoro Covariacin
Carnivoro
Herbivoro
Carnivoro
Animal
Herbvoro
Carnvoro
Bpedo
Cuadrpedo
Bpedo
Cuadrpedo
65
Generalizacin Mltiple
Aporta una solucin elegante para la construccin de clasificaciones con criterios independientes, dficiles de ordenar.
Bpedo
Nro patas Proteccin piel
Animal
Alimentacin
Cuadrpedo
Herbvoro
Carnivoro
Conejo
66
La covariacin no reducible
En algunos casos la covariacin existe por la propia naturaleza del mbito de la aplicacin. Esta forma de covariacin no es reducible porque afecta a dos jerarquas distintas.
1 0..*
Moto Piloto
1 0..*
Licencia
Cross
Taxi
Cross
Taxi
Covariacin no reducible
67
1
Estado Oruga Crislida
Lepidoptero
Es esto correcto ?
NO ...!
Oruga
Crislida
Lepidoptero
Esto es Correcto..!
La generalizacin no est adaptada para representar las metamorfosis.
Ing. Luis Zuloaga Rotta
68
La Herencia
Es una tcnica de los lenguajes de programacin para construir una clase a partir de una o varias otras clases, compartiendo atributos, operaciones y, en ocasiones, restricciones, dentro de una jerarqua de clases. Las clases hijos heredan las caractersticas de sus clases antecesoras; los atributos y las operaciones declaradas en la clase padre son accesibles en la clase hijo, como si se hubieran declarado localmente.
Ing. Luis Zuloaga Rotta
69
Bpedo
Cuadrpedo
Herbvoro
Carnvoro
La delegacin presenta la ventaja de reducir el acoplamiento en el modelo: por una parte, el cliente no conoce directamente al proveedor, y por otra, el proveedor puede ser modificado sobre la marcha.
Ing. Luis Zuloaga Rotta
70
El Principio de la Sustitucin
La clasificacin propaga el estado, el comportamiento y las restricciones. No existen medias tintas: todas las propiedades de la clase padre son vlidas integramente en la clase hijo. El principio de la sustitucin afirma que: Debe ser posible sustituir cualquier objeto
instancia de una subclase por cualquier objeto instancia de una superclase sin que la semntica del programa escrito en los trminos de la superclase se vea afectada.
Ing. Luis Zuloaga Rotta
71
El Polimorfismo
Describe la caracterstica de un elemento que puede tomar varias formas, como el agua que se encuentra en estado slido, lquido o gaseoso. El polimorfismo de operacin, desencadena operaciones diferentes en respuesta a un mismo mensaje. Cada subclase hereda de la especificacin de las operaciones de sus superclases, pero tiene la posibilidad de modificar localmente el comportamiento de estas operaciones.
Ing. Luis Zuloaga Rotta
??
Camine
72
Objeto Iterador
El diagrama siguiente representa una coleccin polimorfa. Todos los animales saben dormir, pero c/raza tiene su forma particular. Los mecanismos generales escritos segn la especificacin del ZOO no necesitan conocer los gustos particulares de cada raza para invocar la operacin Dormir ( ). Un iterador es un objeto asociado a una coleccin que permite visitar todos sus elementos sin desvelar su estructura interna.
Zoo
Animal Dormir ( )
Len
Tigre
Oso
Dormir ( ) { En un arbol }
73
Animal Dormir ( )
Len
Tigre
Oso
74
75
Aguila
Gorrin
Avestruz
Lo mostrado no tiene consecuencias mientras nadie escriba un mecanismo general para manipular los pjaros.
76