or
Sign in to turn on 1-Click ordering.
 
 
Express Checkout with PayPhrase
What's this? | Create PayPhrase
More Buying Choices
33 used & new from $32.99

Have one to sell? Sell yours here
 
   
Software Fundamentals: Collected Papers by David L. Parnas
 
 
Tell the Publisher!
I’d like to read this book on Kindle

Don’t have a Kindle? Get your Kindle here.
 
  

Software Fundamentals: Collected Papers by David L. Parnas (Paperback)

~ Daniel M. Hoffman (Author), David M. Weiss (Author)
4.8 out of 5 stars  See all reviews (12 customer reviews)

List Price: $49.95
Price: $33.84 & this item ships for FREE with Super Saver Shipping. Details
You Save: $16.11 (32%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.

Want it delivered Tuesday, November 17? Choose One-Day Shipping at checkout. Details
16 new from $33.84 17 used from $32.99

Frequently Bought Together

Customers buy this book with The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition) by Frederick P. Brooks

Software Fundamentals: Collected Papers by David L. Parnas + The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)

Customers Who Bought This Item Also Bought

Software Design (2nd Edition)

Software Design (2nd Edition)

by D. Budgen
Software Estimation: Demystifying the Black Art (Best Practices (Microsoft))

Software Estimation: Demystifying the Black Art (Best Practices (Microsoft))

by Steve McConnell
4.7 out of 5 stars (38)  $26.39
Clean Code: A Handbook of Agile Software Craftsmanship

Clean Code: A Handbook of Agile Software Craftsmanship

by Dean Wampler
4.4 out of 5 stars (45)  $30.96
The Practice of Programming

The Practice of Programming

by Rob Pike
4.0 out of 5 stars (52)  $29.59
Software Architecture in Practice (2nd Edition)

Software Architecture in Practice (2nd Edition)

by Len Bass
4.2 out of 5 stars (26)  $50.80
Explore similar items

Editorial Reviews

Product Description

(Pearson Education) A collection of 33 influential papers on the foundation of modern software theory and practice and various areas of software engineering, by David L/ Parnas. Provides historical content for each paper, and explains topics such as relational and tabular documentation and the status of software engineering. DLC: Computer software.


From the Inside Flap

Daniel M. Hoffman and David M. Weiss

Why Create a Book Around Dave Parnas's Work? It is sometimes said that progress in a scientific discipline can be measured by how quickly its founders are forgotten. Software development, sometimes called software engineering, is not a scientific discipline and is still young: Many of those who formulated fundamental principles in the field are still active in it. Unfortunately, we have the worst of both worlds: Our founders seem dimly remembered, and we are making little progress towards becoming a discipline. Fundamental ideas, such as information hiding and abstraction, are only vaguely understood by those who need them most and are constantly reinvented. Those who practice software development and those who teach software engineering seem uneducated in, and unaware of, the history of their profession. 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 a 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, and a set of examples to use and emulate. David L. Parnas is both a clear and creative thinker and an extraordinary expositor of seminal ideas. The issues that he addresses are at the heart of software engineering today; his explanations are still relevant and his solutions, trialed on real systems, transfer to today's software development organizations and environments. Do you need to understand how to organize your software into modules so it can be easily maintained and so that your modules are reusable, whether they are expressed as classes, packages, or other forms? Dave Parnas identified the information hiding principle and showed how to to use it to construct workable, reusable modular structures that are stable over time. (See Chapters 2 and 16.) Are you struggling to create APIs to make your software useful to application programmers? Dave Parnas devised the idea (and coined the term) for abstract interfaces, and showed how to design interfaces that provide services without revealing their implementations. (See Chapter 15.) Languages like C++ and Java directly support this idea with abstract classes. Are you wondering how to create your software as a set of layers that define a hierarchical structure that meets your requirements, lets you build your system a few layers at a time, and lets others add to the structure that you have created? Dave Parnas clearly explained what a hierarchical structure is, what some of the important hierarchical structures that we use are, why people often confuse them, and how to create a layered structure that meets your needs. (See Chapter 8.) Do you know that your software is going to exist in many different versions, but are having difficulty designing your software not just to accommodate the different versions, but to take advantage of your situation to make your development process more efficient? Dave Parnas defined program families to help with just this situation and showed how to create them in a cost-effective way. (See Chapters 10 and 14.) Dave has been busy in more than just technical areas. His work includes commentary on the social responsibility of software engineers, both by exposition and by example. His stance on our inability to create trustworthy software for the Strategic Defense Initiative is represented (Chapters 26 and 27), as well as his thoughts on how to teach software engineering (Chapter 31 and 32), and how to make software engineering a profession (Chapters 28 and 33).

