Title The Essentials of Modern Software Engineering
Subtitle Free the Practices from the Method Prisons!
Author Ivar Jacobson, Harold “Bud” Lawson, Pan-Wei Ng, Paul E. McMahon, Michael Goedicke
ISBN 9781947487246
List price USD 74.95
Price outside India Available on Request
Original price
Binding Paperback
No of pages 400
Book size 185 x 241 mm
Publishing year 2019
Original publisher Morgan & Claypool Publishers (Eurospan Group)
Published in India by .
Exclusive distributors Viva Books Private Limited
Sales territory India, Sri Lanka, Bangladesh, Pakistan, Nepal, .
Status New Arrival
About the book Send Enquiry


“Essence is an important breakthrough in understanding the meaning of software engineering. It is a key contribution to the development of our discipline and I’m confident that this book will demonstrate the value of Essence to a wider audience. It too is an idea whose time has come.”

Ian Somerville, St. Andrews University, Scotland (author of Software Engineering, 10th Edition, Pearson)


“In the foundational course “Software Engineering” I am teaching Essence to 400 students introducing Essence from day one. We will deliver a functioning system over the coming three months’ time developed by small teams. In the past we used a best-selling textbook, but not anymore. Tomorrow’s education will be fundamentally changed starting with the Essence of software engineering.”

Dr. Pekka Abrahamsson, Norwegian University of Science and Technology


“What you hold in your hands (or on your computer or tablet if you are so inclined) represents the deep thinking and broad experience of the authors, information you’ll find approachable, understandable, and, most importantly, actionable.”

Grady Booch, IBM Fellow, ACM Fellow, IEEE Fellow, BCS Ada Lovelace Award, and IEEE Computer Pioneer


The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential elements of all software engineering methods.

This kernel, “Essence,” is a vocabulary for defining methods and practices. Essence was envisioned and originally created by Ivar Jacobson and his colleagues, developed by Software Engineering Method and Theory (SEMAT) and approved by The Object Management Group (OMG) as a standard in 2014. Essence is a practice-independent framework for thinking and reasoning about the practices we have and the practices we need. Essence establishes a shared and standard understanding what is at the heart of software development. Â Essence is agnostic to any particular method, lifecycle independent, programming language independent, concise, scalable, extensible, and formally specified. Essence frees the practices from their method prisons.

The first part of the book describes Essence, the essential elements to work with, the essential things to do and the essential competencies you need when developing software. The other three parts describe more and more advanced use cases of Essence. Using real but manageable examples, it covers the fundamentals of Essence and the innovative use of serious games to support software engineering. It also explains how current practices such as user stories, use cases, Scrum, and micro-services can be described using Essence, and illustrates how their activities can be represented using the Essence notions of cards and checklists. The fourth part of the book offers a vision how Essence can be scaled to support large, complex systems engineering.

Essence is supported by an ecosystem developed and maintained by a community of experienced people worldwide. From this ecosystem, professors and students can select what they need and create their own way of working, thus learning how to create one way of working that matches the particular situation and needs.


Foreword (by Ian Sommerville)

Foreword (by Grady Booch)


Part 1: The Essence of Software Engineering

Chapter 1. From Programming to Software Engineering • Beginning with Programming • Programming Is Not Software Engineering • From Internship to Industry • Journey into the Software Engineering Profession • What Should You Now Be Able to Accomplish?

Chapter 2. Software Engineering Methods and Practices • Software Engineering Challenges • The Rise of Software Engineering Methods and Practices • The SEMAT Initiative • Essence: The OMG Standard • What Should You Now Be Able to Accomplish?

Chapter 3. Essence in a Nutshell • The Ideas • Methods Are Compositions of Practices •There Is a Common Ground • Focus on the Essentials • Providing an Engaging User Experience • What Should You Now Be Able to Accomplish?

Chapter 4. Identifying the Key Elements of Software Engineering • Getting to the Basics • Software Engineering Is about Delivering Value to Customers • Software Engineering Delivers Value through a Solution • Software Engineering Is Also about Endeavors • What Should You Now Be Able to Accomplish?

Chapter 5. The Language of Software Engineering • A Simple Practice Example • The Things to Work With • Competencies • Things to Do • Essentializing Practices • What Should You Now Be Able to Accomplish?

Chapter 6. The Kernel of Software Engineering • Organizing with the Essence Kernel • The Essential Things to Work With: The Alphas • The Essential Things to Do: The Activities • Competencies • Patterns • What Should You Now Be Able to Accomplish?

