Modularity

Broadly speaking, modularity is the degree to which a system's components may be separated and recombined, often with the benefit of flexibility and variety in use.[1] The concept of modularity is used primarily to reduce complexity by breaking a system into varying degrees of interdependence and independence across and "hide the complexity of each part behind an abstraction and interface".[2] However, the concept of modularity can be extended to multiple disciplines, each with their own nuances. Despite these nuances, consistent themes concerning modular systems can be identified.[3]

Composability is one of tenets of functional programming. This makes functional programs modular. [4]

  1. ^ "modular". Merriam-Webster. Merriam-Webster, Inc. 17 May 2018. Retrieved 18 May 2018.
  2. ^ Baldwin, C.Y.; Clark, K.B. (2000). "Chapter 3: What Is Modularity?". Design Rules: The power of modularity. MIT Press. pp. 63–92. ISBN 9780262024662. Retrieved 18 May 2018.
  3. ^ Schilling, M.A. (2009-02-09). "Towards A General Modular Systems Theory and its Application to Interfirm Product Modularity – Commentary". In Garud, R.; Kumaraswamy, A.; Langlois, R.N. (eds.). Managing in the Modular Age: Architectures, Networks, and Organizations. John Wiley & Sons. pp. 203–216. ISBN 9781405141949. Retrieved 18 May 2018.
  4. ^ Wlaschin, Scott. Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#. ISBN 978-1680502541.