Vous êtes sur la page 1sur 18

Diseo Orientado a Objetos

Captulo 12, Ingeniera de Software, Ian Sommerville, 5a Edicin, Addison Wesley, 2002

Objetivos
El alumno conocer:
cmo interactan los objetos entre ellos y adems administran su propio estado y operaciones las actividades ms importantes en un proceso general de diseo OO diversos modelos para documentar el diseo OO una introduccin a UML

Introduccin (1)
El DOO es una estrategia en la cual se debe pensar en trminos de cosas en lugar de operaciones o funciones. Se compone de objetos que interactan entre s para realizar las operaciones Los objetos ocultan y limitan el acceso a operaciones y atributos

Introduccin (2)
El DOO es parte del desarrollo OO, que se conforma de:
Anlisis. Comprende el modelo OO del dominio de la aplicacin que reflejan las entidades y operaciones del problema a resolver Diseo. Modelo OO que incluye tanto objetos del dominio como de la solucin en computadora. Programacin. Se realiza mediante un lenguaje de programacin OO como Java.

Introduccin (3)
Los sistemas OO deben ser mantenibles del todo, puesto que los objetos son independientes. Los diseos OO pueden tener objetos que se utilicen en diseos posteriores. Los objetos se pueden agrupar en componentes o marcos de trabajo que pueden reutilizarse. Existen varios mtodos de DOO:
Coad y Yourdon (1990), Robinson (1992), Rumbaugh et al (1991) Jacobson et al (1993), Booch (1994), Graham (1994), Unificacin de varias metodologas en UML (1999)

12.1 Objetos y Clases de Objetos (1)


Objeto
Entidad que tiene un estado y un conjunto de operaciones definidas que operan sobre ese estado. El estado se representa como un conjunto de atributos del objeto. Las operaciones que se asocian con el objeto proveen servicios a otros objetos (clientes) que solicitan estos servicios cunado se requiere llevar a cabo algn clculo.

Clase de Objeto
Plantilla para crear objetos. sta incluye las declaraciones de todos los atributos y operaciones asociadas con un objeto de esa clase.

Objetos y Clases de Objetos (2)


Empleado nombre_emp: string; direccion: string numempeado: integer; tipo_servicio_medico:string; departamento: string; Puesto: string; Unir(); Dejar(); Retirar(); Actualizar(); Nombre de la clase

Atributos de la clase

Operaciones asociadas

Representacin de una clase en UML

Objetos y Clases de Objetos (3)


Los objetos se comunican a travs de la solicitud de servicios (llamadas a mtodos) de otros objetos. Ejemplos de este estilo de comunicacin:
// llamada a un mtodo asociado con un objeto bfer que // regresa el siguiente valor en el bfer v = circularbufer.get(); // llamada al mtodo asociado con un objeto termostato que // establece la temperatura que se mantendr thermostat.setTemp(20);

Objetos y Clases de Objetos (4)


Tipos de comunicacin entre objetos
Sistemas distribuidos
Usa cadenas de texto para los mensajes que llevan el nombre del servicio (mtodo) y sus parmetros

Sncrona
El objeto invocador espera a que la peticin del servicio se complete

Asncrona
Para objetos concurrentes o cadenas El objeto invocador contina trabajando mientras su servicio solicitado se completa

Pedido fechaRecibido prepagado precio despacha() *

navegabilidad

clase

Cliente 1
restriccin

nombre direccin

Si califCredito():String pedido.Cliente.CalifCredito cierra() es pobre, entonces herencia Pedido.prepagado debe * ser cierto agregacin CliPersonal CliCorporativo 1..* multiplicidad

Producto clave cantidad

contacto califCredito limCredito FacturaMes(entero) * liga


0..1

#tarjCred

Empleado

Relaciones y asociaciones

12.1.1 Objetos Concurrentes


El paso de mensajes entre objetos para la solicitud de servicios, NO es necesario que sea secuencial. El modelo general de interaccin entre objetos permite la concurrencia. Existen dos clases de implementacin de objetos concurrentes: servidores y objetos activos.

