diseno orientado a objetos

36
Diseño Orientado a Objetos TEMA Universidad Agraria del Ecuador Escuela de Computacion e Informatica GRUPO : 9 CAMPOZANO ALVARADO CARLOS CEPEDA ANDRADE ERICK SANCHEZ ROMERO VICTOR

Upload: pepe-bancho

Post on 19-Jan-2016

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Diseno Orientado a Objetos

Diseño Orientado a Objetos

TEMA

Universidad Agraria del EcuadorEscuela de Computacion e Informatica

GRUPO : 9

CAMPOZANO ALVARADO CARLOS CEPEDA ANDRADE ERICK SANCHEZ ROMERO VICTOR

Page 2: Diseno Orientado a Objetos

Diseño Orientado a Objetos

El diseño de software Orientado a objetos requiere la definición de una arquitectura de software multicapa, la especificación de subsistemas que realizan funciones necesarias y proven soporte de infraestructura,

¿Qué es el diseño orientado a objetos?

Un sistema orientado a objetos utiliza las definiciones de las clases derivadas del modelo de análisis.El DO0 permite al ingeniero de software definir la arquitectura OO(orientada a objetos),en forma que maximize la reutilización; de esta manera, semejora la velocidad del desarrollo y lacalidad del producto terminado.

¿Por qué es importante?

¿Cuáles son los pasos?El DOO se divide en dos grandes actividades: diseño de sistema y diseño de objetos. El diseño de sistema crea la arquitectura del producto en una serie de capas, que cumplen funciones específicas del sistema.El diseño de objetos se centra en los detalles internos de cada clase, definición de atributos.

NOTA: conceptos importantes del diseño del software:-Abstracción -Ocultamiento de la información, -independencia -Funcional y modularidad.

Page 3: Diseno Orientado a Objetos

Diseño para sistemas orientados a objetos

La capa de mensajes.- Contiene detalles de diseño,que permite a cada objeto comunicarse con sus colaboradores.Esta capa establece interfaces externas e internaspara el sistema.

La capa de responsabilidades. Contiene estructuras de datos y diseños algorítmicos, para todos los atributos y operaciones de cada objeto.

La capa subsistema. Contiene una representaciónde cada uno de los subsistemas, para permitir al software conseguir sus requisitos definidos por el cliente

La capa de clases y objetos.- Contiene las jerarquía de las clases que permiten crear el sistema, también contiene representaciones de cada uno de los objetos.

Page 4: Diseno Orientado a Objetos

Los enfoques convencionales para el diseño aplican anotaciones y un conjunto de normas heurísticas para establecer para establecer correspondencia entre el modelo de análisis y el diseño.

El DOO aplica el diseño de datos(cuando se representan atributos), diseño arquitectónico( cuando se desarrolla un modelo de intercambio de mensajes), y el diseño procedimental(en el diseño de operaciones).

El enfoque convencional

VS

El enfoque OO

Es importante notar que la arquitectura de un diseño O0 tiene más que vercon la colaboración entre objetos que con el control deflujo entre componentes del sistema.

Page 5: Diseno Orientado a Objetos

Enfoque convencional vs Enfoque OO

El modelo de diseño

Transformación de un modelo de

análisis O0 a un modelo de diseño OO.

A

B

c

D

A

CB

D

Page 6: Diseno Orientado a Objetos

El diseño del subsistema se deriva considerando requisitos generales del cliente (representados en casos de uso).

Componentes que pueden usarse para comparar diversos métodos de diseño:

1.Representación de jerarquías de modulo.

2.Especificación de definiciones de datos

3. Especificación de la lógica procedimental

4.Indicación de secuencias de proceso

5.Representaciones de estado de objetos y transacciones

Page 7: Diseno Orientado a Objetos

6.Definición de clases y jerarquías

7.Asignación de operaciones a clase

8.Definición detallada de la operaciones.

9.especificación de conexiones de mensajes.

10.Identificación de servicios exclusivos.

Como existen muchos enfoques es difícil realizar una comparación

generalizada entre dos métodos.

Page 8: Diseno Orientado a Objetos

Asuntos del diseño

Bertrand Meyer sugiere 5 criterios para juzgar la capacidad que

posee un método de diseño en lograr la modularidad y los

relaciona con el modelo orientado a objeto:

DescomponibilidadLa facilidad con la cual un método de diseño ayuda al

diseñador para descomponer un gran problema en

subproblemas.

Comprensibilidad: Facilidad de comprensión de un

