Home :: Books :: Computers & Internet  

Arts & Photography
Audio CDs
Audiocassettes
Biographies & Memoirs
Business & Investing
Children's Books
Christianity
Comics & Graphic Novels
Computers & Internet

Cooking, Food & Wine
Entertainment
Gay & Lesbian
Health, Mind & Body
History
Home & Garden
Horror
Literature & Fiction
Mystery & Thrillers
Nonfiction
Outdoors & Nature
Parenting & Families
Professional & Technical
Reference
Religion & Spirituality
Romance
Science
Science Fiction & Fantasy
Sports
Teens
Travel
Women's Fiction
Software Fundamentals: Collected Papers by David L. Parnas

Software Fundamentals: Collected Papers by David L. Parnas

List Price: $49.95
Your Price: $49.95
Product Info Reviews

<< 1 2 >>

Rating: 4 stars
Summary: Excellent Collection of Thought Provoking Material
Review: 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).

Rating: 5 stars
Summary: Still relevant in the world of Software Engineering
Review: 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.

Rating: 5 stars
Summary: Software Engineers Must own this book
Review: David Parnas invented Object Orineted Programming and just about everything else in Software Engineering. Ask him, he will tell you. He will be more right than wrong.

This book is a wonderful collection of his papers with terrific introductions by the best people in the field. Professors, students and practioners of software engineers will find this book a treasure. It is not for the coffee table, it is for the book shelf right next to your most often referenced books.

This is a must read. The book is organized so well that you can start anywhere and find relevant, analytical and useful ideas and approaches.

Parnas is a name to know. His works are worthy of knowing.

Weiss and Hoffman selected his most important articles and organized them with taste. Well done.

Buy the book, read it, reference it and use the approaches if you want to be an educated Software Engineer.

Rating: 5 stars
Summary: Software Engineers Must own this book
Review: David Parnas invented Object Orineted Programming and just about everything else in Software Engineering. Ask him, he will tell you. He will be more right than wrong.

This book is a wonderful collection of his papers with terrific introductions by the best people in the field. Professors, students and practioners of software engineers will find this book a treasure. It is not for the coffee table, it is for the book shelf right next to your most often referenced books.

This is a must read. The book is organized so well that you can start anywhere and find relevant, analytical and useful ideas and approaches.

Parnas is a name to know. His works are worthy of knowing.

Weiss and Hoffman selected his most important articles and organized them with taste. Well done.

Buy the book, read it, reference it and use the approaches if you want to be an educated Software Engineer.

Rating: 5 stars
Summary: Classics and unknown gems
Review: 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.

Rating: 5 stars
Summary: Well-Organized Review, Insightful Content.
Review: 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.

Rating: 5 stars
Summary: At last, the classics begin to emerge
Review: 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.

Rating: 5 stars
Summary: The most influential book I've read on software engineering!
Review: 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.

Rating: 3 stars
Summary: Comprehensive coverage of some software fundamentals
Review: 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.

Rating: 5 stars
Summary: There's nothing new under the sun...
Review: 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."


<< 1 2 >>

© 2004, ReviewFocus or its affiliates