clases y objetos la naturaleza de los objetos. qué es y qué no es un objeto. a través del...

110
Clases y Objetos Clases y Objetos La naturaleza de los La naturaleza de los objetos objetos

Upload: teresa-lara-belmonte

Post on 25-Jan-2016

241 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Clases y ObjetosClases y Objetos

La naturaleza de los objetosLa naturaleza de los objetos

Page 2: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Qué es y qué no es un objeto.Qué es y qué no es un objeto.A través del concepto de objeto un niño llega a darse cuenta de que los A través del concepto de objeto un niño llega a darse cuenta de que los objetos tienen una permanencia e identidad además de cualesquiera objetos tienen una permanencia e identidad además de cualesquiera operaciones sobre ellos.operaciones sobre ellos.

Un objeto modelo alguna parte de la realidad, y es por tanto algo que Un objeto modelo alguna parte de la realidad, y es por tanto algo que existe en el tiempo y el espacio.existe en el tiempo y el espacio.

Page 3: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Los objetos del mundo real no son el único tipo de objeto Los objetos del mundo real no son el único tipo de objeto de interés para el desarrollo del software. de interés para el desarrollo del software. Otros tipos importantes de objetos son invenciones del Otros tipos importantes de objetos son invenciones del proceso de diseño cuyas colaboraciones con otros proceso de diseño cuyas colaboraciones con otros objetos semejantes sirven como mecanismos para objetos semejantes sirven como mecanismos para desempeñar algún comportamiento de nivel superior.desempeñar algún comportamiento de nivel superior.

Un objeto representa un elemento, unidad o entidad Un objeto representa un elemento, unidad o entidad individual e identificable, ya sea real o abstracta, con un individual e identificable, ya sea real o abstracta, con un papel bien definido en el dominio del problema.papel bien definido en el dominio del problema.

Un objeto es cualquier cosa que tenga una frontera Un objeto es cualquier cosa que tenga una frontera definida con nitidez.definida con nitidez.

Page 4: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

ObjetosObjetos

Page 5: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

EstadoEstado

• Semántica:Semántica:

objeto es importante. La objeto es importante. La razón para este comportamiento razón para este comportamiento dependiente del tiempo y los eventos es la existencia de un dependiente del tiempo y los eventos es la existencia de un estado interior del objetoestado interior del objeto. O sea que:. O sea que:

El estado de un objeto abarca todas las propiedades El estado de un objeto abarca todas las propiedades normalmente estáticas) del mismo más los valores actuales normalmente estáticas) del mismo más los valores actuales (normalmente dinámicos) de cada una de esas propiedades.(normalmente dinámicos) de cada una de esas propiedades.

Page 6: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

propiedadespropiedades

El hecho de que todo objeto tiene El hecho de que todo objeto tiene un estado implica que todo objeto un estado implica que todo objeto toma cierta cantidad de espacio, toma cierta cantidad de espacio, ya sea en el mundo físico o en la ya sea en el mundo físico o en la memoria del computadormemoria del computador

Page 7: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Puede decirse que todos los objetos de un sistema encapsulan algún estado, y que todo el estado de un sistema está encapsulado en objetos.

Sin embargo, encapsular el estado de un objeto es un punto de partido pero no es suficiente para permitir que se capturen todos los designios de las abstracciones que se descubren e inventan durante el desarrollo. Por esta razón, hay que considerar también cómo se comportan los objetos.

Page 8: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

ComportamientoComportamiento

El significado del comportamiento.El significado del comportamiento.Ningún objeto existe de forma aislada. Los objetos Ningún objeto existe de forma aislada. Los objetos reciben acciones y actúan sobre otros objetos.reciben acciones y actúan sobre otros objetos.El comportamiento es cómo actúa y reacciona un objeto, El comportamiento es cómo actúa y reacciona un objeto, en términos de sus cambios de estado y paso de en términos de sus cambios de estado y paso de mensajes. Representa su actividad visible y comprobable mensajes. Representa su actividad visible y comprobable exteriormente.exteriormente.

Una operación es una acción que un objeto efectúa sobre Una operación es una acción que un objeto efectúa sobre otro con el fin de provocar una reacción. Los términos otro con el fin de provocar una reacción. Los términos operación operación y y mensaje mensaje son intercambiables.son intercambiables.

Page 9: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

En la mayoría de los lenguajes de programación orientados a En la mayoría de los lenguajes de programación orientados a objetos, las operaciones que los clientes pueden realizar sobre objetos, las operaciones que los clientes pueden realizar sobre un objeto suelen declararse como un objeto suelen declararse como métodos métodos (o función miembro (o función miembro en C++ por ejemplo).en C++ por ejemplo).

La definición de La definición de comportamiento comportamiento también recoge que el estado también recoge que el estado de un objeto afecta asimismo a su comportamiento. El de un objeto afecta asimismo a su comportamiento. El comportamiento de un objeto es función de su estado así como comportamiento de un objeto es función de su estado así como también de la operación que se realiza sobre él, teniendo también de la operación que se realiza sobre él, teniendo algunas operaciones el efecto lateral de modificar el estado del algunas operaciones el efecto lateral de modificar el estado del objeto.objeto.

El estado de un objeto representa los resultados acumulados de El estado de un objeto representa los resultados acumulados de su comportamiento.su comportamiento.

Page 10: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Una operación denota un servicio que una clase ofrece a sus Una operación denota un servicio que una clase ofrece a sus clientes. Los tres tipos más comunes de operaciones sobre un clientes. Los tres tipos más comunes de operaciones sobre un objeto son:objeto son:

a. a. Modificador Modificador Una operación que altera el estado de un objeto.Una operación que altera el estado de un objeto.b. b. Selector Selector Una operación que accede al estado de un objeto, Una operación que accede al estado de un objeto, pero no altera ese estado.pero no altera ese estado.c. c. Iterador Iterador Una operación que permite acceder a todas las Una operación que permite acceder a todas las partes de un objeto en algún orden perfectamente establecido.partes de un objeto en algún orden perfectamente establecido.d. d. Constructor Constructor Una operación que crea un objeto y / o inicializa Una operación que crea un objeto y / o inicializa su estado.su estado.e. e. Destructor Destructor Una operación que libera el estado de un objeto Una operación que libera el estado de un objeto y / o destruye el propio objeto.y / o destruye el propio objeto.

Page 11: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Roles y responsabilidadesRoles y responsabilidades

Todos los métodos y subprogramas libres asociados a un objeto Todos los métodos y subprogramas libres asociados a un objeto concreto forman su protocolo. El protocolo define así la envoltura concreto forman su protocolo. El protocolo define así la envoltura del comportamiento admisible en un objeto, englobando la visión del comportamiento admisible en un objeto, englobando la visión estática y dinámica completa del mismo.estática y dinámica completa del mismo.

Para la mayoría de las abstracciones es útil dividir este protocolo Para la mayoría de las abstracciones es útil dividir este protocolo en grupos lógicos de comportamiento.en grupos lógicos de comportamiento.

Estas colecciones, que constituyen una partición del espacio de Estas colecciones, que constituyen una partición del espacio de comportamiento de un objeto, denotan papeles que un objeto comportamiento de un objeto, denotan papeles que un objeto puede desempeñar. Un papel es una máscara que se pone un puede desempeñar. Un papel es una máscara que se pone un objeto y por tanto define un contrato entre una abstracción y sus objeto y por tanto define un contrato entre una abstracción y sus clientes.clientes.

Page 12: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Las Las responsabilidadesresponsabilidades de un objeto «incluyen dos de un objeto «incluyen dos elementos clave»: el conocimiento que un objeto elementos clave»: el conocimiento que un objeto mantiene y las acciones que puede llevar a cabo. mantiene y las acciones que puede llevar a cabo.

Las responsabilidades están encaminadas a transmitir Las responsabilidades están encaminadas a transmitir un sentido del propósito de un objeto y de su lugar en un sentido del propósito de un objeto y de su lugar en el sistemael sistema. Las responsabilidades de un objeto son . Las responsabilidades de un objeto son todos los servicios que proporciona para todos los todos los servicios que proporciona para todos los contratos que soporta.contratos que soporta.

Page 13: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Los objetos como máquinas.Los objetos como máquinas.

La existencia de un estado significa que el orden en el que se La existencia de un estado significa que el orden en el que se invocan las operaciones es importante. Esto da lugar a la idea de invocan las operaciones es importante. Esto da lugar a la idea de que cada objeto es como una pequeña máquina independiente. que cada objeto es como una pequeña máquina independiente. Se pueden entonces clasificar los objetos como activos o pasivos. Se pueden entonces clasificar los objetos como activos o pasivos. Un Un objeto activo objeto activo es aquel que comprende su propio hilo de es aquel que comprende su propio hilo de control, mientras que un control, mientras que un objeto pasivo objeto pasivo no.no.

Los objetos activos suelen ser autónomos, pueden exhibir algún Los objetos activos suelen ser autónomos, pueden exhibir algún comportamiento sin que ningún otro objeto opere sobre ellos. comportamiento sin que ningún otro objeto opere sobre ellos. Los pasivos, sólo pueden padecer un cambio de estado cuando se Los pasivos, sólo pueden padecer un cambio de estado cuando se actúa explícitamenteactúa explícitamentesobre ellos.sobre ellos.

Page 14: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Identidad.Identidad.Semántica.Semántica.

La identidad es aquella propiedad de un objeto que lo distingue La identidad es aquella propiedad de un objeto que lo distingue de todos los demás objetos.de todos los demás objetos.

La mayoría de los lenguajes de programación y bases de datos La mayoría de los lenguajes de programación y bases de datos utilizan nombres de variable para distinguir objetos temporales, utilizan nombres de variable para distinguir objetos temporales, mezclando la posibilidad de acceder a ellos con su identidad. El mezclando la posibilidad de acceder a ellos con su identidad. El fracaso en reconocer la diferencia entre el nombre del objeto y fracaso en reconocer la diferencia entre el nombre del objeto y el objeto en sí mismo es fuente de muchos errores en la el objeto en sí mismo es fuente de muchos errores en la programación orientada a objetos.programación orientada a objetos.

Page 15: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Copia, asignación e igualdad.Copia, asignación e igualdad.

