sesion 3 conceptosclavesdeanálisisydiseño

34
Conceptos Clave de Análisis y Diseño

Upload: julio-pari

Post on 12-Jun-2015

147 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sesion 3 conceptosclavesdeanálisisydiseño

Conceptos Clave de Análisis y Diseño

Page 2: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Abstracción Es una representación de un objeto

del mundo real. No es una descripción completa sino una que es útil para una aplicación o propósito específico. Separa lo relevante para nuestro estudio.

Page 3: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Abstracción Criterios para decidir sobre la

información relevante: Contexto: ¿quién usará el objeto?

¿cómo lo usará?, ¿por qué necesita el objeto?. Si el objeto es un aula, ¿se necesitan las dimensiones de la misma?.

Detalle: ¿qué tanto detalle necesito?. Tiempo: ¿cuánto necesito para hacer

el seguimiento del objeto?.

Page 4: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Abstracción : describir objeto Ejem. - Liste la información necesaria

acerca de un auto para tres dominios de problema diferentes: Información acerca de un auto que la

división de motores de vehículos requiere.

Información acerca de un auto que un estacionamiento requiere.

Información acerca de un auto que un vendedor de autos requiere.

Page 5: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Encapsulamiento Conocido como “ocultamiento de la

información” (Information hidding), porque la implementación del objeto está oculta.

Pero hay algo mas importante: “lo que el objeto expone”.

Propósito e interfase. Interfase : la parte visible de una clase.

Usada para describir la signatura pública de las operaciones en una clase.

Page 6: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Encapsulamiento Muchos objetos comparten la misma

interfase pero tienen un propósito distinto: Ejem., El control de Televisión y de una

video grabadora. El diseño basado en

encapsulamiento es clave para crear objetos reusables e intercambiables.

Page 7: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Encapsulamiento Definición de un objeto en dos fases:

Definir una vista encapsulada del objeto definiendo solo su propósito e interfase.

Definir el interior, la implementación de los datos y el comportamiento que soporte al propósito y la interfase.

La implementación puede variar en el tiempo la interfase y propósito son mas estables.

Page 8: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Encapsulamiento Ejemplo: Teléfono

Lo que expone: Propósito: Permitir la comunicación a través de una

línea telefónica. Interfases:

Iniciar una llamada Terminar una llamada Hacer una llamada

Lo que oculta: Implementación de la manipulación de botones a

señales electrónicas y los datos usados para convertir señales.

Implementación del inicio de la llamada y los datos usados para ejecutar la conexión.

Los datos de identificación del llamador

Page 9: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Encapsulamiento Ejercicio:

Identificar los aspectos de cada uno de los siguientes dispositivos que deban ser expuestos u ocultados:

Televisor Videograbadora.

Modele sus respuestas.

Page 10: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Cohesión Es una medida del grado al cual todos las

partes de un objeto soportan un único propósito. Alta cohesión significa que todos los elementos en el objeto soportan el mismo propósito. Baja cohesión significa que diferentes elementos soportan diferentes propósitos.

Puede ser aplicada a cualquier entidad – no solo a objetos – incluyendo operaciones, aplicaciones, componentes, subsistemas y sistemas.

Page 11: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Cohesión Cuando los objetos tienen que

manejar múltiples responsabilidades, son menos flexibles, incurren en overhead al jugar con muchas tareas y trabajan menos eficientemente; como cuando se nos asignan diversas y diferentes tareas en nuestro trabajo en vez de enfocarnos en nuestra especialidad.

Page 12: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Cohesión Las organizaciones que necesitan de

máxima flexibilidad tienden a tener alta cohesión. Alta cohesión = un único propósito para cada objeto, soporta el ensamble rápido de objetos para crear nuevos componentes y aplicaciones.

Los principios de cohesión se aplican igualmente a todos los niveles de abstracción.

Page 13: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Cohesión ¿cuánta información debería incluir en un

objeto? Solo la información necesaria para soportar el

único propósito del objeto. ¿cuándo debería partirse un objeto?

Cuando es objeto es responsable de mas un propósito.

¿cuándo debería juntar múltiples objetos? Cuando los objetos sean fragmentados y no

puedan cumplir un propósito sin la ayuda constante de otro objeto.

Page 14: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Acoplamiento Es una medida del grado de dependencia

entre objetos. Dependencia significa que un objeto necesita los datos o la funcionalidad poseída por otro objeto.

Bajo acoplamiento significa bajo grado de dependencia y alto acomplamiento significa alto grado de dependencia. Acomplamiento : una medida del grado de

dependencia entre los elementos del modelo.

Page 15: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Acoplamiento Si un cambio en un objeto necesita

cambios en otro objeto, el segundo objeto es dependiente del primero. Ej. Si la interfase de un servidor cambia la aplicación cliente probablemente no trabajará adecuadamente. La aplicación cliente depende del servidor para funcionar adecuadamente.

Page 16: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Acoplamiento El acoplamiento tiene un efecto directo

sobre el mantenimiento. Acoplamiento alto resulta en un efecto de onda, esto es cambios en un objeto necesitarán cambios (o al menos, pruebas) de todos los objetos asociados.

Se puede lograr acoplamiento débil asignando a un objeto solo el comportamiento que cumple con el propósito del objeto (alta cohesión).

Page 17: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Acoplamiento Evitar incluir comportamiento

