On the criteria to be used in decomposing systems into modules (1972) [pdf]
I always bring up this paper when I read a post criticizing OOP. It&#x27;s a bit old but still very relevant and practical. In it the concept of information hiding, closely related to encapsulation, was first described. This concept plays a central role in the strategy for effective system modularization and is IMHO the basis of OOP.<p>Shameless plug: A couple of years ago I wrote a post about this paper trying to expand it based on my personal experience and providing a more simpler example to elucidate the concepts presented in it [1]<p>[1] <a href="https:&#x2F;&#x2F;thomasvilhena.com&#x2F;2020&#x2F;03&#x2F;a-strategy-for-effective-system-modularization" rel="nofollow">https:&#x2F;&#x2F;thomasvilhena.com&#x2F;2020&#x2F;03&#x2F;a-strategy-for-effective-s...</a>