La compartición estructural se da cuando la identidad de un La compartición estructural se da cuando la identidad de un objeto recibe un alias a través de un segundo nombre. Es una objeto recibe un alias a través de un segundo nombre. Es una operación de operación de copiacopia..La La asignación asignación es del mismo modo en general una operación de es del mismo modo en general una operación de copia.copia.

El problema de la El problema de la igualdad igualdad está en relación muy estrecha con el está en relación muy estrecha con el de la asignación. Aunque se presenta como un concepto simple la de la asignación. Aunque se presenta como un concepto simple la igualdad puede presentar una de dos cosas.igualdad puede presentar una de dos cosas.

Primero, puede significar que dos nombres designan el mismo Primero, puede significar que dos nombres designan el mismo objeto y segundo, puede significar que dos nombres designan objeto y segundo, puede significar que dos nombres designan objetos distintos cuyos estados son iguales.objetos distintos cuyos estados son iguales.

Page 16: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Espacio de vida de un objeto.Espacio de vida de un objeto.

El tiempo de vida de un objeto se extiende desde el El tiempo de vida de un objeto se extiende desde el momento en que se crea por primera vez (y consume momento en que se crea por primera vez (y consume así espacio por primera vez) hasta que ese espacio se así espacio por primera vez) hasta que ese espacio se recupera. Para crear explícitamente un objeto hay que recupera. Para crear explícitamente un objeto hay que declararlo o bien asignarle memoria dinámicamente.declararlo o bien asignarle memoria dinámicamente.

Page 17: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Relaciones entre objetosRelaciones entre objetosTipos de relaciones.Tipos de relaciones.Los objetos contribuyen al comportamiento de un sistema Los objetos contribuyen al comportamiento de un sistema colaborando con otros. En lugar de un procesador triturador de bits colaborando con otros. En lugar de un procesador triturador de bits que golpea y saquea estructuras de datos, tenemos un universo de que golpea y saquea estructuras de datos, tenemos un universo de objetos bien educados que cortésmente solicitan a los demás que objetos bien educados que cortésmente solicitan a los demás que lleven a cabo sus diversos deseos. La relación entre dos objetos lleven a cabo sus diversos deseos. La relación entre dos objetos cualesquiera abarca las suposiciones que cada uno realiza acerca del cualesquiera abarca las suposiciones que cada uno realiza acerca del otro, incluyendo qué operaciones pueden realizarse y qué otro, incluyendo qué operaciones pueden realizarse y qué comportamiento se obtiene. Hay dos tipos de jerarquías de objetos:comportamiento se obtiene. Hay dos tipos de jerarquías de objetos:

EnlacesEnlacesAgregaciónAgregación

Page 18: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Enlaces.Enlaces.

Una conexión física o conceptual entre objetos. Una conexión física o conceptual entre objetos. Un objeto colabora con otros objetos a través Un objeto colabora con otros objetos a través de sus enlaces con éstos. Un enlace denota la de sus enlaces con éstos. Un enlace denota la asociación específica por la cual un objeto (el asociación específica por la cual un objeto (el cliente) utiliza los servicios de otro objeto (el cliente) utiliza los servicios de otro objeto (el suministrador o servidor), o a través de la cual suministrador o servidor), o a través de la cual un objeto puede comunicarse conun objeto puede comunicarse conotro.otro.

Page 19: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

El paso de mensajes entre dos objetos es unidireccional, aunque El paso de mensajes entre dos objetos es unidireccional, aunque ocasionalmente puede ser bidireccional.ocasionalmente puede ser bidireccional.

Como participante de un enlace, un objeto puede desempeñar Como participante de un enlace, un objeto puede desempeñar uno de tres papeles:uno de tres papeles:

1. 1. Actor Actor Un objeto que puede operar sobre otros objetos pero Un objeto que puede operar sobre otros objetos pero nunca se opera sobre él por parte de otros objetos; en algunos nunca se opera sobre él por parte de otros objetos; en algunos contextos, los términos objeto activo y actor son equivalentes.contextos, los términos objeto activo y actor son equivalentes.2. 2. Servidor Servidor Un objeto que nunca opera sobre otros objetos; sólo Un objeto que nunca opera sobre otros objetos; sólo otros objetos operan sobre él.otros objetos operan sobre él.3. 3. AgenteAgenteUn objeto que puede operar sobre otros objetos y Un objeto que puede operar sobre otros objetos y además otros objetos pueden operar sobre él; un agente se crea además otros objetos pueden operar sobre él; un agente se crea normalmente para realizar algún trabajo en nombre de un actor u normalmente para realizar algún trabajo en nombre de un actor u otro agente.otro agente.

Page 20: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Visibilidad.Visibilidad.Considérense dos objetos A y B con un enlace entre ambos. Para Considérense dos objetos A y B con un enlace entre ambos. Para que A pueda enviarle un mensaje a B, B debe ser visible para A de que A pueda enviarle un mensaje a B, B debe ser visible para A de algún modo. Durante el análisis del problema se puede ignorar la algún modo. Durante el análisis del problema se puede ignorar la visibilidad, pero una vez que se comienza a idear implantaciones visibilidad, pero una vez que se comienza a idear implantaciones concretas hay que considerarla a través de los enlaces, porque las concretas hay que considerarla a través de los enlaces, porque las decisiones en este punto dictan el ámbito y acceso de los objetos a decisiones en este punto dictan el ámbito y acceso de los objetos a cada lado del enlace.cada lado del enlace.Hay cuatro formas en que un objeto puede tener visibilidad para Hay cuatro formas en que un objeto puede tener visibilidad para otro:otro:El objeto servidor es global para el cliente.El objeto servidor es global para el cliente.El objeto servidor es un parámetro de alguna operación del El objeto servidor es un parámetro de alguna operación del cliente.cliente.El objeto servidor es parte del objeto cliente.El objeto servidor es parte del objeto cliente.El objeto servidor es un objeto declarado localmente en alguna El objeto servidor es un objeto declarado localmente en alguna operación del cliente.operación del cliente.

Page 21: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Sincronización.Sincronización.Siempre que un objeto pasa un mensaje a otro a través de un enlace se Siempre que un objeto pasa un mensaje a otro a través de un enlace se dice que los dos objetos están dice que los dos objetos están sincronizadossincronizados. Para objetos de una . Para objetos de una aplicación completamente secuencial, esta sincronización suele aplicación completamente secuencial, esta sincronización suele realizarse mediante una simple invocación de métodos. Sin embargo en realizarse mediante una simple invocación de métodos. Sin embargo en presencia de múltiples hilos de control, los objetos requieren un paso presencia de múltiples hilos de control, los objetos requieren un paso de mensajes más sofisticado. Hay que elegir uno de tres enfoques:de mensajes más sofisticado. Hay que elegir uno de tres enfoques:

1. 1. Secuencial Secuencial La semántica del objeto pasivo está garantizada sólo en La semántica del objeto pasivo está garantizada sólo en presencia de un único objeto activo simultáneamente.presencia de un único objeto activo simultáneamente.2. 2. Vigilado Vigilado La semántica del objeto pasivo está garantizada en La semántica del objeto pasivo está garantizada en presencia de múltiples hilos de control, pero los clientes activos deben presencia de múltiples hilos de control, pero los clientes activos deben colaborar para lograr la exclusión mutua.colaborar para lograr la exclusión mutua.3. 3. Síncrono Síncrono La semántica del objeto pasivo está garantizada en La semántica del objeto pasivo está garantizada en presencia de múltiples hilos de control, y el servidor garantiza la presencia de múltiples hilos de control, y el servidor garantiza la exclusión mutua.exclusión mutua.

Page 22: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Agregación.Agregación.

Mientras que los enlaces denotan relaciones de igual-a-igual o cliente / Mientras que los enlaces denotan relaciones de igual-a-igual o cliente / servidor, la agregación denota una jerarquía todo / parte, con la servidor, la agregación denota una jerarquía todo / parte, con la capacidad de ir desde el todo (también llamado el agregado) hasta sus capacidad de ir desde el todo (también llamado el agregado) hasta sus partes (conocido también como atributos).partes (conocido también como atributos).La agregación puede o no denotar contención física.La agregación puede o no denotar contención física.

Existen claros pros y contras entre los enlaces y la agregación. La Existen claros pros y contras entre los enlaces y la agregación. La agregación es a veces mejor porque encapsula partes y secretos del agregación es a veces mejor porque encapsula partes y secretos del todo. A veces son mejores los enlaces porque permiten acoplamientos todo. A veces son mejores los enlaces porque permiten acoplamientos más débiles entre los objetos.más débiles entre los objetos.

Por implicación, un objeto que es atributo de otro tiene un enlace a su Por implicación, un objeto que es atributo de otro tiene un enlace a su agregado. A través de este enlace, el agregado puede enviar mensajes agregado. A través de este enlace, el agregado puede enviar mensajes a sus partes.a sus partes.

Page 23: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

La naturaleza de una claseLa naturaleza de una claseQué es y qué no es una clase.Qué es y qué no es una clase.

Los conceptos de clase y objeto están estrechamente ligados Los conceptos de clase y objeto están estrechamente ligados pero hay que saber que mientras un objeto es una entidad pero hay que saber que mientras un objeto es una entidad concreta que existe en el tiempo y el espacio, una clase concreta que existe en el tiempo y el espacio, una clase representa sólo una abstracción, la «esencia» de un objeto (lo representa sólo una abstracción, la «esencia» de un objeto (lo que representa las características comunes de todos los objetos que representa las características comunes de todos los objetos que pertenecen a una clase).que pertenecen a una clase).

Page 24: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Una clase es un conjunto de objetos que comparten una Una clase es un conjunto de objetos que comparten una estructura común y un comportamiento común.estructura común y un comportamiento común.

Un solo objeto no es más que una instancia de una Un solo objeto no es más que una instancia de una clase. Un objeto no es una clase, aunque una clase sí clase. Un objeto no es una clase, aunque una clase sí puede ser un objeto. La clase es un vehículo necesario, puede ser un objeto. La clase es un vehículo necesario, pero no suficiente, para la descomposición.pero no suficiente, para la descomposición.

Page 25: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Interfaz e implementación.Interfaz e implementación.

