diseÑo orientado a objetos un sistema orientado a objetos se diseña considerando la interacción...

26
DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción 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 ()

Upload: cecilio-valera

Post on 10-Feb-2015

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

DISEÑO ORIENTADO A OBJETOS

Un sistema orientado a objetos se diseña considerando la interacción 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 ()

Page 2: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

ESTRATEGIAS DEL DISEÑO ORIENTADO A OBJETOS

El proceso de diseño orientado a objetos involucra diseñar clases de objetos y las relaciones entre estas clases. Dichas clases definen a los objetos en el sistema y sus interacciones.

Análisis Orientado a Objetos.

Desarrollo de un modelo Orientado a objetos del

dominio de la aplicación

1 Diseño Orientado a Objetos.

Desarrollo de un modeloOrientado a objetos de un

sistema de Software, para implementar los

requerimientos

2

Programación Orientadoa Objetos.

Elaborar un diseño de software usando un lenguaje

de programaciónTal como: JAVA, C++ u otro

3

Page 3: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

REUTILIZACIÓN, UML Y CASOS DE USO

Los objetos son, potencialmente, componentes reutilizables porque son encapsulaciones independientes de estados y operaciones. Los diseños pueden ser desarrollados utilizando objetos que han sido creados en diseños anteriores. Lo cual reduce el diseño, así como también la programación y los costos de validación. Aunque la reutilización se lleva a cabo de mejor forma al utilizar componentes en lugar de objetos individuales.

Muchos métodos de diseño 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 unificación de las notaciones utilizadas en los métodos antes mencionados.

Dentro de los diferentes diagramas que se encuentran está el de Casos de Uso, el cual tiene como principal característica de hacer notar que el diseño es centrado en el usuario y considera las interacciones que tiene éste con el sistema.

Page 4: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

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 algún cálculo se requiere. [Sommerville, 2001]

CEmpleado

nombre: Stringdireccion: Stringfecha_nac: dateId_empleado:int

departamento:deptsupervisor:CEmpleado

estado:{activo,no_activo,retirado)...

Entra( )Sale( )

CambiarDetalles( )

Representación en UML de una clase

Atributos

Operaciones

Nombre

Page 5: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

EJEMPLOS DE COMUNICACIÓN ENTRE OBJETOS

//Llamar a un método asociado con un objeto de tipo buffer que devuelve el //siguiente valor en el buffer

v=circularBuffer.Get();

// Llamada al método asociado con un objeto termostato que establece el nivel //de temperatura al que será mantenido

Thermostat.setTemp(20);

A esta forma de petición de servicios se le conoce como sincrona. Esto es, que el objeto espera a que la petición del servicio sea completada. Sin embargo, si los objetos son creados como procesos concurrentes o hilos, la comunicación entre los objetos es asincrona. La llamada al objeto puede continuar su operación mientras la petición del servicio se está ejecutando.

Page 6: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

HERENCIA EN UML

Las clases de los objetos se pueden organizar en una generalización o herencia jerárquica que muestre las relaciones entre las clases de objetos más específicos y generales. En UML una flecha que apunta de la clase heredada a su clase padre es representativa de la relación de herencia existente entre ellas.

Empleado

Supervisor

PuntosdecontrolFechadesuper

Programador

ProyectoLenaguajesprog

Supervisor de proyecto

Proyectos

Supervisor de departamento

Departamento

Supervisor de planeación

Responsabilidades

Page 7: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

LAS ASOCIACIONES EN UML

La asociación es una relación 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 implementación de un método del objeto recae en un objeto asociado. Una de las asociaciones más frecuentes es la de agregación.

Empleado

Supervisor

Departamento

supervisa

es miembro de

es supervisado por

Page 8: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

OBJETOS CONCURRENTESConceptualmente, un objeto requiere un servicio de otro pero enviando una “petición de servicio” o mensaje a ese objeto. Al no existir alguna forma de requerimiento para la ejecución serial el modelo general de la interacción permite a los objetos ejecutarse concurrentemente como procesos paralelos.

