|
|||||||||||||||||||||||||||||||||||
|
12 Reviews
|
Average Customer Review
Share your thoughts with other customers
Create your own review
|
|
Most Helpful First | Newest First
|
|
16 of 16 people found the following review helpful:
5.0 out of 5 stars
At last, the classics begin to emerge,
By
This review is from: Software Fundamentals: Collected Papers by David L. Parnas (Paperback)
If you are old enough to have studied David Parnas' papers, buy this book - all his treasures are collected in one convenient place. If you are too young to have studied Parnas' work, then know there is great value in studying the classics no matter what field you are in. Until now, we have not been able to study classics, as our field was too young for true classics to have been identified. As I read this book, I realize Parnas' papers have stood the test of time and are worthy of serious study by all in our field who wish to be thought of as professional software engineers. During the early decades of our profession, David wrote some of the most insightful papers published. He uniquely wove a scholarly approach to understanding how we might develop our field, with a pragmatic view of what really happens as we set out to build software systems. As I developed my career, his papers influenced how I thought about and approached my discipline. More than that, his papers influenced the foundation of all software engineering. For example, he first applied the word "module," to our field - the term since has been abused to the point where it means nothing, but he was talking about what we have come to call an object! With the term "information hiding," he was telling us how to design fine objects. Beyond objects, he explored how to approach reuse, he laid the foundation for application frameworks, and showed us that methodical system specification was possible. These are just a few examples, he addressed so much more. Adding value to Parnas' collection of papers, some of the most influential leaders in the field of software engineering introduce his papers, explaining how Parnas' ideas are being put to work in our modern day practice. I remember a time, sitting beside my grandfather as he showed me pictures he had taken throughout his life. For him it was a chance to remember important times from his past. For me it was my opportunity to learn about a history that had great influence on me. His stories answered who I was and why my family was the way it was. "Software Fundamentals," provides just such a valuable experience. If you are "one of the old guys," you will enjoy looking again at these wonderful ideas. If you are a "young'n" then learn about the foundations of software engineering, learn where we have come from, learn the lessons of an earlier generation and you will have my respect. After all, those who do not learn from history, are condemned to relive it.
11 of 11 people found the following review helpful:
5.0 out of 5 stars
There's nothing new under the sun...,
By
This review is from: Software Fundamentals: Collected Papers by David L. Parnas (Paperback)
The software world is full of "revolutionary" ideas that seem to be periodically rediscovered. Topics such as refactoring, data hiding, and "design for change" have all made recent rounds in the development world. However, most of these concepts have been part of the research literature for decades.Much of the software development work done today is done by people lacking the requisite fundaments for the job. Very few are capable of assessing the true technical strengths of software products. Most are content to read the glossy sales brochures or shallow write-ups in trade magazines to maintain their knowledge of the state of the art. A careful reading of the collected papers in this volume go a long way towards protecting the reader from the modern snake oil salesmen of the software industry. This book should be required reading for all software developers who strive to deserve the title "Engineer."
11 of 11 people found the following review helpful:
5.0 out of 5 stars
Classics and unknown gems,
By
This review is from: Software Fundamentals: Collected Papers by David L. Parnas (Paperback)
Despite a half-century of practice, a distressingly large portion of today's software is over budget, behind schedule, bloated, and buggy.To those who wonder why, and whether anything can be done about it, I have long recommended the book {\it The Mythical Man-Month}, by Frederick P. Brooks, Jr. This book has stayed continuously in print since 1975, and remained remarkably relevant. Now there is another book I would put beside it. {\it Software Fundamentals: Collected Papers by David L. Parnas} is more technical and less management-oriented, but equally thought-provoking. Parnas has been writing seminal and provocative papers about software and software development for more than 30 years. This book collects more than 30 of these papers. It includes well-known classics such as "On the Criteria to Be Used in Decomposing Systems into Modules," "On a 'Buzzword': Hierarchical Structure," "On the Design and Development of Program Families," "Designing Software for Ease of Extension and Contraction," "A Rational Design Process: How and Why to Fake It," and "Software Engineering: An Unconsummated Marriage." It also has some lesser-known gems, such as "Who Taught Me About Software Engineering Research?", "Active Design Reviews: Principles and Practices," and "Software Aging." Because the papers were written to stand alone, and because each has its own introduction, the reader can browse them in just about any order. Browsing or reading this book, I think you'll be struck by how much of today's "conventional wisdom" about software was introduced (or championed very early) by Dave. Equally surprising is the number of his good ideas that have still not made their way into current practice. Anyone who cares about software should ask, Why? Parnas isn't always right, but he's never dull. One of the most valuable things to do with this book is to pick something he says that you disagree with (preferably something you think is "obviously wrong"), and try to construct a convincing counter-argument. You'll probably find it harder than you expect, and you'll almost surely learn something valuable.
8 of 8 people found the following review helpful:
5.0 out of 5 stars
Well-Organized Review, Insightful Content.,
By
This review is from: Software Fundamentals: Collected Papers by David L. Parnas (Paperback)
I consider this book on two levels:1. How well does it capture and present the important contributions Parnas has made to the Software Engineering discipline? 2. Is the content (i.e. Parnas' papers) useful? --- This book does a beautiful job of collecting and organizing Parnas' papers. Each paper is preceeded by an introduction from a peer or other recognized prominent computer scientist. Almost all of these introductions are insightful in themselves: they help create a context for the essay which made it easier for me to fill in the gaps. Almost all of the contributors' writting styles are lucid and easy to read. I found reading through this book quite enjoyable. Parnas' contributions are critical, no doubt. The concept of Information Hiding as a criteria for modular decomposition really helped form modern "object-oriented" thinking. It seems to me that returning to the first well-formed idea can often grant insights into how to be more effective with its offspring. Indeed, Chapter 7 in this text is essentially a primer on how to think in object-oriented terms. You'll not find a passage that reads, "now here's an example of that in Java/C#/C++" But that's the blessing: Parnas communicates the essence of the principles that yield quality software engineering without getting lost in unnecessary details. The fact that some of these papers were written 30 years ago helps bring home the fact that novel ideas are rare. One aspect of 30 year-old writtings that may be a stumbling block for similarly aged programmers is that these works live in an iron world: where programs lived very close to their hardware. Parnas uses phrases like "4 bytes packed in a word" and "core" that seem primal (not to say that some folks aren't concerned with word-sizes and which endian, just that the overall percentage is much lower). For some, this may seem to be a waste of time to try to understand. I encourage the reader to ferret out the bigger message...the more abstract picture of principles that guide one to conceive, organize, implement and document quality software. If you are a journeyman programmer looking for the original latin, enjoy this well-polished collection for yourself.
6 of 7 people found the following review helpful:
3.0 out of 5 stars
Comprehensive coverage of some software fundamentals,
By A Customer
This review is from: Software Fundamentals: Collected Papers by David L. Parnas (Paperback)
The papers provide very clear explanations of a number of software fundamentals. The key ideas (information hiding, documentation methods, software structures) are covered from numerous different angles which ensures that they are well understood. Some of the commentaries are more useful than others, the ones that I liked the best were those that highlight the present day relevance of the ideas and details. On the downside, its certainly not bedside reading material, but at the same time its difficult to use as a reference because it does not try to pull the papers together. There are only a small number of core concepts - an incredible achievement for any one person, but limiting its usefulness for a reader. And despite the assurances of some of the commentators I think that some of the papers have dated.
3 of 3 people found the following review helpful:
4.0 out of 5 stars
Excellent Collection of Thought Provoking Material,
By "microtherion" (Sim City, CA (Somewhere in the Bay Area)) - See all my reviews
This review is from: Software Fundamentals: Collected Papers by David L. Parnas (Paperback)
A great collection of papers showing a wide range of Parnas' thinking, on mathematical subjects, on the software engineering subjects he is best known for professionally, and on matters of personal and professional responsibility (like his views against SDI, which have become of increased relevance again).I would not necessarily recommend this book to somebody who is looking for concrete and comprehensive answers to some pressing problem. Rather, the book is an opportunity to glimpse into the thinking of an extraordinary researcher and to pick up some useful professional insights along the way (similar to Knuths' _Selected Papers on ..._ series or Dijkstra's _Selected Writings on Computing_). In reading the software engineering papers, I was particularly impressed with Parnas' formal, yet utterly pragmatic use of math (as opposed to the mathematical showboating common in the program verification literature). The book also adds a lot of context to Parnas' stand on SDI, showing that he was, in general, more than willing to work on military (and nuclear) projects. A delightful read, only slightly blemished by a somewhat excessive number of errata (which, I believe, are fair game to criticize in a book dedicated to software quality).
2 of 2 people found the following review helpful:
5.0 out of 5 stars
The most influential book I've read on software engineering!,
By Jeffrey Smith (Philadelphia, PA USA) - See all my reviews
This review is from: Software Fundamentals: Collected Papers by David L. Parnas (Paperback)
The ideas presented in this collection of papers changed forever the way I think about developing sofware. These papers separate the men from the boys. If you understand the concepts layed out by Parnas in these papers you are well along your way to understanding the fundamentals necessary for developing quality software. The papers are clearly research oriented and don't have modern real world applications presented in the text, however, the ideas are timeless. The reader will need to make some connections with the modern world on their own. It is well worth the time and effort to read and digest what Parnas has to say.
3 of 4 people found the following review helpful:
5.0 out of 5 stars
Still relevant in the world of Software Engineering,
By
This review is from: Software Fundamentals: Collected Papers by David L. Parnas (Paperback)
Anyone who considers themself a Java developer should know who Dave Parnas is. Without the insight of Dave Parnas in the 60s and 70s there would be no such thing as the Java programming language. Ever heard of information hiding (the basis for all Object Oriented programming)? Yeah, Parnas came up with that. Exception Handling? That's him too. Interfaces? Parnas. (Get the idea?)This book reprints 33 of Parnas' most influential papers. Each paper is started off with an introduction from one of Parnas' peers (like Barry Boehm), giving the paper a connection to the modern state of Software Engineering, and trying to give the reader an understanding of just how seminal the particular paper was to the world of Computer Science and Software Engineering. I believe you become a much better programmer if you understand where things come from. Once you understand how things were before "Information Hiding" came about, you get a better appreciation for why its such a necessary and important practice. You'll become a better programmer because you're more aware of what would happen if you didn't have exception handling. And you'll be come a better writer when you understand why buzzwords can be so dangerous in technical papers. Dave Parnas has been a huge influence over the world of Software Engineering. Everyone should have the chance to read his work.
5.0 out of 5 stars
Must Reading For Every Software Engineer,
By
Amazon Verified Purchase(What's this?)
This review is from: Software Fundamentals: Collected Papers by David L. Parnas (Paperback)
Parnas is one of the giants of the early days of software engineering and these papers are truly fundamental to understanding the discipline.
If you have not been exposed to Parnas' work, then this book provides a collection of the essential writings of this seminal author. My personal favorite, which you should read if you are interested in software process improvement, is "A Rational Design Process: How and Why to Fake It." While its definitely not easy reading, it is worthwhile and highly recommended for every individual that aspires to being a software engineer.
5.0 out of 5 stars
An insight to the software fundamentals,
By Dmitry Dvoinikov (Ekaterinburg, Russia) - See all my reviews
This review is from: Software Fundamentals: Collected Papers by David L. Parnas (Paperback)
This book is not typical for software literature. An anthology of papers published since 1970s by one of the most influential researchers in software engineering - David Lorge Parnas. Here is a quote from the editors:
---QUOTE--- This book is our attempt to provide a view of the work of one of the grandmasters of our field, highlighting the fundamental ideas that he and his colleagues invented and expounded. We hope to provide the reference for those who teach and those who do, giving them both an historical record, a clear explanation of fundamental ideas that will help them in their work... ---/QUOTE--- Although loosely categorized under 4 parts - Description and specification, Software design, Concurrency and scheduling and Commentary, the papers are effectively assorted. The most influential papers seem to appear in the book, but there also are others that are of interest only with respect to the way the author writes, not with the discussed matter. To me, the most valuable papers fell into just two categories. First, the ones that I could apply with my practical work (for those who do). Not as a hands-on manual of course, but as the original source of the mechanisms we now have and the goals originally intended. These were papers about modularization, interfaces, abstract data types, handling errors, software "aging" etc. Second were the social and philosophical kind of papers on engineering aspects of software development, professional responsibility and ethics, teaching programming etc (for those who teach). There also were many papers that I found useless. They either discuss a specific algorithm, or have too much mathematical notation and not enough readable outcome. Mathematical rigor, that I do respect, but having presented a software practitioner with a dense mathematical proof is likely to miss the point. I don't need the proof and I won't be checking it for correctness. I need the result and I will trust it. The author himself writes in one of the papers: ---QUOTE--- Computer professionals do not read our literature because it does not help them to do their job better. These papers may be very good papers, they may have influenced other researchers, but they have not significantly changed the way that programs are written. ---/QUOTE--- Many times I couldn't even read half a page without having my mind drifting away, as the simple idea put in a single sentence brought up a world of thoughts. At that times I had to close the book and stare outside trying to sort out my own thoughts provoked with what I've just read. Many of the things about which Parnas wrote now appear under different names, and they even look and behave slightly different from how he envisioned but it is nevertheless the original source and it is a magnificent feeling to read it. The book is a great experience to read, but I won't be recommending it to you. You'll know by yourself when you want it. |
|
Most Helpful First | Newest First
|
|
Software Fundamentals: Collected Papers by David L. Parnas by David Lorge Parnas (Paperback - April 19, 2001)
$49.95 $35.75
In Stock | ||