Vous êtes sur la page 1sur 15

Unidades prcticas de Ingeniera del Software

Diseo estructurado
3 edicin (2000)

Facultad de Informtica

diseando el software
El diseo estructurado es un mtodo de diseo de software concebido por Page-Jones. El mtodo debe aplicarse despus de analizar el software mediante un mtodo estructurado (p.e. mtodo de Yourdon). El diseo del software se plantea como la organizacin de los mdulos (procedimientos y funciones) para conseguir la funcionalidad descrita en el anlisis; por ello, este mtodo se considera dentro de la categora de los mtodos orientados por la funcin. El mtodo proporciona un conjunto de herramientas para la representacin del diseo del software, la organizacin de las actividades de diseo y criterios para comprobar la calidad del diseo.

Diseo estructurado

contenido
Parte I. Herramientas de representacin Parte II. Gua de diseo Referencias bibliogrficas

Diseo estructurado

parte I. herramientas de representacin


Representacin del diseo Diagrama de estructura Diagrama de estructura: ejemplo Especificacin de mdulos por interfaces Especificacin de mdulos por pseudocdigo

Diseo estructurado

representacin del diseo


El mtodo del diseo estructurado proporciona dos herramientas para representar el diseo:
Diagrama de estructura, con el que se representa la estructura modular del software (diseo arquitectnico). Lenguaje de especificacin de mdulos, con el que se describe los detalles procedimentales de cada mdulo, existiendo dos alternativas posibles: especificacin de las interfaces de mdulos o especificacin por pseudocdigo.

Estas herramientas permiten dividir el trabajo entre los miembros de un equipo de desarrollo al estar orientadas modularmente.

Diseo estructurado

diagrama de estructura
N Mdulo Invocacin o transferencia de control X Parmetro de entrada T Mdulo contenido dentro del padre

Invocacin iterativa N Mdulo de librera

Parmetro de salida

Mdulo transaccional

Activacin de subtarea concurrente

Parmetro de entrada/salida E F Datos G Agrupacin de mdulos

Subsistema

Conector

Flag

Diseo estructurado

diagrama de estructura: ejemplo


Main Realizar llamada Comunicador ClearScreen Nmero telfono

Iniciar modem Conexin Transferencia Desconexin

Marcar n EP

Mensaje Nmero telfono Realizar llamada (pag. n) (pag. n+1)

Comando

EP

Write

Escribir puerto

Fichero: matra.unit

Diseo estructurado

especificacin de mdulos por interfaces


Interfaces de mdulos Se define lo que se espera de un mdulo como si fuera una especie de contrato. Se especifica para cada mdulo: los datos de entrada, su propsito y la salida que se espera. Esta forma permite al diseador definir la funcionalidad de un mdulo sin entrar en excesivos detalles. La estructura de los datos se identifica al margen. Ejemplo
Mdulo. Seleccionar sitio de pasajeros. Propsito. Elegir para cada cliente el sitio que cumpla los requisitos de su clase y preferencias. Usa. Preferencias_sitio. Devuelve. Sitio_seleccionado, Preferencias_disponibles. Detalles funcionales. Buscar entre los sitios disponibles aquellos que cumplan las condiciones en el siguiente orden: clase, fumador y fila. Estructura de datos Preferencias_sitio Clase_asignada *Primera, Negocios, Turista Fumador *S/N Fila *Pasillo, Medio, Ventana

Diseo estructurado

especificacin de mdulos por pseudocdigo


Pseudocdigo Es una forma ms detallada de describir un mdulo. Con un lenguaje formal estructurado se especifica cmo tiene que funcionar el mdulo. Al ser ms detallada que la especificacin de interfaces tiene un menor margen de error, pero implica ms trabajo para el diseador. No obstante, la especificacin por pseudocdigo se puede complementar con la especificacin de interfaces.

