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.
  • Categorías de objetos:
    • Activos - Pasivos
    • 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).