Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Sesion 2 2 conceptos claves de analisis y diseno

657 views

Published on

  • Be the first to comment

  • Be the first to like this

Sesion 2 2 conceptos claves de analisis y diseno

  1. 1. Conceptos Claves de Análisis y Diseño Lic. César Alcántara Loayza
  2. 2. 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.CAL/Fundamentos
  3. 3. Abstracción  Criterios para decidir sobre la información necesaria:  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?.CAL/Fundamentos
  4. 4. 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.CAL/Fundamentos
  5. 5. 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.CAL/Fundamentos
  6. 6. 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.CAL/Fundamentos
  7. 7. Encapsulamiento  La 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.CAL/Fundamentos
  8. 8. Encapsulamiento  Ejercicio:  Identificar los aspectos de cada uno de los siguientes dispositivos que deban ser expuestos u ocultados:  Televisión  Videograbadora.  Modele sus respuestas.CAL/Fundamentos
  9. 9. Encapsulamiento  Ejemplo: Teléfono  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  Oculta:  Implementación de la manipulación de botones a señales electronicas y los datos usados para convertir señales.  Implementación del inicio de la llamada y los datos usados para ejecutar la conexión.CAL/Fundamentos  Los datos de identificación del llamador
  10. 10. 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.CAL/Fundamentos
  11. 11. 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.CAL/Fundamentos
  12. 12. 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 de modelamiento.CAL/Fundamentos
  13. 13. 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.CAL/Fundamentos
  14. 14. Acoplamiento  Es una medida del grado de dependencia entre objetos. Dependencia significa que un objeto necesita los datos o la funcionalidad poseida 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.CAL/Fundamentos
  15. 15. 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.CAL/Fundamentos
  16. 16. Acoplamiento  El acoplamiento tiene un efecto directo sobre el mantenimiento. Acoplamiento apretado 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).CAL/Fundamentos
  17. 17. Acoplamiento  Evitar incluir comportamiento simplemente porque ellos sean necesarios para el proceso en el que participa el objeto.CAL/Fundamentos
  18. 18. Cohesión y Acoplamiento  Deberían evaluarse siempre juntos.  Acoplamiento débil se puede lograr facilmente 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. ....CAL/Fundamentos
  19. 19. 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.CAL/Fundamentos
  20. 20. 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.CAL/Fundamentos
  21. 21. Acoplamiento Débil ó Apretado  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 necesariosCAL/Fundamentos
  22. 22. Acoplamiento Débil ó Apretado  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.CAL/Fundamentos
  23. 23. Acoplamiento Débil ó Apretado  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.CAL/Fundamentos
  24. 24. Acoplamiento Débil ó Apretado  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 asi como las cifras de la labor actual para actualizar el plan financiero de la compañía sobre una base quincenal.CAL/Fundamentos
  25. 25. Acoplamiento Débil ó Apretado  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 apretado  alto grado de dependencia entre objetos.CAL/Fundamentos
  26. 26. 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.CAL/Fundamentos
  27. 27. Agregación  Cuando se desea que las partes esten diponibles para uso aún cuando el agregado ó todo no exista agregación debil.  Si las partes existen solo si forman parte del todo  Agregación fuerte, o composición.CAL/Fundamentos
  28. 28. 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.CAL/Fundamentos
  29. 29. 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.CAL/Fundamentos
  30. 30. 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 compartidasCAL/Fundamentos
  31. 31. 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.CAL/Fundamentos
  32. 32. Generalización  La clase vehículo define las propiedades que botes, tractores y aeroplanos tienen en común tales como manufacturador, modelo y capacidades de aceleración y desaceleración.Vehículo Bote Tractor AeroplanoCAL/Fundamentos
  33. 33. Generalización  El bote, tractor y aeroplano contienen solo las propiedades adicionales que las distinguen de los otros tipos de vehículos.CAL/Fundamentos
  34. 34. 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.CAL/Fundamentos

×