Diseño Modular Efectivo en Ingeniería de Software

El papel del diseño modular efectivo en la ingeniería de software:
cualquier software se compone de muchos sistemas que contienen varios subsistemas y esos subsistemas contienen además sus subsistemas. Por lo tanto, diseñar un sistema completo de una sola vez que incluya todas y cada una de las funciones requeridas es un trabajo agitado y el proceso puede tener muchos errores debido a su gran tamaño.

Por lo tanto, para resolver este problema, el equipo de desarrollo dividió el software completo en varios módulos. Un módulo se define como los componentes únicos y direccionables del software que se pueden resolver y modificar de forma independiente sin perturbar (o afectar en una cantidad muy pequeña) a otros módulos del software. Por lo tanto, todo diseño de software debe seguir la modularidad.

El proceso de dividir un software en múltiples módulos independientes donde cada módulo se desarrolla por separado se denomina Modularización .

Se puede lograr un diseño modular efectivo si los módulos particionados se pueden resolver, modificar y compilar por separado. Aquí módulos compilables separados significa que después de hacer cambios en un módulo no hay necesidad de volver a compilar todo el sistema de software.

Para construir un software con un diseño modular efectivo, hay un factor de «Independencia funcional» que entra en juego. El significado de independencia funcional es que una función es de naturaleza atómica, de modo que realiza solo una tarea del software sin o con la menor interacción con otros módulos. La independencia funcional se considera como un signo de crecimiento en la modularidad, es decir, la presencia de una mayor independencia funcional da como resultado un sistema de software de buen diseño y el diseño afecta aún más la calidad del software.

Beneficios de los módulos/funciones independientes en un diseño de software:
dado que la funcionalidad del software se ha dividido en niveles atómicos, los desarrolladores obtienen un requisito claro de todas y cada una de las funciones y, por lo tanto, el diseño del software se vuelve fácil y sin errores.

Como los módulos son independientes, tienen una dependencia limitada o casi nula de otros módulos. Por lo tanto, en este enfoque es posible realizar cambios en un módulo sin afectar todo el sistema.
La propagación de errores de un módulo a otro y más allá en todo el sistema se puede ignorar y ahorra tiempo durante las pruebas y la depuración.

La independencia de los módulos de un sistema de software se puede medir utilizando 2 criterios: Cohesión y Acoplamiento . Estos se explican a continuación a continuación.

Figura – Cohesión y Acoplamiento entre 2 módulos

Cohesión:
La cohesión es una medida de la fuerza en la relación entre varias funciones dentro de un módulo. Es de 7 tipos que se enumeran a continuación en orden de alta a baja cohesión:

1. Functional cohesion
2. Sequential cohesion
3. Communicational cohesion
4. Procedural cohesion
5. Temporal cohesion
6. Logical cohesion
7. Co-incidental cohesion 

Acoplamiento:
el acoplamiento es una medida de fuerza en la relación entre varios módulos dentro de un software. Hay 6 tipos que se enumeran a continuación en orden de acoplamiento bajo a alto:

1. Data Coupling
2. Stamp Coupling
3. Control Coupling
4. External Coupling
5. Common Coupling
6. Content Coupling 

Un buen diseño de software requiere alta cohesión y bajo acoplamiento .

Publicación traducida automáticamente

Artículo escrito por RISHU_MISHRA y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *