Está en la página 1de 9

Diseo modular En la fase de diseo del ciclo de vida de un programa, la solucin a un problema suele venir dada por un programa

representado por un mdulo principal, el cual se descompone en subprogramas (submdulos), los cuales, a su vez, tambin se pueden fraccionar, y as sucesivamente, es decir, el problema se resuelve de arriba hacia abajo. A este mtodo se le denomina diseo modular o descendente (top-Down).

El diseo modular es el diseo basado en la modulacin reticular de espacios que permitan optimizar el tiempo de construccin y debido a que son transportables, desarmables y reorganizables permiten impulsar mltiples funcionalidades y su Particin funcional en discretas mdulos escalables y reutilizables que consiste en aislados, autnomos elementos funcionales. Un diseo modular: Reduce la complejidad Facilita los cambios Implementacin ms sencilla Permite el desarrollo paralelo de partes diferentes de un sistema

Una vez que se toma el enfoque del diseo descendente, el enfoque modular es til en la programacin. Este enfoque implica dividir la programacin en partes lgicas y manejables llamadas mdulos. Este tipo de programacin funciona bien con el diseo descendente porque da nfasis a las interfaces entre los mdulos y no los descuida hasta el final del desarrollo de sistemas. Idealmente, cada mdulo individual debe ser funcionalmente cohesivo de manera que se encargue de realizar una sola funcin.

Caractersticas: Uso riguroso de interfaces modulares bien definidas, incluyendo descripciones orientado a objetos de la funcin del mdulo. Facilidad de cambio lograr transparencia tecnologa y, a la medida de lo posible, hacer uso de estndares industriales para interfaces clave. Adems de la reduccin en los costos (debido a una menor personalizacin, y menos tiempo de aprendizaje), y la flexibilidad en el diseo, la modularidad ofrece otros beneficios como al incrementar (la adicin de una nueva solucin con slo conectar un nuevo mdulo), y la exclusin. Las computadoras utilizan la modularidad para superar las demandas cambiantes del cliente y poder realizar el proceso de fabricacin ms de adaptacin al cambio. El diseo modular es un intento de combinar las ventajas de la estandarizacin (alto volumen normalmente es igual a los bajos costos de fabricacin) con los de personalizacin. Un aspecto negativo a la modularidad (y esto depende del grado de modularidad) es que los sistemas modulares no estn optimizados para el rendimiento. Esto es generalmente debido al costo de la colocacin de las interfaces entre los mdulos. V e nta ja s: el diseo de programa modular tiene tres ventajas principales. los mdulos son ms fciles de escribir y de depurar porque prcticamente son independientes. rastrear un error en un mdulo es menos complicado, debido a que un problema en un mdulo no debe causar problemas en otros. los mdulos son ms fciles de mantener. normalmente las modificaciones se limitarn a unos mdulos y no seguirn en todo el programa.

los mdulos son ms fciles de entender, debido a que son subsistemas independientes. por lo tanto, un lector puede adquirir una lista del cdigo de un mdulo y entender su funcin.

Si se producen fallos, son ms fciles de diagnosticar y remediar (no es necesario identificar la pieza concreta, basta con determinar el mdulo y proceder a su sustitucin por otro en buenas condiciones). Las reparaciones son ms sencillas y rpidas, lo que contribuye a reducir sus costes y los de las tareas de mantenimiento, as como las necesidades de formacin de los tcnicos dedicados a estas actividades. La planificacin y programacin del proceso productivo se simplifican, lo mismo que la gestin de los materiales. De s ve nta ja s : Entre los inconvenientes destaca la dificultad (e incluso imposibilidad) de desensamblar los mdulos, lo cual impide la reutilizacin de aquellas piezas que no se encuentren daadas, con el consiguiente coste de materiales para la empresa fabricante y los consumidores, que han de pagar el mdulo entero, aunque slo est parcialmente daado. Descomposicin modular

Es un mtodo de diseo proporciona un mecanismo sistemtico para descomponer el problema en sub-problemas, reducir la complejidad de todo el problema, logrando de esta manera una solucin modular efectiva. VENTAJAS:

Facilita el trabajo en grupos, puesto que la resolucin del problema puede llevarse a cabo por varios programadores en forma paralela, gracias a la divisin del problema en diferentes mdulos.

Contribuye a la comprensin y eleva el grado de legibilidad de los algoritmos.

Reduce el tiempo y el coste del desarrollo del software al permitir la reutilizacin de mdulos anteriormente desarrollados en nuevos proyectos, que necesiten trabajar con estos mdulos.

Agiliza el mantenimiento de los programas, al permitir la depuracin de errores de forma independiente, con lo cual el software se adapta en mejor forma a su entorno cambiante.

Una descomposicin modular debe poseer ciertas cualidades mnimas para que se pueda considerar suficiente validad. independencia funcional acoplamiento cohesin comprensibilidad adaptabilidad Independencia funcional: cada mdulo debe realizar una funcin concreta o un conjunto de funciones afines. es recomendable reducir las relaciones entre mdulos al mnimo. Para medir la independencia funcional hay dos criterios: acoplamiento y cohesin. Acoplamiento: es un medida de la interconexin entre mdulos en la estructura del programa. Podemos graduarla en un amplio espectro, pero

por lo general se tiende a que el acoplamiento sea lo menor posible, esto es a reducir las interconexiones entre los distintos mdulos en que se estructure nuestra aplicacin. el grado de acoplamiento mide la interrelacin entre dos mdulos, segn el tipo de conexin y la complejidad de la interface: fuerte