12.1.1 Objetos Concurrentes


Servidores.
Son ms tiles en entornos distribuidos donde tanto objetos invocadores como invocados se ejecutan en diferentes computadoras. El objeto se implementa como un objeto paralelo. Los mtodos inician su actividad en paralelo con mtodos asociados a otros objetos.

Objetos activos.
En ellos el estado cambia debido a la ejecuacin de operaciones internas. El proceso que representa al objeto ejecuta continuamente estas operaciones, por lo que no se suspende por s solo.

12.2 Un Proceso de diseo OO


Es general e incorpora actividades comunes de varias metodologas:
Comprender y definir el contexto y modos de utilizacin del sistema Disear la arquitectura del sistema Identificar los objetos principales del sistema Desarrollar los modelos de diseo Especificar las interfaces de los objetos

Todas las actividades se entrelazan e influyen entre s

12.2 Un Proceso de diseo OO


Un diseo se desarrolla proponiendo y refinando artefactos de actividades al tener mayor informacin Detalles:
Algunas veces deben probarse antes de empezar el diseo Otras veces deben ignorar los detalles e ignorarlos para retomarlos ms tarde

Ejemplo. Sistema de Trazado de Mapas Climticos


Se requiere para generar mapas climticos a partir de la recoleccin de datos de estaciones climticas remotas y automticas y de otras fuentes de datos como: observadores climticos, globos y satlites. El sistema de cmputo del rea valida los datos recolectados e integra los de diferentes fuentes. Los datos integrados se archivan y utilizando mapas digitalizados previamente se crea un conjunto local de mapas climticos. Los mapas se pueden imprimir o desplegar en distintos formatos.

Arquitectura de Capas para un trazado de mapas climticos (hecho con Visio)


Capa de despliegue de datos donde los objetos estn involucrados en la preparacin y presentacin de datos en una forma humanamente legible Capa de archivacin de datos donde los objetos estn involucrados con el almacenamiento de datos para su futuro procesamiento Capa de procesamiento de datos donde los objetos estn involucrados con la verificacin e integracin de los datos recolectados Capa de recoleccin de datos donde los objetos estn involucrados con la adquisicin de datos de fuentes remotas

subsystem Despliegue de Datos

subsystem Archivacion de Datos

subsystem Procesamiento de Datos

subsystem Recoleccin de Datos

Arquitectura de Capas para un Sistema de Trazado de Mapas Climticos (hecho con ModelMaker) Capa de despliegue de Datos
Subsistema Despliegue de Datos donde los objetos estn involucrados en la preparacin y presentacin de datos en una forma humanamente legible Capa de archivacin de Datos donde los objetos estn involucrados con el almacenamiento de datos para procesamiento futuro Capa de procesamiento de datos donde los objetos estn involucrados con la verificacin e integracin de los datos recolectados Capa de recoleccin de datos donde los objetos estn involucrados con la adquisicin de datos de fuentes remotas

Subsistema Archivacion de datos

{usa}

Subsistema Procesamiento de datos

{usa}

Subsistema Recoleccin de datos

{usa}

Detalle de un subsistema (hecho con MM y PowerPoint)

Subsistema Recoleccin de datos Satlite Subsistema Comunica ciones Observador

Estacin climtica

Globo

12.2.1 El contexto del sistema y los modelos de utilizacin Lo primero es comprender las relaciones entre el software que se est diseando y el entorno externo Para ello se utilizan dos modelos:
Esttico
Representa el contexto del sistema y describe a los otros sistemas en ese entorno (modelo de contexto)

Dinmico
Representa el modelo que el sistema utiliza y describe cmo interacta el sistema con su entorno (modelo de interacciones)

Formas de representacin
Modelo de Contexto
Utilizando asociaciones (diagramas de clases, diagrama de paquetes)

Modelo de interacciones
Utilizando un enfoque abstracto que no incluya mucho detalle de las interacciones (diagramas de casos de uso, diagramas de robustez)

