Book

Software Fundamentals: Collected Papers by David L. Parnas

📖 Overview

Software Fundamentals: Collected Papers by David L. Parnas assembles key writings from one of software engineering's most influential figures. The book presents Parnas's foundational papers written between 1969 and 1994, covering topics from modular programming to documentation. The collection includes the seminal "On the Criteria to Be Used in Decomposing Systems into Modules" and "On the Design and Development of Program Families." Each paper is accompanied by updated commentary from Parnas reflecting on the evolution of these concepts over time and their continued relevance to modern software development. The papers address practical engineering challenges like information hiding, system design principles, and safety-critical software development. Technical concepts are explained through concrete examples and case studies drawn from real-world software projects. This compilation represents the development of software engineering from an ad-hoc activity to a disciplined engineering practice. The underlying theme throughout is the importance of rigorous methodology and systematic approaches in creating reliable, maintainable software systems.

👀 Reviews

Readers value this book as a collection of Parnas's influential papers on software design and architecture spanning multiple decades. What readers liked: - Clear explanations of modular programming concepts - Historical perspective on software engineering principles - Detailed examples that demonstrate practical applications - Papers arranged in logical progression showing evolution of ideas What readers disliked: - Some papers feel dated or redundant - Dense academic writing style can be challenging - High price point for a collection of previously published work - Limited coverage of more recent software developments Ratings: Goodreads: 4.0/5 (8 ratings) Amazon: 4.5/5 (3 ratings) Notable reader comments: "The papers on information hiding and modular design remain relevant today" - Amazon reviewer "Good historical resource but not a practical guide for modern developers" - Goodreads reviewer "Worth reading for serious software engineers but requires focused study" - Goodreads reviewer

📚 Similar books

Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin This text presents systematic approaches to writing maintainable code through principles that parallel Parnas's fundamental work on modular programming and information hiding.

Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma The book provides structural templates for software design that build upon the modular design concepts Parnas pioneered.

The Mythical Man-Month by Fred Brooks The essays in this collection examine software engineering principles and project management with the same academic rigor as Parnas's fundamental papers.

Facts and Fallacies of Software Engineering by Robert L. Glass This text presents empirical observations about software development that complement Parnas's systematic approach to software design and documentation.

The Psychology of Computer Programming by Gerald M. Weinberg The book examines the human factors in programming through a scientific lens similar to Parnas's analytical approach to software engineering principles.

🤔 Interesting facts

🔹 David Parnas coined the term "information hiding" in software engineering, a fundamental principle that revolutionized how programmers think about modular programming and encapsulation. 🔸 The book includes Parnas's seminal 1972 paper "On the Criteria to Be Used in Decomposing Systems into Modules," which has been cited over 10,000 times and remains influential in modern software design. 🔹 Parnas famously resigned from the U.S. Strategic Defense Initiative (Star Wars) program in the 1980s, arguing that the software required would be impossible to make reliable enough for its intended purpose. 🔸 The collection spans over 30 years of Parnas's work and includes papers that helped establish software engineering as a legitimate engineering discipline, separate from computer science. 🔹 Despite being published in 2001, many of the principles discussed in the book remain highly relevant today, particularly in areas like software documentation, system design, and professional ethics in software development.