- por contenido, cuando desde un mdulo se puede cambiar datos locales de otro. - comn, se emplea una zona comn de datos a la que tienen acceso varios mdulos. moderado

- de control, la zona comn es un dispositivo externo al que estn ligados los mdulos, esto implica que un cambio en el formato de datos los afecta a todos. - por etiqueta, en intercambio de datos se realiza mediante una referencia a la estructura completa de datos (vector, pila, rbol, grafo,) dbil

- de datos, viene dado por los datos que intercambian los mdulos. es el mejor. - sin acoplamiento directo , es el acoplamiento que no existe Cohesin: un mdulo coherente ejecuta una tarea sencilla en un procedimiento y requiere poca interaccin con procedimientos que se ejecutan en otras partes de un programa. Podemos decir que un mdulo coherente es aquel que intenta realizar solamente una cosa. Para que n de mdulos no sea demasiado elevado y complique el diseo se tratan de agrupar elementos afines y relacionados en un mismo mdulo. Alta

Cohesin abstraccional, se logra cuando se disea el mdulo como tipo abstracto de datos o como una clase de objetos. cohesin funcional, el mdulo realiza una funcin concreta y especfica

Media cohesin secuencial, los elementos del mdulo trabajan de forma secuencial cohesin de comunicacin, elementos que operan con el mismo conjunto de datos de entrada o de salida cohesin temporal, se agrupan elementos que se ejecutan en el mismo momento. Ejemplo: arrancar o parar dispositivos.

Baja Cohesin lgica, se agrupan elementos que realizan funciones similares. Cohesin coincidental, es la peor y se produce cuando los elementos de mdulo no guardan relacin alguna la descripcin del comportamiento de un mdulo permite establecer el grado de cohesin: si es una frase compuesta y contiene ms de un verbo la cohesin ser media si contiene expresiones secuenciales (primero, entonces, cuando), ser temporal o secuencial si la descripcin no se refiere a algo especfico (ejemplo: todos los errores), cohesin lgica si aparece inicializar, preparar, configurar, probablemente sea temporal. Comprensibilidad

Para facilitar los cambios, el mantenimiento y la reutilizacin de mdulos es necesario que cada uno sea comprensible de forma aislada. para ello es bueno que posea independencia funcional, pero adems es deseable: - identificacin, el nombre debe ser adecuado y descriptivo - documentacin, debe aclarar todos los detalles de diseo e implementacin que no queden de manifiesto en el propio cdigo - simplicidad, las soluciones sencillas son siempre laas mejores. Adaptabilidad la adaptacin de un sistema resulta ms difcil cuando no hay independencia funcional, es decir, con alto acoplamiento y baja cohesin, y cuando el diseo es poco comprensible. otros factores para facilitar la adaptabilidad: previsin, es necesario prever que aspectos del sistema pueden ser susceptibles de cambios en el futuro, y poner estos elementos en mdulos independientes, de manera que su modificacin afecte al menor nmero de mdulos posibles accesibilidad, debe resultar sencillo el acceso a los documentos de especificacin, diseo, e implementacin para obtener un conocimiento suficiente del sistema antes de proceder a su adaptacin consistencia, despus de cualquier adaptacin se debe mantener la consistencia del sistema, incluidos los documentos afectados. Herramientas case: Puede definirse las herramientas case o (ingeniera de software asistida por computadoras.) como un conjunto de mtodos o programas, que facilitan la automatizacin del ciclo de vida del desarrollo de sistemas de informacin, el empleo de estas herramientas, permiten integrar el anlisis de datos y procesos,

generacin de interfaces entre el anlisis y diseo, generacin del cdigo a partir del diseo y control de mantenimiento. Objetivos de las herramientas case: Para mejorar la calidad y la productividad de los sistemas de informacin a la hora de construir software se plantean los siguientes objetivos: Permitir la aplicacin practica de metodologas estructuradas. Facilitar la realizacin de prototipos y el desarrollo conjunto de aplicaciones. Simplificar el mantenimiento de los programas. Mejorar y estandarizar la documentacin. Aumentar la portabilidad de las aplicaciones.

Componentes de una herramienta case: Se compone de los siguientes elementos; Repositorio: es el diccionario donde se almacenan los elementos definidos. Metamodelo: no siempre es visible, constituye el marco para la definicin de las tcnicas. Carga o descarga de datos: son facilidades que permiten cargar el repertorio de herramientas case con datos provenientes de otros sistemas. Comprobacin de errores: facilidades que permiten llevar a cabo un anlisis de la exactitud. Interfaz de usuario: cuenta con editores de texto y herramientas de diseo grficos.

Diseo asistido por herramientas: Es el uso de un amplio rango de herramientas computacionales que asisten a ingenieros, arquitectos, y a otros profesionales del diseo en sus respectivas actividades. Las herramientas case evolucionan hacia tres tipos de integracin: La integracin de datos. La integracin de presentacin y La integracin de herramientas que permitan innovar otras de forma automtica.

Ventajas de las herramientas case: Estas herramientas pueden proveer muchos beneficios en todas las etapas del proceso de desarrollo de software, algunas de ellas son: Mejora en la productividad. Mejora en la eficiencia. Mejora en la calidad del sistema de informacin. Disminucin de tiempo. Automatizacin de tareas tediosas. Garantizar la consistencia de los procedimientos. Ayudar en la creacin de relaciones en la base de datos. Generar estructuras de cdigos.

Desventajas: Confiabilidad en los mtodos estructurados. Falta de niveles estndar para el soporte de la metodologa. Conflicto en el uso de los diagramas. Diagramas no utilizados. Funcin limitada. Costo de adquisicin.

También podría gustarte