10

Casos de Uso para la estacin climtica


Iniciar

Apagar

Sistema: Estacin Climtica Caso de Uso: Reportar Actores: Sistema de Recoleccin de Datos Climticos (SRDC) y estacin climtica Datos:
La estacin enva un reporte de los datos climticos recolectados de los instrumentos en el periodo de recoleccin al SRDC. Los datos enviados son mximo, mnimo y medio de temperaturas del suelo y del aire; las presiones...

Reportar Actor Calibrar

Estmulo:
El sistema de recoleccin de datos establece un vnculo por medio del modem con la estacin climtica

Hacer pruebas

Respuesta:
Los datos resumidos se envan al sistema de recoleccin de datos climticos.

Comentarios:
Habitualmente, a las estaciones climticas se les pide reportar una vez por hora aunque esta frecuencia puede diferir de una estacin a otra y modificarse en el futuro.

12.2.2 Diseo Arquitectnico


Lo anterior sirve como base para definir la arquitectura, sta puede variar segn la complejidad del sistema. Para el ejemplo del SRDC se puede usar un modelo de capas jerrquico
Subsistema Recoleccin de datos Subsistema Interfaz Administra todas las comunicaciones externas

Subsistema Recoleccin Datos

Recolecta y resume los datos climticos

Subsistema Instrumentos

Empaqueta los documentos para la recoleccin de datos de campo

11

12.2.3 Identificacin de Objetos


Lo que se identifica en realidad son clases de objetos Aunque ya se tiene alguna idea de los objetos esenciales del sistema que se est diseando, an faltan varios Propuestas para identificar objetos:
Anlisis gramatical. Sustantivos (objetos y sus atributos) y los verbos son lo mtodos. Ejemplo: Abbott, 1983. Entidades tangibles del dominio de aplicacin. Como seran los instrumentos en el SRDC. Ejemplo: Coad & Yourdon, 1990. Enfoque de comportamiento. Se modela el comportamiento del sistema y se identifica quien inicia o termina un comportamiento. Ejemplo: Rubin & Golberg, 1992 Anlisis basado en escenarios. Se analizan varios momentos del sistema y qu objetos intervienen. Ejemplo: Tarjetas CRC, Beck & Cunnigham, 1989

WeatherStation attributes Undefined airTemperatures: Integer; Identifier: string; temperature: Integer; w indSpeed: Integer; WeatherData attributes Undefined airTemperatures: Integer; groundTemparatures: Integer; pressures: Integer; rainfall: Integer; w indDirections: string; w indSpeeds: Integer;

operations Undefined + calibrate(instruments): Boolean; + reportWeather: string; + shutdow n(instruments): Boolean; + startup(instruments): Boolean; + test(instruments): Boolean;

operations Undefined + collect: Integer; + summarise: Integer;

Anem om eter Groundtherm om eter operations Undefined + Calibrate: Boolean; + test: Boolean; attributes Undefined - w indDirection: Integer; - w indSpeed: Integer; operations Undefined + test: Boolean;

Objetos derivados de la descripcin del sistema y de los casos de uso

Objetos del Dominio

12

12.2.4 Modelos de Diseo


Son el puente entre los requerimientos y la implantacin del sistema de software Tiene que haber varios modelos de diseo ya que stos se enfrentan a:
Tener que ser abstractos a fin de que el detalle innecesario no oculte su relacin con los requerimientos Tener que incluir suficiente detalle para que los programadores tomen las decisiones de implementacin

Existen dos tipos de modelos de diseo


Estticos. Estructura de subsistemas y/o clases y sus relaciones. Dinmicos. Se describen las estructuras que muestran la interaccin entre objetos. Ejemplos de UML: diagramas de secuencia, diagramas de estado

12.2.4 Modelos de Diseo. Paquetes de la estacin climtica con Model Maker

unit Interfaz

usa

unit RecolecciondeDatos

Hiperlink con su diagrama de clases

import

unit Instrumentos

13

