Un sistema orientado a objetos se disea considerando la interaccin entre
ellos, tales objetos mantienen su propio estado local (localidades de memoria) y otorgan operaciones sobre tales estados. o1:C1 estado o1 ops1 () o3:C3 estado o3 ops3 () o4:C4 estado o4 ops4 () o2:C3 estado o2 ops3 () o6:C1 estado o6 ops1 () o5:C5 estado o5 ops5 () ESTRATEGIAS DEL DISEO ORIENTADO A OBJETOS El proceso de diseo orientado a objetos involucra disear clases de objetos y las relaciones entre estas clases. Dichas clases definen a los objetos en el sistema y sus interacciones. Anlisis Orientado a Objetos. Desarrollo de un modelo Orientado a objetos del dominio de la aplicacin 1 Diseo Orientado a Objetos. Desarrollo de un modelo Orientado a objetos de un sistema de Software, para implementar los requerimientos 2 Programacin Orientado a Objetos. Elaborar un diseo de software usando un lenguaje de programacin Tal como: JAVA, C++ u otro 3 REUTILIZACIN, UML Y CASOS DE USO Los objetos son, potencialmente, componentes reutilizables porque son encapsulaciones independientes de estados y operaciones. Los diseos pueden ser desarrollados utilizando objetos que han sido creados en diseos anteriores. Lo cual reduce el diseo, as como tambin la programacin y los costos de validacin. Aunque la reutilizacin se lleva a cabo de mejor forma al utilizar componentes en lugar de objetos individuales. Muchos mtodos de diseo orientado a objetos se han propuesto (Coad and Yourdon, 1990; Robinson, 1992; Jacobson, et al., 1993; Graham, 1994; Booch, 1994). UML (Unified Modelling Language Lenguaje de Modelado Unificado -), es una unificacin de las notaciones utilizadas en los mtodos antes mencionados. Dentro de los diferentes diagramas que se encuentran est el de Casos de Uso, el cual tiene como principal caracterstica de hacer notar que el diseo es centrado en el usuario y considera las interacciones que tiene ste con el sistema. CLASES Y OBJETOS Un objeto es una entidad que tiene un estado y un conjunto de operaciones definidas que afectan a dicho estado. El estado se representa por un conjunto de atributos. Las operaciones asociadas con el objeto otorgan servicios a otros objetos (clientes) que requieren esos servicios cuando algn clculo se requiere. [Sommerville, 2001] CEmpleado nombre: String direccion: String fecha_nac: date Id_empleado:int departamento:dept supervisor:CEmpleado estado:{activo,no_activo,retirado) . . . Entra( ) Sale( ) CambiarDetalles( ) Representacin en UML de una clase Atributos Operaciones Nombre EJEMPLOS DE COMUNICACIN ENTRE OBJETOS //Llamar a un mtodo asociado con un objeto de tipo buffer que devuelve el //siguiente valor en el buffer v=circularBuffer.Get(); // Llamada al mtodo asociado con un objeto termostato que establece el nivel //de temperatura al que ser mantenido Thermostat.setTemp(20);
A esta forma de peticin de servicios se le conoce como sincrona. Esto es, que el objeto espera a que la peticin del servicio sea completada. Sin embargo, si los objetos son creados como procesos concurrentes o hilos, la comunicacin entre los objetos es asincrona. La llamada al objeto puede continuar su operacin mientras la peticin del servicio se est ejecutando. HERENCIA EN UML Las clases de los objetos se pueden organizar en una generalizacin o herencia jerrquica que muestre las relaciones entre las clases de objetos ms especficos y generales. En UML una flecha que apunta de la clase heredada a su clase padre es representativa de la relacin de herencia existente entre ellas. Empleado Supervisor Puntosdecontrol Fechadesuper Programador Proyecto Lenaguajesprog Supervisor de proyecto Proyectos Supervisor de departamento Departamento Supervisor de planeacin Responsabilidades LAS ASOCIACIONES EN UML La asociacin es una relacin muy simple y es utilizada de forma regular en UML para indicar que ya sea un atributo de un objeto es un objeto asociado o la implementacin de un mtodo del objeto recae en un objeto asociado. Una de las asociaciones ms frecuentes es la de agregacin. Empleado Supervisor Departamento supervisa es miembro de es supervisado por OBJETOS CONCURRENTES Conceptualmente, un objeto requiere un servicio de otro pero enviando una peticin de servicio o mensaje a ese objeto. Al no existir alguna forma de requerimiento para la ejecucin serial el modelo general de la interaccin permite a los objetos ejecutarse concurrentemente como procesos paralelos. o1:C1 estado o1 ops1 () o2:C2 estado o2 ops2 () o n :C n estado o n ops n () o k :C k estado o k ops k () CONCURRENCIA Objetos ejecutndose en la misma mquina u objetos distribuidos ejecutndose en diferentes mquinas OBJETOS CONCURRENTES En la prctica, la mayora de los lenguajes de programacin tienen por omisin un modelo de ejecucin serial de tal forma que las ejecuciones para los servicios del objeto se implementan en la misma forma que las llamadas a las funciones. Logrando con ello suspender la llamada a tal objeto. Sin embargo, Java y C++ proporcionan un mecanismo llamado Thread (Hilos), que permite la ejecucin de objetos de forma concurrente. TIPOS DE IMPLEMENTACIN DE OBJETOS CONCURRENTES SERVIDORES. Donde el objeto es ejecutado como un proceso en paralelo. Los mtodos inician en respuesta a un mensaje externo y se pueden ejecutar en paralelo con mtodos asociados con otros objetos. Cuando finaliza, el objeto se suspende y espera por ms peticiones de servicio. Aplicado en sistemas distribuidos. OBJETOS ACTIVOS. El estado del objeto puede cambiar por operaciones internas ejecutadas dentro del mismo objeto. El objeto nunca se suspende por s mismo, como en el caso anterior. Aplicado en sistemas de tiempo real. UN PROCESO DE DISEO ORIENTADO A OBJETOS Se tomar un software que se encuentra inmerso en una estacin climatolgica automatizada, como ejemplo de diseo. Las etapas del proceso se encuentran estrechamente relacionadas y se listan a continuacin: 1. Entendimiento y definicin del contexto de las formas de uso del sistema 2. Diseo de la arquitectura del sistema 3. Identificacin de los objetos principales del sistema 4. Desarrollo de los modelos de diseo 5. Especificacin de las interfaces de los objetos A continuacin se describen las caractersticas que la planta climatolgica tiene, as como tambin las necesidades que tiene. Tomando en consideracin y en gran detalle el hecho de que cada una de ellas debern de ser tomadas para el diseo correspondiente. UN PROCESO DE DISEO ORIENTADO A OBJETOS Un sistema de registro del clima es necesario con el fin de generar mapas climatolgicos haciendo uso de datos recabados de estaciones climatolgicas lejanas y desatendidas, adems de otras fuentes de datos tales como: observadores climatolgicos e informacin va satlite. Las estaciones climatolgicas transmiten sus datos a la computadora en respuesta a las peticiones de esa mquina. Un sistema computacional dedicado valida los datos coleccionados y recaba la Informacin de las diferentes fuentes. Tales datos son almacenados para Posteriormente, son utilizados en conjunto con la informacin contenida dentro De una base de datos de mapas digitalizados, para crear los mapas climatolgicos. Dichos mapas, pueden ser impresos para su distribucin o pueden ser desplegados En un nmero determinado de formatos DISEO DE LA ARQUITECTURA Subsistema Desplegado de los datos Subsistema Almacenamiento de datos Subsistema Procesamiento de datos Subsistema Coleccin de datos En donde los objetos se relacionan con la forma en la que los datos puedan ser presentados en forma adecuada a los seres humanos En donde los objetos se relacionan con la forma en la que los datos puedan ser almacenados para su uso posterior En donde los objetos se relacionan con la verificacin e integracin de los datos En donde los objetos se relacionan con la adquisicin de los datos de las fuentes remotas PAQUETES DE UML En la figura anterior se han mostrado las capas y se ha incluido el nombre de la capa en un smbolo de paquete de UML que se ha denotado como un subsistema. Un paquete de UML representa una coleccin de objetos y otros paquetes. Se verifica que cada capa incluye un nmero determinado de otros componentes. Almacenamiento de datos Almacenamiento de mapas Almacenamiento de datos Subsistema Almacenamiento de datos Checar datos Integracin de datos Subsistema de Procesamiento de datos Observador Comms Satlite Estacin climatolgica Ballon Subsistema de Coleccin de datos Interfaz de usuario Mapa de desplegado Mapa Mapa de impresin Subsistema de desplegado de datos SISTEMA DE CONTEXTO DE CASOS DE USO La primera etapa en algn proceso de desarrollo de software est en entender las relaciones entre el software que se disea y su ambiente externo. Lo que permitir proveer la funcionalidad requerida del sistema y como estructurar el sistema para comunicarse con su ambiente. El contexto del sistema y el modelo del uso del sistema representa dos modelos complementarios de las relaciones entre un sistema y su medio ambiente. 1) El contexto del sistema es un modelo esttico que describe a otros sistemas en ese ambiente 2) El modelo del uso del sistema es un modelo dinmico que describe como el sistema interacta con su medio ambiente. El modelo del contexto se puede implementar por medio de asociaciones (como el de la diapositiva 8). La consecuencia de dicho anlisis est en la creacin de los modelos del subsistema ilustrados en la diapositiva anterior. CASOS DE USO Cuando se modelan las interacciones de un sistema con su medio ambiente se deben de utilizar enfoques abstractos que no incluyan mucho detalle, los casos de uso son ejemplo de ello y cada uno de ellos representa una interaccin con el sistema. Cada uno de esos casos de uso puede describirse en lenguaje natural estructurado, lo que ayuda a los diseadores a identificar objetos en el sistema y darles a entender de manera clara lo que el sistema realiza. Inicio Apagar Reportar Calibrar Probar DESCRIPCIN DEL CASO DE USO SISTEMA Estacin climatolgica CASO DE USO Reportar ACTORES Sistema de recoleccin de datos del clima y estacin climatolgica DATOS La estacin climatolgica enva un resumen de los datos climatolgicos que han sido coleccionados de los instrumentos en el periodo de recoleccin al sistema de recoleccin de datos climatolgicos. Los datos enviados son el mximo, mnimo, promedio de las temperaturas del aire, as como tambin el mximo, mnimo y promedio de las presiones del aire, las direcciones del viento como datos muestreados cada 5 minutos. ESTMULOS El sistema de coleccin de datos climatolgicos establece un enlace por medio del modem con la estacin climatolgica y recibe la transmisin de los datos. RESPUESTA Los datos suministrados son enviados al sistema de recoleccin de datos climatolgicos. COMENTARIOS Las estaciones climatolgicas regularmente una vez por hora sobre sus mediciones, pero tal frecuencia puede diferir de una estacin a otra y se puede modificar en futuras operaciones. DISEO DE LA ARQUITECTURA Una vez que las interacciones entre el sistema del software que se est diseando y el ambiente del sistema han sido definidas, se puede utilizar est informacin para disear la arquitectura del sistema. Las tres capas en el software de la estacin climatolgica son: 1) La capa interfaz que est relacionada con todas las comunicaciones con otras partes del sistema y con la capacidad de otorgar las interfaces del sistema. 2) La capa de coleccin de datos, la cual est relacionada con la gestin de la coleccin de datos de los instrumentos y con el resumen de los datos climatolgicos antes de ser transmitidos al sistema de mapeo. 3) La capa de instrumentos, la cual es la encapsulacin de todos los instrumentos usados para recabar la totalidad de datos relacionadas con las condiciones climatolgicas. 4) Una buena regla indica que no deben de existir ms de siete entidades fundamentales incluidas en el modelo de la arquitectura. ARQUITECTURA DE LA ESTACIN CLIMATOLGICA Subsistema Interfaz Subsistema Coleccin de datos Subsistema Instrumentos Gestiona todas las comunicaciones externas Colecciona y resume los datos climatolgicos Paquete de instrumentos para una coleccin de datos Estacin climatolgica MODELOS DE DISEO, TIPOS Y CARACTERSTICAS Los modelos de diseo muestran a los objetos o clases de objetos en un sistema y, la forma apropiada de las relaciones entre estas entidades. Representan el puente entre los requerimientos del sistema y la implementacin del mismo. Un paso importante en el proceso de diseo, de alguna manera es decidir cuales modelos de diseo se necesitan y el nivel de detalle de estos modelos. Lo cual depende del tipo de sistema que se est desarrollando. Un sistema de procesamiento de datos secuenciales ser diseado de forma diferente al de un sistema de tiempo real embebido. Existen dos tipos de modelos de diseo que se deberan de producir para describir un diseo orientado a objetos: TIPOS DE MODELOS DE DISEO Modelos estticos. Describe la estructura esttica del sistema usando clases de objetos y sus posibles relaciones. Modelos dinmicos. Describen la estructura dinmica del sistema y muestran las interacciones entre los objetos del sistema (no las clases de objetos) MODELOS DE DISEO, TIPOS Y CARACTERSTICAS UML presenta 12 diferentes modelos tanto estticos como dinmicos que se pueden producir para documentar un determinado diseo. Algunos de los cuales no resultan apropiados para ciertas aplicaciones. Los modelos que se acoplan y se describirn para el ejemplo actual son:
1. Modelos de subsistemas, el cual muestra los agrupamientos lgicos de los objetos dentro de subsistemas coherentes. Se representan usando formas de diagramas de clases en donde cada subsistema se muestra como un paquete. Los modelos de subsistema son estticos. 2. Los modelos de secuencia. Que muestran la secuencia de interaccin entre los objetos. En UML se utiliza un diagrama de colaboracin o secuencia para representarlos. Los modelos de secuencia son modelos dinmicos. 3. Modelo de mquina de estado, los cuales muestran como ciertos objetos individuales cambian su estado en respuesta a un conjunto de eventos. UML utiliza los diagramas de estado para representarlos. Los modelos de mquinas de estado son modelos de tipo dinmico. MODELO DE SUBSISTEMA Un modelo de subsistema es un modelo esttico til ya que muestra como el diseo puede ser organizado dentro de grupos de objetos relacionados lgicamente. El siguiente programa no solamente muestra los paquetes sino ciertas asociaciones entre los objetos internos y externos de la misma. Termmetro de aire Subsistema de Instrumentos Control de Comunicaciones Estacin climatolgica Subsistema Interfaz Estados de los instrumentos Datos climatolgicos Subsistema de Coleccin de datos Termmetro de tierra Seal de viento Barmetro Anemmetro Paleta de viento MODELOS DE SECUENCIA Los modelos de secuencia son modelos dinmicos. Por cada modo de interaccin, una secuencia de interacciones entre objetos se realiza. En un modelo de secuencia: a) Los objetos involucrados en la interaccin son colocados de forma horizontal con una lnea vertical que enlaza a cada objeto. b) El tiempo se representa de forma vertical conforme el tiempo avanza en las lneas verticales punteadas se muestra tal efecto. Por lo que, la secuencia de operaciones puede ser leda fcilmente del modelo. c) Las flechas etiquetadas que enlazan a las lneas verticales, representan interacciones entre los objetos. Estos no son flujos de datos pero representan mensajes o eventos que son fundamentales para la interaccin. d) El rectngulo delgado sobre la lnea punteada representa la cantidad de tiempo en que el objeto es el objeto de control en el sistema. Un objeto toma el control desde el momento representado por la parte superior del rectngulo y lo deja a otro objeto a partir de la parte inferior del mismo. MODELOS DE SECUENCIA Cuando se documenta un diseo, se debera de producir un modelo de secuencia por cada interaccin significativa. Si se han definido un conjunto de casos de uso, entonces se debera tener un modelo de secuencia por cada caso de uso que se haya definido con anterioridad. :Controlador_Coms :estacin_climatolgica :Datos_climatolgicos Peticin (reporte) Acuse_de_recibo() Reporte() Acuse_de_recibo() Emisin_reporte() Enviar_reporte() resumen_info() MODELOS DE SECUENCIA La lectura del diagrama anterior se realiza de la parte superior a la parte inferior, quedando como sigue: 1) Un objeto que es una instancia de (Controlador de Comunicaciones :Controlador_coms) recibe una peticin de su ambiente para emitir un reporte. Un acuse de recibo es el resultado a esta peticin. Una flecha con punta a la mitad indica esto. 2) Este objeto enva un mensaje a otro objeto que es una instancia de :estacin_climatolgica, para crear un reporte del clima. La instancia de :Controlador_coms se suspende de forma automtica. La flecha con la punta completa indica que las instancias de los objetos se pueden ejecutar de forma concurrente. 3) El objeto que es una instancia de :Estacin_climatolgica enva un mensaje al objeto de :Datos_climatolgicos para pedir los datos del clima. 4) El resultado es calculado y se regresa el control al objeto :Estacin_climatolgica. La flecha punteada indica retorno de control. 5) Este objeto enva un mensaje al :Controlador_coms para transferir el dato al sistema remoto. El objeto :estacin_climatolgica se suspende. 6) El objeto :Controlador_Coms enva el dato al sistema externo, a su vez recibe al acuse de recibo y se suspende de forma automtica.
DIAGRAMAS DE ESTADO apagar esperar calibrando probando transmitiendo resumiendo coleccionando reloj Iniciar() Terminar() calibrar() probar() transmisin realizada Coleccin realizada Reporte_clima() prueba completa Resumen completo del clima Calibracin OK Operacin ESPECIFICACIN DE LA INTERFAZ DEL OBJETO Una parte importante del proceso de diseo es la especificacin de las interfaces entre los componentes en el diseo. Se requieren especificar las interfaces de tal forma que los objetos y los subsistemas puedan ser diseados en paralelo. Una vez que la interfaz ha sido especificada, los desarrolladores de otros objetos pueden considerar que la interfaz ser implementada.