Why Did We Pick These Papers? The preceding are just a few examples of the ideas described in the papers that constitute this book. Out of the more than two hundred papers that Dave has published, we selected thirty-two, plus one special one that he did not write, but strongly influenced. We picked technical papers that expressed fundamental ideas that were groundbreaking when they were published, that have an enduring message, and that are models of exposition, and nontechnical papers that had an influence on the opinions of the time. Some were controversial when published and remain so. An outstanding aspect of Dave's career is his insistence that his ideas be tested on real problems, where one cannot define away the complexity of the world in the interest of devising an elegant solution. Perhaps the best known examples are the operational flight program (OFP) for the U.S. Navy's A-7E aircraft and the shut-down software for the Darlington nuclear power plant. The A-7E project, also known as the Software Cost Reduction (SCR) project, was conducted by Dave and colleagues at the U.S. Naval Research Laboratory (NRL). It was a demonstration of how to apply ideas such as information hiding, abstraction, cooperating sequential processes, deterministic scheduling, program families, formal specification, hierarchical structuring, and undesired event handling to the design of a hard-real-time system. Many of the same approaches now appear in modern designs and modern languages under different names; a few diverse examples are exception handling (Chapter 12) and the observer pattern (Chapter 22). Several years of Dave's time and effort were directed at making the SCR software and its documentation an engineering model of how to develop and document software. The papers derived from the project that appeared in the research literature; such as Chapters 6, 12, 15, 16, 17, 18, and 22, only tell part of the story. The complete set of requirements and design documentation (including what we now term architecture), was published as technical reports by NRL and serve as detailed guides and templates for those wishing to use the ideas.

How Is the Book Organized? This book contains thirty-three papers divided into four sections. Dave has written a short introduction to each section and we have invited a guest author to write an introduction to each paper. Specification and Description contains six papers, focusing on the most important kinds of software engineering documentation and the roles that they play. Relational and tabular documentation are presented in depth, including both the underlying mathematical basis and practical notations suitable for use by working programmers. Design contains thirteen papers, covering the principles and techniques that have been central to Dave's work for the past three decades. Information hiding is emphasized, including the role of information hiding in abstract interfaces, its application in complex systems, and its implications in the design of program families. Concurrency and Scheduling contains two early papers on the use of semaphores and two more recent papers on new approaches to synchronization and scheduling. The latter focus on achieving both good performance and a module structure that supports maintainability and comprehensibility. Finally, Commentary contains ten papers on a wide variety of topics including education, social issues, the role of the engineer, and the status of software engineering as an engineering profession. In the interests of preserving the historical record and of leaving Dave's writing style unperturbed, we have tampered as little as possible with the papers that appear here, only correcting a few typographical errors in most papers.

Why Have Guest Introductions? The papers span the period from the 1970s through the 1990s. Some use old examples and notations that may not seem relevant to today's Internet world. We asked leading members of our field to write short introductions to the papers to explain the papers' historical and modern relevance. Right from the start, we knew that the introductions must be fun to read and worth reading. They must tell the reader something worth knowing that is not in the paper or is not obvious from reading the paper. We were most fortunate in gathering an impressive collection of authors. Some have been involved with Dave since his work at NRL and earlier. Others participated in the SCR Workshops that continued the NRL work. Some have never directly collaborated with Dave. All are excellent writers with special insights about the significance of the papers both at the time of writing and today. All wrote with enthusiasm and skill. The thirty-three paper introductions are an important contribution in their own right. The fact that these people were all willing, indeed eager, to contribute speaks highly of Dave's work. Dave collaborated with us on the selection of the papers in this book. On several occasions he commented that we were likely to get people angry once again. That is the nature of the man and his ideas: insightful, creative, stimulating, provocative. We hope you find that the papers in this book have the same qualities. It is our present to Dave on his sixtieth birthday.

Acknowledgments We would like to say that we had the idea for this book on our own, but it actually originated with Brad Appleton. Thanks, Brad, for giving us the chance to carry out the idea. Organizational and production details for a book of this sort can get quickly out of hand without an experienced professional editor to guide you. Debbie Lafferty at Addison-Wesley has been a cheerful, steadfast guide for us, appreciating the idea for the book from the first, and working with us to make it happen. During the course of production, all of the papers contained herein were retyped. Dorene Brummel happily took on the job of proofreading them, for which we are very grateful. Joanne Glazer Weiss showed outstanding forebearance and support when her husband plunged into this project immediately after finishing his first book. He thanks and loves her.   Duck Bay, British Columbia September, 2000  