Un objeto es una entidad concreta que desempeña algún papel en Un objeto es una entidad concreta que desempeña algún papel en el sistema global y una clase captura la estructura y el sistema global y una clase captura la estructura y comportamiento comunes a todos los objetos relacionados. Así, comportamiento comunes a todos los objetos relacionados. Así, una clase sirve como una especie de contrato que vincula a una una clase sirve como una especie de contrato que vincula a una abstracción y todos sus clientes. Esta visión de la programación abstracción y todos sus clientes. Esta visión de la programación como un contrato lleva a distinguir entre la visión externa y la como un contrato lleva a distinguir entre la visión externa y la visión interna de una clase. visión interna de una clase.

El El interfaz interfaz de una clase proporciona su visión externa y por tanto de una clase proporciona su visión externa y por tanto enfatiza la abstracción a la vez que oculta su estructura y los enfatiza la abstracción a la vez que oculta su estructura y los secretos de comportamiento. Se compone principalmente de todas secretos de comportamiento. Se compone principalmente de todas las operaciones aplicables a instancias de esta clase, pero también las operaciones aplicables a instancias de esta clase, pero también puede incluir la declaración de otras clases, constantes, variables, puede incluir la declaración de otras clases, constantes, variables, expresiones, según se necesiten para completar la abstracción.expresiones, según se necesiten para completar la abstracción.

Page 26: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Por contraste, la Por contraste, la implementación implementación es su visión interna que es su visión interna que engloba los secretos de su comportamiento. La implementación engloba los secretos de su comportamiento. La implementación de una clase se compone principalmente de la implementación de una clase se compone principalmente de la implementación de todas las operaciones definidas en el interfaz de la misma. El de todas las operaciones definidas en el interfaz de la misma. El interfaz puede dividirse en:interfaz puede dividirse en:

1.1.Público Público (Public) Una declaración accesible a todos los clientes.(Public) Una declaración accesible a todos los clientes.

2. 2. Protegida Protegida (Protected) Una declaración accesible sólo a la (Protected) Una declaración accesible sólo a la propia clase, sus subclases, y sus clases amigas.propia clase, sus subclases, y sus clases amigas.

3. 3. Privada Privada (Private) Una declaración accesible sólo a la propia (Private) Una declaración accesible sólo a la propia clase y sus clases amigas.clase y sus clases amigas.

Page 27: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Ciclo de vida de las clases.Ciclo de vida de las clases.

Se puede llegar a la comprensión del comportamiento de una Se puede llegar a la comprensión del comportamiento de una clase simple con sólo comprender la semántica de sus distintas clase simple con sólo comprender la semántica de sus distintas operaciones públicas de forma aislada. operaciones públicas de forma aislada.

Sin embargo, el comportamiento de clases más interesantes Sin embargo, el comportamiento de clases más interesantes implica la interacción de sus diversas operaciones a lo largo del implica la interacción de sus diversas operaciones a lo largo del tiempo de vida de cada una de sus instancias.tiempo de vida de cada una de sus instancias.

Page 28: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Relaciones entre clasesRelaciones entre clases

Tipos de relaciones.Tipos de relaciones.

Las clases, al igual que los objetos no existen aisladamente. Para Las clases, al igual que los objetos no existen aisladamente. Para un domino de problema específico las abstracciones clave un domino de problema específico las abstracciones clave suelen estar relacionadas por vías muy diversas e interesantes suelen estar relacionadas por vías muy diversas e interesantes formando la estructura de clases del diseño.formando la estructura de clases del diseño.

Se establecen relaciones entre clases porque Se establecen relaciones entre clases porque

a. la relación podría indicar algún tipo de compartición.a. la relación podría indicar algún tipo de compartición.b. la relación podría indicar algún tipo de conexión semántica.b. la relación podría indicar algún tipo de conexión semántica.

Page 29: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Existen tres tipos básicos de relaciones entre clases:Existen tres tipos básicos de relaciones entre clases:

1.1.generalización / especializacióngeneralización / especialización; denota una relación ; denota una relación «es un».«es un».

2. 2. todo / partetodo / parte; denota una relación «parte de».; denota una relación «parte de».

3. 3. asociaciónasociación; denota alguna dependencia semántica ; denota alguna dependencia semántica entre clases de otro modo independientes.entre clases de otro modo independientes.

Page 30: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Programación orientada a Programación orientada a objetos:objetos:

ejemplo en Javaejemplo en Javaclass Vector {private double x;private double y;Vector (double u1, double u2) { x = u1; y = u2; }double modulo () { return Math.sqrt (x*x + y*y); }}class MainClass {public static void main ( String args []) {Vector u = new Vector (4, -2);System.out.println (u.modulo ());}}

Page 31: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Programación orientada a Programación orientada a objetos:objetos:

ejemplo en C++ejemplo en C++class Vector {private:double x;double y;public:Vector (double u1, double u2) { x = u1; y = u2; }double modulo () { return sqrt (x*x + y*y); }};void main (){Vector u (4, -2);cout << u.modulo ();}

Page 32: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

RelacionesRelaciones::

1) Asociación1) Asociación2) Herencia2) Herencia3) Agregación3) Agregación4) Uso4) Uso5) Instanciación (creación de instancias o ejemplares)5) Instanciación (creación de instancias o ejemplares)6) Metaclase6) Metaclase

Page 33: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Asociación.Asociación.

Una asociación sólo denota una dependencia Una asociación sólo denota una dependencia semántica y no establece la dirección de esta semántica y no establece la dirección de esta dependencia (a menos que se diga lo contrario, dependencia (a menos que se diga lo contrario, una asociación implica relación bidireccional) ni una asociación implica relación bidireccional) ni establece la forma exacta en que una clase se establece la forma exacta en que una clase se relaciona con otra (sólo puede denotarse esta relaciona con otra (sólo puede denotarse esta semántica nombrando el papel que desempeña semántica nombrando el papel que desempeña cada clase en relación con la otra).cada clase en relación con la otra).

Page 34: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Cardinalidad.Cardinalidad.

Existen tres tipos de Cardinalidad en una asociación:Existen tres tipos de Cardinalidad en una asociación:

1. Uno a uno1. Uno a uno2. Uno a muchos2. Uno a muchos3. Muchos a muchos.3. Muchos a muchos.

Page 35: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Herencia.Herencia.La herencia es una relación entre clases en la que una clase La herencia es una relación entre clases en la que una clase comparte la estructura y / o comportamiento definidos en una comparte la estructura y / o comportamiento definidos en una ((herencia simpleherencia simple) o más clases () o más clases (herencia múltipleherencia múltiple). La clase de ). La clase de las que otras heredan se llama las que otras heredan se llama superclasesuperclase. .

La clase que hereda de otra o más clases se denomina subclase. La clase que hereda de otra o más clases se denomina subclase.

La herencia define por tanto una jerarquía «de tipos» entre La herencia define por tanto una jerarquía «de tipos» entre clases, en las que una subclase hereda de una o más superclases.clases, en las que una subclase hereda de una o más superclases.

Page 36: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Dadas las clases A y B, si A no «es un» tipo de B, Dadas las clases A y B, si A no «es un» tipo de B, entonces A no debería ser una subclase de B.entonces A no debería ser una subclase de B.

La capacidad de un lenguaje para soportar o no este La capacidad de un lenguaje para soportar o no este tipo de herencia distingue a los lenguajes de tipo de herencia distingue a los lenguajes de programación orientados a objetos de los lenguajes programación orientados a objetos de los lenguajes basados en objetos.basados en objetos.

Page 37: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Una subclase generalmente aumenta o restringe la estructura y Una subclase generalmente aumenta o restringe la estructura y comportamiento existentes en sus superclases. Una subclase comportamiento existentes en sus superclases. Una subclase que aumenta sus superclases se dice que utiliza que aumenta sus superclases se dice que utiliza herencia por herencia por extensiónextensión, mientras que la subclase que restringe a sus , mientras que la subclase que restringe a sus superclases se dice que utiliza superclases se dice que utiliza herencia por restricciónherencia por restricción..Se espera que algunas de las clases generadas tengan instancias Se espera que algunas de las clases generadas tengan instancias y que otras no las tengan (frecuentemente las intermedias).y que otras no las tengan (frecuentemente las intermedias).

Las clases sin instancias se llaman Las clases sin instancias se llaman clases abstractasclases abstractas..Las clases más especializadas se llaman Las clases más especializadas se llaman clases hoja clases hoja o o clases clases concretasconcretas..La clase más generalizada en una estructura de clases se llama La clase más generalizada en una estructura de clases se llama clase baseclase base..

Page 38: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Una clase cualquiera tiene típicamente dos tipos de Una clase cualquiera tiene típicamente dos tipos de clientes:clientes:

A.A.Instancias.Instancias.B.B.Subclases.Subclases.

Para comprender el significado de una clase particular Para comprender el significado de una clase particular muchas veces hay que estudiar todas sus superclases, a muchas veces hay que estudiar todas sus superclases, a veces incluyendo sus vistas internas.veces incluyendo sus vistas internas.

Page 39: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

La herencia es un mecanismo muy importante en la POO. Gracias a la herencia podemos crear clases que especializan a otras previamente definidas.

Pongamos como ejemplo una clase Publicacion en la que se determinan propiedades básicas comunes a todas las publicaciones (libros, revistas, periódicos, etc.) Entre las propiedades pueden definirse el número de páginas y el precio de la publicación:)

Page 40: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

La clase Libro extiende (y se emplea la palabra reservada extendsextends) a la clase Publicación. La clase Libro contiene ahora todas sus propiedades más las propiedades de la clase Publicación. De esta manera, un libro se define por NumeroDePAginas, Precio, Titulo, TipoPortada, etc.

Se dice (en terminología OO) que Libro es una clase derivada o subclase de Publicación, mientras que Publicación es la superclase de Libro.

Para comprobar que un libro contiene tanto las propiedades de la superclase como las de la subclase realizamos el siguiente programa:

Page 41: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

• Una superclase puede tener innumerables subclases:

Page 42: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos
Page 43: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Herencia de EstructuraHerencia de Estructura

Page 44: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Herencia de FuncionalidadHerencia de Funcionalidad

Page 45: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Facilidad de ExtensiónFacilidad de Extensión

Page 46: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Polimorfismo simple.Polimorfismo simple.

