Abstracción
La noción psicológica de «abstracción» permite concentrarse en un problema a algún nivel de generalización sin tener en consideración los datos irrelevantes de bajo nivel; la utilización de la abstracción también permite trabajar con conceptos y términos que son familiares en el entorno del problema sin tener que transformarlos en una estructura no familiar.. .
A medida que nos adentramos en el proceso de diseño, se reduce el nivel de abstracción.
Finalmente el nivel de abstracción más bajo se alcanza cuando se genera el código fuente.
Abstracción
Una abstracción procedimental es una secuencia nombrada de instrucciones que tiene una función específica y limitada.
Una abstracción de datos es una colección nombrada de datos que describe un objeto de datos.
La abstracción de control es la tercera forma de abstracción que se utiliza en el diseño del software. Al igual que las abstracciones procedimentales y de datos, este tipo de abstracción implica un mecanismo de control de programa sin especificar los datos internos.
Refinamiento
En cada paso (del refinamiento), se descompone una o varias instrucciones del programa dado en instrucciones más detalladas.
Esta descomposición sucesiva o refinamiento de especificaciones termina cuando todas las instrucciones se expresan en función de cualquier computadora subyacente o de cualquier lenguaje de programación.. . De la misma manera que se refinan las tareas, los datos también se tienen que refinar, descomponer o estructurar, y es natural refinar el programa y las especificaciones de los datos en paralelo.
Modularidad
El software se divide en componentes nombrados y abordados por separado, llamados frecuentemente módulos, que se integran para satisfacer los requisitos del problema.
El software monolítico no puede ser entendido fácilmente por el lector.
«Divide y vencerás» más fácil resolver un problema complejo cuando se rompe en piezas manejables.
¿Cómo se define unmódulo con un tamaño adecuado?
Arquitectura del software
La arquitectura del software alude a la «estructura global del software y a las formas en que la estructura proporciona la integridad conceptual de un sistema»
En su forma más simple, la arquitectura es la estructura jerárquica de los componentes del programa (módulos), la manera en que los componentes interactúan y la estructura de datos que van a utilizar los componentes.
Shaw y Garlan [SHA95a] describen un conjunto depropiedades que deberán especificarse como parte de un diseño arquitectónico:
Propiedades estructurales. Este aspecto de la representación del diseño arquitectónico define los componentes de un sistema (por ejemplo, módulos, objetos, filtros) y la manera en que esos componentes se empaquetan e interactúan unos con otros.
Propiedades extra-funcionales. La descripción del diseño arquitectónico deberá ocuparse de cómo la arquitectura de diseño consigue los requisitos para el rendimiento, capacidad, fiabilidad, seguridad, capacidad de adaptación y otras características del sistema.
Familias de sistemas relacionados. El diseño arquitectónico deberá dibujarse sobre patrones repetibles que se basen comúnmente en el diseño de familias de sistemas similares. En esencia, el diseño deberá tener la habilidad de volver a utilizar los bloques de construcción arquitectónicos.
Página siguiente |