1) Diseo: proceso de aplicar distintas tcnicas y principios con el propsito de definir un
dispositivo/proceso. 2) Objetivo del diseador: producir un modelo de una entidad que se va a construir 3) El diseo de sw cambia continuamente a medida que evolucionan nuevos mtodos, mejores anlisis
DISEO E INGENIERIA DEL SW 4) El diseo del sw es la primera de las tres actividades tcnicas DISEO, CODIFICACION Y PRUEBA necesarias para construir y verificar el sw. El diseo es el lugar donde se fomenta la calidad en el desarrollo de sw 5) Que produce la fase de diseo? Diseo de datos Diseo arquitectnico Diseo de interfaz Diseo procedimental 6) Diseo de datos: La ER y el diccionario de datos son la base para el diseo de datos 7) Diseo arquitectnico: define la relacin entre los principales elementos estructurales del programa. Se obtiene del DFD 8) Diseo de interfaz: describe como se comunica el sw consigo mismo, con los sistemas que operan con l y con los operadores que lo emplean. Esta fase obtiene informacin a travs de DFD Y control. 9) Diseo procedimental: transforma elementos estructurales de la arquitectura del programa en una descripcin procedimental de los componentes de sw. Obtiene informacin de EP, EC, Y DTE
EL PROCESO DE DISEO 10) Se evalua la calidad del diseo con una serie de revisiones tcnicas formales. 11) Tres caractersticas que sirven de directrices para la evaluacin de un buen diseo: *debe implementar todos los requisitos contenidos en el modelo de anlisis y todos los requisitos que desea el cliente *debe ser una gua que puedan leer y entender los que construyan el cdigo y los que prueban y mantienen el sw *debera proporcionar una completa idea de lo que es el sw
CRITERIOS TECNICOS PARA UN BUEN DISEO 12) *Presentar una organizacin jerarquica que haga un buen uso del componentes del sw *ser modular *realizar modulos que presentes caractersticas funcionales
CARACTERISTICAS DE LOS METODOS DEL DISEO 13) *Un mecanismo para la transformacin de un modelo de anlisis en una representacin del diseo *notacin para representar componentes funcionales y sus interfaces *heursticas para el repartimiento y la particin *consejos para valorar la calidad
PRINCIPIOS DEL DISEO 14) *el diseo no debe inventar nada que ya este inventando: reutilizar *el diseo debera presentar uniformidad e integracion *el diseo debera estructurarse para admitir cambios *se debera valorar la calidad del diseo mientras se crea, no despus de terminarlo *se debera revisar el diseo para minimizar los errores conceptuales 15) Cuando se aplican estos principios se crea un diseo que muestra factores de calidad externos e internos *Externos: propiedades del sw que puedan observar los usuarios (velocidad-fiabilidad- utilidad) *internos: son importantes para los ing del sw. Perspectiva tcnica
CONCEPTOS DE DISEO 16) Cada fase del proceso de ing del sw es un refinamiento en el nivel de abstraccin de la solucin sw 17) Refinamiento: ayuda al diseador a revelar detalles de bajo nivel a medida que progresa el diseo 18) Abstraccion: permite al diseador especificar procedimientos y datos y suprimir detalles de bajo nivel 19) Niveles de abstraccin *procedimental: secuencia de instrucciones que tiene una funcin especifica y limitada *datos: coleccin determinada de datos que describen un objeto de datos *control: mecanismo de control del programa sin especificar los detalles internos. 20) Modularidad: divide al sw en componentes denominados mdulos. Un sistema puede desarrollarse aunque su implementacin sea monolitica 21) Criterios para evaluar un mtodo de diseo para definir un sistema modular eficaz: Capacidad de descomposicin modular Capacidad de empleo de componentes modulares Capacidad de comprensin modular Proteccin modular 22) Arquitectura del sw: el diseo de sw debe crear una versin arquitectnica de un sistema
22) Propiedades de un diseo arquitectnico: Estructurales: define los componentes de un sistema, la manera que se empaquetan estos componentes y como se relacionan con los otros Extra-funcionales: ocuparse en como conseguir rendimiento, capacidad, fiablidad, seguridad, etc Familias de sistemas relacionados: debera tener la capacidad de utilizar bloques de construccion arquitectnica reutilizados 23) El modelo arquitectnico puede representarse usando uno o mas modelos diferentes: *estructurales: coleccin organizada de componentes de programa *dinmicos: aspectos del comportamiento de la arquitectura del programa *proceso: diseo del negocio o del proceso tcnico que debe tener el sistema *funcionales: pueden usarse para representar la jerarqua funcional de un sistema 24) Jerarqua de control (estructura de programa): representa la organizacin de modulos e implica una jerarquia de control *diagrama de arbol* 25) Particin estructural: la particin del programa deber ser horizontal y vertical 26) Particin horizontal: define ramas separadas de la jerarqua modular para cada funcin principal del programa. Los modulos de control se usan para coordinar la comunicacin entre ellos y la ejecucin de las funciones del programa. El enfoque define 3 particiones: *entrada *transformacin de datos *salida Beneficios Desventajas Proporciona sw mas fcil de probar -causa a menudo el paso de mas datos Lleva a un sw mas fcil de mantener a travs de interfaces de modulos y Propaga menos efectos secundarios puede complicar el control globla del Proporciona sw mas fcil de ampliar programa
27) Particion vertical: (descomposion en factores) : Los mdulos del nivel superior deberan realizar funciones de control y poco trabajo de procesamiento. Los mdulos que residen en la parte baja deberan ser los trabajadores, realizando todas las tareas de entrada, clculo y salida. Estas arquitecturas verticales tienen menos probabilidad de ser susceptibles a efectos secundarios cuando se hacen cambio y tendrn por lo tanto mejor capacidad de mantenimiento, un factor clave para la calidad. 28) Estructura de datos: representacin de la relacin lgica entre los elementos individuales de datos. Como las alternativas de organizacin, mtodos de acceso, capacidad de asociacin y procesamiento de la informacin. 29) Estructuras clsicas que forman la base para construir estructuras ms sofisticadas: - elemento escalar forma ms simple de estructura de dato - vector secuencial (matriz) elemento escalar como una lista contigua - - lista enlazada punteros - estructura de datos jerrquica (pila) contiene: listas enlazadas con escalares, vectores y matrices 30) Procedimiento del software: debe proporcionar una especificacin exacta del procesamiento, incluyendo secuencia de acontecimientos, puntos exactos de decisin, operaciones repetitivas e incluso la organizacin/estructura de los datos. 31) Ocultamiento de la informacin: implica que se puede conseguir una modularidad eficaz definiendo un conjunto de mdulos independientes que se comunican entre ellos slo la informacin necesaria para conseguir la funcin del software.
DISEO MODULAR EFECTIVO 32) Reduce la complejidad y facilita los cambios, hace ms fcil la implementacin. 33) independencia funcional: se consigue desarrollando mdulos con una funcin nica. Los mdulos independientes son fciles de mantener y probar por que los efectos causados por las modificaciones son limitados, la propagacin de errores es reducida y se pueden utilizar mdulos reutilizados. Se mide usando dos criterios cuantitativos: cohesin y acoplamiento 34) Cohesin: Es una extensin del concepto de ocultacin de informacin. Un mdulo con cohesin realiza una sola tarea dentro de un procedimiento de sw requiriendo poca interaccin con los procedimientos que realizan en otras partes del programa. un mdulo con cohesin debera realizar una sola tarea. - Coincidentalmente cohesivo: mdulo que realiza un conj de tareas poco relacionadas pero que tiene algo que ver. - Cohesin lgica: mdulo que contiene tareas relacionadas lgicamente. - Cohesin temporal : mdulo que contiene tareas relacionadas por el hecho que deben realizarse en el mismo intervalo. - Cohesin procedimental: Cuando los elementos de procesamiento estn relacionados y deben ejecutarse en un orden especfico. - Cohesin de comunicacin: cuando todos los elementos de procesamiento se concentran en un area de la estructura de datos
35) Acoplamiento: medida de interdependencia relativa entre los mdulos. En el diseo intentamos conseguir el menor acoplamiento. Las conexiones sencillas entre mdulos son ms fciles de entender.
HEURISTICAS DE DISEO PARA UA MODULARIDAD EFECTIVA.
36) La arquitectura del programa se manipula de acuerdo con un conj de directrices: 1) evaluar la primera iteracin de la estructura del programa para reducir el acoplamiento y mejorar la cohesin. 2) Intentar minimizar las estructuras con mucho grado de salida: intentar concentrar a medida que aumenta la profundidad. 3) Mantener el alcance del efecto de un mdulo dentro del alcance del control de ese mdulo. 4) Evaluar las interfaces de los mdulos para reducir la complejidad, la redundancia y mejorar la consistencia. 5) Definir mdulos cuya funcin sea predecible, pero evitar mdulos que sean demasiados restrictivos. 6) Intentar conseguir mdulos de entrada controlada evitando conexiones patolgicas 7) Empaquetar el soft basndose en las restricciones del diseo y los requisitos de portabilidad.