350 likes | 622 Views
Diseño Orientado a Objetos Adaptado de “Ingeniería de Software”, Ian Sommerville. Ejemplo. El proceso de diseño orientado a objetos. Definir el contexto y modos de uso del sistema. Diseñar la arquitectura del sistema. Identificar los principales objetos del sistema.
E N D
Diseño Orientado a Objetos Adaptado de “Ingeniería de Software”, Ian Sommerville Ejemplo
El proceso de diseño orientado a objetos • Definir el contexto y modos de uso del sistema. • Diseñar la arquitectura del sistema. • Identificar los principalesobjetos del sistema. • Desarrollar los modelos de diseño (estáticos y dinámicos). • Especificar las interfaces de los objetos.
Sistema Meteorológico:descripción Se requiere un sistema de recolección de datos meteorológicos a fin de generar mapas climáticos en forma periódica, utilizando datos colectados por estaciones meteorológicas remotas desatendidas y otras fuentes de datos tales como observadores humanos, globos y satélites. Las estaciones climáticas transmiten sus datos a la computadora de área en respuesta a un requerimiento de ésta
Sistema Meteorológico:descripción (cont.) La computadora de área valida los datos recolectados y los integra con los datos de otras fuentes. Estos datos integrados son archivados y, usando los datos archivados y una base de datos de mapas digitalizados se confecciona un conjunto de mapas climáticos locales, que pueden ser impresos o mostrados por pantalla.
Estación Climática: descripción La estación climática es un paquete de instrumentos meteorológicos controlados por software, que colecta datos, ejecuta procesamiento sobre los mismos y transmite los datos a la computadora de área para su posterior procesamiento. Los instrumentos incluyen termómetros de suelo y aire, anemómetros, veletas, barómetros y pluviómetros. Los datos son recolectados cada cinco minutos
Estación Climática: descripción Cuando la estación climática recibe un comando desde la computadora de área para que transmita sus datos, procesa y sumariza los datos de los instrumentos. Los datos sumarizados son transmitidos a la computadora de área.
Definir el contexto del sistema y los modos de uso • Objetivo: desarrollar una comprensión de las relaciones entre el software que estamos diseñando y su entorno. • Contexto del Sistema: un modelo estático que describe a los otros sistemas en el entorno. • Se ilustra a continuación usando paquetes UML.
Definir el contexto del sistema y los modos de uso (cont.) • Modos de uso del sistema – modelo dinámico que describe como el sistema interactuará con su entorno. • Se ilustran utilizando un diagrama de Casos de Uso UML.
Casos de Uso para la Estación Climática Entidad externa (sistema de recolección de datos meteorológicos) Interacciones posibles
2. Diseño arquitectural del sistema • Arquitectura en capas: • Capa de Interface para el manejo de comunicaciones • Capa de recolección de datos para la recolección de datos • Capa de Instrumentos para administrar los instrumentos
Arquitectura de la Estación Climática UML: anotaciones UML: “paquetes anidados”
3. Identificar los principales objetos del sistema • Identificar objetos (o clases de objetos ) es la parte mas difícil del diseño OO. • No hay ninguna “fórmula mágica” – se hace a partir de la habilidad, experiencia y conocimiento del dominio del diseñador. • Es un proceso iterativo – generalmente no “sale” en el primer intento.
Identificación de objetos • Usar un análisis gramatical basado en una descripción en lenguaje natural del sistema ( heuristica de Abbott). • Asociar objetos con cosas tangibles en el dominio de aplicación (p.ej. dispositivos). • Usar análisis de comportamiento: identificar objetos basándose en que cosa participa en que comportamiento.
Clases en la Estación Climática • Weather station – interface de la estación climática con su entorno. Refleja interacciones identificadas en el modelo de casos de uso. • Weather data – encapsula los datos sumarizados desde los instrumentos. • Ground thermometer, Anemometer, Barometer – objetos de la aplicación que modelan a los instrumentos reales.
Otros objetos • Utilizar el conocimiento del dominio para identicar mas objetos, operaciones y atributos. • Cada estación climática debe tener un identificador único. • Las estaciones climáticas están ubicadas frecuentemente en sitios inaccesibles: las fallas de instrumentos deben reportarse automáticamente. Por lo tanto, son necesarios atributos y operaciones de auto-testeo.
4. Desarrollo de Modelos de Diseño • Los modelos de diseño muestran las relaciones entre objetos y clases. • Modelos Estáticos: describen la estructura del sistema en terminos de relaciones estructurales entre objetos y clases. • Modelos Dinámicos: describen la interacción -mensajes y respuestas- entre objetos.
Subsistemas de la Estación Climática anotaciones
Modelos de Secuencia • Los objetos se distribuyen horizontalmente al tope del diagrama. • El eje de tiempos es vertical, el modelo se “lee” de arriba hacia abajo. • Las interacciones se representan por flechas etiquetadas de diferentes estilos, indicando diferentes interacciones. • Un rectángulo en la “vida” de un objeto representa el tiempo durante el cual ese objeto es el controlante del sistema.
Secuencia: Recolección de Datos Retorna el control No espera respuesta
5. Especificación de la interface de los objetos • El diseño debe evitar revelar detalles de la estructura interna de los objetos en su diseño de interface. • Los objectos pueden tener varias interfaces lógicas, las cuales son “puntos de vista” de las operaciones provistas. (soportado directamente en Java) • UML usa diagramas de clase para especificar las interfaces.
Evolución del Diseño • Ocultar la información en los objetos significa que los cambios hechos a ese objeto no afectarán a los demás de forma impredecible. • Supongamos que se desea agregar capacidades de monitoreo de a las estaciones climáticas. • Las lecturas de datos de polución son transmitidas junto a los datos climáticos.
Cambios requeridos • Agregar una clase llamada “Air quality” (calidad de aire) como parte de WeatherStation. • Agregar una operación reportAirQuality a WeatherStation. Modificar el software de control para recolectar las lecturas de polución. • Agregar objetos que representen los instrumentos de monitoreo de polución.
Conclusiones • DOO resulta en componentes de diseño con su propio estado privado y operaciones. • Los objetos deben tener operaciones de construcción e inspección . Ellos proveen servicios a otros objetos. • El Unified Modeling Language provee diferentes notaciones para definir diferentes modelos.
Conclusiones (cont.) • Un conjunto de diferentes modelos pueden producirse durante un proceso de diseño orientado a objetos, incluyendo modelos estáticos y dinámicos del sistema. • Las interfaces de los objetos deben definirse precisamente. • El diseño orientado a objetos simplifica la evolución del sistema.