proomt

Search

Search posts, papers, and topics

Hall of Fame

Hall of FameDavid L. Parnas197221 min readpaperintermediate

On the Criteria To Be Used in Decomposing Systems into Modules

Summary

Parnas argues that effective modularization depends on the criteria used to split a system, not just on grouping subroutines. He illustrates conventional vs. responsibility‑based decompositions on a KWIC index, showing how different criteria affect changeability, understandability, and implementation cost.

  • Define module boundaries by responsibility and changeability, not merely by subroutine grouping.
  • Different decomposition criteria affect documentation, maintenance, and flexibility more than runtime behavior.
  • A master control module can coordinate sequencing while keeping other modules independent.
  • Unconventional modularizations may improve development speed but may need alternative implementation approaches to avoid inefficiency.

Software engineers designing large systems should consider responsibility‑based modular criteria to improve maintainability and flexibility.

6/10

Related reading

  1. Why Functional Programming Matters

    Hughes argues that functional programming’s real power lies in higher‑order functions and lazy evaluation, which act as new kinds of "glue" for modular design. He illustrates this with foldr and examples ranging from list processing to alpha‑beta pruning, showing how these features simplify and reuse code.

    Hall of Famekent.ac.uk38 minpaper
  2. Microservices vs Monolithic Architecture: What Nobody Tells You Until You've Lived Through Both

    The article walks through the hidden costs of both monoliths and microservices, showing that the choice isn’t about hype but about concrete trade‑offs like deployment coordination, observability, data consistency, and team structure. It recommends a modular monolith as a pragmatic middle ground when the organization isn’t ready for full service sprawl.

    SitePointsitepoint.com9 min
  3. Article: Beyond Relevance: A Governance-First Architecture for Enterprise Personalization

    The article proposes a governance‑first architecture for enterprise personalization, where policy‑driven steps (memory, journey graph, AI routing, scoring, trust checks, outcome simulation) shape the recommendation before it is returned. A reference FastAPI implementation demonstrates the pattern with external YAML policies and optional LLM assistance.

    InfoQinfoq.com19 min
  4. Article: Your Next DSL Author Is a Language Model

    Typed Domain Grounding (TDG) embeds a DSL inside a mainstream language the LLM already knows (e.g., Kotlin) and uses the host compiler as an oracle. The author describes five building blocks—embedding, choosing a host language with high training‑data frequency, compiler‑driven type safety, a generate‑compile‑repair loop, and an on‑demand teaching tool—and shows measured results from kUML, a Kotli…

    InfoQinfoq.com18 min