DISEÑO DE PROCESOS TEMA 6 INTRODUCCIÓN AL DISEÑO DE SISTEMA PASAR DEL QUÉ AL CÓMO OBJETIVOS DEL DISEÑO: QUE FUNCIONE QUE SEA MANTENIBLE QUE ESTÉ DOCUMENTADA QUE SE PUEDA PROBAR PREPARAR EL CAMINO A LA IMPLEMENTACIÓN INTRODUCCIÓN AL DISEÑO DE SISTEMA UTILIZAMOS DIVERSAS TÉCNICAS: DIAGRAMAS DE CUADRO DE CONSTANTINE (PROCESOS) SE BASA EN PRINCIPIOS BÁSICOS DEL DESARROLLO (DIVIDE Y VENCERÁS) 1. DESCOMPOSICIÓN 2.SOLUCIÓN DEL PROBLEMA 3.INTEGRACIÓN EN LA SOLUCIÓN GLOBAL MODELO RELACIONAL (DATOS) TÉCNICA DISEÑO DE PANTALLAS (GUI) DIAGRAMA DE CUADROS DE CONSTANTINE TIPOS DE ELEMENTOS BÁSICOS: MÓDULOS PROGRAMA O SUBPROGRAMA UNIDAD DE PROGRAMACIÓN COMPATIBLE INDEPENDIENTE TROZO DE CÓDIGO QUE PUEDE SER LLAMADO (TIENE NOMBRE) PROCESO QUE CONVIERTE DATOS DE ENTRADA EN DATOS DE SALIDA NOMBRE MÓDULO NOMBRE MÓDULO PREDEFINIDO DIAGRAMA DE CUADROS DE CONSTANTINE CARACTERÍSTICAS DESEABLES DE LOS MÓDULOS: PEQUEÑO TAMAÑO: UN SOLO PROGRAMADOR EN TIEMPO RAZONABLE INTERFACE CLARA Y LIMITADA: PARÁMETROS BIEN DEFINIDOS Y LOS MÍNIMOS POSIBLES INDEPENDIENTE O MÍNIMO ACOPLAMIENTO: LOS CAMBIOS REALIZADOS AFECTAN LO MÍNIMO AL RESTO DEL SISTEMA MÁXIMA COHESIÓN INTERNA: ENCARGADOS DE REALIZAR UNA Y SÓLA UNA FUNCIÓN DIAGRAMA DE CUADROS DE CONSTANTINE CONEXIONES REPRESENTA LA LLAMADA QUE UN MÓDULO HACE A OTRO PARA QUE LE REALICE UNA FUNCIÓN “A” LLAMA A “B” PASÁNDOLE UNA SERIE DE PARÁMETROS Y CEDIÉNDOLE EL CONTROL DE LA EJECUCIÓN A “B” REALIZA LA FUNCIÓN “B” DEVUELVE LOS PARÁMETROS RESULTANTES Y EL CONTROL A “A” B “A” CONTINUA EJECUTÁNDOSE DONDE SE HABÍA QUEDADO DIAGRAMA DE CUADROS DE CONSTANTINE ESTRUCTURAS DE CONTROL BÁSICAS EN PROGRAMACIÓN ESTRUCTURADA: SECUENCIA O ITERACIÓN ALTERNATIVA O BIFURCACIÓN A B D A C B BUCLE O REPETICIÓN E A B B B C DIAGRAMA DE CUADROS DE CONSTANTINE COMUNICACIONES ELEMENTOS QUE SE INTERCAMBIAN COMO ENTRADAS Y SALIDAS DE LLAMADAS ENTRE MÓDULOS. TIPOS: DATOS: EL LA INFORMACIÓN QUE EL USUARIO INTRODUCE, EL SISTEMA ALMACENA Y LO TRANSFORMA PARA POSTERIORMENTE PRESENTÁRSELO AL USUARIO SEÑALES DE CONTROL: VALORES INTERNOS AL SISTEMA QUE SINCRONIZAN LA COMUNICACIÓN ENTRE MÓDULOS E INDICAN CONDICIONES DE ESTADO DEL SISTEMA QUE AFECTAN A LA EJECUCIÓN DIAGRAMA DE CUADROS DE CONSTANTINE CREAR USUARIO NOMBRE BBDD_OK ALTA USUARIO EN BBDD PRINCIPIOS DEL DISEÑO ESTRUCTURADO DESCOMPOSICIÓN: DIVISIÓN DE UNA OPERACIÓN EN OTRAS MÁS ELEMENTALES QUE LA COMPONEN BENEFICIOS: MÓDULOS MÁS PEQUEÑOS (AUNQUE CRECE EL NÚMERO) FACILITA LA COMPRENSIÓN Y LA DOCUMENTACIÓN FACILITA LAS MODIFICACIONES MINIMIZA LA DUPLICIDAD DEL CÓDIGO PRINCIPIOS DEL DISEÑO ESTRUCTURADO JERARQUÍA: NO TODOS LOS MÓDULOS SON IGUALES, UNOS ESTÁN SUBORDINADOS A OTROS ESTO ES DEBIDO A QUE UN PROBLEMA SE DESCOMPONE EN SUBPROBLEMAS Y ASÍ SUCESIVAMENTE. POR ESO CADA MÓDULO PADRE LLAMA A SUS MÓDULOS HIJOS Y ESTO A SU VEZ A SUS HIJOS FACILITA LA ESPECIALIZACIÓN FUNCIONAL: LA IDEA ES QUE LOS MÓDULOS SUPERIORES TOMEN DECISIONES Y LOS INFERIORES REALICEN LAS OPERACIONES DE CÁLCULO PRINCIPIOS DEL DISEÑO ESTRUCTURADO INDEPENDENCIA: CADA MÓDULO TIENE UN ÚNICO COMETIDO. SÓLO SABE DE SU FUNCIÓN Y DE SU INTERFAZ ESTRATEGIAS DE DISEÑO HAY DOS ESTRATEGIAS PARA CONVERTIR UN DFD EN UN DC CONSTANTINE ANÁLISIS DE TRANSFORMACIÓN: LO USAMOS SI EN EL DFD DISTINGUIMOS LAS TRES ZONAS: 1.ENTRADA DE DATOS 2.CENTRO DE PROCESO 3.SALIDA DE DATOS ESTRATEGIAS DE DISEÑO SE REALIZAN LOS SIGUIENTES PASOS: 1.DELIMITACIÓN DEL CENTRO DE TRANSFORMACIÓN 2.FACTORIZACIÓN DEL 1º NIVEL 3.FACTORIZACIÓN DEL 2º NIVEL 4.FACTORIZACIÓN DE NIVELES INFERIORES 5.REFINAMIENTO (OBTIMIZAR EL DIAGRAMA) ESTRATEGIAS DE DISEÑO ANÁLISIS DE TRANSACCIÓN: LO USAMOS SI EN EL DFD REPRESENTA UNA SERIE DE ALTERNATIVAS SE REALIZAN LOS SIGUIENTES PASOS: 1.DELIMITACIÓN DEL CENTRO DE TRANSACCIÓN 2.CREACIÓN DE LA ESTRUCTURA BÁSICA DE TRANSACCIÓN 3.FACTORIZACIÓN DE LA ESTRUCTURA BÁSICA DE TRANSACCIÓN 4.FACTORIZACIÓN DE NIVELES INFERIORES 5.REFINAMIENTO (OBTIMIZAR EL DIAGRAMA) MÉTRICAS Y GUÍAS DE DISEÑO LA CALIDAD DEL DISEÑO DE LA SOLUCIÓN SE MMIDE EN LA CAPACIDAD DE CONTROLAR Y REDUCIR AL MÍNIMO ES ESFUERZO NECESARIO PARA RESOLVER EL PROBLEMA -> ESFUERZO DE DESARROLLO TAMBIÉN ABARCA OTROS ASPECTOS: ESFUERZO DE PRUEBA ESFUERZO DE MANTENIMIENTO ESFUERZO DE ENTENDIMIENTO MÉTRICAS Y GUÍAS DE DISEÑO LA INGENIERÍA DEL SOFTWARE USA TRES CRITERIOS DE MEDIDA QUE AYUDAN A EVALUAR Y REFINAR LA CALIDAD DEL DISEÑO: ACOPLAMIENTO: GRADO DE DEPENDENCIA ENTRE MÓDULOS LO DESEABLE ES QUE NO ESTÉN POCO ACOPLADOS, QUE SEAN INDEPENDIENTES (PERO NO AISLADOS) EL GRADO DE ACOPLAMIENTO SE MIDE POR EL NÚMERO DE PARÁMETROS QUE INTERCAMBIEN: LO IDEAL ES QUE SEAN SÓLO LOS IMPRESCINDIBLES. CUANTO MÁS INDEPENDIENTE SEA UN MÓDULO, MÁS SENCILLO SERÁ PODER SUSTITUIRLO Y MANTENERLO MÉTRICAS Y GUÍAS DE DISEÑO TIPO DE ACOPLAMIENTOS: DE DATOS: INTERCAMBIO LÓGICO DE DATOS SIEMPRE QUE SE HAGA ENTRE MÓDULOS CERCANOS DE CONTROL: CORRESPONDEN A LAS SEÑALES DE CONTROL (INDICAN EL ESTADO DE LA OPERACIÓN AL MÓDULO QUE LA INVOCA) SON RAZONABLES SI FLUYEN HACIA ARRIBA NO SON RAZONABLES SI FLUYEN HACIA ABAJO (VIOLAN EL PRINCIPIO DE CAJA NEGRA MOSTRANDO AL MÓDULO INFERIOR ASPECTO DEL SUPERIOR) POR ESTAMPADO: CUANDO SE INTERCAMBIA UN DATO COMPUESTO Y SÓLO SE NECESITA UNA PARTE POR CONTENIDO: CUANDO EL MÓDULO SUPERIOR ACCEDE A UNA PARTE INTERNA DEL MÓDULO INFERIOR (VIOLAN EL PRINCIPIO DE CAJA NEGRA) PARA SOLUCIONARLO SE MODULARIZA ESE TROZO DE CÓDIGO INTERNO MÉTRICAS Y GUÍAS DE DISEÑO COHESIÓN: ES LA FUERZA DE LA RELACIÓN FUNCIONAL EXISTENTE ENTRE LOS DIVERSOS ELEMENTOS QUE FORMAN UN MÓDULO (INSTRUCCIONES, DECLARACIONES DE DATOS, DEFINICIONES DE SUBPROGRAMAS, LLAMADAS, ETC.) FACILITA AL MANTENIMIENTO DEL SISTEMA AUMENTA LA INDEPENDENCIA DE LOS MÓDULOS Y LIMITA EL ACOPLAMIENTO MÉTRICAS Y GUÍAS DE DISEÑO TIPOS DE COHESIÓN: FUNCIONAL TODOS SUS ELEMENTOS CONFLUYEN A LA REALIZACIÓN DE UNA TAREA. ES EL MEJOR ACOPLAMIENTO QUE EXISTE FORMA JUNTO AL ACOPLAMIENTO DE DATOS Y EL ACOPLAMIENTO DE CONTROL LA FÓRMULA PERFECTA PARA EL DISEÑO DE CALIDAD MÉTRICAS Y GUÍAS DE DISEÑO SECUENCIAL UN MÓDULO REALIZA VARIAS TAREAS ENLAZADAS DONDE LA SALIDA DE UNA SON LAS ENTRADAS DE OTRAS NO SUPONE INCOHERENCIA SI EL NÚMERO Y LA COMPLEJIDAD DE DICHAS TAREAS NO SE DISPARAN -> SI NO DIVIDIRLO EN MÓDULOS COMUNICACIONAL UN MÓDULO REALIZA TAREAS EN PARALELO. DEBE DESCOMPONERSE SI SUPONE MUCHA COMPLEJIDAD MÉTRICAS Y GUÍAS DE DISEÑO LÓGICA EN UN MISMO MÓDULO SE REALIZAN ACTIVIDADES DE LA MISMA CATEGORÍA INDEPENDIENTES UNAS DE OTRAS ES INADMISIBLE: HAY QUE DIVIDIR ESTE MÓDULO EN VARIOS COINCIDENTAL UN MÓDULO REALIZA TAREAS CUYO INTERCAMBIO DE INFORMACIÓN ES PRÁCTICAMENTE NULO ESTO SIGNIFICA QUE NO TIENE QUE VER NADA UNAS TAREAS CON OTRAS ES INADMISIBLE: HAY QUE DIVIDIR ESTE MÓDULO EN VARIOS MÉTRICAS Y GUÍAS DE DISEÑO ÁMBITO DE CONTROL Y DE EFECTO ÁMBITO DE CONTROL: ES EL NÚMERO DE MÓDULOS QUE INVOCA UN MÓDULO DIRECTA O INDIRECTAMENTE LO DESEABLE ES QUE NO SEA NI MUY ELEVADO NI MUY REDUCIDO TAMBIÉN LLAMADO FAN-OUT FAN-IN: NÚMERO DE MÓDULOS QUE LLAMAN A UN MÓDULO EN CUESTIÓN CADA MÓDULO PUEDE ESTAR SUBORDINADO A MÁS DE UN MÓDULO SUPERIOR LO DESEABLE ES QUE FAN-IN SEA ALTO AUNQUE LO NORMAL ES QUE SEA 1 MÉTRICAS Y GUÍAS DE DISEÑO ÁMBITO DE EFECTO: CONJUNTO DE MÓDULOS A LOS QUE AFECTA UNA DECISIÓN TOMADA EN ESTE (UNA CONDICIÓN) SI UNA DECISIÓN DE UN MÓDULO AFECTA A OTRO MÓDULO QUE NO ESTÁ EN SU ÁMBITO DE CONTROL SE DEBE SOLUCIONAR. DOS SOLUCIONES: 1.TRASLADAR TOMA DE DECISIONES MÁS ARRIBA 2.MOVER EL MÓDULO AFECTADO MÉTRICAS Y GUÍAS DE DISEÑO OTRAS IDEAS PARA REFINAR EL DISEÑO: HACER INTERFACES LO MÁS LIGERAS PISIBLES NO PASAR DATOS QUE NO SE VAYAN A USAR EVITAR LOS FLAGS HACIA ARRIBA NO USAR VARIABLES GLOBALES: SE VEN A TODOS LOS NIVELES NO DUPLICAR CÓDIGO CONSEGUIR DISEÑOS BIEN EQUILIBRADOS: LOS NIVELES ALTOS TOMEN DECISIONES (TRATEN CON DATOS LÓGICOS) Y LOS BAJOS LAS EJECUTEN (TRATEN CON DATOS FÍSICOS) UN BUCLE INFERIOR PUEDE LLAMAR A OTRO DE NIVEL SUPERIOR SI NO SE ENCUENTRA DENTRO DE SU RAMA (SI NO GENERARÍA BUCLES INFINITOS)