Es un concepto de teoría de tipos en el que un nombre puede Es un concepto de teoría de tipos en el que un nombre puede denotar instancias de muchas clases diferentes en tanto y en denotar instancias de muchas clases diferentes en tanto y en cuanto estén relacionadas por alguna superclase común. cuanto estén relacionadas por alguna superclase común. Cualquier objeto denotado por este nombre es, por tanto, capaz Cualquier objeto denotado por este nombre es, por tanto, capaz de responder a algún conjunto de operaciones de diversas de responder a algún conjunto de operaciones de diversas formas.formas.Sobrecarga Sobrecarga es una forma de llamar a un polimorfismo por el cual es una forma de llamar a un polimorfismo por el cual símbolos como el «+» podrían definirse para significar cosas símbolos como el «+» podrían definirse para significar cosas distintas.distintas.El polimorfismo es más útil cuando existen muchas clases con los El polimorfismo es más útil cuando existen muchas clases con los mismos protocolosmismos protocolos

Page 47: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Herencia múltiple.Herencia múltiple.

Con herencia simple, cada subclase tiene exactamente una Con herencia simple, cada subclase tiene exactamente una superclase. Esto limita la aplicabilidad de las clases predefinidas, superclase. Esto limita la aplicabilidad de las clases predefinidas, haciendo muchas veces necesario duplicar código.haciendo muchas veces necesario duplicar código.

Las colisiones de nombres pueden aparecer cuando dos o más Las colisiones de nombres pueden aparecer cuando dos o más superclases diferentes utilizan el mismo nombre para algún superclases diferentes utilizan el mismo nombre para algún elemento de sus interfaces, como las variables de instancias o elemento de sus interfaces, como las variables de instancias o los métodos.los métodos.

Otro problema es la herencia repetida, que es lo que sucede Otro problema es la herencia repetida, que es lo que sucede cuando una clase es un antecesor de otra por más de una vía.cuando una clase es un antecesor de otra por más de una vía.

Page 48: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Herencia MúltipleHerencia Múltiple

Page 49: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

La existencia de herencia múltiple plantea un estilo de La existencia de herencia múltiple plantea un estilo de clasesclases, , llamadas llamadas aditivas aditivas porque se mezclan, se combinan pequeñas porque se mezclan, se combinan pequeñas clases para construir clases con un comportamiento más clases para construir clases con un comportamiento más sofisticado. Una clase aditiva es sintácticamente idéntica una sofisticado. Una clase aditiva es sintácticamente idéntica una normal, pero su intención es distinta. normal, pero su intención es distinta.

El propósito de tal clase es únicamente añadir funciones a otras El propósito de tal clase es únicamente añadir funciones a otras clases. No pueden existir por sí mismas, se usan para aumentar clases. No pueden existir por sí mismas, se usan para aumentar el significado de otra clase. Una clase que se construye el significado de otra clase. Una clase que se construye principalmente heredando de clases aditivas y no añade su principalmente heredando de clases aditivas y no añade su propia estructura o comportamiento se llama propia estructura o comportamiento se llama clase agregadaclase agregada..

Page 50: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Agregación.Agregación.

Las relaciones de agregación entre clases tienen Las relaciones de agregación entre clases tienen un paralelismo directo con las relaciones de un paralelismo directo con las relaciones de agregación entre los objetos correspondientes a agregación entre los objetos correspondientes a esas clases.esas clases.

Page 51: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Contención física.Contención física.

Contención por valorContención por valor: un tipo de contención física que significa : un tipo de contención física que significa que el objeto no existe independientemente de la instancia que que el objeto no existe independientemente de la instancia que lo encierra. El tiempo de vida de ambos objetos está en íntimalo encierra. El tiempo de vida de ambos objetos está en íntimaconexión.conexión.

Contención por referenciaContención por referencia: tipo de agregación menos directo. : tipo de agregación menos directo. En este caso, la clase sigue denotando al todo, y una de sus En este caso, la clase sigue denotando al todo, y una de sus partes sigue siendo una instancia de la clase, aunque ahora hay partes sigue siendo una instancia de la clase, aunque ahora hay que acceder a esa parte indirectamente. Sus tiempos de vida no que acceder a esa parte indirectamente. Sus tiempos de vida no están tan estrechamente emparejados.están tan estrechamente emparejados.

Page 52: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

La agregación establece una dirección en la relación todo / La agregación establece una dirección en la relación todo / parte. La contención por valor no puede ser parte. La contención por valor no puede ser cíclica cíclica (ambos (ambos objetos no pueden ser físicamente partes del otro), aunque la objetos no pueden ser físicamente partes del otro), aunque la contención por referencia sí puede serlo.contención por referencia sí puede serlo.

La La herencia múltiple se confunde a menudo con la agregaciónherencia múltiple se confunde a menudo con la agregación. . Cuando se considera la herencia versus agregación, recuérdese Cuando se considera la herencia versus agregación, recuérdese aplicar la prueba correspondiente para ambas. Si no se puede aplicar la prueba correspondiente para ambas. Si no se puede afirmar sinceramente que existe una relación «es un» entre dos afirmar sinceramente que existe una relación «es un» entre dos clases, habría que utilizar agregación o alguna otra relación en clases, habría que utilizar agregación o alguna otra relación en vez de herencia.vez de herencia.

Page 53: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Uso.Uso.Una clase usa los servicios de otra.Una clase usa los servicios de otra.Mientras que una asociación denota una conexión Mientras que una asociación denota una conexión semántica bidireccional, una relación «semántica bidireccional, una relación «de usode uso» es un » es un posible posible refinamiento de una asociaciónrefinamiento de una asociación, por el que se , por el que se establece qué abstracción es el cliente y qué establece qué abstracción es el cliente y qué abstracción es el servidor que proporciona ciertos abstracción es el servidor que proporciona ciertos servicios.servicios.

Instanciación.Instanciación.

Creación de instancias.Creación de instancias.

Page 54: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Metaclases.Metaclases.

Es una clase cuyas instancias son, ellas mismas, clases. Es una clase cuyas instancias son, ellas mismas, clases. Se justifica su necesidad al hacer notar que en un Se justifica su necesidad al hacer notar que en un sistema bajo desarrollo, una clase proporciona al sistema bajo desarrollo, una clase proporciona al programador un interfaz para comunicarse con la programador un interfaz para comunicarse con la definición de objetos. definición de objetos.

Para este uso de las clases, es extremadamente útil Para este uso de las clases, es extremadamente útil para ellas ser objetos, de forma que puedan ser para ellas ser objetos, de forma que puedan ser manipulados de la misma forma que todas las demás manipulados de la misma forma que todas las demás descripciones.descripciones.

Page 55: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

La interacción entre clases y La interacción entre clases y objetos.objetos.

Relaciones entre clases y objetos.Relaciones entre clases y objetos.

Las clases y objetos son conceptos diferentes pero en íntima Las clases y objetos son conceptos diferentes pero en íntima relación. Concretamente todo objeto es instancia de alguna relación. Concretamente todo objeto es instancia de alguna clase y toda clase tiene cero o más instancias.clase y toda clase tiene cero o más instancias.El papel de clases y objetos en análisis y diseño.El papel de clases y objetos en análisis y diseño.

Page 56: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Durante el análisis y las primeras etapas de diseño, el Durante el análisis y las primeras etapas de diseño, el desarrollador tiene dos tareas principales:desarrollador tiene dos tareas principales:

Identificar las clases y objetos que forman el vocabulario del Identificar las clases y objetos que forman el vocabulario del dominio del problema.dominio del problema. Idear las estructuras por las que conjuntos de objetos trabajan Idear las estructuras por las que conjuntos de objetos trabajan juntos para lograr los comportamientos que satisfacen los juntos para lograr los comportamientos que satisfacen los requerimientos del problema.requerimientos del problema.

En conjunto se llama a esas clases y objetos las En conjunto se llama a esas clases y objetos las abstracciones abstracciones claves claves del problema.del problema.Se denomina a esas estructuras cooperativas los Se denomina a esas estructuras cooperativas los mecanismos mecanismos de de la implantación.la implantación.

Page 57: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Durante estas fases del desarrollo, el interés principal del desarrollo Durante estas fases del desarrollo, el interés principal del desarrollo de estar en la vista externa de estas abstracciones clave y de estar en la vista externa de estas abstracciones clave y mecanismos. mecanismos.

Esta vista representa el marco de referencia lógico del sistema y, Esta vista representa el marco de referencia lógico del sistema y, por tanto, abarca la estructura de clases y la estructura de objetos por tanto, abarca la estructura de clases y la estructura de objetos del mismo. del mismo.

En las etapas finales del diseño y entrando ya en la implantación, la En las etapas finales del diseño y entrando ya en la implantación, la tarea del desarrollador cambia: el centro de atención está en la tarea del desarrollador cambia: el centro de atención está en la vista interna de estas abstracciones clave y mecanismos, vista interna de estas abstracciones clave y mecanismos, involucrando a su representación física. involucrando a su representación física.

Pueden expresarse estas decisiones de diseño como parte de la Pueden expresarse estas decisiones de diseño como parte de la arquitectura de módulos y la arquitectura de procesos del sistema.arquitectura de módulos y la arquitectura de procesos del sistema.

Page 58: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

De la construcción de clases y De la construcción de clases y objetos de calidadobjetos de calidad

Medida de la calidad de una abstracción.Medida de la calidad de una abstracción.

¿Cómo puede saberse si una clase u objeto está bien ¿Cómo puede saberse si una clase u objeto está bien diseñado? Se sugieren cinco métricas significativas:diseñado? Se sugieren cinco métricas significativas:

AcoplamientoAcoplamientoCohesiónCohesiónSuficienciaSuficienciaCompleción (estado completo / plenitud)Compleción (estado completo / plenitud)Ser primitivoSer primitivo

Page 59: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

AcoplamientoAcoplamiento: es una noción copiada del diseño : es una noción copiada del diseño estructurado, es la medida de la fuerza de la asociación estructurado, es la medida de la fuerza de la asociación establecida por una conexión entre un módulo y otro. establecida por una conexión entre un módulo y otro.

El acoplamiento fuerte complica un sistema porque los El acoplamiento fuerte complica un sistema porque los módulos son más difíciles de comprender, cambiar o módulos son más difíciles de comprender, cambiar o corregir por sí mismos si están muy interrelacionados corregir por sí mismos si están muy interrelacionados con otros módulos. con otros módulos.