componenteSin referencia a otro información

o modulo

Continuidad: la facilidad de hacer pequeños

cambios en un programa y hacer que estos se

manifiesten por si mismos en cambios correspondiente en un modulo o en unos pocos.

Protección: Una característica arquitectónica que reducirá la propagación de efectos colaterales si ocurre un

error en un modulo dado

Componibilidad: El grado con el cual el método de

diseño asegura que los componentes del programa una

vez diseñados y construidos puedan usarse para crear otro

sistema

Page 9: Diseno Orientado a Objetos

Los módulos Se definen como unidades lingüísticas modulares, cuando «corresponden a unidades sintácticas en el lenguaje usado» [MEY90]. Es decir, el lenguaje de programación que se usará debe ser capaz de definir directamente la modularidad.

El Panorama de DO0En el panorama de DOO encontramos una gran variedad, de métodosde análisis y diseño orientados a objetos fue propuesta y utilizada durante los ochenta y los noventa. A continuación, haremos una breve revisión global de los primeros métodos de DOO:

Page 10: Diseno Orientado a Objetos

El método de Booch.[B0094]

Abarca un «proceso de micro desarrollo» y un <<proceso de macro desarrollo». En el contexto del diseño, el macro desarrollo engloba una actividad de planificación arquitectónica, que agrupa objetos similares en particiones arquitectónicas separadas.

El método de Rumbaugh.[RUM91]

Engloba una actividad de diseño que alienta al diseño a ser conducido a dos diferentes niveles de abstracción.El modelo de análisis se divide en subsistemas, los cuales se asignan a procesadores y tareas.

El método de Jacobson.[JAC92]

El diseño para ISOO (Ingeniería del software orientada a objetos) [JAC92]es una versión simplificada del método propietario, El modelo de diseño enfatiza la planificación para el modelo de análisis ISOO. En principio, el modelo idealizado de análisis se adapta para acoplarse al ambiente del mundo real.

Page 11: Diseno Orientado a Objetos

El método de Coad y Yourdon.

Éste método para DO0 [COA91], se desarrolló estudiando «cómo es que los diseñadores orientados a objetos efectivos» hacen su trabajo.La aproximación de diseño dirige no sólo la aplicación, sino también la infraestructura de la aplicación.

El método de Wirfs-Brock.

Wirfs-Brock, Wilkerson y Weiner [WIR90] definen un conjunto de tareas técnicas, en la cual el análisis conduce sin duda al diseño. Los protocolos para cada clase se construyen refinando contratos entre objetos.

Page 12: Diseno Orientado a Objetos

Etapas genéricas del DOO1. Describir cada subsistema y asignar a procesadores y

tareas.2. Elegir una estrategia para implementar la

administración de datos, soporte de interfaz y administración de tareas.

3. Diseñar un mecanismo de control, para el sistema apropiado.

4. Diseñar objetos creando una representación procedural para cada operación, y estructuras de datos para los atributos de clase.

5. Diseñar mensajes, usando la colaboración entre objetos y relaciones.

6. Crear el modelo de mensajería. 7. Revisar el modelo de diseño y renovarlo cada vez que

se requiera.

Page 13: Diseno Orientado a Objetos

NOTA : El diseño de sistema se centra en arquitecturade software y definición de subsistemas.

El diseño de objetos describe objetos, hasta un nivel en el cual puedan ser implementados,

en un lenguaje de programación.

Enfoque unificado para el DOODISEÑO DE SISTEMA DISEÑO DE OBJETO

Se centra en la arquitectura del software y definición de subsistemas.

Describe objetos, hasta un nivel en el cual puedan ser implementados en un lenguaje de programación.

1. Se extiende para considerar el diseño de interfaces, administración de datos con el sistema que se va a construir y administración de tareas para los subsistemas que se han especificado.

1. Se centra en la descripción de objetos y sus interacciones con los otros.

2. Una especificación detallada de las estructuras de datos de los atributos y diseño procedural de todas las operaciones, se crea durante el diseño de objetos.

3. La visibilidad para los atributos de la clase se definen, y las interfaces entre objetos se elaboran para definir los detalles de un modelo completo de mensajes

Page 14: Diseno Orientado a Objetos

Flujo de proceso para DOO

Diseño del sistema

Diseño de objetos

Diseño de la interfaz humana

Diseño de la gestión de datos

Diseño de la gestión de tareas

Análisis orientado a objetos

Page 15: Diseno Orientado a Objetos

