- eBook:The Essentials of Modern Software Engineering: Free the Practices from the Method Prisons!
- Author:Ivar Jacobson, Harold "Bud" Lawson, Pan-Wei Ng
- Data:July 19, 2019
- Pages:400 pages
- Format:PDF, ePUB
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 of 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.
Chapter 1. From Programming to Software Engineering
Chapter 2. Software Engineering Methods and Practices
Chapter 3. Essence in a Nutshell
Chapter 4. Identifying the Key Elements of Software Engineering
Chapter 5. The Language of Software Engineering
Chapter 6. The Kernel of Software Engineering
Chapter 7. Reflection on Theory
Chapter 8. Applying Essence in the Small—Playing Serious Games
PART II - DEVELOPING SOFTWARE WITH ESSENCE
Chapter 9. Kick-Starting Development Using Essence
Chapter 10. Developing with Essence
Chapter 11. The Development Journey
Chapter 12. Reflection on the Kernel
PART III - SMALL-SCALE DEVELOPMENT WITH PRACTICES
Chapter 13. Kick-Starting Development with Practices
Chapter 14. Running with Scrum
Chapter 15. Running with User Story Lite
Chapter 16. Running with Use Case Lite
Chapter 17. Running with Microservices
Chapter 18. Putting the Practices Together: Composition
PART IV - LARGE-SCALE COMPLEX DEVELOPMENT
Chapter 19. What It Means to Scale
Chapter 20. Essentializing Practices
Chapter 21. Scaling Up to Large and Complex Development
Chapter 22. Reaching Out to Different Kinds of Development
Chapter 23. Reaching Out to the Future