o1:C1

estado o1

ops1 ()

o2:C2

estado o2

ops2 ()

on:Cn

estado on

opsn ()

ok:Ck

estado ok

opsk ()

CONCURRENCIA

Objetos ejecutándose en la misma máquina u objetos distribuidos ejecutándose en diferentes máquinas

Page 9: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

OBJETOS CONCURRENTES

En la práctica, la mayoría de los lenguajes de programación tienen por omisión un modelo de ejecución 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 ejecución de objetos de forma concurrente.

TIPOS DE IMPLEMENTACIÓN DE OBJETOS CONCURRENTES

SERVIDORES. Donde el objeto es ejecutado como un proceso en paralelo. Los métodos inician en respuesta a un mensaje externo y se pueden ejecutar en paralelo con métodos asociados con otros objetos. Cuando finaliza, el objeto se suspende y espera por más 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.

Page 10: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

UN PROCESO DE DISEÑO ORIENTADO A OBJETOS

Se tomará un software que se encuentra inmerso en una estación climatológica automatizada, como ejemplo de diseño. Las etapas del proceso se encuentran estrechamente relacionadas y se listan a continuación:

1. Entendimiento y definición del contexto de las formas de uso del sistema

2. Diseño de la arquitectura del sistema

3. Identificación de los objetos principales del sistema

4. Desarrollo de los modelos de diseño

5. Especificación de las interfaces de los objetos

A continuación se describen las características que la planta climatológica tiene, así como también las necesidades que tiene. Tomando en consideración y en gran detalle el hecho de que cada una de ellas deberán de ser tomadas para el diseño correspondiente.

Page 11: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

UN PROCESO DE DISEÑO ORIENTADO A OBJETOS

Un sistema de registro del clima es necesario con el fin de generar mapas climatológicos haciendo uso de datos recabados de estaciones climatológicas

lejanas y desatendidas, además de otras fuentes de datos tales como: observadores climatológicos e información vía satélite. Las estaciones

climatológicas transmiten sus datos a la computadora en respuesta a las peticiones de esa máquina.

Un sistema computacional dedicado valida los datos coleccionados y recaba la Información de las diferentes fuentes. Tales datos son almacenados para

Posteriormente, son utilizados en conjunto con la información contenida dentroDe una base de datos de mapas digitalizados, para crear los mapas climatológicos.Dichos mapas, pueden ser impresos para su distribución o pueden ser desplegados

En un número determinado de formatos

Page 12: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

DISEÑO DE LA ARQUITECTURA

SubsistemaDesplegado de los datos

SubsistemaAlmacenamiento de datos

SubsistemaProcesamiento de datos

SubsistemaColección 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 verificación e integración de los datos

En donde los objetos se relacionan con la adquisición de los datos de las fuentes remotas

Page 13: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

PAQUETES DE UMLEn la figura anterior se han mostrado las capas y se ha incluido el nombre de la capa en un símbolo de paquete de UML que se ha denotado como un subsistema. Un paquete de UML representa una colección de objetos y otros paquetes. Se verifica que cada capa incluye un número determinado de otros componentes.

Almacenamientode datos

Almacenamientode mapas

Almacenamientode datos

SubsistemaAlmacenamiento de datos

Checar datos

Integraciónde datos

Subsistema deProcesamiento de datos

Observador

Comms

Satélite

Estación climatológica Ballon

Subsistema deColección de datos

Interfaz deusuario

Mapa dedesplegado

MapaMapa de impresión

Subsistema de desplegado de datos

Page 14: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

SISTEMA DE CONTEXTO DE CASOS DE USOLa primera etapa en algún proceso de desarrollo de software está en entender las relaciones entre el software que se diseña 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 estático que describe a otros sistemas en ese ambiente

2) El modelo del uso del sistema es un modelo dinámico que describe como el sistema interactúa 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 análisis está en la creación de los modelos del subsistema ilustrados en la diapositiva anterior.