simplemente porque ellos sean necesarios para el proceso en el que participa el objeto. Ejem. Proceso de matrícula y

objetos que participan: curso, profesor, aula, alumno

Page 18: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Cohesión y Acoplamiento Deberían evaluarse siempre juntos. Acoplamiento débil también se puede

lograr fácilmente por medio de baja cohesión, esto es, atiborrando todo en un solo objeto de modo que no se necesite ayuda de ningún otro objeto.

Alta cohesión puede resultar en muchos objetos pequeños que no puedan hacer nada sin tomar en cuenta a otros objetos. ....

Page 19: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Cohesión y Acoplamiento ... El overhead de comunicación

destruye el rendimiento de la aplicación. La solución óptima es un compromiso entre alta cohesión y bajo acoplamiento.

Estos dos conceptos son factores en la creación de patrones de diseño. En un patrón de diseño cada objeto tiene una responsabilidad específica, esto es, alta cohesión.

Page 20: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Cohesión y Acoplamiento La colección de objetos tiene un

patrón predecible de colaboración o comunicación. El patrón de colaboración se basa en la naturaleza específica del acoplamiento entre los objetos, esto es, la ayuda que necesita cada objeto de los otros objetos.

Page 21: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Acoplamiento Débil ó Fuerte

Un gerente de proyecto asigna tareas a programadores de acuerdo con sus habilidades y experiencia. Los programadores reportan sus progresos al gerente de proyectos de modo que pueda hacer el seguimiento del progreso de acuerdo a un plan y hacer los ajustes necesarios

Page 22: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Un gerente de proyectos asigna tareas a programadores de acuerdo a sus habilidades y experiencia. El gerente de proyecto usa los asignamiento para mejorar y adicionar habilidades a cada programador. A medida que cada programador ejecuta cada tarea, el gerente de proyecto evalúa periódicamente el progreso y hace sugerencias y/o correcciones como sean necesarias.

Acoplamiento Débil ó Fuerte

Page 23: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Un gerente de proyecto asigna tareas a programadores de acuerdo a sus habilidades y experiencia. El gerente de proyecto reporta al departamento de planillas el tiempo que los miembros del equipo gastan en el proyecto. El departamento de planillas produce cheques quincenales. El Gerente de proyecto distribuye los cheques a los miembros del equipo.

Acoplamiento Débil ó Fuerte

Page 24: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Un gerente de proyecto asigna tareas a programadores de acuerdo con sus habilidades y experiencia. El gerente de proyecto reporta al departamento de planillas el tiempo que los miembros del equipo gastan en el proyecto. El departamento de planillas necesita las cifras de la labor planeada del proyecto así como las cifras de la labor actual para actualizar el plan financiero de la compañía sobre una base quincenal.

Acoplamiento Débil ó Fuerte

Page 25: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Cuando el departamento de planillas detecta una desviación de mas del 10%, solicita una justificación formal al gerente de proyecto

Acoplamiento débil bajo grado de dependencia entre objetos.

Acoplamiento fuerte alto grado de dependencia entre objetos.

Acoplamiento Débil ó Fuerte

Page 26: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Agregación Describe un ensamble de objeto

donde el todo (el ensamblado) es mas que la suma de las partes.

La agregación no tiene reflejo en el código. La implementación se ve como cualquier otra asociación.

Page 27: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Agregación Cuando se desea que las partes

estén disponibles para uso aún cuando el agregado ó todo no exista agregación débil.

Si las partes existen solo si forman parte del todo Agregación fuerte, o composición.

Page 28: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Agregación débil Los jugadores pueden

participar en muchos equipos al mismo tiempo. Por ejemplo ellos pueden jugar por la liga de la ciudad y por el equipo de una compañía. Cuando un equipo desaparece los jugadores aún existen y pueden reasignarse a otros equipos.

Page 29: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Agregación fuerte Composición

Los capítulos pertenecen a un libro específico. Sin el libro los capítulo carecen de contexto y pierden su significado. Si el libro es borrado los capítulos son borrados con el.

Page 30: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Generalización Un tractor es un tipo de Vehículo, un

aeroplano es una clase de vehículo. Si todas las propiedades del tractor y el aeroplano fueran iguales, entonces ellos podrían ser instancias de la misma clase, pero ellos solo comparten algunas propiedades. En este caso se generaliza las

propiedades compartidas

Page 31: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Generalización El término generalización es usado

de otra forma. Una generalización es una estructura, esto es, una jerarquía de clases.

Page 32: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Generalización La clase vehículo define las propiedades que

botes, tractores y aeroplanos tienen en común tales como fabricante, modelo y capacidades de aceleración y desaceleración.

Vehículo

Bote Tractor Aeroplano

Page 33: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Generalización El bote, tractor y aeroplano

contienen solo las propiedades adicionales que las distinguen de los otros tipos de vehículos.

Page 34: Sesion 3 conceptosclavesdeanálisisydiseño

CAL/Fundamentos

Generalización Generalizar significa identificar las

propiedades que un grupo de objetos tiene en común. Especializar significa identificar las propiedades que distinguen objetos similares de otros.

La generalización no es un tipo de asociación. Una asociación puede instanciarse como enlace entre dos objetos. Una generalización conecta dos clases de definiciones que deben usarse juntas para crear un único objeto.