EL PROCESO DE DISEÑO
El diseño de software es un proceso mediante el que se traducen los requisitos en una representación del software. Este proceso puede implicar el desarrollo de varios modelos del sistema con diferentes niveles de abstracción.
El Diseño del Software es un proceso y un modelado a la vez. Un diseño de software es una descripción de la estructura del software que se va a implementar, los datos que son parte del sistema, las interfaces entre los componentes del sistema y, algunas veces, los algoritmos utilizados.
Los diseñadores no llegan inmediatamente a un diseño detallado, sino que lo desarrollan de manera iterativa a través de diversas versiones. El proceso de diseño conlleva a agregar formalidad y detalle durante el desarrollo del diseño y regresar a los diseños anteriores para corregirlos.
El diseño debe implementar todos los requisitos explícitos contenidos en el modelo de análisis y debe acumular todos los requisitos implícitos que desea el cliente.
Este diagrama sugiere que cada etapa conlleva a la otra, es decir, se presenta de forma secuencial. En realidad, las actividades del proceso del diseño se entrelazan. La retroalimentación entre etapas y la consecuente repetición del trabajo es inevitable en todos los procesos del diseño.
La etapa del Diseño del Sistema encierra cuatro etapas generales, las cuales son:
DISEÑO DE DATOS
El diseño de datos es la primera de las tres actividades de diseño, los datos bien diseñados pueden conducir a una mejor estructura de programa, a una modularidad efectiva y a una complejidad procedimental reducida.
Los principios para el diseño de datos son:
Los principios para el diseño de datos son:
- Deben identificarse todas las estructuras de datos y las operaciones que se han de realizar sobre cada una de ellas.
- Debe establecerse y usarse un diccionario de datos para definir el diseño de los datos del programa.
- El diseño de datos de bajo nivel debe realizarse hasta el diseño detallado.
- El lenguaje de programación debe soportar la especificación y la realización de tipos abstractos de datos.
DISEÑO ARQUITECTONICO
El objetivo principal del diseño arquitectónico es desarrollar una estructura de programa modular y representar las relaciones de control entre los módulos. Define la relación entre cada uno de los elementos estructurales del programa.
Los métodos de diseño disponibles para realizar el diseño arquitectónico son:
- Diseño orientado al flujo de datos (estructurado).
- Diseño orientado a los objetos.
- Diseño orientado a los datos.
Formato de Especificaciones del diseño Arquitectónico:
- Descripción conceptual de estructuras y bases de datos.
- Nombres y atributos de los elementos de datos.
- Nombre y descripción funcional de cada modulo.
- Especificación de interfaces para cada modulo.
- Estructura de interconexión entre módulos.
- Interconexiones entre módulos y estructuras de datos.
DISEÑO DE INTERFAZ
Para cada subsistema se diseña y documenta su interfaz con otros subsistemas. Esta especificación de interfaz debe ser inequívoca ya que permite que el subsistema se utilice sin conocimiento de su funcionamiento.
DISEÑO DE PROCEDIMIENTOS
Transforma elementos estructurales de la arquitectura del programa. El procedimiento del software se centra sobre los detalles de procesamiento de cada módulo individual. El procedimiento debe proporcionar una especificación precisa del procesamiento, incluyendo la secuencia de procesos, las decisiones y la repetición de operaciones. La representación procedimental del software se realiza por capas. El diseño procedimental se realiza después de haber establecido la estructura del programa y de datos, y especifica los detalles algorítmicos del software.
En el diseño procedimental se utiliza una técnica conocida como programación estructurada, cuya filosofía es la construcción de algoritmos y programas modulares, descendentes ( top-down ) y de una entrada- una salida, lo cual facilita la legibilidad, prueba y mantenimiento.
Las notaciones del diseño procedimental son las siguientes:
Las notaciones del diseño procedimental son las siguientes:
-Diagrama de Flujo.
-Tablas de decisión.
-Lenguaje Estructurado o Pseudocódigo.
Ahora bien de forma más detallada, cada una de estas 4 etapas encierra entre sí otras actividades especificas del proceso de diseño, entre ellas tenemos:
-Diseño Arquitectónico: los subsistemas que forman el sistema y sus relaciones se identifican y documentan.
-Especificación Abstracta: para cada subsistema se produce una especificación abstracta de sus servicios y las restricciones bajo las cuales debe funcionar.
-Diseño de la interfaz: Describe como se comunica el Software consigo mismo, con los sistemas que operan junto con el y con los operadores y usuarios que lo emplean.
-Diseño de Componentes: Se asignan servicios a los componentes y se diseñan sus interfaces.
-Diseño de la Estructura de Datos: Se diseñan en detalle y especifica la estructura de los datos utilizados en la implementación del sistema.
-Diseño de algoritmos: se diseñan en detalle y especifican los algoritmos utilizados para proporcionar los servicios.