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 f…
Part I. Motivations --1. Why I Wrote This Book --2. Discovering Concepts --3. How Concepts Help --Part II. Essentials --4. Concept Structure --5. Concept Purposes --6. Concept Composition --7. Concept Dependence --8. Concept Mapping --Part III. Principles --9. Concept Specificit…
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 scalabl…
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, …
"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 scala…
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 scalabl…
In Software Abstractions Daniel Jackson introduces an approach to software design that draws on traditional formal methods but exploits automated tools to find flaws as early as possible. This approach which Jackson calls lightweight formal methods or agile modeling takes from f…