30
Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1 Ejemplo Diseño Orientado a Objetos Adaptado de “Ingeniería de Software”, Ian Sommerville

Ejemplo

  • Upload
    yelena

  • View
    54

  • Download
    0

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

Ejemplo

Diseño Orientado a ObjetosAdaptado de “Ingeniería de Software”, Ian Sommerville

Page 2: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

El proceso de diseño orientado a objetos

1. Definir el contexto y modos de uso del sistema.

2. Diseñar la arquitectura del sistema.

3. Identificar los principales objetos del sistema.

4. Desarrollar los modelos de diseño (estáticos y dinámicos).

5. Especificar las interfaces de los objetos.

Page 3: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

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

Page 4: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

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.

Page 5: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

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

Page 6: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

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.

Page 7: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

1. 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.

Page 8: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

Contexto de la Estación Climática

«subsystem»Data collection

«subsystem»Data processing

«subsystem»Data archiving

«subsystem»Data display

Weatherstation

Satellite

Comms

Balloon

Observer

Datachecking

Dataintegration

Map store Data store

Datastorage

Map

Userinterface

Mapdisplay

Mapprinter

Page 9: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

1. 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.

Page 10: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

Casos de Uso para la Estación Climática

Startup

Shutdown

Report

Calibrate

Test

Entidad externa (sistema de recolección de datos meteorológicos)

Interacciones posibles

Page 11: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

Descripción: caso de uso “Reportar”

Sistema Estación ClimáticaCaso de Uso ReportarActores Sistema de recolección de datos meteorológicos, Estación climáticaDatos La estación climática envía un sumario de los datos meteorológicos

recolectados por los instrumentos en el último período al Sistema derecolección de datos meteorológicos. Los datos enviados son las temperaturasmáxima, mínima y media de suelo y aire, las presiones atmosféricas máxima,mínima y media, las velocidades máxima, mínima y media del viento, la lluviacaída total y la dirección del viento muestreada cada 5 minutos.

Estímulo El Sistema de recolección de datos meteorológicos establece una conexión víamódem con la estación climática y pide la transmisión de datos .

Respuesta Los datos sumarizados son enviados por l a estación climática al sistema derecolección de datos meteorológicos.

Comentarios Las estaciones climaticas son usualmente interrogadas una vez por hora, peroesta frecuencia puede diferir entre estaciones y ser modificada en el futuro.

Page 12: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

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

Page 13: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

Arquitectura de la Estación Climática

«subsystem»Data collection

«subsystem»Instruments

«subsystem»Interface

Weather station

Manages allexternal

communications

Collects andsummarisesweather data

Package ofinstruments for raw

data collections

UML: “paquetes anidados” UML: anotaciones

Page 14: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

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.

Page 15: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

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.

Page 16: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

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.

Page 17: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

Clases en la Estación Climática

identifier

reportWeather ()calibrate (instruments)test ()startup (instruments)shutdown (instruments)

WeatherStation

test ()calibrate ()

Groundthermometer

temperature

Anemometer

windSpeedwindDirection

test ()

Barometer

pressureheight

test ()calibrate ()

WeatherData

airTemperaturesgroundTemperatureswindSpeedswindDirectionspressuresrainfall

collect ()summarise ()

Page 18: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

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.

Page 19: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

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.

Page 20: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

Subsistemas de la Estación Climática

«subsystem»Interface

CommsController

WeatherStation

«subsystem»Data collection

«subsystem»Instruments

Air thermometer

WeatherData

Ground thermometer

Anemometer

WindVane

RainGauge

InstrumentStatus

Barometer

anotaciones

Page 21: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

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.

Page 22: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

Secuencia: Recolección de Datos

:CommsController

request (report)

acknowledge ()report ()

summarise ()

reply (report)

acknowledge ()

send (report)

:WeatherStation :WeatherData

Retorna el controlNo espera

respuesta

Page 23: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

Modelo de Máquina de Estados de la Estación Climática

Shutdown Waiting Testing

Transmitting

Collecting

Summarising

Calibrating

transmission done

calibrate ()

test ()startup ()

shutdown ()

calibration OK

test complete

weather summarycomplete

clock collectiondone

Operation

reportWeather ()

Page 24: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

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.

Page 25: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

Interface de la Estación Climática en Javainterface WeatherStation {

public void WeatherStation () ;

public void startup () ;public void startup (Instrument i) ;

public void shutdown () ;public void shutdown (Instrument i) ;

public void reportWeather ( ) ;

public void test () ;public void test ( Instrument i ) ;

public void calibrate ( Instrument i) ;

public int getID () ;

} //WeatherStation

Page 26: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

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.

Page 27: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

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.

Page 28: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

Monitoreo de Polución

NODatasmokeDatabenzeneData

collect ()summarise ()

Air qualityidentifier

reportWeather ()reportAirQuality ()calibrate (instruments)test ()startup (instruments)shutdown (instruments)

WeatherStation

Pollution monitoring instruments

NOmeter SmokeMeter

BenzeneMeter

Page 29: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

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

Page 30: Ejemplo

Adaptado de Ian Sommerville, Software Engineering, 6th edition. Pag. 1

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.