Se lo define como el proceso de aplicar ciertas técnicas y
principios con el propósito de definir un dispositivo, un proceso o un Sistema, con suficientes detalles como para permitir su interpretación y realización física. FUNDAMENTOS DEL DISEÑO DE SOFTWARE
El diseño es el primer paso de la fase de desarrollo de cualquier
producto o sistema de ingeniería.
El diseño de software, al igual que los métodos de diseño de
todas las ingenierías, cambian continuamente al aparecer nuevos métodos, mejores análisis y ampliar los conocimientos. INGENIERÍA DEL SOFTWARE Y DISEÑO DEL SOFTWARE
Una vez que se han establecido los requisitos del software, el
diseño es la primera de tres actividades técnicas:
diseño, codificación y prueba. Cada actividad transforma la
información de forma que al final se obtiene un software
validado.. El diseño es técnicamente la parte central de la ingeniería del
software. Durante el diseño se desarrollan, revisan y se
documentan los refinamientos progresivos de las estructuras de
datos, de la estructura del programa y de los detalles
procedimentales.
El diseño da como resultado representaciones cuya calidad
puede ser evaluada.
Mediante algunas metodologías de diseño se realiza el diseño de datos, el diseño arquitectónico y el diseño procedimental.
El diseño de datos transforma el modelo de campo de
información, creado durante el análisis, en las estructuras de datos que se van a requerir para implementar el software.
El diseño arquitectónico define las relaciones entre los
principales elementos estructurales del programa.
El diseño procedimental transforma los elementos
estructurales en una descripción procedimental del software. El diseño es la única forma mediante la que podemos traducir con precisión los requisitos del cliente en un producto o sistema acabado. EL PROCESO DE DISEÑO
El diseño del software es un proceso mediante el que se traducen
los requisitos en una representación del software, que se acerca mucho al código fuente.
Desde el punto de vista de la gestión del proyecto, el diseño del
software se realiza en dos etapas: el diseño preliminar y el diseño detallado. El diseño preliminar se centra en la transformación de los requisitos en los datos y la arquitectura del software.
El diseño detallado se ocupa del refinamiento y de la
representación arquitectónica que lleva a una estructura de datos refinada y a las representaciones algorítmicas del software.
Además del diseño de datos, del diseño arquitectónico y del
desarrollo procedimental, muchas aplicaciones modernas requieren un diseño de la interfaz. DISEÑO Y CALIDAD DEL SOFTWARE
A lo largo del proceso de diseño, la calidad del diseño se evalúa
mediante una serie de revisiones técnicas formales (RTF) que son una actividad de garantía del software cuyos objetivos se detalla a continuación. Descubrir los errores en la función, la lógica o la implementación de cualquier representación del software.
Verificar que el software alcanza sus requisitos.
Garantizar que el software se ha representado según los
estándares establecidos.
Conseguir un software desarrollado de forma
Cada RTF se lleva a cabo mediante una reunión y sólo tendrá
éxito si está bien planificada, controlada y atendida. CRITERIOS PARA DETERMINAR LA CALIDAD DEL SOFTWARE. Un diseño debe tener una organización jerárquica.
Un diseño debe ser modular, es decir, el software debe estar dividido en
elementos que realicen funciones específicas.
Un diseño debe tener representaciones distintas y separadas de los datos
y de los procedimientos.
Un diseño debe llevar a módulos que exhiban características funcionales
independientes.
Un diseño debe conducir a interfaces que reduzcan la complejidad de las
conexiones entre los módulos y el exterior.
Un diseño debe obtenerse mediante un método que sea reproducible y
que esté dirigido por la información obtenida durante el análisis de requerimientos. ARQUITECTURA DEL SOFTWARE
La arquitectura del software se refiere a dos características
importantes del software
La estructura jerárquica de los módulos del software
La estructura de los datos
La arquitectura a nivel de software es el diseño de más alto nivel de la estructura de un sistema.
Una arquitectura de software, también denominada arquitectura
lógica, consiste en un conjunto de patrones y abstracciones coherentes que proporcionan un marco definido y claro para interactuar con el código fuente del software.
Una arquitectura de software se selecciona y diseña con base en
objetivos (requisitos) y restricciones. Los objetivos son aquellos prefijados para el sistema de información, pero no solamente los de tipo funcional, también otros objetivos como el mantenimiento, la auditoría, flexibilidad e interacción con otros sistemas de información. Las restricciones son aquellas limitaciones derivadas de las tecnologías disponibles para implementar sistemas de información.
La arquitectura de software define, de manera abstracta, los
componentes que llevan a cabo alguna tarea de computación, sus interfaces y la comunicación entre ellos. La arquitectura del software se obtiene mediante un proceso de partición, que relaciona los problemas del mundo real (definidos en el análisis de requerimientos) con las soluciones software para resolver los problemas software. NOTACIONES PARA LA REPRESENTACIÓN GRÁFICA EN DISEÑO PROCEDIMENTAL
Para evitar desarrollar un software erróneo, es fundamental que
se utilicen correctamente las herramientas gráficas para el
diseño, como son los diagramas de flujo y los diagramas de
Sesión, Diagramas de Entidad-Relación, Caso de USO, etc.
MODELOS DE PROCESO DE SOFTWARE
Podemos definir un modelo de procesos del software como una
representación abstracta de alto nivel de un proceso software. Cada modelo es una descripción de un proceso software que se presenta desde una perspectiva particular. Alternativamente, a veces se usan los términos ciclo de vida y Modelo de ciclo de vida. MODELO EN CASCADA
El modelo en cascada, es la propuesta de un enfoque
metodológico que consiste en ordenar de forma lineal las distintas etapas que debes de seguir al momento de desarrollar tu software.
Existen distintas metodologías que te ayudarán a definir este
proceso para el desarrollo de un software, una de las más comunes y conocidas es el modelo en cascada. ¿CÓMO FUNCIONA EL MODELO EN CASCADA?
El modelo en cascada propone dividir en fases cada etapa del
desarrollo de software y completar cada una de ellas en un orden
específico, es decir, no puedes iniciar la “fase 2” hasta que hayas
concluido la “fase 1”.
Grafica 1 ¿Y PARA QUÉ SIRVE EL MODELO EN CASCADA?
Este proceso permite que puedas relacionar cada una de las
etapas del modelo en cascada con la anterior, de esta manera, considerar los elementos que debes quitar o añadir en la fase siguiente.