0201703696P04182001


Product Details

  • Paperback: 688 pages
  • Publisher: Addison-Wesley Professional (April 19, 2001)
  • Language: English
  • ISBN-10: 0201703696
  • ISBN-13: 978-0201703696
  • Product Dimensions: 9.1 x 7.2 x 1.5 inches
  • Shipping Weight: 2.6 pounds (View shipping rates and policies)
  • Average Customer Review: 4.8 out of 5 stars  See all reviews (12 customer reviews)
  • Amazon.com Sales Rank: #689,518 in Books (See Bestsellers in Books)

More About the Author

David Lorge Parnas
Discover books, learn about writers, read author blogs, and more.

Visit Amazon's David Lorge Parnas Page

Look Inside This Book

What Do Customers Ultimately Buy After Viewing This Item?

Software Fundamentals: Collected Papers by David L. Parnas
86% buy the item featured on this page:
Software Fundamentals: Collected Papers by David L. Parnas 4.8 out of 5 stars (12)
$33.84
Software Design (2nd Edition)
6% buy
Software Design (2nd Edition) 4.8 out of 5 stars (4)
Programming on Purpose: Essays on Software Design
5% buy
Programming on Purpose: Essays on Software Design 4.3 out of 5 stars (3)
$27.99
Fundamentals of Software Engineering (2nd Edition)
2% buy
Fundamentals of Software Engineering (2nd Edition) 4.8 out of 5 stars (4)
$87.74

Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 

Your tags: Add your first tag
 

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

 

Customer Reviews

12 Reviews
5 star:
 (10)
4 star:
 (1)
3 star:
 (1)
2 star:    (0)
1 star:    (0)
 
 
 
 
 
Average Customer Review
4.8 out of 5 stars (12 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

 
16 of 16 people found the following review helpful:
5.0 out of 5 stars At last, the classics begin to emerge, June 29, 2001
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.

Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
10 of 10 people found the following review helpful:
5.0 out of 5 stars There's nothing new under the sun..., September 17, 2001
By Brent Fulgham (Ventura, CA United States) - See all my reviews
(REAL NAME)   
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."

Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)



 
10 of 10 people found the following review helpful:
5.0 out of 5 stars Classics and unknown gems, May 27, 2001
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.

Comment Comment | Permalink | Was this review helpful to you? Yes No (Report this)


Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews

5.0 out of 5 stars Must Reading For Every Software Engineer
Parnas is one of the giants of the early days of software engineering and these papers are truly fundamental to understanding the discipline. Read more
Published 1 month ago by Thomas Oswald

5.0 out of 5 stars An insight to the software fundamentals
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... Read more
Published 16 months ago by Dmitry Dvoinikov

5.0 out of 5 stars Good design book
This book is a must read for anyone taking a course in software design, or software engineers who are interested to design better software systems. Read more
Published on May 12, 2007 by Balaji Rajagopalan

5.0 out of 5 stars Well-Organized Review, Insightful Content.
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. Read more
Published on December 31, 2003 by John Ryan

5.0 out of 5 stars Still relevant in the world of Software Engineering
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... Read more
Published on August 22, 2003 by Jessica Sant

5.0 out of 5 stars The most influential book I've read on software engineering!
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. Read more
Published on May 29, 2003 by Jeffrey Smith

3.0 out of 5 stars Comprehensive coverage of some software fundamentals
The papers provide very clear explanations of a number of software fundamentals. The key ideas (information hiding, documentation methods, software structures) are covered from... Read more
Published on August 15, 2001

4.0 out of 5 stars Excellent Collection of Thought Provoking Material
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... Read more
Published on June 18, 2001 by microtherion

5.0 out of 5 stars Software Engineers Must own this book
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. Read more
Published on May 22, 2001 by Larry Bernstein

Only search this product's reviews



Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Discussion Replies Latest Post
Anyone need psychology testbook- trying to sell a used copy 2 22 hours ago
textbook scam 72 1 day ago
Textbooks for Kindle DX? 61 7 days ago
Search Customer Discussions
Search all Amazon discussions
   




Product Information from the Amapedia Community

Beta (What's this?)


Look for Similar Items by Category


Look for Similar Items by Subject

 

Feedback

If you need help or have a question for Customer Service, contact us.
 Would you like to update product info or give feedback on images?
Is there any other feedback you would like to provide?

Your comments can help make our site better for everyone.


Your Recent History

 (What's this?)

After viewing product detail pages or search results, look here to find an easy way to navigate back to pages you are interested in.