miércoles, 4 de diciembre de 2013

Buenas tardes, en ésta entrada seguiremos el tema de Modularidad previamente iniciado en entradas anteriores, para poder cumplir con modularidad, es necesario cumplir ciertos criterios básicos que definen cuando una entidad de soft puede llegar a ser modular.




Un método de diseño se dice satisfacer el criterio de descomposición modular si el método permite descomponer un problema en varios subproblemas, cuyas soluciones pueden obtenerse separadamente.
Este criterio es esencial para el desarrollo modular de sistemas no triviales.

El criterio es más demandante de lo que parece a primera vista, puesto que implica que los diferentes subproblemas obtenidos de la descomposición pueden ser trabajados por diferentes personas y este es un requerimiento muy demandante.

Como ejemplo, el método de diseño top-down dirige a los diseñadores a comenzar con una descripción general de la función del sistema, y luego refinar esta vista a través de sucesivos pasos, cada subsistema será descompuesto en cada paso en un numero de subsistemas más simples, hasta que todos los elementos obtenidos se encuentren en un nivel tal de especificación que admitan ser implementados directamente.

El proceso puede ser modelado como un árbol. Este enfoque claramente favorece la descomposición modular.

Como contraejemplo, muchos módulos requieren algún tipo de inicialización, algunas acciones que deben realizarse antes que el módulo pueda hacer algo útil. Parecería una buena idea concentrar tales acciones, para todos los módulos, en un único módulo de inicialización.

Tal modulo exhibiría una alta "Cohesión temporal", en el sentido de que todas sus acciones son ejecutadas en el mismo estado de la ejecución del sistema, sin embargo tal modulo de inicialización viola el criterio de descomposición puesto que el mismo inicializa estructrua de datos en otros módulos lo que requiere una continua interacción entre este y los otros módulos

Es importante recordar que los módulos para poder solucionar los problemas separadamente, tienen que estar diseñados de forma independiente a quien implemente el módulo.

Saludos!

0 comentarios:

Publicar un comentario