David L. Parnas
University of North Carolina, Chapel Hill, NC
Chapter I: Notes on structured programming
Structured programming
Splitting the Difference: The Historical Necessity of Synthesis in Software Engineering
IEEE Annals of the History of Computing