Chapter 7. Reflection on Theory • Where’s the Theory for Software Engineering? • Uses of Theory • Essence Is a General, Descriptive Theory of Software Engineering • Toward a General Predictive Theory of Software Engineering • A Theoretical Foundation Helps You Grow • What Should You Now Be Able to Accomplish? Postlude to Part I • Recommended Additional Reading

Chapter 8. Applying Essence in the Small—Playing Serious Games • Progress Poker • Chasing the State • Objective Go • Checkpoint Construction • Reflection • What Should You Now Be Able to Accomplish?

Part II: Developing Software with Essence

Chapter 9. Kick-Starting Development Using Essence • Understand the Context Through the Lens of Essence • Agreeing on the Development Scope and Checkpoints • Agreeing on the Most Important Things to Watch • What Should You Now Be Able to Accomplish?

Chapter 10. Developing with Essence • Planning with Essence • Doing and Checking with Essence • Adapting a Team’s Way of Working with Essence • How the Kernel Helps Adapt Their Way of Working • What Should You Now Be Able to Accomplish?

Chapter 11. The Development Journey • Visualizing the Journey • Ensuring Progress and Health • Dealing with Anomalies • What Should You Now Be Able to Accomplish?

Chapter 12. Reflection on the Kernel • Validity of the Kernel • Applying the Kernel Effectively • What Should You Now Be Able to Accomplish? • Postlude • Recommended Additional Reading

Part III: Small Scale Development with Practices

Chapter 13. Kick-Starting Development with Practices • Understand the Context Through the Lens of Essence • Agree upon Development Scope and Checkpoints • Agree upon Practices to Apply • Agree upon the Important Things to Watch • Journey in Brief • What Should You Now Be Able to Accomplish?

Chapter 14. Running with Scrum • Scrum Explained • Practices Make a Software Engineering Approach Explicit and Modular • Making Scrum Explicit Using Essence • Scrum Lite Alphas • Scrum Lite Work Products • Scrum Lite Roles • Kick-Starting Scrum Lite Usage • Working with Scrum Lite • Reflecting on the Use of Scrum with Essence • What Should You Now Be Able to Accomplish?

Chapter 15. Running with User Story Lite • User Stories Explained • Making the User Story Lite Practice Explicit Using Essence • User Story Lite Alphas • User Story Lite Work Products • Kick-Starting User Story Lite Usage • Working with User Story Lite • The Value of the Kernel to the User Story Lite Practice • What Should You Now Be Able to Accomplish?

Chapter 16. Running with Use Case Lite • Use Cases Explained • Making the Use Case Lite Practice Explicit Using Essence • Use Case Lite Alphas • Use Case Lite Work Products • Kick-Starting Use Cases Lite to Solve a Problem Our Team Is Facing • Working with Use Cases and Use-Case Slices • Visualizing the Impact of Using Use Cases for the Team • Progress and Health of Use-Case Slices • User Stories and Use Cases—What Is the Difference? • What Should You Now Be Able to Accomplish?

Chapter 17 Running with Microservices • Microservices Explained • Making the Microservice Practice Explicit Using Essence • Microservices Lite • Microservices Lite Alphas • Microservices Lite Work Products • Microservices Lite Activities • Visualizing the Impact of the Microservices Lite Practice on the Team • Progress and Health of Microservice Development • What Should You Now Be Able to Accomplish?

Chapter 18 Putting the Practices Together: Composition • What Is Composition? • Reflecting on the Use of Essentialized Practices • Powering Practices through Essentialization • What Should You Now Be Able to Accomplish? • Recommended Additional Reading

Part IV: Large - Scale Complex Development

Chapter 19. What It Means to Scale • The Journey Continued • The Three Dimensions of Scaling • What Should You Now Be Able to Accomplish?

Chapter 20. Essentializing Practices • Practice Sources • Monolithic Methods and Fragmented Practices • Essentializing Practices • Establishing a Reusable Practice Architecture • What Should You Now Be Able to Accomplish?

Chapter 21. Scaling Up to Large and Complex Development • Large-Scale Methods • Large-Scale Development • Kick-Starting Large-Scale Development • Running Large-Scale Development • Value of Essence to Large-Scale Development • What Should You Now Be Able to Accomplish?

Chapter 22. Reaching Out to Different Kinds of Development • From a Practice Architecture to a Method Architecture • Establishing a Practice Library within an Organization • Do Not Ignore Culture When Reaching Out • What Should You Now Be Able to Accomplish?