La complejidad puede reducirse diseñando sistemas La complejidad puede reducirse diseñando sistemas con los acoplamientos más débiles posibles entre los con los acoplamientos más débiles posibles entre los módulos. Es igualmente importante el acoplamiento módulos. Es igualmente importante el acoplamiento entre clases y objetos.entre clases y objetos.

Page 60: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Existe tensión entre los conceptos de acoplamiento y Existe tensión entre los conceptos de acoplamiento y herencia ya que la herencia implica un acoplamiento herencia ya que la herencia implica un acoplamiento considerable. Es deseable clases débilmente acopladas considerable. Es deseable clases débilmente acopladas pero es la herencia ayuda también a explotar las pero es la herencia ayuda también a explotar las características comunes de las abstracciones.características comunes de las abstracciones.

Page 61: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

CohesiónCohesión: también proviene del diseño estructurado. Mide el : también proviene del diseño estructurado. Mide el grado de conectividad entre los elementos de un solo módulo, grado de conectividad entre los elementos de un solo módulo, clase u objeto. clase u objeto.

La forma de cohesión menos deseable es la cohesión por La forma de cohesión menos deseable es la cohesión por coincidencia, en la que se incluyen en la misma clase o módulo coincidencia, en la que se incluyen en la misma clase o módulo abstracciones sin ninguna relación. abstracciones sin ninguna relación.

La más deseable es la cohesión funcional en la cual los La más deseable es la cohesión funcional en la cual los elementos de una clase o módulo trabajan todos juntos para elementos de una clase o módulo trabajan todos juntos para proporcionar algún comportamiento bien delimitado. proporcionar algún comportamiento bien delimitado.

Hay mayor cohesión cuando ay mas actividad entre ambos.Hay mayor cohesión cuando ay mas actividad entre ambos.

Page 62: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

SuficienteSuficiente: la clase o módulo captura suficientes : la clase o módulo captura suficientes características de la abstracción como para características de la abstracción como para permitirpermitiruna interacción significativa y eficiente.una interacción significativa y eficiente.Ser primitivo: Ser primitivo: Son aquellas q solo se pueden Son aquellas q solo se pueden resolver cuando se tiene acceso a la resolver cuando se tiene acceso a la implantaciónimplantación

Page 63: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Estado completo: Estado completo: el interfaz de la clase o módulo captura todas el interfaz de la clase o módulo captura todas las características significativas de la abstracción. las características significativas de la abstracción.

Una clase o módulo completo es aquel cuyo interfaz es Una clase o módulo completo es aquel cuyo interfaz es suficientemente general para ser utilizable de forma común por suficientemente general para ser utilizable de forma común por cualquier cliente. cualquier cliente.

La compleción puede exagerarse. Ofrecer todas las operaciones La compleción puede exagerarse. Ofrecer todas las operaciones significativas para una abstracción particular desborda al usuario significativas para una abstracción particular desborda al usuario y suele ser innecesario, ya que muchas operaciones de alto nivel y suele ser innecesario, ya que muchas operaciones de alto nivel pueden componerse partiendo de las de bajo nivel. pueden componerse partiendo de las de bajo nivel.

Por ello se sugiere que las clases y módulos sean primitivos.Por ello se sugiere que las clases y módulos sean primitivos.

Page 64: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Operaciones primitivas: Operaciones primitivas: aquellas que pueden aquellas que pueden implantarse eficientemente sólo si tienen acceso a la implantarse eficientemente sólo si tienen acceso a la representación subyacente. representación subyacente.

Una operación es primitiva si se puede implantar sólo Una operación es primitiva si se puede implantar sólo accediendo a la representación interna. accediendo a la representación interna. Una operación que podría implantarse sobre Una operación que podría implantarse sobre operaciones primitivas existentes pero a un coste de operaciones primitivas existentes pero a un coste de recursos computacionales significativamente mayor, es recursos computacionales significativamente mayor, es también candidata para su inclusión como operación también candidata para su inclusión como operación primitiva.primitiva.

Page 65: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Selección de operaciones.Selección de operaciones.Semántica funcional.Semántica funcional.

Es habitual en el desarrollo orientado a objetos diseñar los Es habitual en el desarrollo orientado a objetos diseñar los métodos de una clase como un todo, porque todos esos métodos de una clase como un todo, porque todos esos métodos cooperan para formar el protocolo completo de la métodos cooperan para formar el protocolo completo de la abstracción.abstracción.

Así, dado un comportamiento que se desea hay que decidir en Así, dado un comportamiento que se desea hay que decidir en qué clase se sitúa. Para tomar una decisión de ese tipo se qué clase se sitúa. Para tomar una decisión de ese tipo se sugieren los siguientes criterios:sugieren los siguientes criterios:

Page 66: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Reutilización Reutilización ¿Sería este el comportamiento más útil en más ¿Sería este el comportamiento más útil en más de un contexto?de un contexto?

Complejidad Complejidad ¿Qué grado de dificultad plantea el implementar ¿Qué grado de dificultad plantea el implementar este comportamiento?este comportamiento?

Aplicabilidad Aplicabilidad ¿Qué relevancia tiene este comportamiento ¿Qué relevancia tiene este comportamiento para el tipo en el que podría ubicarse?para el tipo en el que podría ubicarse?

Conocimiento de la implementación Conocimiento de la implementación ¿Depende la ¿Depende la implementación del comportamiento de los detalles internos implementación del comportamiento de los detalles internos de un cierto tipo?de un cierto tipo?

Page 67: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Semántica espacial y temporal.Semántica espacial y temporal.

Una vez definida una operación y su semántica funcional hay Una vez definida una operación y su semántica funcional hay que especificar la cantidad de tiempo que lleva completar la que especificar la cantidad de tiempo que lleva completar la operación (semántica temporal) y la cantidad de espacio de operación (semántica temporal) y la cantidad de espacio de almacenamiento que necesita (semántica espacial).almacenamiento que necesita (semántica espacial).

Siempre que un objeto pasa un mensaje a través de un enlace, Siempre que un objeto pasa un mensaje a través de un enlace, ambos objetos deben estar sincronizados de alguna forma. ambos objetos deben estar sincronizados de alguna forma. En presencia de múltiples hilos de control esto significa que el En presencia de múltiples hilos de control esto significa que el paso de mensajes es mucho más que una mera selección de paso de mensajes es mucho más que una mera selección de subprogramas. subprogramas. El paso de mensajes debe así adoptar una de las formas El paso de mensajes debe así adoptar una de las formas siguientes:siguientes:

Page 68: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Síncrono Una operación comienza sólo cuando el emisor ha iniciado la acción y el receptor está preparado para aceptar el mensaje; el emisor y el receptor esperarán indefinidamente hasta que ambas partes estén preparadaspara continuar.

Abandono inmediato Igual que el síncrono, excepto en que el emisor abandonará la operación si el receptor no está preparado inmediatamente.

De intervalo Igual que el síncrono, excepto en que el emisor esperará a que el receptor esté listo durante un intervalo de tiempo especificado.

Asíncrono Asíncrono Un emisor puede hincar una acción independientemente de si el receptor está esperando o no el mensaje.

Page 69: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Elección de relaciones.Elección de relaciones.Colaboraciones.Colaboraciones.

Define la accesibilidad. Por accesible se entiende la capacidad de Define la accesibilidad. Por accesible se entiende la capacidad de una abstracción para ver a otra y hacer referencia a recursos en una abstracción para ver a otra y hacer referencia a recursos en su vista externa. su vista externa. Una abstracción es accesible a otra sólo donde sus ámbitos se Una abstracción es accesible a otra sólo donde sus ámbitos se superpongan y sólo donde estén garantizados los derechos de superpongan y sólo donde estén garantizados los derechos de acceso.acceso.

Los métodos de una clase no deberían depender de ninguna Los métodos de una clase no deberían depender de ninguna manera de la estructura de ninguna clase, salvo de la estructura manera de la estructura de ninguna clase, salvo de la estructura inmediata (de nivel superior) de su propia clase.inmediata (de nivel superior) de su propia clase.

Page 70: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Mecanismos y visibilidad.Mecanismos y visibilidad.

La decisión sobre las relaciones entre objetos es principalmente La decisión sobre las relaciones entre objetos es principalmente una cuestión de diseñar los mecanismos por los que esos objetos una cuestión de diseñar los mecanismos por los que esos objetos interactúan. interactúan.

Durante el proceso de diseño es útil establecer explícitamente Durante el proceso de diseño es útil establecer explícitamente cómo un objeto es visible para otro. Existen cuatro formas cómo un objeto es visible para otro. Existen cuatro formas fundamentales por las que un objeto fundamentales por las que un objeto X X se puede hacer visible se puede hacer visible aun objeto aun objeto YY::

Page 71: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

· El objeto proveedor es global al cliente.· El objeto proveedor es global al cliente.· El objeto proveedor es parámetro de alguna · El objeto proveedor es parámetro de alguna operación del cliente.operación del cliente.· El objeto proveedor es parte del objeto cliente.· El objeto proveedor es parte del objeto cliente.· El objeto proveedor es un objeto declarado · El objeto proveedor es un objeto declarado localmente en el ámbito del diagrama de objetos.localmente en el ámbito del diagrama de objetos.

Hay una variación sobre cada una de estas ideas y es la Hay una variación sobre cada una de estas ideas y es la idea de idea de visibilidad compartidavisibilidad compartida..

Page 72: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Elección de implementaciones.Elección de implementaciones.

Representación.Representación.

La representación de una clase u objeto debería casi siempre ser La representación de una clase u objeto debería casi siempre ser uno de los secretos encapsulados de la abstracción. uno de los secretos encapsulados de la abstracción.

Esto posibilita cambiar la representación sin violar ninguna de Esto posibilita cambiar la representación sin violar ninguna de las suposiciones funcionales que los clientes puedan haber las suposiciones funcionales que los clientes puedan haber hecho.hecho.

Page 73: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

A veces no es fácil elegir con que representación se queda el A veces no es fácil elegir con que representación se queda el objeto (cuando dos o más se contradicen o compiten). objeto (cuando dos o más se contradicen o compiten).

