Técnicas en Diseño: Guía Completa
El proceso de diseño incluye desarrollar una vista conceptual del sistema, establecer la estructura del sistema, identificar flujos de datos y almacenamiento de datos, descomponer funciones de alto nivel en subfunciones, establecer relaciones e interconexiones entre componentes, desarrollar representaciones de datos concretas y especificar detalles algorítmicos.
El diseño de software es una actividad creativa. Como todo proceso creativo, el sistema se desglosa en subsistemas, con consideraciones más específicas. El retroceso es la base del diseño de arriba hacia abajo.
En un enfoque ascendente del diseño de software, el diseñador primero intenta identificar un conjunto de objetos, operaciones y relaciones primitivos que proporcionarán la base para la solución del problema. Luego se formulan conceptos de nivel superior a partir de las primitivas. Una estrategia ascendente requiere que los diseñadores combine la funcionalidad proporcionada por el lenguaje de implementación en entidades más complejas.
Refinar gradualmente: El refinamiento por pasos es una técnica de arriba hacia abajo utilizada para descomponer un sistema desde una especificación de alto nivel hasta un nivel más fundamental. El refinamiento paso a paso implica las siguientes actividades: desglosar las decisiones de diseño en niveles básicos.
El aislamiento no es un aspecto de diseño que sea realmente interdependiente.
Retrasar lo más posible las decisiones sobre los detalles de la representación.
Demostrar cuidadosamente que cada paso en el proceso de refinación es una extensión fiel de los pasos anteriores.
Los principales beneficios del refinamiento paso a paso como técnica de diseño son:
- Desglose de arriba a abajo.
- Añadir detalles de forma incremental.
- Aplazar las decisiones de diseño.
- Verificación continua de la consistencia.
Resumen: Dijkstra describió originalmente las jerarquías de abstracción como una técnica de diseño de abajo hacia arriba.
En el sistema de Dijkstra, cada nivel de abstracción consta de un conjunto de funciones relacionadas, algunas de las cuales son visibles externamente y otras internas a ese nivel. Las funciones internas están ocultas de otros niveles; solo pueden ser llamadas por funciones en el mismo nivel.
Las funciones intrínsecas se utilizan para realizar tareas comunes al trabajo realizado en ese nivel de abstracción. Cada nivel de abstracción realiza un conjunto de servicios para la funcionalidad del siguiente nivel superior de abstracción.
Diseño estructurado: El diseño estructurado es una técnica de diseño de arquitectura de sistemas de software de arriba hacia abajo desarrollada por Constantine. El método básico del diseño estructurado es convertir sistemáticamente los diagramas de flujo de datos en diagramas de estructura. Las heurísticas de diseño, como el acoplamiento y la cohesión, se utilizan para guiar el proceso de diseño. El primer paso en el diseño estructurado es revisar y refinar los diagramas de flujo de datos desarrollados durante la definición de requisitos y el diseño externo.
El segundo paso es determinar si el sistema está centrado en la transformación o en las transacciones, y derivar un diagrama estructural de alto nivel basado en esta determinación.
El tercer paso en el diseño estructurado es usar acoplamiento, cohesión, información. Criterios como la ocultación, el nivel de abstracción, la abstracción de datos y otros criterios de descomposición descomponen cada subsistema.
La principal ventaja del diseño estructural es proporcionar un enfoque sistemático para transformar los diagramas de flujo de datos en diagramas estructurales de alto nivel.
Desarrollo integrado de arriba hacia abajo: El desarrollo integrado de arriba hacia abajo integra el diseño, la implementación y las pruebas. Usando el desarrollo integrado de arriba hacia abajo, el diseño va de arriba hacia abajo antes que las rutinas de más alto nivel; su función principal es coordinar y secuenciar las rutinas de más bajo nivel.
Las rutinas de nivel inferior pueden ser implementaciones de funciones básicas o, a su vez, pueden llamar a rutinas más primitivas. Por lo tanto, un sistema de arriba hacia abajo tiene una jerarquía en la que las rutinas pueden llamar a rutinas de nivel inferior, pero no pueden llamar a rutinas de nivel superior.
Si quieres conocer otros artículos parecidos a Técnicas en Diseño: Guía Completa puedes visitar la categoría Desarrollo.
Entradas Relacionadas 👇👇