- Author
- Adrian Colyer, The Morning Paper
- Published
- 5 September 2016
- Kind
- Blog summary of a 1971 research paper
- Original
- blog.acolyer.org/2016/09/05/on-the-criteria-to-be-used-in-decomposing-systems-into-modules/
- Subject
- Software design
What it is
Adrian Colyer writes The Morning Paper, a blog about computer science research. This post summarises a paper by David Parnas from 1971. It asks whether the lessons apply to services today.
What it says
- Colyer says a modularization's success depends on the criteria used to divide the system.
- The post says Parnas hoped modules would cut development time, add flexibility and aid comprehension.
- The first design makes each processing step a module, with shared data.
- The second design follows information hiding, so each module hides one design decision.
- The post says many changes force edits in every module of the first design.
- The post quotes Parnas warning the second design may be much less efficient.
- Parnas concludes that starting from a flowchart is almost always incorrect.
What evidence it gives
The post offers one worked example, a small index generator treated as a large project. It relies on Parnas's subjective judgement about comprehensibility. It reports no measurements.
Interests and limits
The post summarises a paper and does not test its claims. Colyer applies the ideas to microservices as an analogy, with no data. Parnas calls the example somewhat of a toy.