You are on page 1of 8

Ingeniera del Software Bruno Curti 2012

CONCEPTOS DEL DISEO


Introduccin, abstraccin, refinamiento, modularidad (Pressman 13.4)

Introduccin
Durante las ltimas cuatro dcadas se experiment la evolucin de un conjunto de conceptos fundamentales de diseo de software. Aunque el grado de inters en cada concepto ha variado con los aos, todos han experimentado el paso del tiempo. Cada uno de ellos proporcionar la base de donde el diseador podr aplicar los mtodos de diseo ms sofisticados.
Esto nos sirve para responder las preguntas: Qu criterios se podrn utilizar para la particin del software en componentes individuales? Cmo se puede separar la funcin y la estructura de datos de una representacin conceptual del software? Existen criterios uniformes que definen la calidad tcnica de un diseo de software?

Abstraccin
Cuando se tiene en consideracin una solucin modular a cualquier problema, se pueden exponer muchos niveles de abstraccin. En el nivel ms alto de abstraccin, la solucin se pone como una medida extensa empleando el lenguaje del entorno del problema. En niveles inferiores de abstraccin, se toma una orientacin ms procedimental. Cada paso del proceso del software es un refinamiento en el nivel de abstraccin de la solucin del software. Durante la ingeniera del sistema, el software se asigna como un elemento de un sistema basado en computadora.

Abstraccin
A medida que nos adentramos en el proceso de diseo, se reduce el nivel de abstraccin. Finalmente el nivel de abstraccin ms bajo se alcanza cuando se genera el cdigo fuente. Se trabaja para crear abstracciones procedimentales y de datos. Una abstraccin procedimental es una secuencia nombrada de instrucciones que tiene una funcin especfica y limitada. Una abstraccin de datos es una coleccin nombrada de datos que describe un objeto de datos La abstraccin de control es la tercera forma de abstraccin que se utiliza en el diseo del software. Al igual que las abstracciones procedimentales y de datos, este tipo de abstraccin implica un mecanismo de control de programa sin especificar los datos internos.

Refinamiento
El refinamiento paso a paso es una estrategia de diseo descendente propuesta originalmente por Niklaus Wirth El desarrollo de un programa se realiza refinando sucesivamente los niveles de detalle procedimentales. Una jerarqua se desarrolla descomponiendo una abstraccin procedimental paso a paso hasta alcanzar las sentencias del lenguaje de programacin. El refinamiento verdaderamente es un proceso de elaboracin. Se comienza con una sentencia de funcin (o descripcin de informacin) que se define a un nivel alto de abstraccin; la sentencia describe la funcin o informacin conceptualmente, pero no proporciona informacin sobre el funcionamiento interno de la informacin. El refinamiento hace que el diseador trabaje sobre la sentencia original, proporcionando cada vez ms detalles a medida que van teniendo lugar sucesivamente todos y cada uno de los refinamientos.

Modularidad
La arquitectura de computadora expresa la modularidad; es decir, el software se divide en componentes nombrados y abordados por separado, llamados frecuentemente mdulos, que se integran para satisfacer los requisitos del problema. Se ha afirmado que la modularidad es el nico atributo del software que permite gestionar un programa intelectualmente. El software no puede ser entendido fcilmente por el lector. Es ms fcil resolver un problema complejo cuando se descompone en piezas manejables. Existe un nmero M de mdulos que dara como resultado un coste mnimo de desarrollo, aunque no tenemos la sofisticacin necesaria para predecir M con seguridad.

Modularidad
Cuando se tiene en consideracin la modularidad surge otra pregunta importante. Cmo se define un mdulo con un tamao adecuado? La respuesta se encuentra en los mtodos utilizados para definir los mdulos dentro de un sistema. Meyer define cinco criterios que nos permitirn evaluar un mtodo de diseo en relacin con la habilidad de definir un sistema modular efectivo: Capacidad de descomposicin modular Capacidad de empleo de componentes modulares

Capacidad de comprensin modular


Continuidad modular Proteccin modular

Modularidad
Capacidad de descomposicin modular. Si un mtodo de diseo proporciona un mecanismo sistemtico para descomponer el problema en subproblemas, reducir la complejidad de todo el problema, consiguiendo de esta manera una solucin modular efectiva. Capacidad de empleo de componentes modulares. Si un mtodo de diseo permite ensamblar los componentes de diseo (reusables) existentes en un sistema nuevo, producir una solucin modular que no inventa nada ya inventado. Capacidad de comprensin modular. Si un mdulo se puede comprender como una unidad autnoma ser ms fcil de construir y de cambiar. Continuidad modular. Si pequeos cambios en los requisitos del sistema provocan cambios en los mdulos individuales, se minimizar el impacto de los efectos secundarios de los cambios.

You might also like