Page 15: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

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 interacción con el sistema.

Cada uno de esos casos de uso puede describirse en lenguaje natural estructurado, lo que ayuda a los diseñadores a identificar objetos en el sistema y darles a entender de manera clara lo que el sistema realiza.

Inicio

Apagar

Reportar

Calibrar

Probar

Page 16: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

DESCRIPCIÓN DEL CASO DE USO

SISTEMA Estación climatológica

CASO DE USO Reportar

ACTORES Sistema de recolección de datos del clima y estación climatológica

DATOS La estación climatológica envía un resumen de los datos climatológicos que han sido coleccionados de los instrumentos en el periodo de recolección al sistema de recolección de datos climatológicos. Los datos enviados son el máximo, mínimo, promedio de las temperaturas del aire, así como también el máximo, mínimo y promedio de las presiones del aire, las direcciones del viento como datos muestreados cada 5 minutos.

ESTÍMULOS El sistema de colección de datos climatológicos establece un enlace por medio del modem con la estación climatológica y recibe la transmisión de los datos.

RESPUESTA Los datos suministrados son enviados al sistema de recolección de datos climatológicos.

COMENTARIOS Las estaciones climatológicas regularmente una vez por hora sobre sus mediciones, pero tal frecuencia puede diferir de una estación a otra y se puede modificar en futuras operaciones.

Page 17: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

DISEÑO DE LA ARQUITECTURA

Una vez que las interacciones entre el sistema del software que se está diseñando y el ambiente del sistema han sido definidas, se puede utilizar está información para diseñar la arquitectura del sistema.

Las tres capas en el software de la estación climatológica 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 colección de datos, la cual está relacionada con la gestión de la colección de datos de los instrumentos y con el resumen de los datos climatológicos antes de ser transmitidos al sistema de mapeo.

3) La capa de instrumentos, la cual es la encapsulación de todos los instrumentos usados para recabar la totalidad de datos relacionadas con las condiciones climatológicas.

4) Una buena regla indica que no deben de existir más de siete entidades fundamentales incluidas en el modelo de la arquitectura.

Page 18: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

ARQUITECTURA DE LA ESTACIÓN CLIMATOLÓGICA

SubsistemaInterfaz

SubsistemaColección de datos

SubsistemaInstrumentos

Gestiona todas las comunicaciones externas

Gestiona todas las comunicaciones externas

Colecciona y resume los datos climatológicos

Colecciona y resume los datos climatológicos

Paquete de instrumentos para una colección de datos

Paquete de instrumentos para una colección de datos

Estación climatológica

Page 19: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

MODELOS DE DISEÑO, TIPOS Y CARACTERÍSTICAS

Los modelos de diseño 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 implementación del mismo.

Un paso importante en el proceso de diseño, de alguna manera es decidir cuales modelos de diseño 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á diseñado de forma diferente al de un sistema de tiempo real embebido. Existen dos tipos de modelos de diseño que se deberían de producir para describir un diseño orientado a objetos:

TIPOS DE MODELOS DE

DISEÑO

Modelos estáticos. Describe la estructura estática del sistema usando clases de objetos y sus posibles relaciones.

Modelos dinámicos. Describen la estructura dinámica del sistema y muestran las interacciones entre los objetos del sistema (no las clases de objetos)

Page 20: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

MODELOS DE DISEÑO, TIPOS Y CARACTERÍSTICAS

UML presenta 12 diferentes modelos tanto estáticos como dinámicos que se pueden producir para documentar un determinado diseño. Algunos de los cuales no resultan apropiados para ciertas aplicaciones. Los modelos que se acoplan y se describirán para el ejemplo actual son:

1. Modelos de subsistemas, el cual muestra los agrupamientos lógicos 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 estáticos.

2. Los modelos de secuencia. Que muestran la secuencia de interacción entre los objetos. En UML se utiliza un diagrama de colaboración o secuencia para representarlos. Los modelos de secuencia son modelos dinámicos.