Ejemplo
Mdulo. Seleccionar sitios de pasajeros. Call ObtenerPrimerSitio(Sitio,NoHaySitios) While Not NoHaySitios Comprobar Sitio con Preferencias_sitio Si es valido Aadir a la Lista_sitios Call ObtenerSiguienteSitio(Sitio,NoHaySitios) EndWhile Mostrar la lista al usuario para que seleccione el nmero de sitio. Accept Numero_sitio Sitio_seleccionado=Lista_sitios(Numero_sitio) Return Sitio_seleccionado

Diseo estructurado

parte II. gua de diseo


Estrategia Actividades Medidas Heursticas

Diseo estructurado

10

estrategia
Las especificaciones desarrolladas durante el anlisis estructurado pueden ayudar a derivar la estructura del diseo. La transicin desde el diagrama de flujo de datos a la estructura del programa, representada en el diagrama de estructura, requiere la identificacin del tipo de flujo de informacin.
Flujo de transaccin Flujo de transformacin

Entrada

Transformacin

Salida

Diseo estructurado

11

actividades
Si es transformacin Aislar el centro de transformacin de los procesos de entrada y salida. Realizar el primer nivel de factorizacin.
Controlar

Si es transaccin Identificar el centro de transaccin. Establecer una estructura software adecuada para el procesamiento de transacciones.
Controlar

Leer

Procesar

Emitir

Leer datos

Invocar

Ejecutar el segundo nivel de factorizacin, convirtiendo los procesos de DFD en mdulos de la estructura. Refinar la estructura resultante usando medidas y heursticas de diseo.

Desarrollar la estructura de cada una de las transacciones, incorporndola a la estructura anterior. Refinar la estructura resultante usando medidas y heursticas de diseo.
Diseo estructurado 12

medidas
La cohesin y el acoplamiento son dos medidas que permiten evaluar la calidad de la particin de los mdulos y, por lo tanto, ayudan a refinar el diseo. Un buen diseo se caracteriza por un acoplamiento bajo, es decir, poca interdependencia entre mdulos, y una cohesin alta, significando que los elementos que componen un mdulo estn muy relacionados. Estas cualidades permiten reducir los errores y mejorar la comprensin del diseo, facilitando, por lo tanto, la tarea de mantener el software. Mejorar la cohesin Para asegurar que las funciones del software reflejen las originales y as facilitar la comprensin.
Partir mdulos que realicen actividades poco relacionadas entre s. Asignar a los mdulos tareas de control o de trabajo.

Mejorar el acoplamiento Para reducir la posibilidad de transmisin de errores (efecto ripple) entre mdulos.
Eliminar relaciones innecesarias. Reducir el nmero de relaciones. Facilitar la claridad de las relaciones.

Diseo estructurado

13

heursticas
Factorizar Separar la funcionalidad de un mdulo en varios mdulos.
Reducir el tamao de los mdulos. Minimizar la duplicidad de cdigo. Proporcionar mdulos de uso general. Mejorar la cohesin.

Inicializacin y terminacin Iniciar y terminar cada funcin en el momento preciso (evitar funciones de inicializar y terminar todo). Compromiso entre restrictividad y generalidad Los mdulos muy restrictivos son difciles de reusar. Los mdulos muy general son muy complejos y poco eficientes. Reducir el nmero de subordinados Un mdulo que posea ms de siete mdulos subordinados dificulta su comprensin.

Formar estructuras reconocibles Tender hacia estructuras con formas bsicas (p.e., entrada, transformacin y salida) o estructuras inspiradas en las propias estructuras de datos.

Diseo estructurado

14

referencias bibliogrficas
Yourdon, E. Modern Structured Analysis. Prentice-Hall, 1989. Page-Jones, M. Practical guide to structured systems design. Prentice-Hall, 1988. Pressman, R.S. Ingeniera del software. Un enfoque prctico. McGraw-Hill, 1993.

Diseo estructurado

15

Vous aimerez peut-être aussi