2.1.3 Modelado Orientado a Objetos
Objetos
- Objeto = unidad atómica que encapsula estado y comportamiento
- La encapsulación en un objeto permite una alta cohesión y un bajo acoplamiento.
- Un objeto puede caracterizar una entidad física (coche) o abstracta (ecuación matemática).
-
El Modelado de Objetos permite representar el ciclo de vida de los objetos a través de sus interacciones.
-
En UML, un objeto se representa por un rectángulo con un nombre subrayado.
Ejemplo de varios objetos relacionados:
- Objeto = Identidad + Estado + Comportamiento
- El estado está representado por los valores de los atributos.
- Un atributo toma un valor en un dominio concreto.
Identidad
Cada objeto posee un OID. (Object Identifier) 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.
- 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.
Sin embargo, es preciso contar con algún medio para hacer referencia a un objeto utilizando referencias del dominio (valores de atributos).
Estado
- El estado evoluciona con el tiempo.
- Algunos atributos pueden ser constantes.
- El comportamiento agrupa las competencias de un objeto y describe las acciones y reacciones de ese objeto.
- Las operaciones de un objeto son consecuencia de un estímulo externo representado como mensaje enviado desde otro objeto.
Comportamiento
Ejemplo de interacción:
- Los mensajes navegan por los enlaces a priori en ambas direcciones.
- Estado y comportamiento están relacionados.
- Ejemplo: no es posible aterrizar un avión si no está volando. Está volando como consecuencia de haber despegado del suelo.
Persistencia
- La persistencia de los objetos designa la capacidad de un objeto trascender en el espacio/tiempo.
- Podremos después reconstruirlo, es decir, cogerlo de memoria secundaria para utilizarlo en la ejecución (materialización del objeto).
- Los lenguajes OO no proponen soporte adecuado para la persistencia, la cual debería ser transparente, un objeto existe desde su creación hasta que se destruya.
Comunicación
- Un sistema informático puede verse como un conjunto de objetos autónomos y concurrentes que trabajan de manera coordinada en la consecución de un fin específico.
- El comportamiento global se basa pues en la comunicación entre los objetos que la componen.
-
- Cliente – Servidores, Agentes
- Objeto Activo: posee un hilo de ejecución (thread) propio y puede iniciar una actividad.
- Objeto Pasivo: no puede iniciar una actividad pero puede enviar estímulos una vez que se le solicita un servicio.
- Cliente es el objeto que solicita un servicio. Servidor es el objeto que provee el servicio solicitado.
- Los agentes reúnen las características de clientes y servidores.
- Son la base del mecanismo de delegación.
- Introducen indirección: un cliente puede comunicarse con un servidor que no conoce directamente.
El Concepto de Mensaje
- 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.
- Adquiere toda su fuerza cuando se asocia al polimorfismo y al enlace dinámico.
Mensaje y Estímulo
- Un estímulo causará la invocación de una operación, la creación o destrucción de un objeto o la aparición de una señal.
- Un mensaje es la especificación de un estímulo.
- Tipos de flujo de control:
- Llamada a procedimiento o flujo de control anidado.
- Flujo de control plano.
- Retorno de una llamada a procedimiento.
- Otras variaciones.
- Esperado (balking).
- Cronometrado (time-out).
|