De eso modo muchas veces se acaba con familias de clases De eso modo muchas veces se acaba con familias de clases cuyas interfaces son prácticamente idénticos, pero cuyas cuyas interfaces son prácticamente idénticos, pero cuyas implantaciones son radicalmente distintas, con el fin de implantaciones son radicalmente distintas, con el fin de proporcionar diferentes comportamientos respecto al espacio y proporcionar diferentes comportamientos respecto al espacio y al tiempo.al tiempo.

Una de las compensaciones más difíciles cuando se selecciona la Una de las compensaciones más difíciles cuando se selecciona la implantación de una clase se da entre el cálculo del valor del implantación de una clase se da entre el cálculo del valor del estado de un objeto estado de un objeto y su y su almacenamiento como un campoalmacenamiento como un campo..

Page 74: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Empaquetamiento.Empaquetamiento.

Aparecen problemas similares en la declaración de clases y objetos Aparecen problemas similares en la declaración de clases y objetos dentro de los módulos.dentro de los módulos.

Los requerimientos competidores de visibilidad y ocultación de Los requerimientos competidores de visibilidad y ocultación de información suelen guiar las decisiones de diseño sobre donde información suelen guiar las decisiones de diseño sobre donde declarar clases y objetos. declarar clases y objetos.

Generalmente, se busca construir módulos con cohesión funcional Generalmente, se busca construir módulos con cohesión funcional y débilmente acoplados. y débilmente acoplados. Hay muchos factores no técnicos que influyen estas decisiones Hay muchos factores no técnicos que influyen estas decisiones como cuestiones de reutilización, seguridad y documentación. como cuestiones de reutilización, seguridad y documentación. Al igual que el diseño de clases y objetos no hay que tomar a la Al igual que el diseño de clases y objetos no hay que tomar a la ligera el diseño de módulos.ligera el diseño de módulos.

Page 75: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

RESUMENRESUMEN Un objeto tiene estado, comportamiento e identidad.Un objeto tiene estado, comportamiento e identidad.

La estructura y comportamiento de objetos similares están La estructura y comportamiento de objetos similares están definidos en su clase común.definidos en su clase común.

El estado de un objeto abarca todas las propiedades El estado de un objeto abarca todas las propiedades (normalmente estáticas) del mismo más los valores actuales (normalmente estáticas) del mismo más los valores actuales (normalmente dinámicos) de cada una de esas propiedades.(normalmente dinámicos) de cada una de esas propiedades.

El comportamiento de la forma en que un objeto actúa y El comportamiento de la forma en que un objeto actúa y reacciona en términos de sus cambios de estado y paso de reacciona en términos de sus cambios de estado y paso de mensajes.mensajes.

Page 76: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

La identidad es la propiedad de un objeto que lo distingue de La identidad es la propiedad de un objeto que lo distingue de todos los demás objetos.todos los demás objetos.

Los dos tipos de jerarquías de objetos son los lazos de Los dos tipos de jerarquías de objetos son los lazos de inclusión inclusión y las relaciones de y las relaciones de agregaciónagregación..

Una clase es un conjunto de objetos que comparten una Una clase es un conjunto de objetos que comparten una estructura y comportamiento comunes.estructura y comportamiento comunes.

Los seis tipos de jerarquías de clase son las relaciones de Los seis tipos de jerarquías de clase son las relaciones de asociación, herencia, agregación, “Uso”, instanciación y asociación, herencia, agregación, “Uso”, instanciación y relaciones de metaclase.relaciones de metaclase.

Page 77: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Las abstracciones clave son las clases y objetos que forman el Las abstracciones clave son las clases y objetos que forman el vocabulario del dominio del problema.vocabulario del dominio del problema.

Un mecanismo es una estructura por la que un conjunto de Un mecanismo es una estructura por la que un conjunto de objetos trabajan juntos para ofrecer un comportamiento que objetos trabajan juntos para ofrecer un comportamiento que satisfaga algún requerimiento del problema.satisfaga algún requerimiento del problema.

La calidad de una abstracción puede medirse por su La calidad de una abstracción puede medirse por su acoplamiento, cohesión, suficiencia, completad (estado acoplamiento, cohesión, suficiencia, completad (estado completo), y por el grado hasta el cual es primitiva.completo), y por el grado hasta el cual es primitiva.

Page 78: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

ClasificaciónClasificación

Page 79: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

La clasificación es el medio por el que ordenamos el La clasificación es el medio por el que ordenamos el conocimiento. conocimiento. En el diseño orientado a objetos, el renacimiento de la similitud En el diseño orientado a objetos, el renacimiento de la similitud entre las cosas nos permite exponer lo que tienen en común en entre las cosas nos permite exponer lo que tienen en común en abstracciones clave y mecanismos. abstracciones clave y mecanismos.

No hay recetas fáciles para identificar clases y objetos. No hay recetas fáciles para identificar clases y objetos. Existen técnicas de análisis orientado a objetos que ofrecen Existen técnicas de análisis orientado a objetos que ofrecen varias recomendaciones prácticas y reglas útiles para identificar varias recomendaciones prácticas y reglas útiles para identificar las clases y objetos relevantes para un problema concreto.las clases y objetos relevantes para un problema concreto.

Page 80: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

La importancia de una La importancia de una clasificación correcta.clasificación correcta.

Clasificación y diseño orientado a objetos.Clasificación y diseño orientado a objetos.

La identificación de clases y objetos es la parte más difícil del La identificación de clases y objetos es la parte más difícil del diseño OO. La experiencia muestra que la identificación implica diseño OO. La experiencia muestra que la identificación implica descubrimiento e invención. Mediante el descubrimiento, se descubrimiento e invención. Mediante el descubrimiento, se llega a reconocer las abstracciones clave y los mecanismos que llega a reconocer las abstracciones clave y los mecanismos que forman el vocabulario del dominio del problema. Mediante la forman el vocabulario del dominio del problema. Mediante la invención, se idean abstracciones generalizadas así como nuevos invención, se idean abstracciones generalizadas así como nuevos mecanismos que especifican como colaboran los objetos.mecanismos que especifican como colaboran los objetos.

Page 81: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

La clasificación también proporciona una guía para tomar La clasificación también proporciona una guía para tomar decisiones sobre modularización. decisiones sobre modularización.

Se puede decidir ubicar ciertas clases y objetos juntos en el Se puede decidir ubicar ciertas clases y objetos juntos en el mismo módulo o en módulos diferentes, dependiendo de la mismo módulo o en módulos diferentes, dependiendo de la similitud que se encuentra entre esas declaraciones, el similitud que se encuentra entre esas declaraciones, el acoplamiento y la cohesión son simplemente medidas de esta acoplamiento y la cohesión son simplemente medidas de esta similitud.similitud.

Page 82: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

La dificultad de la clasificaciónEjemplos de clasificación.

En el capítulo anterior se definió un objeto como algo que tiene una frontera definida con nitidez. Sin embargo, las fronteras que distinguen un objeto de otro son a menudo bastante difusas. Por ejemplo:¿Dónde comienza la rodilla y donde termina?Darwin propuso la teoría de que la selección natural fue el mecanismo de la evolución, en virtud de la cual las especies actuales evolucionaron de otras más antiguas. La teoría de Darwin dependía de una clasificación inteligente de especies.

Descartes afirmaba que “el descubrimiento de un orden no es tarea fácil…, sin embargo, una vez que se ha descubierto el orden, no hay dificultad alguna en comprenderlo”.

Page 83: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

La naturaleza incremental e iterativa de la clasificación.La naturaleza incremental e iterativa de la clasificación.

La clasificación inteligente es un trabajo intelectualmente difícil, y la La clasificación inteligente es un trabajo intelectualmente difícil, y la mejor forma de realizarlo es a través de un proceso incremental e mejor forma de realizarlo es a través de un proceso incremental e iterativo. iterativo.

La naturaleza incremental e iterativa de la clasificación tiene un La naturaleza incremental e iterativa de la clasificación tiene un impacto directo en la construcción de jerarquías de clases y objetos impacto directo en la construcción de jerarquías de clases y objetos en el diseño de un sistema de software complejo. en el diseño de un sistema de software complejo.

Se puede dividir una clase grande en varias más pequeñas Se puede dividir una clase grande en varias más pequeñas (composición). (composición).

Se puede incluso descubrir aspectos comunes que habían pasado Se puede incluso descubrir aspectos comunes que habían pasado desapercibidos, e idear una nueva subclase (abstracción).desapercibidos, e idear una nueva subclase (abstracción).

Page 84: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

La dificultad radica en 2 razones importantes:La dificultad radica en 2 razones importantes:

1.1.No existe algo que pueda llamarse una clasificación perfecta, No existe algo que pueda llamarse una clasificación perfecta, algunas clasificaciones son mejores que otras. Potencialmente, algunas clasificaciones son mejores que otras. Potencialmente, hay al menos tantas formas de dividir el mundo en sistemas de hay al menos tantas formas de dividir el mundo en sistemas de objetos como científicos para emprender la tarea.objetos como científicos para emprender la tarea.

2. La clasificación inteligente requiere una gran perspicacia 2. La clasificación inteligente requiere una gran perspicacia creativa: a veces la respuesta es evidente, a veces es una creativa: a veces la respuesta es evidente, a veces es una cuestión de gustos, y otras veces, la selección de componentes cuestión de gustos, y otras veces, la selección de componentes adecuados es un punto curial del análisis.adecuados es un punto curial del análisis.

Page 85: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Identificando clases y objetosIdentificando clases y objetos

Enfoques clásicos y modernos.Enfoques clásicos y modernos.

Históricamente sólo han existido tres Históricamente sólo han existido tres aproximaciones generales a la clasificación:aproximaciones generales a la clasificación:

Categorización clásica.Categorización clásica. Agrupamiento conceptual.Agrupamiento conceptual. Teoría de los prototipos.Teoría de los prototipos.

Page 86: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Categorización clásica.Categorización clásica.

Es la aproximación clásica a la categorización: Es la aproximación clásica a la categorización: todas las entidades todas las entidades que tienen una determinada propiedad o colección de propiedades que tienen una determinada propiedad o colección de propiedades en común forman una categoría. Tales propiedades son necesarias en común forman una categoría. Tales propiedades son necesarias y suficientes para definir la categoría.y suficientes para definir la categoría.

