David Parnas wrote several papers in the 1970's and 1980's that are now considered classics. The concepts he advocated such as information hiding and bstract interfaces are generally accepted as the appropriate way to design nontrivial software systems. However, not all of what he proposed has been fully appreciated and assimilated into our practices. Many of his simple, elegant ideas have been lost amongst the hype surrounding the technologies and methods that have arisen in the past two decades. This paper examines Parnas's ideas, especially his emphasis on program families, and proposes that college-level computing science and software engineering curricula should renew their attention to these very important principles and techniques and present them in the context of contemporary software development.
H. Conrad Cunningham, Cuihua Zhang, Yi Liu