Fases del proceso de diseño de sistema

Comunicación entre subsistemas

Componente de gestión de recursos

Componente de administración de datos

Componente de interfaz de usuario

Componente de administración de tareas

Asignación de concurrencia y subsistemas

Particionar el modelo de análisis

Page 16: Diseno Orientado a Objetos

Particionar el modelo de análisis

Criterios a tener en cuenta al momento de definir y diseñar los subsistemas

1.El subsistema debe tener una interfaz bien definida, a través de la cual se reduzcan todas las comunicaciones con el resto del sistema.

2.Con la excepción de un numero pequeño de “clases de comunicaciones”, las clases incluidas dentro del subsistema deben colaborar solo con otras áreas dentro del subsistema.

3.El número de subsistemas debe ser bajo

4.Un subsistema puede ser particionado internamente para ayudar a reducir la complejidad.

Enfoque de diseño para estratificación por capas

1.Establecer los criterios de estratificación por capas.

2.Determinar el número de capas.

3.Nombrar las capas y asignar susbsistemas a las capas.

4.Diseñar interfaces para cada capa

5.Refinar los subsistemas, para establecer la estructura de clases de cada capa

6.Definir el modelo de mensajería para la comunicación entre capas.

7.Revisar el diseño de capas, para asegurar que el acoplamiento sea mínimo.

8. Iterar para refinar el diseño de capas.

Page 17: Diseno Orientado a Objetos

Asignación de concurrencia y subsistemas

1. El sistema dinámico del modelo objeto-comportamiento provee una indicación de concurrencia entre clases o subsistemas.

2. Si las clases deben actuar en sucesos asincronicamemte y al mismo tiempo, se verán como concurrentes.

3. Cuando los subsistemas son concurrentes, existen dos tipos de alojamiento:

• Alojar cada subsistema en procesadores independientes

• Alojar los subsistemas en el mismo procesador y proporcionar soporte de concurrencia, sobre las características del sistema operativo.

Page 18: Diseno Orientado a Objetos

Componente de administración de tareas

Estrategias para el diseño de objetos que manipulan tareas concurrentes.

1.Se determinan las características de la tarea

2.Se define un coordinador de tarea y objetos asociados.

3.Se integra el coordinador y otras tareas

Plantilla básica de una tarea

1. Nombre de la tarea

2. Descripción

3. Prioridad

4. Servicios

5. Coordinado por...

6. Comunicados por ...

Page 19: Diseno Orientado a Objetos

Componente de interfaz de usuario

1. Las mayoría de las clases necesarias para crear una interfaz moderada ya existen y están disponibles, para el diseñador.

2. Una vez que el actor y su situación de uso se definen se identifica una jerarquía de comando.

3. La jerarquía de ordenes define la mayoría de las categorías del menú de sistema (barra de menús o la paleta de herramientas), y todas las sub-funciones, que estarán disponibles en el contexto de una categoría importante de menú de sistema (ventanas de menú)

Page 20: Diseno Orientado a Objetos

Componente de administración de datos

La administración o gestión de datos engloba dos áreas distintas de interés:

1. La administración de datos críticos para la propia aplicación

2. La creación de infraestructura para el almacenamiento y recuperación de objetos.

En general, la administración de datos se diseña en forma de capas. La idea es aislar los

requisitos de bajo nivel que manipulan las estructuras de datos, de los requisitos de alto nivel para manejar los atributos del sistema.

Page 21: Diseno Orientado a Objetos

Componente de gestión de recursos

1. Están disponibles una variedad de recursos diferentes para un sistema o producto OO; y, muchas veces, los subsistemas compiten por estos recursos al mismo tiempo.

2. Los recursos globales del sistema pueden ser entidades externas (unidad de disco, procesador) o abstracciones (base de datos,un objeto).

3. Sin importar la naturaleza del recurso, el ingeniero de software debe diseñar un mecanismo de control para ello.

Rumbaugh sugiere que cada recurso deba ser poseído por un “objeto guardián”, quien controlara el acceso al recurso.

Page 22: Diseno Orientado a Objetos

Comunicación entre subsistemas

Una vez que cada subsistema ha sido especificado, es necesario definir las colaboraciones que existen entre subsistemas.

• Listar cada petición que puede ser realizada por los colaboradores del subsistema.

• Para cada contrato, anotar las especificaciones (heredadas y privadas) que se requieren para implementar las responsabilidades que implica el contrato.

