The Essence of Software: Why Concepts Matter for Great Design

The Essence of Software: Why Concepts Matter for Great Design

by Daniel Jackson
The Essence of Software: Why Concepts Matter for Great Design

The Essence of Software: Why Concepts Matter for Great Design

by Daniel Jackson


    Qualifies for Free Shipping
    Choose Expedited Shipping at checkout for delivery by Monday, October 9
    Check Availability at Nearby Stores

Related collections and offers


A revolutionary concept-based approach to thinking about, designing, and interacting with software

As our dependence on technology increases, the design of software matters more than ever before. Why then is so much software flawed? Why hasn’t there been a systematic and scalable way to create software that is easy to use, robust, and secure?

Examining these issues in depth, The Essence of Software introduces a theory of software design that gives new answers to old questions. Daniel Jackson explains that a software system should be viewed as a collection of interacting concepts, breaking the functionality into manageable parts and providing a new framework for thinking about design. Through this radical and original perspective, Jackson lays out a practical and coherent path, accessible to anyone—from strategist and marketer to UX designer, architect, or programmer—for making software that is empowering, dependable, and a delight to use.

Jackson explores every aspect of concepts—what they are and aren’t, how to identify them, how to define them, and more—and offers prescriptive principles and practical tips that can be applied cost-effectively in a wide range of domains. He applies these ideas to contemporary software designs, drawing examples from leading software manufacturers such as Adobe, Apple, Dropbox, Facebook, Google, Microsoft, Twitter, and others. Jackson shows how concepts let designers preserve and reuse design knowledge, rather than starting from scratch in every project.

An argument against the status quo and a guide to improvement for both working designers and novices to the field, The Essence of Software brings a fresh approach to software and its creation.

Product Details

ISBN-13: 9780691230832
Publisher: Princeton University Press
Publication date: 06/20/2023
Pages: 336
Sales rank: 1,046,617
Product dimensions: 5.70(w) x 8.90(h) x 0.90(d)

About the Author

Daniel Jackson is professor of computer science at the Massachusetts Institute of Technology, and an associate director of the MIT Computer Science and Artificial Intelligence Laboratory. He is the author of Software Abstractions and Portraits of Resilience.

Table of Contents

How to Read This Book 1

Part I Motivations

1 Why I Wrote This Book 9

2 Discovering Concepts 15

3 How Concepts Help 29

Part II Essentials

4 Concept Structure 47

5 Concept Purposes 59

6 Concept Composition 79

7 Concept Dependence 99

8 Concept Mapping 109

Part III Principles

9 Concept Specificity 127

10 Concept Familiarity 147

11 Concept Integrity 157

Questions to Remember 167

Acknowledgments 179


Explorations & Digressions 183

References 299

Index of Applications 309

Index of Concepts 311

Index of Names 315

Index of Topics 317

What People are Saying About This

From the Publisher

“Hard to contain my excitement about this book. Its ideas are fresh yet familiar, radical yet obvious, deep yet simple. I will be reading it repeatedly for years to come. A profound landmark in our discipline.”—Bashar Nuseibeh, University of Limerick, and Chief Scientist, Lero

“Daniel Jackson’s concepts are a breakthrough in computer system design, integrating software engineering with human computer interaction. This is a framework we should all be using that will be immediately valuable at all levels, from students to the most experienced.”—Hal Abelson, coauthor of Structure and Interpretation of Computer Programs

“A provocative rethinking of software development as a design discipline. Too often software embodies confusing and inconsistent mental models. Taking a truly human-centered approach, with many rich examples, Jackson offers us the tools to rethink how we design software to be more usable and useful.”—Elizabeth Churchill, Director of User Experience, Google

“Daniel Jackson’s The Essence of Software is a monumental work. It provides a new structure for thinking about software in terms of concepts. Wide-ranging, it uses modern examples the reader will know. And because the book (and its copious endnotes) is designed to be read along different paths, every software engineer will find something valuable in it.”—Frederick P. Brooks, Jr., author of The Mythical Man-Month: Essays on Software Engineering

“I cannot say enough good things about this book. The Essence of Software is essential reading for anyone concerned with making software that is responsive to human needs and purposes. Its profound, practical framework offers a broadly useful, enormously empowering way to think about and do software design.”—Mitchell Kapor, founder, Lotus Development Corporation

“Daniel Jackson’s The Essence of Software will join Fred Brooks’s The Mythical Man-Month as an influential guide to making great software products and tools. Designers will come to their work with more open minds, clearer thoughts, and the capacity to build excellent software.”—Ben Shneiderman, University of Maryland

The Essence of Software won’t just give you new ideas: Daniel Jackson’s novel and thoroughly worked-out software concepts will transform how you think about design, software, and programming—whatever systems or languages you use, whether you are a new programmer, professional programmer, or researcher. This is a landmark book that will make the digital world a better place.”—Harold Thimbleby, author of Fix IT: See and Solve the Problems of Digital Healthcare

From the B&N Reads Blog

Customer Reviews