Modularidad (informática)

Hoy en día, Modularidad (informática) es un tema que se encuentra en el centro de atención y debate en distintos ámbitos. Sus implicaciones y repercusiones son de gran importancia, por lo que resulta fundamental analizarlo desde diversas perspectivas. En este artículo, exploraremos diferentes aspectos relacionados con Modularidad (informática), examinando su impacto en la sociedad, su evolución a lo largo del tiempo y las posibles soluciones o enfoques que se puedan considerar. Este tema es de interés general y su relevancia no puede ser ignorada, por lo que es crucial comprenderlo de manera integral para tomar decisiones informadas y fomentar un diálogo constructivo sobre el mismo.

La modularidad es, en programación modular y más específicamente en programación orientada a objetos, la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las partes restantes.

Al igual que la encapsulación, los lenguajes soportan la Modularidad de diversas formas. La modularidad debe seguir los conceptos de acoplamiento y cohesión.

Según Bertrand Meyer: «El acto de particionar un programa en componentes individuales para reducir su complejidad en algún grado… A pesar de particionar un programa es útil por esta razón, una justificación más poderosa para particionar un programa es que crea una serie de límites bien definidos y documentados en el programa. Estos límites, o interfaces, son muy valiosos en la comprensión del programa».

Por su parte Bárbara Liskov establece que la «modularización consiste en dividir un programa en módulos que pueden ser compilados de forma separada, pero que tienen conexiones con otros módulos».

Referencias

  1. Myers, G. 1978. CompositeIStructured Design. New York, NY: Van Nostrand Reinhold, p. 21.
  2. Liskov, B. 1980. A Design Methodology for Reliable Software Systems, in Tutorial on Software Desigri Tecbniques. Third Edition. New York, NY: IEEE Computer Society, p.66.