La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción a la Ingeniería del Software 1 El Diseño de Software Caracteristicas: Proceso Creativo Requiere de experiencia e ingenio Necesita del aprendizaje.

Presentaciones similares


Presentación del tema: "Introducción a la Ingeniería del Software 1 El Diseño de Software Caracteristicas: Proceso Creativo Requiere de experiencia e ingenio Necesita del aprendizaje."— Transcripción de la presentación:

1 Introducción a la Ingeniería del Software 1 El Diseño de Software Caracteristicas: Proceso Creativo Requiere de experiencia e ingenio Necesita del aprendizaje a través del estudio de sistemas existentes Etapas: Estudiar y entender el problema Conseguir mas de una solución factible Describir cada abstracción usada en la solución

2 Introducción a la Ingeniería del Software 2 El Proceso de Diseño PrimerDiseñoInformal DiseñoInformal Diseño mas Formal Diseñoterminado

3 Introducción a la Ingeniería del Software 3 Objetivos del Proceso de Diseño Formalizar la especificación Describir el sistema bajo distintos niveles de abstracción Especificar como se comporta el sistema y como ejecuta las funciones levantadas en la especificación Descomposición Errores y Omisiones son descubiertos en las primeras etapas del diseño.

4 Introducción a la Ingeniería del Software 4 Las Actividades del Proceso de Diseño Diseño Arquitectural. Se definen los subsistemas y sus relaciones y se documentan Especificación Abstracta. Para cada subsistema se definen sus funcionalidades y las restricciones sobre las cuales debe operar Diseño de la Interfaz. Para cada subsistema se diseña y documenta su interfaz con otros subsistemas Diseño de Componentes. Los servicios que provee el subsistema son particionados en componentes Diseño de la Estructura de Datos. La estructura de data a ser implementada en el sistema es diseñada en detalle y documentada Diseño Algorítmico. Los algoritmos usados para proveer los servicios son diseñados en detalles y documentados

5 Introducción a la Ingeniería del Software 5 Estas Actividades son realizadas con cada subsistema, hasta que los componentes identificados pueden ser llevados directamente a un lenguaje de programación. La práctica recomendada:  Diseño Estructurado: TOP - DOWN  Diseño Orientado a Objetos: Componentes Reusables Las Actividades del Proceso de Diseño

6 Introducción a la Ingeniería del Software 6 El Método Estructurado:  Ampliamente usado.  Reducción de Costos  Usa Notación Estándar  Asegura que el diseño sigue las formas estándar  Envuelve documentación de diseño diagramatizada  Es soportado por cantidad de herramientas CASE (Computer Aided Software Engineering) Los Métodos son notaciones estándar que incorporan una buena práctica. Métodos de Diseño

7 Introducción a la Ingeniería del Software 7 Existen un gran número de métodos, pero la mayoría soporta:  Vistas del Flujo de la Data, en donde el sistema es modelado usando la transformación de la data a través como esta es procesada.  Vista del Diagrama Entidad Relación, el cual es usado para describir las estructuras de datos a ser usadas.  Una Vista Estructural, donde los componentes del sistema y sus relaciones son documentadas. Métodos de Diseño

8 Introducción a la Ingeniería del Software 8 El diseño de Software es un modelo de un sistema del mundo real en el cual participan entidades y relaciones Hay tres tipos de notaciones básicas que son ampliamente usadas para la documentación del diseño:  Notación Gráfica  Lenguajes de Descripción de Programas  Texto Informal Métodos de Diseño

9 Introducción a la Ingeniería del Software 9 La estrategia mas usada para desarrollo de sw es la de Funcional o Estructurada. Descomposición del diseño en Componentes Funcionales Información de los Estados del Sistema con un área de datos compartidos En 1972 Parnas sugiere una estrategia alternativa (diseño Orientado a Objetos) con la versión de Smalltalk (Goldberg & Robson). Pero esta estrategia es adoptada a mediados de los 80. Estrategias de Diseño

10 Introducción a la Ingeniería del Software 10 Diseño Funcional o Estructurado:  Es realizado a través de puntos de vistas funcionales  Comienza con un alto nivel de abstracción que va siendo progresivamente refinado Diseño Orientado a Objetos:  El sistema es visto como una colección de objetos mas que como funciones.  Cada objeto maneja su propia información  Los Objetos poseen un conjunto de atributos que definen su estado y las operaciones que actúan sobre ellos.  Los objetos son miembros de una clase  Existe la herencia y la composición  Los objetos se comunican a través del paso de mensajes Características de las Estrategias de Diseño

11 Introducción a la Ingeniería del Software 11 Se dice que es un diseño con calidad, si es:  Mantenible:facilidad de modificar o añadir funcionalidades  Entendible  Modular: los cambios tienen un efecto local  Cohesivo: todas las partes de una componente del sistema tienen relación lógica  Acoplado: relación/unión entre los componentes. La cual debe ser baja “Los atributos de calidad no están atados a las estrategias de diseño”. Calidad del Diseño

12 Introducción a la Ingeniería del Software 12 La Cohesión es una medida de relación lógica entre las partes de un componente, la cual contribuye con la implementación Existen diferentes niveles de cohesión (Constantino y Yourdon):  Cohesión Coincidencial, las partes de una componente no están relacionadas pero están empaquetados dentro de una única componente.  Asociación Lógica, componentes que desarrollan similares funciones como salidas, manejos de errores, etc. Son puestas juntas en una misma componente.  Cohesión Procedimental, los elementos en una componente completan una única secuencia de control Cohesión

13 Introducción a la Ingeniería del Software 13  Cohesión Comunicacional, todos los elementos de una componente operan sobre una misma data de entrada o producen una misma data de salida.  Cohesión Secuencial, la salida desde un elemento de la componente sirve de entrada para cualquier otro elemento.  Cohesión Funcional, cada una de las partes de una componentes son necesarias para la ejecución de una función. Por ser desarrollado por Constantine & Yourdon, la naturaleza de estos niveles es funcional. Sin embargo, existen niveles de cohesión para el enfoque Orientado a Objetos. Cohesión

14 Introducción a la Ingeniería del Software 14 Un objeto Cohesivo, es aquel en donde una entidad es representada y todas las operaciones sobre la entidad están incluidas dentro del objeto. Una cohesión de clase puede ser definida como:  Cohesión de Objeto, Cada operación provee funcionalidad la cual permite a los atributos del objeto ser modificados, inspeccionados o usados como base para proveer un servicio. La cohesión es una característica deseable debido a que esta significa que una unidad representa una parte de la solución del problema Cohesión

15 Introducción a la Ingeniería del Software 15 Está relacionado con la cohesión. Indica la fuerza de interconexión entre las unidades de programa. Como regla general, los módulos son altamente acoplados sí hacen uso de variables compartidas o sí intercambian información de control. Modulo A Modulo A Modulo D Modulo D Modulo B Modulo B Modulo C Modulo C Area de Data Compartida Alto Acoplamiento Acoplamiento

16 Introducción a la Ingeniería del Software 16 Bajo acoplamiento es ejecutado para asegurar que la información de representación está atada a una componente y que su interfaz de datos con otras unidades es vía una lista de parámetros. Modulo A Data de A Modulo A Data de A Modulo B Data de B Modulo B Data de B Modulo D Data de D Modulo D Data de D Modulo C Data de C Modulo C Data de C Bajo Acoplamiento Acoplamiento

17 Introducción a la Ingeniería del Software 17 Los cambios en el diseño de una componente implican que la persona responsable de hacer el cambio entienda la operación de dicho componente. Este entendimiento está atado a unas características:  Cohesión, Puede el componente ser entendido sin referencias de otro componentes?  Nombre, Los nombres de los componentes son significativos?  Documentación, La documentación de la componente muestra una relación clara entre las entidades del mundo real y la componente?  Complejidad, Cuan complejos son los algoritmos para implementar la componente? Ser Entendible

18 Introducción a la Ingeniería del Software 18  Si un diseño va a ser mantenido, este debe ser adaptable. Esto implica, que sus componentes deben ser de bajo acoplamiento.  La adaptabilidad significa, que el diseño debe estar muy bien documentado, que la documentación sea entendible y consistente con la implementación y la implementación debe estar escrita en una forma leíble.  Un diseño adaptable debe tener alto nivel de visibilidad y deben estar determinada las relaciones entre los diferentes niveles. Adaptabilidad

19 Introducción a la Ingeniería del Software 19  Debe ser fácil incluir modificaciones tanto al diseño como al documento de diseño.  Las componentes deben ser autocontenidos. Una componente debe ser de bajo acoplamiento y solamente cooperar con otras componentes bajo el paso de mensajes. Adaptabilidad


Descargar ppt "Introducción a la Ingeniería del Software 1 El Diseño de Software Caracteristicas: Proceso Creativo Requiere de experiencia e ingenio Necesita del aprendizaje."

Presentaciones similares


Anuncios Google