Un mayor conocimiento significativo sobre un dominio facilita, hasta Un mayor conocimiento significativo sobre un dominio facilita, hasta cierto punto, conseguir una clasificación inteligente.cierto punto, conseguir una clasificación inteligente.

En sentido general, las propiedades pueden denotar algo más que En sentido general, las propiedades pueden denotar algo más que meras características medibles; pueden también abarcar meras características medibles; pueden también abarcar comportamientos observables. Por ejemplo: el hecho de que un comportamientos observables. Por ejemplo: el hecho de que un pájaro pueda volar pero un pez no pueda, es una propiedad que pájaro pueda volar pero un pez no pueda, es una propiedad que distingue un águila de un salmón.distingue un águila de un salmón.

Page 87: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Agrupamiento conceptualAgrupamiento conceptual

Es una variación más moderna del enfoque clásico. Representa Es una variación más moderna del enfoque clásico. Representa más bien un agrupamiento probabilístico de los objetos. más bien un agrupamiento probabilístico de los objetos.

El agrupamiento conceptual está en estrecha relación con la El agrupamiento conceptual está en estrecha relación con la teoría de conjuntos difusos (multivalor), en la que teoría de conjuntos difusos (multivalor), en la que los objetos los objetos pueden pertenecer a uno o más grupospueden pertenecer a uno o más grupos, en diversos grados de , en diversos grados de adecuación. adecuación. Realiza juicios absolutos de la clasificación centrándose en la Realiza juicios absolutos de la clasificación centrándose en la mayor adecuación.mayor adecuación.

Page 88: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Teoría de los prototiposTeoría de los prototipos

Existen abstracciones que no tienen ni propiedades ni conceptos Existen abstracciones que no tienen ni propiedades ni conceptos delimitados con claridad. Por ejemplo, una categoría como juego delimitados con claridad. Por ejemplo, una categoría como juego no encaja en el molde clásico, porque no hay propiedades no encaja en el molde clásico, porque no hay propiedades comunes compartidas por todos los juegos… tampoco hay una comunes compartidas por todos los juegos… tampoco hay una frontera fija para la categoría juego. Podría extenderse, se frontera fija para la categoría juego. Podría extenderse, se pueden introducir nuevos tipos de juegos, siempre que se pueden introducir nuevos tipos de juegos, siempre que se parezcan a juegos anteriores de forma apropiada.parezcan a juegos anteriores de forma apropiada.

Esta es la razón por la que el enfoque se denomina Esta es la razón por la que el enfoque se denomina teoría de teoría de prototipos: prototipos: una clase de objetos se representa por un objeto una clase de objetos se representa por un objeto prototípico, y se considera un objeto como un miembro de esta prototípico, y se considera un objeto como un miembro de esta clase si y solo si se parece a este prototipo de forma significativa.clase si y solo si se parece a este prototipo de forma significativa.

Page 89: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Aplicación de las teorías clásicas y modernas.Aplicación de las teorías clásicas y modernas.

Las tres aproximaciones a la clasificación tienen aplicación Las tres aproximaciones a la clasificación tienen aplicación directa en el diseño OO.directa en el diseño OO.

Se identifican las clases y objetos -en primer lugar- de acuerdo Se identifican las clases y objetos -en primer lugar- de acuerdo con las propiedades relevantes para nuestro dominio particular.con las propiedades relevantes para nuestro dominio particular.

Page 90: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Análisis Orientado a ObjetosAnálisis Orientado a Objetos

Las fronteras entre análisis y diseño son difusas. En el Las fronteras entre análisis y diseño son difusas. En el análisis se persigue modelar el mundo descubriendo las análisis se persigue modelar el mundo descubriendo las clases y objetos que forman el vocabulario del dominio clases y objetos que forman el vocabulario del dominio del problema, y en el diseño se inventan las del problema, y en el diseño se inventan las abstracciones y mecanismos que proporcionan el abstracciones y mecanismos que proporcionan el comportamiento que este modelo requiere.comportamiento que este modelo requiere.

Page 91: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Enfoques clásicosEnfoques clásicos

Derivan sobre todo de los principios de la Derivan sobre todo de los principios de la categorización clásica.categorización clásica.

Page 92: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Ejemplos:Ejemplos:

Shlaer y Mellor sugieren que las clases y objetos candidatos Shlaer y Mellor sugieren que las clases y objetos candidatos provienen habitualmente de una de las fuentes siguientes:provienen habitualmente de una de las fuentes siguientes:

Page 93: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Coad y Yourdon sugieren otro conjunto m´´as Coad y Yourdon sugieren otro conjunto m´´as fuerte de objetos potenciales:fuerte de objetos potenciales:

Page 94: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Análisis del comportamientoAnálisis del comportamiento

Se centra en el comportamiento dinámico como fuente primaria Se centra en el comportamiento dinámico como fuente primaria de clases y objetos. Se forman clases basadas en grupos de de clases y objetos. Se forman clases basadas en grupos de objetos que exhiben comportamiento similar.objetos que exhiben comportamiento similar.

Las responsabilidades “denotan el conocimiento que un objeto Las responsabilidades “denotan el conocimiento que un objeto tiene y las acciones que un objeto puede realizar. Las tiene y las acciones que un objeto puede realizar. Las responsabilidades de un objeto son todos los servicios que responsabilidades de un objeto son todos los servicios que suministra para todos los contratos que soporta. suministra para todos los contratos que soporta.

De esta forma se agrupan cosas que tienen responsabilidades De esta forma se agrupan cosas que tienen responsabilidades comunes, y se forman jerarquías de clases que involucran a comunes, y se forman jerarquías de clases que involucran a superclases que incorporan responsabilidades generales y superclases que incorporan responsabilidades generales y subclases que especializan su comportamiento.subclases que especializan su comportamiento.

Page 95: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Al poner el énfasis en la comprensión de lo que sucede en el Al poner el énfasis en la comprensión de lo que sucede en el sistema, nos encontramos con los comportamientos del sistema, sistema, nos encontramos con los comportamientos del sistema, asignándolos a partes del sistema, donde surge la necesidad de asignándolos a partes del sistema, donde surge la necesidad de entender quien inicia esos comportamientos y quien participa entender quien inicia esos comportamientos y quien participa en ellos.en ellos.

Los iniciadores y los participantes que desempeñan papeles Los iniciadores y los participantes que desempeñan papeles significativos se reconocen como objetos, y se les asignan las significativos se reconocen como objetos, y se les asignan las responsabilidades de actuación para esos papeles.responsabilidades de actuación para esos papeles.

Page 96: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Análisis de dominios.Análisis de dominios.

Busca identificar las clases y objetos comunes a todas las Busca identificar las clases y objetos comunes a todas las aplicaciones dentro de un dominio dado, tales como aplicaciones dentro de un dominio dado, tales como mantenimiento de registros de pacientes, operaciones mantenimiento de registros de pacientes, operaciones bursátiles, etc.bursátiles, etc.

Se trata de un intento por identificar los objetos, operaciones y Se trata de un intento por identificar los objetos, operaciones y relaciones con los expertos del dominio consideran importantes relaciones con los expertos del dominio consideran importantes acerca del mismo.acerca del mismo.

Page 97: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Análisis de Casos de Uso.Análisis de Casos de Uso.

Una forma o patrón o ejemplo concreto de utilización, un escenario Una forma o patrón o ejemplo concreto de utilización, un escenario que comienza con algún usuario del sistema que inicia alguna que comienza con algún usuario del sistema que inicia alguna transacción o secuencia de eventos interrelacionados.transacción o secuencia de eventos interrelacionados.

Los usuarios finales, expertos del dominio y el equipo de desarrollo Los usuarios finales, expertos del dominio y el equipo de desarrollo enumeran los escenarios fundamentales para el funcionamiento del enumeran los escenarios fundamentales para el funcionamiento del sistema. Estos escenarios en conjunto describen las funcionales del sistema. Estos escenarios en conjunto describen las funcionales del sistema en esa aplicación. El análisis procede entonces como un sistema en esa aplicación. El análisis procede entonces como un estudio de cada escenario, utilizando técnicas de presentación.estudio de cada escenario, utilizando técnicas de presentación.

A medida que el equipo pasa por cada escenario, debe identificar los A medida que el equipo pasa por cada escenario, debe identificar los objetos que participan en el, las responsabilidades de cada objeto, y objetos que participan en el, las responsabilidades de cada objeto, y cómo esos objetos colaboran con otros, en términos de las cómo esos objetos colaboran con otros, en términos de las operaciones que invoca cada uno sobre el otro.operaciones que invoca cada uno sobre el otro.

Page 98: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Fichas CRCFichas CRC

Las fichas CRC surgieron como una forma simple, pero Las fichas CRC surgieron como una forma simple, pero maravillosamente efectivas de analizar escenarios.maravillosamente efectivas de analizar escenarios.

Es una tarjeta con una tabla de 3 X 55, sobre la cual el analista Es una tarjeta con una tabla de 3 X 55, sobre la cual el analista escribe el nombre de una clase (en la parte superior de la escribe el nombre de una clase (en la parte superior de la tarjeta), sus responsabilidades (en la mitad de la tarjeta) y sus tarjeta), sus responsabilidades (en la mitad de la tarjeta) y sus colaboradores (en la otra mitad). Se crea una ficha para cada colaboradores (en la otra mitad). Se crea una ficha para cada clase que se identifique como relevante para el escenario.clase que se identifique como relevante para el escenario.

Pueden disponerse espacialmente para representar patrones de Pueden disponerse espacialmente para representar patrones de colaboración.colaboración.

Page 99: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Descripción informal en españolDescripción informal en español

Una alternativa al análisis OO clásico fue la propuesta de Abbott, Una alternativa al análisis OO clásico fue la propuesta de Abbott, quien sugirió redactar una descripción del problema (o parte del quien sugirió redactar una descripción del problema (o parte del problema) en lenguaje natural y subrayar entonces los nombres problema) en lenguaje natural y subrayar entonces los nombres y los verbos. y los verbos.

Los nombres representan objetos candidatos, y los verbos Los nombres representan objetos candidatos, y los verbos representan operaciones candidatas sobre ellos. representan operaciones candidatas sobre ellos.

Este enfoque es útil porque es simple y porque obliga al Este enfoque es útil porque es simple y porque obliga al desarrollador a trabajar en el vocabulario del espacio del desarrollador a trabajar en el vocabulario del espacio del problema.problema.