12.2.4 Modelos de Diseo. Diagrama de clases del subsistema interfaz

CommsController

WeatherStation attributes Undefined airTemperatures: Integer; Identifier: string; temperature: Integer; windSpeed: Integer;

operations Undefined + calibrate(instruments): Boolean; + reportWeather: string; + shutdown(instruments): Boolean; + startup(instruments): Boolean; + test(instruments): Boolean;

12.2.4 Modelos de Diseo. Diagrama de clases del subsistema instrumentos


Anemometer Airthermometer RainCauge attributes Undefined Groundthermometer attributes Undefined - temperature: Real; operations Undefined + Calibrate: Boolean; + test: Boolean; Barometer attributes Undefined - height: Real; - pressure: Real; operations Undefined + calibrate: Integer; + test: Boolean; WinddVane - windDirection: Integer; - windSpeed: Integer; operations Undefined + test: Boolean;

14

12.2.4 Modelos de Diseo. Secuencia de las operaciones de Recoleccin de datos


Actor: : CommsController requestreport acknowledge report sendreport replyreport acknowledge Regreso del mensaje Indica que el emisor del mensaje no espera contestacin summarise() : WeatherStation :WeatherData

12.2.4 Modelos de Diseo. Diagrama de Estados de WeatherSatation


Calibrating calibracin OK Testing calibrate test startup() Shutdown shutdown reloj reportWeather recoleccin realizada Summarising Collecting Resumen Climtico Completo Waiting transmisin realizada Transmiting

Prueba Completa

15

12.2.5 Especificacin de la interfaz de los objetos (1) Es necesario identificar interfaces para que los objetos y otros componentes se puedan disear en paralelo.
Se debe evitar la informacin de representacin Se deben proveer las operaciones de los objetos para acceder y actualizar los datos.

Con el ocultamiento se pude garantizar un mejor mantenimiento. Los atributos del modelo esttico deben exponerse los atributos esenciales.

12.2.5 Especificacin de la interfaz de los objetos (2)


Un objeto puede tener ms de una interfaz
Pueden representar varios puntos de vista En UML se puede especificar una clase interfaz.
Como estereotipo o grficamente

Alternativamente se puede utilizar un lenguaje de programacin. Ejemplo:


Interface WeatherSation { public void WeatherStatio(); public void startup (); public void startup (Instrument i);

public void test (); public void test (Instrument i); } //WeatherStation

16

12.3 Evolucin del Diseo (1)


Se pueden introducir nuevos objetos sin afectar a los dems, ms an si hay un bajo acoplamiento entre ellos. Ejemplo.
Suponga que a la estacin climtica se le quiere agregar las capacidades de un sistema de supervisin de la contaminacin, entonces hay que:
Agregar mtrica de la calidad del aire Lecturas de contaminacin al mismo tiempo que las climtica

12.3 Evolucin del Diseo (2)


Para modificar el diseo, se deben hacer los siguientes cambios.
1. Una clase de objetos denominada AirQuality debe introducirse como parte de WeatherStation al mismo nivel de WheatherData 2. Una operacin de reportAirQuality se debe agregar a WeatherStation 3. El software de control de estacin climtica se debe modificar para las lecturas de contaminacin. 4. Agregar los objetos de los instrumentos que medirn: xido ntrico, humo y benzeno.

17

12.3 Evolucin del Diseo (3). Objetos nuevos


WeatherStation attributes Undefined - airTemperatures: Integer; - Identifier: string; - temperature: Integer; - windSpeed: Integer; operations Undefined + calibrate(instruments): Boolean; + reporAirQuality: string; + reportWeather: string; + shutdown(instruments): Boolean; + startup(instruments): Boolean; + test(instruments): Boolean;

AirQuality attributes Undefined - benzeneData: Real; - NOData: Real; - smokeData: Real; operations Undefined + Collect: Real; + Summarize: Real;

Subsistema InstrumentosContaminacion

NOmeter

Smokemeter

Benzemeter

18

Vous aimerez peut-être aussi