Please enable JavaScript.
Coggle requires JavaScript to display documents.
Fundamentos del Diseño de Software - Coggle Diagram
Fundamentos del Diseño de Software
Arquitectura del Software
Arquitectura incluye estructura jerárquica de módulos y estructura de datos.
Jerarquía de control
Implica organización jerárquica de módulos
Representada mediante diagramas de árbol o otras notaciones.
Modularidad
Software dividido en módulos con nombres y ubicaciones específicas.
Modularidad mejora desarrollo hasta cierto límite debido a coste de interfaces.
Estructura de datos
Representa relaciones entre elementos de información.
Clásicas estructuras de datos incluyen elementos escalares, arrays, listas y árboles.
Refinamiento
Se desarrolla en niveles sucesivos de refinamiento de detalles.
Declaración general y avanza hacia detalles
Procedimientos del Software
Estructura del programa define jerarquía de control.
Procedimientos detallan procesamiento de cada módulo.
Abstracción
Niveles
Inferior
Enfoque más procedimental
Bajo
Solución implementable directamente
Superior
Solución general en lenguaje natural
Ocultamiento de información
Modularidad plantea descomponer solución en módulos.
Ocultamiento sugiere que módulos deben tener información inaccesible.
Metodologías de diseño
Arquitectónico
Define relaciones entre los principales elementos estructurales del programa.
Procedimental
Convierte elementos estructurales en descripción procedimental del software.
Datos
Convierte el modelo de campo de información en estructuras de datos necesarias.
Diseño modular
Reduce la complejidad
Facilita cambios
Simplifica la implementación
Independencia funcional
Cohesión
Cohesión se relaciona con ocultamiento de información.
Módulos cohesivos realizan tareas simples y tienen poca interacción con otros módulos.
Acoplamiento
Acoplamiento mide interconexión entre módulos.
Búsqueda de acoplamiento bajo para un software comprensible y menos propenso a errores.
Tipos de modulos
Módulos incrementales (corrutinas) pueden ser interrumpidos y reanudados
Módulos paralelos se ejecutan simultáneamente en entornos multiprocesadores.
Módulos secuenciales ejecutan tareas en secuencia.