Page 100: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Análisis EstructuradoAnálisis Estructurado

Una segunda alternativa al Análisis OO clásico utiliza los Una segunda alternativa al Análisis OO clásico utiliza los productos del análisis estructurado como vía de entrada al productos del análisis estructurado como vía de entrada al diseño orientado a objetos. diseño orientado a objetos.

Esta técnica es atractiva sólo porque hay gran número de Esta técnica es atractiva sólo porque hay gran número de analistas con experiencia en análisis estructurado, y existen analistas con experiencia en análisis estructurado, y existen muchas herramientas CASE que soportan la automatización de muchas herramientas CASE que soportan la automatización de estos métodos. estos métodos.

Es desaconsejable el uso del análisis estructurado como punto Es desaconsejable el uso del análisis estructurado como punto de partida para el diseño OO.de partida para el diseño OO.

Page 101: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Abstracciones y mecanismos claveAbstracciones y mecanismos clave

Identificación de las abstracciones clave.Identificación de las abstracciones clave.

Búsqueda de las abstracciones claveBúsqueda de las abstracciones clave

Una abstracción clave es una clase u objeto que forma parte del Una abstracción clave es una clase u objeto que forma parte del vocabulario del dominio del problema. vocabulario del dominio del problema.

El valor principal que tiene la identificación de tales El valor principal que tiene la identificación de tales abstracciones es que dan unos límites al problema; enfatizan las abstracciones es que dan unos límites al problema; enfatizan las cosas que están en el sistema y, por lo tanto, son relevantes cosas que están en el sistema y, por lo tanto, son relevantes para el diseño y suprimen las cosas que están fura del sistema.para el diseño y suprimen las cosas que están fura del sistema.

Page 102: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Por ejemplo: Un cliente que utiliza un cajero Por ejemplo: Un cliente que utiliza un cajero automático habla en términos de cuentas, depósitos y automático habla en términos de cuentas, depósitos y reintegros; estas palabras son parte del vocabulario del reintegros; estas palabras son parte del vocabulario del dominio del problema. dominio del problema.

Un desarrollador de un sistema semejante utiliza estas Un desarrollador de un sistema semejante utiliza estas mismas abstracciones, pero introduce también algunas mismas abstracciones, pero introduce también algunas nuevas, como bases de datos, manejadores de nuevas, como bases de datos, manejadores de pantallas, listas, cosas, etc. pantallas, listas, cosas, etc.

Estas abstracciones clave son artefactos del diseño Estas abstracciones clave son artefactos del diseño particular, no del dominio del problema.particular, no del dominio del problema.

Page 103: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Refinamiento de abstracciones clave.Refinamiento de abstracciones clave.

Una vez que se identifica determinada clave como candidata, hay Una vez que se identifica determinada clave como candidata, hay que evaluarla de acuerdo a las métricas descriptas en el capítulo que evaluarla de acuerdo a las métricas descriptas en el capítulo anterior.anterior.

Dada una nueva abstracción, hay que ubicarla en el contexto de las Dada una nueva abstracción, hay que ubicarla en el contexto de las jerarquías de clases y objetos que se han diseñado. jerarquías de clases y objetos que se han diseñado.

En la práctica: En la práctica: No siempre se diseñan tipos en una jerarquía de tipos comenzando No siempre se diseñan tipos en una jerarquía de tipos comenzando por un supertipo y creando a continuación los subtipos, sino que se por un supertipo y creando a continuación los subtipos, sino que se crean varios tipos aparentemente dispares, se da cuenta de que crean varios tipos aparentemente dispares, se da cuenta de que están relacionados, y entonces factoriza sus características están relacionados, y entonces factoriza sus características comunes en uno o más supertipos. comunes en uno o más supertipos.

Page 104: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

La colocación de clases y objetos en los niveles correctos de La colocación de clases y objetos en los niveles correctos de abstracción es difícil. abstracción es difícil.

A veces se puede encontrar una subclase general, y elegir A veces se puede encontrar una subclase general, y elegir moverla hacia arriba en la estructura de clases, incrementando moverla hacia arriba en la estructura de clases, incrementando así el grado de compartición. Esto se llama así el grado de compartición. Esto se llama promoción de clasespromoción de clases..

Analógicamente se puede apreciar que una clase es demasiado Analógicamente se puede apreciar que una clase es demasiado general, dificultando así la herencia por las subclases a causa de general, dificultando así la herencia por las subclases a causa de un vacío semántico grande. un vacío semántico grande. Esto recibe el nombre de Esto recibe el nombre de conflicto de granularidad.conflicto de granularidad.

Page 105: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Sugerencias:Sugerencias:

Los objetos Los objetos deberían deberían nombrarse nombrarse empleando frases construidas empleando frases construidas con nombres propioscon nombres propios, como el Sensor o simplemente forma., como el Sensor o simplemente forma.Las clases Las clases deberían deberían nombrarse nombrarse empleando frases construidas empleando frases construidas con nombres comunescon nombres comunes, como Sensores o Formas., como Sensores o Formas.Las operaciones de modificación Las operaciones de modificación deberían nombrarse deberían nombrarse empleando empleando frases construidas con verbos activos, frases construidas con verbos activos, como dibujar o como dibujar o moverIzquierda.moverIzquierda.Las operaciones de selección Las operaciones de selección deberían implicar una deberían implicar una interrogación, o bien nombrarse interrogación, o bien nombrarse con verbos del tipo “ser-estar”, con verbos del tipo “ser-estar”, como extensionDe o EstaAbierto.como extensionDe o EstaAbierto.El uso de caracteres de subrayado y estilos de uso de El uso de caracteres de subrayado y estilos de uso de mayúsculas son en gran medida cuestiones de gusto personal.mayúsculas son en gran medida cuestiones de gusto personal.

Page 106: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Identificación de mecanismosIdentificación de mecanismosBúsqueda de mecanismos.Búsqueda de mecanismos.

Utilizamos la palabra mecanismo para describir cualquier Utilizamos la palabra mecanismo para describir cualquier estructura mediante la cual los objetos colaboran para estructura mediante la cual los objetos colaboran para proporcionar algún comportamiento que satisface un proporcionar algún comportamiento que satisface un requerimiento del problema. Los mecanismos representan requerimiento del problema. Los mecanismos representan patrones de comportamiento.patrones de comportamiento.

El mecanismo que elige un desarrollador entre un conjunto de El mecanismo que elige un desarrollador entre un conjunto de alternativas es frecuentemente el resultado de otros factores, alternativas es frecuentemente el resultado de otros factores, como costo, fiabilidad, facilidad de fabricación y seguridad.como costo, fiabilidad, facilidad de fabricación y seguridad.

Page 107: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Una vez que el desarrollador decide sobre un patrón concreto de Una vez que el desarrollador decide sobre un patrón concreto de colaboración, se distribuye el trabajo entre muchos objetos colaboración, se distribuye el trabajo entre muchos objetos definiendo métodos convenientes en las clases apropiadas.definiendo métodos convenientes en las clases apropiadas.

Los mecanismos representan así decisiones de diseño Los mecanismos representan así decisiones de diseño estratégicas, como el diseño de una estructura de clases. estratégicas, como el diseño de una estructura de clases.

La interfaz de una clase individual es más bien una decisión de La interfaz de una clase individual es más bien una decisión de diseño táctica.diseño táctica.

Page 108: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Ejemplos de mecanismosEjemplos de mecanismos

Consideremos el mecanismo de dibujo utilizado habitualmente Consideremos el mecanismo de dibujo utilizado habitualmente en intercales gráficas de usuario. en intercales gráficas de usuario.

Varios objetos deben colaborar para presentar una imagen a un Varios objetos deben colaborar para presentar una imagen a un usuario: una ventana, una vista, el modelo que se va a visualizar, usuario: una ventana, una vista, el modelo que se va a visualizar, y algún cliente que sabe cuándo (pero no cómo) hay que y algún cliente que sabe cuándo (pero no cómo) hay que visualizar ese modelo.visualizar ese modelo.

Page 109: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

RESUMENRESUMEN La identificación de clases y objetos es el problema La identificación de clases y objetos es el problema

fundamental en el diseño orientado a objetos: la fundamental en el diseño orientado a objetos: la identificación implica descubrimiento e invención.identificación implica descubrimiento e invención.

La clasificación es fundamentalmente un problema de La clasificación es fundamentalmente un problema de agrupación.agrupación.

La clasificación es un proceso incremental o iterativo, que se La clasificación es un proceso incremental o iterativo, que se complica por el hecho de que un conjunto dado de objetos complica por el hecho de que un conjunto dado de objetos puede clasificarse de muchas formas igualmente correctas.puede clasificarse de muchas formas igualmente correctas.

Page 110: Clases y Objetos La naturaleza de los objetos. Qué es y qué no es un objeto. A través del concepto de objeto un niño llega a darse cuenta de que los objetos

Los tres enfoques de la clasificación son la Los tres enfoques de la clasificación son la categorización clásica categorización clásica (clasificación por propiedades), (clasificación por propiedades), agrupamiento conceptual agrupamiento conceptual (clasificación por conceptos) y (clasificación por conceptos) y teoría de prototipos teoría de prototipos (clasificación (clasificación por asociación de un prototipo)por asociación de un prototipo)

Los escenarios son una potente herramienta para el análisis Los escenarios son una potente herramienta para el análisis orientado a objetos, y pueden utilizarse para guiar los procesos de orientado a objetos, y pueden utilizarse para guiar los procesos de análisis clásico, análisis del comportamiento y análisis de dominios.análisis clásico, análisis del comportamiento y análisis de dominios.

Las abstracciones clave reflejan el vocabulario del dominio del Las abstracciones clave reflejan el vocabulario del dominio del problema y pueden ser descubiertas en el dominio del problema, o problema y pueden ser descubiertas en el dominio del problema, o bien ser inventadas como parte del diseño.bien ser inventadas como parte del diseño.

Los mecanismos denotan decisiones estratégicas de diseño Los mecanismos denotan decisiones estratégicas de diseño respecto a la actividad de colaboración entre muchos tipos respecto a la actividad de colaboración entre muchos tipos diferentes de objetos.diferentes de objetos.