domingo, 12 de mayo de 2013



Descomposición modular

Capacidad de empleo de componentes modulares. Si un método de diseño permite ensamblar los componentes de diseño (reusables) existentes en un sistema nuevo, producirá una solución modular que no inventa nada ya inventado.

Capacidad de comprensión modular. Si un módulo se puede comprender como una unidad autónoma (sin referencias a otros módulos) será más fácil de construir y de cambiar.

Continuidad modular. Si pequeños cambios en los requisitos del sistema provocan cambios en los módulos individuales, en vez de cambios generalizados en el sistema, se minimizará el impacto de los efectos secundarios de los cambios.

Protección modular. Si dentro de un módulo se produce una condición aberrante y sus efectos se limitan a ese módulo, se minimizará el impacto de los efectos secundarios inducidos por los errores.

Finalmente, es importante destacar que un sistema se puede diseñar modularmente, incluso aunque su implementación deba ser «monolítica». Existen situaciones (por ejemplo, software en tiempo real, software empotrado) en donde no es admisible que los subprogramas introduzcan sobrecargas de memoria y de velocidad por mínimos que sean (por ejemplo, subrutinas, procedimientos). En tales situaciones el software podrá y deberá diseñarse con modularidad como filosofía predominante.

El código se puede desarrollar «en línea». Aunque el código fuente del programa puede no tener un aspecto modular a primera vista, se ha mantenido la filosofía y el programa proporcionará los beneficios de un sistema modular.
El diseño modular propone dividir el sistema en partes diferenciadas y definir sus interfaces. sus ventajas: claridad, reducción de costos y reutilización.

Los pasos a seguir son:

1. Identificar los módulos

2. Describir cada módulo

3. Describir las relaciones entre módulos

Una descomposición modular debe poseer ciertas cualidades mínimas para que se pueda considerar suficiente validad.

1. Independencia funcional

2. Acoplamiento

3. Cohesión

4. Comprensibilidad

5. Adaptabilidad






Independencia funcional

-Cada módulo debe realizar una función concreta o un conjunto de funciones afines. Es recomendable reducir las relaciones entre módulos al mínimo.
- Para medir la independencia funcional  hay dos criterios: acoplamiento y  cohesión 

Acoplamiento

- El acoplamiento es una medida de la interconexión entre módulos en la estructura del programa. Se tiende a que el acoplamiento sea lo menor posible, esto es a reducir las interconexiones entre los distintos módulos en que se estructure nuestra aplicación. El grado de acoplamiento mide la interrelación entre dos módulos, según el tipo de conexión y la complejidad de la interface:

- Fuerte
- Por contenido, cuando desde un módulo se puede cambiar datos locales de otro.
- Común, se emplea una zona común de datos a la que tienen acceso varios módulos.
- Moderado
- De control, la zona común es un dispositivo externo al que están ligados los módulos, esto implica que un cambio en el formato de datos los afecta a todos.
- Débil
- De datos, viene dado por los datos que intercambian los módulos. Es el mejor.
- Sin acoplamiento directo, es el acoplamiento que no existe

Cohesión

- Un módulo coherente ejecuta una tarea sencilla en un procedimiento y requiere poca interacción con procedimientos que se ejecutan en otras partes de un programa. Podemos decir que un módulo coherente es aquel que intenta realizar solamente una cosa. 

Comprensibilidad

- Para facilitar los cambios, el mantenimiento y la reutilización de módulos es necesario que cada uno sea comprensible de forma aislada.
Para ello es bueno que posea independencia funcional, pero además es deseable:
- Identificación, el nombre debe ser adecuado y descriptivo
- Documentación, debe aclarar todos los detalles de diseño e implementación que no queden de manifiesto en el propio código

 Adaptabilidad

