M.C. Martín Olguín (C) 2004
¿Por qué la Orientación a Objetos?
Proximidad de los conceptos de modelado respecto de las entidades del mundo realMejora captura y validación de requisitosAcerca el “espacio del problema” y el “espacio de
la solución”
Modelado integrado de propiedades estáticas y dinámicas del ámbito del problema Facilita construcción, mantenimiento y
reutilización
www.dsic.upv.es/~uml
M.C. Martín Olguín (C) 2004
¿Por qué la Orientación a Objetos?
Conceptos comunes de modelado durante el análisis, diseño e implementación Facilita la transición entre distintas fases Favorece el desarrollo iterativo del sistema Disipa la barrera entre el “qué” y el “cómo”
Sin embargo, existen problemas ...
www.dsic.upv.es/~uml
M.C. Martín Olguín (C) 2004
Problemas en OO
“...Los conceptos básicos de la OO se conocen desde hace dos décadas, pero su aceptación todavía no está tan extendida como los beneficios que esta tecnología puede sugerir”
“...La mayoría de los usuarios de la OO no utilizan los conceptos de la OO de forma purista, como inicialmente se pretendía. Esta práctica ha sido promovida por muchas herramientas y lenguajes que intentan utilizar los conceptos en diversos grados”
--Wolfgang Strigel
M.C. Martín Olguín (C) 2004
El término OO
De acuerdo a Coad y Yourdon:Orientación a objetos = objetos + clasificación
+ herencia + comunicación
M.C. Martín Olguín (C) 2004
Objetos
Objeto = unidad atómica que encapsula estado y comportamiento
Un objeto puede caracterizar una entidad física (silla) o una entidad abstracta (ecuación matemática)
Un objeto encapsula datos (atributos) y los métodos (operaciones) que los manipulan.
M.C. Martín Olguín (C) 2004
Ejemplos de Objetos
VW Sedan
Transmision estandar2 puertasColor rojo
EncenderDar_vuelta
Apagar
Tasa
Color verdeCapacidad 250 ml
Estampada
LlenarVaciar
M.C. Martín Olguín (C) 2004
Clases
Una clase es una descripción generalizada (plantilla o patrón) para una colección de objetos similares.
Por definición, todos los objetos que existen dentro de una clase heredan sus atributos y las operaciones disponibles para manipularlos.
M.C. Martín Olguín (C) 2004
Clases vs. Objetos
“Mientras que un objeto es una entidad que existe en el tiempo y en el espacio, una clase representa solo una abstracción, <<la escencia>> del objeto…”
Grady Booch
M.C. Martín Olguín (C) 2004
Ejemplos de Clases
Automóvil
Tipo_transmisiónNo. de puertas
Color
EncenderDar_vuelta
Apagar
Recipiente
ColorCapacidad
Diseño
LlenarVaciar
M.C. Martín Olguín (C) 2004
Atributos
Son aquellos valores que describen las características de una clase u objeto.
Automóvil
Tipo_transmisiónNo. de puertas
Color
EncenderDar_vuelta
Apagar
Atributos}
M.C. Martín Olguín (C) 2004
Operaciones, métodos, servicios
Son los algoritmos que procesan los datos (atributos) de una clase u objeto.
Automóvil
Tipo_transmisiónNo. de puertas
Color
EncenderDar_vuelta
Apagar
Operaciones}
M.C. Martín Olguín (C) 2004
Encapsulamiento
La característica de que los objetos contengan los datos y las operaciones que operan sobre estos datos es lo que se conoce como encapsulamiento.
M.C. Martín Olguín (C) 2004
Beneficios del encapsulamiento
Ocultación de la información, reduce la propagación de efectos colaterales cuando ocurren cambios.
Los objetos son autocontenidos, lo cual favorece la reutilización.
Favorece el bajo acoplamiento y la alta cohesión.
M.C. Martín Olguín (C) 2004
Herencia
La herencia es una de las diferencias clave entre un sistema OO y uno que no lo es.
Una subclase Y hereda todos los atributos y operaciones asociadas a una superclase X.
M.C. Martín Olguín (C) 2004
Ejemplo de Herencia
Personanombredirecciontelefono
Empleadonum_empleadosueldo
clientenum_clientecuenta
M.C. Martín Olguín (C) 2004
Polimorfismo
Un método puede tener un nombre compartido a través de una jerarquía de objetos. Cada objeto puede tener una implementación diferente para el mismo nombre de método.
M.C. Martín Olguín (C) 2004
Ejemplo de polimorfismovehículo
Capacidad_motorCapacidad_carga
ColorEncenderDar_vuelta
Apagar
barco
Capacidad_motorCapacidad_carga
ColorEncender
Dar_vueltaApagar
auto
Capacidad_motorCapacidad_carga
ColorEncender
Dar_vueltaApagar
M.C. Martín Olguín (C) 2004
Mensajes
La unidad de comunicación entre objetos se llama mensaje.
El mensaje es el soporte de una comunicación que vincula dinámicamente los objetos que fueron separados previamente en el proceso de descomposición.
www.dsic.upv.es/~uml
M.C. Martín Olguín (C) 2004
…Mensajes
Adquiere toda su fuerza cuando se asocia al polimorfismo y al enlace dinámico
Objeto 1 Objeto 2
Objeto 3 Objeto 4
1: Mensaje A
2: Mensaje C
3: Mensaje D
4: Mensaje E
www.dsic.upv.es/~uml
M.C. Martín Olguín (C) 2004
…Mensajes
Un mensaje estimula la ocurrencia de cierto comportamiento en el objeto receptor.
El comportamiento se realiza cuando se ejecuta la una operación.
M.C. Martín Olguín (C) 2004
…Mensajes
Los mensajes y los métodos son dos caras de la misma moneda. Los métodos son los procedimientos invocados cuando un objeto recibe un mensaje.
M.C. Martín Olguín (C) 2004
Identidad
Oid (Object Identifier): Cada objeto posee un oid. El oid establece la identidad del objeto y tiene las siguientes características: Constituye un identificador único y global para cada
objeto dentro del sistema Es determinado en el momento de la creación del
objeto Es independiente de la localización física del objeto,
es decir, provee completa independencia de localización
www.dsic.upv.es/~uml
M.C. Martín Olguín (C) 2004
…Identidad Es independiente de las propiedades del objeto, lo
cual implica independencia de valor y de estructura.
No cambia durante toda la vida del objeto. Además, un oid no se reutiliza aunque el objeto deje de existir.
No se tiene ningún control sobre los oids y su manipulación resulta transparente.
www.dsic.upv.es/~uml
M.C. Martín Olguín (C) 2004
Estado
El estado de un objeto es una de las posibles condiciones en las cuales el objeto puede existir.
Cambia con el tiempo y está definido por los valores de sus atributos además de las relaciones que el objeto pueda tener con otros objetos.
M.C. Martín Olguín (C) 2004
Comportamiento
El comportamiento determina cómo el objeto responde a los mensajes de otros objetos y tipifica todo lo que el objeto puede hacer.
El comportamiento se implementa por el conjunto de operaciones del objeto.
M.C. Martín Olguín (C) 2004
Cohesión
La cohesión es una indicación cualitativa del grado que tiene un objeto para centrarse en una sola cosa.
La cohesión de una clase se determina examinando el grado en que el conjunto de propiedades que posee sea parte del diseño o dominio del problema.
M.C. Martín Olguín (C) 2004
…Cohesión
Un componente OO debe diseñarse de manera que posea todas las operaciones trabajando conjuntamente para alcanzar un propósito único y bien definido.
Es decir, en la construcción de software se desea conseguir una alta cohesión. (highly cohesive)
M.C. Martín Olguín (C) 2004
Acoplamiento
El acoplamiento está representado por el número de conexiones físicas entre los elementos del diseño (clases, objetos, paquetes).
Por ejemplo, el número de colaboraciones entre clases o el número de mensajes intercambiados entre objetos.