Chapter 23. Reaching Out to the Future • Be Agile with Practices and Methods • The Full Team Owns Their Method • Focus on Method Use • Evolve Your Team’s Method • What Should You Now Be Able to Accomplish? • Recommended Additional Reading 339

Appendix A: A Brief History of Software and Software Engineering



Author Biographies

About the Authors:

Dr. Ivar Jacobson received his Ph.D. in computer science from KTH Royal Institute of Technology, was rewarded the Gustaf Dalen medal from Chalmers in 2003, and made an honorary doctor at San Martin de Porres University, Peru, in 2009. Ivar has both an academic and an industrial career. He has authored ten books, published more than a hundred papers and he is a frequent keynote speaker at conferences around the world. Ivar Jacobson is a father of components and component architecture, work that was adopted by Ericsson and resulted in the greatest commercial success story ever in the history of Sweden, and it still is. He is the father of use cases and Objectory, which, after the acquisition of Rational Software in around the year 2000, resulted in the Rational Unified Process, a popular method.. He is also one of the three original developers of the Unified Modelling Language. But all this is history. Ivar founded his current company, Ivar Jacobson International, which since 2004 has been focused on using methods and tools in a smart, superlight and agile way. Ivar is also a founder and a leader of a worldwide network, SEMAT, which has the mission to revolutionize software development based on a kernel of software engineering. The kernel has been realized as a formal standard called Essence, which is the key idea described in this book

Harold “Bud” Lawson (The Institute of Technology at Linkoping University) has been active in the computing and systems arena since 1958 and has broad international experience in private and public organizations as well as academic environments. Bud contributed to several pioneering efforts in hardware and software technologies. He has held professorial appointments at several universities in the USA, Europe, and the Far East. A Fellow of the ACM, IEEE, and INCOSE, he was also head of the Swedish delegation to ISO/IEC JTC1 SC7 WG7 from 1996 to 2004 and the elected architect of the ISO/IEC 15288 standard. In 2000, he received the prestigious IEEE Computer Pioneer Charles Babbage medal award for his 1964 invention of the pointer variable concept for programming languages. He has also been a leader in systems engineering. In 2016, he was recognized as a Systems Engineering Pioneer by INCOSE. He has published several books and was the coordinating editor of the “Systems Series” published by College Publications, UK. Tragically, Harold Lawson passed away after battling an illness for almost a year, just weeks before the publication of this book.

Dr. Pan-Wei Ng has been helping software teams and organizations such as Samsung, Sony and Huawei since 2000, coaching them in the areas of software development, architecture, agile, lean, DevOps, innovation, digital, Beyond Budgeting and agile people. Pan Wei firmly believes that there is no one-size-fits-all and helps organizations find a way of working that suits them best. This is why he is so excited with Essence and has been working with SEMAT and Essence since their inception in 2006 when it was a mere idea. He has contributed several key ideas to the development of Essence. Pan Wei coauthored two books with Dr Ivar Jacobson and frequently shares his views in conferences. He currently works for DBS Singapore, and is also an adjunct lecturer in the National University of Singapore.

Paul E. McMahon has been active in the software engineering field since 1973 after receiving his Masters degree in Mathematics from the State University of New York at Binghamton (now Binghamton University). Paul began his career as a software developer spending the first twenty-five years working in the US department of defense modeling and simulation domain. Since 1997 Paul has been an independent consultant/coach (pemsystems.com) where he helps organizations and teams using a hands-on practical approach focusing on agility and performance. Paul has taught software engineering at Binghamton University, conducted workshops on software engineering and management and has published more than 50 articles and five books. Paul is a frequent speaker at industry conferences. He is also a Senior Consulting Partner at Software Quality Center. Paul has been a leader in the SEMAT initiative since its initial meeting in Zurich.

Prof. Dr. Michael Goedicke is head of the working group Specification of Software Systems at the University of Duisburg-Essen. He is vice president of the GI (German National Association for Computer Science), Chair of the Technical Assembly of the IFIP (International Federation for Information Processing) and longtime member and Steering Committee chair of the IEEE/ACM conference series Automated Software Engineering. His research interests include, among others, software engineering methods, technical specification and realization of software systems, and software architecture and modelling. He is also known for his work in Views and Viewpoints in Software Engineering and has a track record in Software Architecture. He has been involved in SEMAT activities nearly from the start and was helping in the standardization process of Essence - especially the language track.

Target Audience:

This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential elements of all software engineering methods.


Special prices are applicable to the authorised sales territory only.
Prices are subject to change without prior notice.