- La adaptación de un sistema resulta más difícil cuando no hay independencia funcional, es decir, con alto acoplamiento y baja cohesión, y cuando el diseño es poco comprensible. Otros factores para facilitar la adaptabilidad:
- Previsión, es necesario prever que aspectos del sistema  pueden ser suceptibles de cambios en el futuro, y poner estos  elementos en módulos independientes, de manera que su  modificación afecte al menor número de módulos posibles
- Accesibilidad, debe resultar sencillo el acceso a los  documentos de especificación, diseño, e implementación para  obtener un conocimiento suficiente del sistema antes de  proceder a su adaptación
- Consistencia, después de cualquier adaptación se debe  mantener la consistencia del sistema, incluidos los documentos  afectados




http://unidad6daps.blogspot.mx/2010/05/61-descomposicion-modular.html

http://genesis9.comxa.com/tareas/UNIDAD6.pdf

12 comentarios:

  1. mas o menos lo que entendí:
    La capacidad de comprensión modular se define como un módulo que se puede comprender como una unidad autónoma.

    Por otro lado la continuidad modular es o son pequeños cambios en los requisitos del sistema que provocan cambios en los módulos individuales.

    Los pasos a seguir son:

    1. Identificar los módulos.
    2. Describir cada módulo.
    3. Describir las relaciones entre módulos.

    Cualidades mínimas.

    1. Independencia funcional.
    2. Acoplamiento.
    3. Cohesión.
    4. Comprensibilidad.
    5. Adaptabilidad.

    ResponderEliminar
    Respuestas
    1. La descomposicion modular es un tema realmente importante que nos maneja como un módulo suele ser un componente de un subsistema, que brinda uno o más servicios a otros módulos .A su vez éste usa los servicios proporcionados por otros módulos. No se le puede considerar como un sistema independiente. ya que en ocasiones este suele necesitar de otros modulos,al hacer la descompocicion modular nos permite hacer un problema grande en pequeños problemas lo cual es mas facil de resolver.

      Eliminar
  2. Esta tema de Descomposición Modular me gusta porque se puede reutilizar en diferentes casos. Y como dise Misty Soloriio, al hacer la Descomposición Modular nos permite hacer un problema grande en pequeños problemas lo cual es mas facil de resolver.

    ResponderEliminar
  3. mas que nada uno delos bueno ya que muchas veces vemos el problema como algo que no se que de resolver pero si vamos descomponiendo el problema en pequeños este se va resolviendo mas amenas y sencilla mente por que no tenemos que centrarnos en todo el problema sino aora en los pequeños problemas que tenemos pero mas sencillo que uno difícil y muy grande el problema claro esta :)

    ResponderEliminar
  4. Si un módulo se puede comprender como una unidad autónoma (sin referencias a otros módulos) será más fácil de construir y de cambiar.

    Continuidad modular. Si pequeños cambios en los requisitos del sistema provocan cambios en los módulos individuales, en vez de cambios generalizados en el sistema, se minimizará el impacto de los efectos secundarios de los cambios.

    Protección modular. Si dentro de un módulo se produce una condición aberrante y sus efectos se limitan a ese módulo, se minimizará el impacto de los efectos secundarios inducidos por los errores.

    ResponderEliminar
  5. Los pasos a seguir son:

    Identificar los módulos
    Describir cada módulo
    Describir las relaciones entre módulos
    Tipos de módulos:

    - Código fuente, en el lenguaje de programación usado

    - Tabla de datos, para datos de inicialización u otros

    - Configuración, se agrupa en un módulo toda la información de configuración en el entorno de trabajo

    - Otros: ficheros de ayuda en línea, manuales, etc.

    Una descomposición modular debe poseer ciertas cualidades mínimas para que se pueda considerar suficientemente válida

    - Independencia fucional

    - Acoplamiento

    - Cohesión

    - Comprensibilidad

    - Adaptabilidad

    ResponderEliminar
  6. Yo que entendí que la descomposición es la capacidad de empleo de diferentes componentes capaces de ser adaptados a las necesidades del diseñador.

    Si un método de diseño permite ensamblar los componentes de diseño (reusables) existentes en un sistema nuevo, producirá una solución modular que no inventa nada ya inventado, si no que solamente reutilice algo que ya fue creado, por alguien mas esto nos facilitara el trabajo.

    a mi en lo personal es una buena técnica de diseño y me gusta la descomposición modular

    ResponderEliminar
  7. AM YO ENTENDI QUE MEDIANTE LA DESCOMPOCICION MODULAR, SE REALIZA PARA DE FORMA MAS SENCILLA PODER LLEGAR A LA SOLUCION DEL PROBLEMA DE UNA FORM FACIL, Y SENCILLA DE FORMA ORDENANA.

    ResponderEliminar
  8. AM POES YO TAMBIÉN ENTENDÍ QUE LA DESCOMPOSICIÓN MODULAR BÁSICAMENTE CONSISTE EN EL RESURGIMIENTO DE NUEVAS IDEAS POR PARTE DEL DISEÑADOR, EN LAS CUALES PODEMOS ENCONTRAR QUE CUANDO SE REALIZA UN CAMBIO EN LOS MÓDULOS INDIVIDUALES, SU FUNCIONAMIENTO NO AFECTA A LOS DEMÁS Y EN CAMBIO, SI SE HACE ESE CAMBIO A UN MODULO DEPENDIENTE; EN ESTE SI SURGEN ALGUNAS ANOMALÍAS.

    TAMBIÉN CABE MENCIONAR QUE SON DE SUMA IMPORTANCIA EN LOS SISTEMAS

    ResponderEliminar
  9. El diseño modular propone dividir el sistema en partes diferenciadas y definir sus interfaces. Sus ventajas: claridad, reducción de costos y reutilización.
    Los pasos a seguir son:
    1. Identificar los módulos.
    2. Describir cada modulo.
    3. Describir las relaciones entre módulos.
    Una descomposición modular debe poseer ciertas cualidades mínimas para que se pueda considerar suficiente validad.
    1. Independencia funcional.
    2. Acoplamiento.
    3. Cohesión.
    4. Comprensibilidad.
    5. Adaptabilidad.

    ResponderEliminar
  10. La descomposición modular es como la creación de pequeñas partes de un software es más fácil crear un software en los módulos existen pequeñas partes de un programa por ejemplo un modulo solo contiene datos de los usuarios otro las acciones que realiza el otro de que partes se componen de todos lo módulos que se juntan se compone el programa principal estos módulos se parecen a las bases de datos por que se van creando uno detrás de otro y además de contener información para la creación de toda la base de datos

    ResponderEliminar
  11. Continuidad modular. Si pequeños cambios en los requisitos del sistema provocan cambios en los módulos individuales, en vez de cambios generalizados en el sistema, se minimizará el impacto de los efectos secundarios de los cambios.

    Protección modular. Si dentro de un módulo se produce una condición aberrante y sus efectos se limitan a ese módulo, se minimizará el impacto de los efectos secundarios inducidos por los errores.

    Finalmente, es importante destacar que un sistema se puede diseñar modularmente, incluso aunque su implementación deba ser «monolítica». Existen situaciones (por ejemplo, software en tiempo real, software empotrado) en donde no es admisible que los subprogramas introduzcan sobrecargas de memoria y de velocidad por mínimos que sean (por ejemplo, subrutinas, procedimientos). En tales situaciones el software podrá y deberá diseñarse con modularidad como filosofía predominante.
    El diseño modular propone dividir el sistema en partes diferenciadas y definir sus interfaces. sus ventajas: claridad, reducción de costos y reutilización.

    Los pasos a seguir son:

    1. Identificar los módulos

    2. Describir cada módulo

    3. Describir las relaciones entre módulos

    Una descomposición modular debe poseer ciertas cualidades mínimas para que se pueda considerar suficiente validad.

    1. Independencia funcional

    2. Acoplamiento

    3. Cohesión

    4. Comprensibilidad

    5. Adaptabilidad


    ResponderEliminar