Fundamentos del Diseño de Sistemas de Software: Abstracción, Arquitectura y Modularidad
Clasificado en Informática
Escrito el en
español con un tamaño de 2,65 KB
Conceptos Fundamentales del Diseño de Sistemas
Abstracción
En un alto grado de abstracción, una solución se establece en términos generales con el lenguaje del entorno del problema. En los grados de menor abstracción, se proporciona una descripción más detallada de la solución.
En la medida en que cambian los diferentes grados de abstracción, se trabaja para crear:
- Abstracción procedimental: Se refiere a una secuencia de instrucciones que tiene una función específica y limitada.
- Abstracción de datos: Es una colección nombrada de datos que describe un objeto de datos.
Arquitectura
La arquitectura del software alude a “la estructura general del software y las formas en que la estructura proporciona una integridad conceptual para un sistema”.
La arquitectura es la estructura u organización de los componentes del programa (módulos), de tal manera que estos componentes interactúan, junto con la estructura de datos que utilizan.
El diseño arquitectónico puede representarse al usar uno o más de los siguientes modelos:
- Modelos estructurales.
- Modelos dinámicos.
- Modelos funcionales.
Patrones
Un patrón es una semilla de conocimiento que tiene un nombre y transporta la esencia de una solución probada a un problema recurrente dentro de cierto contexto, en medio de intereses en competencia.
Un patrón de diseño describe una estructura que resuelve un problema particular dentro de un contexto específico y en medio de “fuerzas” que pueden tener un impacto en la manera en que se aplica y utiliza el patrón.
Modularidad
Los patrones de arquitectura y diseño de software materializan la modularidad; es decir, el software se divide en componentes con nombres independientes que es posible abordar de forma individual. Estos componentes, llamados módulos, se integran para satisfacer los requisitos del problema.
Nota importante: No debe modularizarse en exceso. La simplicidad de cada módulo pequeño puede verse ensombrecida por la complejidad de la integración.
Un diseño y el programa resultante se modularizan de manera que:
- El desarrollo se pueda planear con mayor facilidad.
- Se puedan definir y entregar incrementos del software.
- Los cambios puedan ajustarse con mayor facilidad.
- Las pruebas y la eliminación de errores se puedan conducir con más eficiencia.
- El mantenimiento se pueda realizar sin efectos laterales de consideración.