• Considerar un contrato a la vez, que incluya: Tipo de contrato (cliente – servidor , Peer to Peer)

Colaboradores (nombres de los subsistemas que son parte del contrato)

Clase (nombres de clases que proporcionan servicios denotados por el contrato)

Operaciones (nombre de operaciones que implementan los servicios)

Formato del mensaje (requerido para implementar la interacción entre colaboradores)

Page 23: Diseno Orientado a Objetos

Descripción de objetos

Una descripción del diseño de un objeto (instancia de clase) puede tomar una o dos formas:

1. Una descripción de protocolo que establece a interfaz de un objeto, definiendo cada mensaje que el objeto puede recibir y las operaciones que lleva a cabo cuando recibe un mensaje.

2. Una descripción de implementación que muestra detalles de implementación para cada operación implicada por un mensaje pasado a un objeto.

La descripción del protocolo no es nada mas que un conjunto de mensajes y un comentario correspondiente para cada mensaje.

Page 24: Diseno Orientado a Objetos

Diseño de algoritmos y estructura de datos

Una variedad de representaciones contenidas en el modelo de análisis y el diseño del sistema, proveen una especificación para todas las operaciones y atributos.

1. Se crea un algoritmo para implementar la especificación para cada operación. En muchas ocasiones el algoritmo es una simple secuencia computacional o procedural, que puede ser implementada como un modulo de software.

2. Las estructuras de datos se diseñan al mismo tiempo que los algoritmos. Ya que las operaciones manipulan los atributos de una clase, el diseño de estructuras de datos, que reflejan mejor los atributos, tendrán un fuerte sentido en el diseño algorítmico de las operaciones correspondientes.

Page 25: Diseno Orientado a Objetos

Modelado de clases

No se muestran todos los atributos y operaciones

No se muestran todos los atributos y operaciones

Nombre

Dirección

Estado

ObtenerCuentas():ConjuntoDeCuentas

EstablecerNombre(cadena Nombre)

ObtenerNombre():Cadena

Cliente

Page 26: Diseno Orientado a Objetos

Generalización

No se muestran todos los atributos y operaciones

No se muestran todos los atributos y operaciones

Deposito

Cuenta

CuentaCorriente

Page 27: Diseno Orientado a Objetos

Producto ManufacturadoEl diamante vació representa agregación

El diamante vació representa agregación

Componente

Agregación

Page 28: Diseno Orientado a Objetos

Producto Manufacturado

Componente

ComponenteB ComponenteCComponenteA

Generalización y Agregación

Page 29: Diseno Orientado a Objetos

Cliente

ColecionCuentas

Composición

Page 30: Diseno Orientado a Objetos

Universidad

Estudiante

Documentando roles

1

1..*

Hospedar

estudiante miembro

Asociación

Page 31: Diseno Orientado a Objetos

Administrador

Iniciar proyecto

Emitir informe de estado

Seleccionar plantilla

Terminar proyecto

Casos de uso

Page 32: Diseno Orientado a Objetos

Casos de uso utilizando otro caso de uso

Validar producto

Consultar producto

Consultar nivel de stock

Consultar detalles de orden

“uses”

“uses”

“uses”

Page 33: Diseno Orientado a Objetos

Colaboraciones

ViejoCliente:

ClienteBanco

Administrador:Empleado

Administrador:Empleado Informe ventasInforme ventas Transacción ventasTransacción ventas

Actualizar informe

Crear transacción

Cambiar detalles

Un diagrama de secuencias sencillo

Page 34: Diseno Orientado a Objetos

Colaboraciones

ViejoCliente:

ClienteBanco

CuentaCuentaInforme balanceInforme balance

GenerarInformeBalance

Otro ejemplo de diagrama de secuencias

Comprobar CuentaValida

Consultar cuenta

Page 35: Diseno Orientado a Objetos

Apreciación Global• El DOO se divide en dos grandes actividades:

Diseño del sistema

Diseño de objetos.

• El diseño de sistema crea la arquitectura del producto definiendo una serie de “capas”, que cumplen funciones especificas del sistema e identifica las clases que son encapsuladas por los subsistemas que residen en cada capa. Además incorpora la especificación de tres componentes:

La interfaz de usuario

La gestión de datos

Mecanismos de administración de tareas

• El diseño de objetos se centra en los detalles internos de cada clase, definición de atributos, operaciones y detalles de los mensajes.

Page 36: Diseno Orientado a Objetos

GRACIAS POR SU ATENCION