Estructurado de software
El diseño se enfoca principalmente en las siguientes áreas: datos, arquitectura, interfaces y componentes. Estos niveles de diseño parten del modelo de requerimientos. Debido a la complejidad que implica desarrollar software es importante contar con el diseño que permita construir adecuadamente los componentes necesarios.
El modelo de análisis proporciona los elementos necesarios para crear los cuatro modelos necesarios para realizar una especificación de diseño.
Diseño de datos. Transforma el modelo de información en estructuras de datos que serán requeridas en para implementar el software. Parte del diseño de datos se realiza en paralelo con el diseño de arquitectura de software. El diseño más a detalle de los datos se realiza a nivel componente.
Diseño de arquitectura. Define las relaciones entre elementos estructurales mayores del software.
Diseño de interfaces. Describe la manera en la que el software se comunica consigo mismo, con otros sistemas y con los humanos. Esto implica flujo de información y los tipos de comportamiento.
Diseño de componentes. Transforma los elementos estructurales en descripción de procedimientos de componentes de software.
En el proceso de diseño se realiza la transformación de los requerimientos en un plano de construcción del software. Es una secuencia de pasos que posibilitan al diseñador describir todos los aspectos del software que se pretende construir.
El modelo de diseño es una representación de alto nivel que se va depurando gradualmente hasta proveer una guía de construcción detallada.
Existen principios de diseño que pueden emplearse durante el proceso:
– El proceso de diseño no debe de tener una visión cerrada
– El diseño debe de ser rastreable para el modelo de análisis
– El diseño no debe de ser una reinvención de las cosas
– El diseño debe de minimizar la distancia intelectual entre el software y el problema
– El diseño debe de mostrar uniformidad e integración
– El diseño debe de estar estructurado para ajustarse a los cambios
– El diseño debe de estar estructurado para adecuarse a situaciones inusuales
– Diseño no es generar código, generar código no es diseñar
– El diseño debe de ser evaluado en calidad cuando se está generando y no al final
– El diseño debe de ser revisado para minimizar los errores de significado
Fuente: Apuntes de Ingeniería del Software de la FCA de la UNAM