by camnora on 1/30/22, 4:21 PM with 27 comments
by tcgv on 1/30/22, 7:24 PM
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]
[1] https://thomasvilhena.com/2020/03/a-strategy-for-effective-s...
by pixelmonkey on 1/30/22, 5:42 PM
https://blog.acolyer.org/2016/09/05/on-the-criteria-to-be-us...
This is the paper known for introducing/elaborating concepts like "modularization" and "information hiding".
by User23 on 1/30/22, 4:57 PM
We have tried to demonstrate by these examples that it is almost always incorrect to begin the decomposition of a system into modules on the basis of a flowchart. We propose instead that one begins with a list of difficult design decisions or design decisions which are likely to change. Each module is then designed to hide such a decision from the others. Since, in most cases, design decisions transcend time of execution, modules will not correspond to steps in the processing. To achieve an efficient implementation we must abandon the assumption that a module is one or more subroutines, and instead allow subroutines and programs to be assembled collections of code from various modules.
This aligns well with my experience, even if the terminology feels a bit dated.by goto11 on 1/30/22, 6:55 PM
by gandalfgeek on 1/30/22, 8:57 PM
by goto11 on 1/30/22, 6:24 PM
(And sorry for the negativity since this is a fascinating article. But I'm genuinely curious why the this PDF is so ugly, since I'm sure the original published version looked significantly better, and the text seems to have been OCR'ed)
by Jtsummers on 1/30/22, 6:15 PM
https://news.ycombinator.com/item?id=8849468 - Jan 7, 2015 (5 comments)