3. Modelo de máquina 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 máquinas de estado son modelos de tipo dinámico.

Page 21: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

MODELO DE SUBSISTEMAUn modelo de subsistema es un modelo estático útil ya que muestra como el diseño puede ser organizado dentro de grupos de objetos relacionados lógicamente. El siguiente programa no solamente muestra los paquetes sino ciertas asociaciones entre los objetos internos y externos de la misma.

Termómetrode aire

Subsistema deInstrumentos

Control deComunicaciones

Estación climatológica

SubsistemaInterfaz

Estados delos instrumentos

Datos climatológicos

Subsistema de Colección de datos

Termómetrode tierra

Señal de viento

Barómetro

Anemómetro

Paleta deviento

Page 22: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

MODELOS DE SECUENCIA

Los modelos de secuencia son modelos dinámicos. Por cada modo de interacción, una secuencia de interacciones entre objetos se realiza. En un modelo de secuencia:

a) Los objetos involucrados en la interacción son colocados de forma horizontal con una línea vertical que enlaza a cada objeto.

b) El tiempo se representa de forma vertical conforme el tiempo avanza en las líneas verticales punteadas se muestra tal efecto. Por lo que, la secuencia de operaciones puede ser leída fácilmente del modelo.

c) Las flechas etiquetadas que enlazan a las líneas verticales, representan interacciones entre los objetos. Estos no son flujos de datos pero representan mensajes o eventos que son fundamentales para la interacción.

d) El rectángulo delgado sobre la línea 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 rectángulo y lo deja a otro objeto a partir de la parte inferior del mismo.

Page 23: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

MODELOS DE SECUENCIACuando se documenta un diseño, se debería de producir un modelo de secuencia por cada interacción significativa. Si se han definido un conjunto de casos de uso, entonces se debería tener un modelo de secuencia por cada caso de uso que se haya definido con anterioridad.

:Controlador_Coms :estación_climatológica :Datos_climatológicos

Petición (reporte)

Acuse_de_recibo() Reporte()

Acuse_de_recibo()

Emisión_reporte()

Enviar_reporte()

resumen_info()

Page 24: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

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 petición de su ambiente para emitir un reporte. Un acuse de recibo es el resultado a esta petición. Una flecha con punta a la mitad indica esto.

2) Este objeto envía un mensaje a otro objeto que es una instancia de :estación_climatológica, para crear un reporte del clima. La instancia de :Controlador_coms se suspende de forma automática. 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 :Estación_climatológica envía un mensaje al objeto de :Datos_climatológicos para pedir los datos del clima.

4) El resultado es calculado y se regresa el control al objeto :Estación_climatológica. La flecha punteada indica retorno de control.

5) Este objeto envía un mensaje al :Controlador_coms para transferir el dato al sistema remoto. El objeto :estación_climatológica se suspende.

6) El objeto :Controlador_Coms envía el dato al sistema externo, a su vez recibe al acuse de recibo y se suspende de forma automática.

Page 25: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

DIAGRAMAS DE ESTADO

apagar esperar

calibrando

probando

transmitiendo

resumiendocoleccionando

reloj

Iniciar()

Terminar()

calibrar()

probar()

transmisión realizada

Colección realizada

Reporte_clima()

prueba completa

Resumen completo del clima

Calibración OK

Operación

Page 26: DISEÑO ORIENTADO A OBJETOS Un sistema orientado a objetos se diseña considerando la interacción entre ellos, tales objetos mantienen su propio estado local

ESPECIFICACIÓN DE LA INTERFAZ DEL OBJETO

Una parte importante del proceso de diseño es la especificación de las interfaces entre los componentes en el diseño. Se requieren especificar las interfaces de tal forma que los objetos y los subsistemas puedan ser diseñados en paralelo. Una vez que la interfaz ha sido especificada, los desarrolladores de otros objetos pueden considerar que la interfaz será implementada.