Diseño de Procesos

Anuncio
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)

Descargar