- STAFF PICKS
- GIFTS + GIFT CARDS
- SELL BOOKS
- FIND A STORE
Used Trade Paper
Ships in 1 to 3 days
The Essence of Software Engineering: Applying the Semat Kernelby Ivar Jacobson
Synopses & Reviews
SEMAT (Software Engineering Methods and Theory) is an international initiative designed to
identify a common ground, or universal standard, for software engineering. It is supported by
some of the most distinguished contributors to the field. Creating a simple language to describe
methods and practices, the SEMAT team expresses this common ground as a kernel–or
framework–of elements essential to all software development.
The Essence of Software Engineering introduces this kernel and shows how to apply it when
developing software and improving a team’s way of working. It is a book for software professionals,
not methodologists. Its usefulness to development team members, who need to evaluate and
choose the best practices for their work, goes well beyond the description or application of
any single method.
“Software is both a craft and a science, both a work of passion and a work of principle.
Writing good software requires both wild flights of imagination and creativity, as well as the hard
reality of engineering tradeoffs. This book is an attempt at describing that balance.”
—Robert Martin (unclebob)
“The work of Ivar Jacobson and his colleagues, started as part of the SEMAT initiative,
has taken a systematic approach to identifying a ‘kernel’ of software engineering principles and
practices that have stood the test of time and recognition.”
“The software development industry needs and demands a core kernel and language for defining
software development practices—practices that can be mixed and matched, brought on board from
other organizations; practices that can be measured; practices that can be integrated; and practices
that can be compared and contrasted for speed, quality, and price. This thoughtful book gives a
good grounding in ways to think about the problem, and a language to address the need,
and every software engineer should read it.”
Software is both a craft and a science, both a work of passion and a work of principle. Writing good software requires both wild flights of imagination and creativity, as well as the hard reality of engineering tradeoffs. This book is an attempt at describing that balance.
–Robert Martin (unclebob)
The work of Ivar Jacobson and his colleagues, started as part of the SEMAT initiative, has taken a systematic approach to identifying a “kernel” of software engineering principles and practices that have stood the test of time and recognition.
The software development industry needs and demands a core kernel and language for defining software development practices–practices that can be mixed and matched, brought on board from other organizations, practices that can be measured, practices that can be integrated, practices that can be compared and contrasted for speed, quality, and price. This thoughtful book gives a good grounding in ways to think about the problem, and a language to address the need, and every software engineer should read it.
Using the proposed SEMAT Object Management Group standard, development organizations can "re-found" software engineering based on solid theory, proven principles, and best practices that have earned wide support. Using SEMAT, they can address both technology and human issues, while achieving easy extensibility to support diverse uses, changing requirements, and new technologies. In The Essence of Software Engineering</titleref>, a team of key SEMAT pioneers introduce this new standard, explaining how it defines a common ground for more agile and effective software development. Led by Ivar Jacobson, one of this generation's most influential software innovators, they fully introduce both elements of SEMAT: the kernel, encompassing Requirements, Software System, Team, Work, other key elements of software projects, and their states, and can be used by practitioners to make better choices about how they develop software systems; ahe language, defining syntax and semantics for organizing and composing practices and methods. For all software engineering practitioners, including architects, designers, developers, testers, requirements engineers, process engineers, and project managers.
About the Author
Dr. Ivar Jacobson, one of the prime movers behind SEMAT, is the principal author of six books, including, with Pan-Wei Ng, Aspect-Oriented Software Development with Use Cases (Addison-Wesley, 2005).
Dr. Pan-Wei Ng is the Asia Pacific CTO and chief scientist at IvarJacobson International and coaches large-scale development extensively.
Paul E. McMahon, principal of PEM Systems, is the author of Integrating CMMI® and Agile Development (Addison-Wesley, 2011).
Ian Spence, chief scientist and principal consultant at Ivar Jacobson International, is the coauthor of Managing Iterative Software Development Projects (Addison-Wesley, 2007).
Svante Lidman is a senior productivity expert at Hansoft and has been leading and coaching software development teams for twenty years.
Table of Contents
Foreword by Robert Martin
Foreword by Bertrand Meyer
Foreword by Richard Soley
Part I: The Kernel Idea Explained
Chapter 1: A Glimpse of How the Kernel Can Be Used
Chapter 2: A Little More Detail about the Kernel
Chapter 3: A 10,000-Foot View of the Full Kernel
Chapter 4: The Kernel Alphas Made Tangible with Cards
Chapter 5: Providing More Details to the Kernel through Practices
Chapter 6: What the Kernel Can Do for You
Part II: Using the Kernel to Run an Iteration
Chapter 7: Running Iterations with the Kernel: Plan-Do-Check-Adapt
Chapter 8: Planning an Iteration
Chapter 9: Doing and Checking the Iteration
Chapter 10: Adapting the Way of Working
Chapter 11: Running an Iteration with Explicit Requirement Item States
Part III: Using the Kernel to Run a Software Endeavor
Chapter 12: Running a Software Endeavor: From Idea to Production
Chapter 13: Building the Business Case
Chapter 14: Developing the System
Chapter 15: Operating the Software
Part IV: Scaling Development with the Kernel
Chapter 16: What Does It Mean to Scale?
Chapter 17: Zooming In to Provide Details
Chapter 18: Reaching Out to Different Kinds of Development
Chapter 19: Scaling Up to Large and Complex Development
Part V: How the Kernel Changes the Way You Work with Methods
Chapter 20: Thinking about Methods without Thinking about Methods
Chapter 21: Agile Working with Methods
Part VI: What’s Really New Here?
Chapter 22: Refounding Methods
Chapter 23: Separation of Concerns Applied to Methods
Chapter 24: The Key Differentiators
Part VII: Epilogue
Chapter 25: This Is Not the End
Chapter 26: … But Perhaps It Is the End of the Beginning
Chapter 27: When the Vision Comes True
Appendix A: Concepts and Notation
Appendix B: What Does This Book Cover with Respect to the Kernel?
Appendix C: Bibliography
What People Are Saying about This Book
What Our Readers Are Saying