Evolución del Diseño de Software: Diagramas, Calidad y Procesos de Desarrollo
Evolución del diseño de software
Durante las últimas tres décadas se establecieron criterios para el desarrollo de programas modulares y métodos para mejorar la arquitectura del software de manera independiente a la programación estructurada, como la traducción de flujos de datos.
Características comunes
- Un mecanismo para la traducción de la representación del campo de información en la representación de diseño.
- Una notación para representar los componentes funcionales y sus interfaces.
- Heurística para el refinamiento y la partición, y criterios para la valoración de la calidad.
Diseño y calidad del software
Existen criterios que evalúan el diseño del software:
- Un diseño debe mostrar la organización jerárquica.
- El diseño debe ser modular.
- Un diseño debe contener representaciones distintas y separadas de los datos y procedimientos.
- Debe llevar a módulos, y debe llevar a interfaces que reduzcan la complejidad.
- Debe obtenerse el diseño mediante un método reproducible.
Proceso de desarrollo
El diseño del software es un proceso mediante el cual se traducen los requisitos en la representación del software. Inicialmente, la representación describe la visión holística del software.
El diseño del software se realiza en dos pasos:
- Diseño preliminar: se centra en la transformación de los requisitos en los datos y la arquitectura del software.
- Diseño detallado: se ocupa del refinamiento de la representación arquitectónica que lleva a la estructura de datos detallada y a las representaciones algorítmicas del software.
El diseño de interfaz establece la disposición y los mecanismos para la interacción.
Vertientes
- Gestión (diseño de datos preliminar)
- Técnica (diseño de datos, diseño arquitectónico, procedimental y de interfaz)
Gráficas de Nassi-Shneiderman
Adoptan la filosofía de la programación estructurada, usan una cantidad limitada de símbolos, por lo que el diagrama de flujo ocupa poco espacio.
- El primer símbolo es un cuadro, que se usa para representar cualquier proceso en el programa.
- El segundo es un triángulo divisor de columnas que representa la decisión cierto/falso.
- El tercer cuadro dentro del cuadro sirve para mostrar cómo se realiza la iteración.
- El cuadro con el símbolo aparece como identificación en la gráfica completa.
Diagramas de flujo
Se basan en la utilización de diversos símbolos para representar operaciones específicas. Se les llama diagramas de flujo y se conectan mediante flechas para indicar la secuencia de la operación.
La simbología utilizada es variable y debe ajustarse a un patrón definido.
Diagrama HIPO
Describen procesos y marcan la jerarquía en la entrada y salida de los procesos.
Diagrama de caja
Son una alternativa gráfica que obliga a usar únicamente construcciones estructuradas. Los diagramas de caja proveen un símbolo para cada construcción:
- a) Secuencia
- b) Mientras ejecutar
- c) Si entonces / no
- d) Casos
Diseño detallado
Es la descripción detallada de los datos y del módulo que se va a definir mediante el diagrama de caja.
- Beneficios: los diagramas de caja obligan a una estructura concisa para representar el dominio funcional.
- Desventajas: es difícil modificar un diagrama existente y la actualización es limitada.
Diagrama de flujo estructurado
Es una herramienta de diseño conocida. Aunque el diagrama de flujo puede usarse para representar cualquier combinación de condiciones, acciones y ramificaciones, se usan las ramificaciones como partes para ensamblar por concatenación y anidamientos.
Beneficios
- No obligan al uso de construcciones estructuradas.
- La disponibilidad inmediata de la flecha facilita la transferencia de control.