Description
Morgan The Essentials of Modern Software Engineering Free the Practices from the Method Prisons! by Ivar Jacobson, Harold "Bud" Lawson, Pan-Wei Ng
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._x000D__x000D_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._x000D__x000D_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. _x000D__x000D_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._x000D__x000D_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._x000D__x000D_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._x000D_ Table of contents :- _x000D_
Foreword By Ian Sommerville_x000D_
Foreword By Grady Booch_x000D_
Preface_x000D_
Part 1 - The Essence of Software Engineering_x000D_
1. From Programming to Software Engineering_x000D_
2. Software Engineering Methods and Practices_x000D_
3. Essence in a Nutshell_x000D_
4. Identifying the Key Elements of Software Engineering_x000D_
5. The Language of Software Engineering_x000D_
6. The Kernel of Software Engineering_x000D_
7. Key Principles: Practical, Actionable and Extensible_x000D_
8. Reflection on Theory_x000D_
Part 2 - Developing Software with Essence_x000D_
9. Applying Essence in the Small - Playing Serious Games_x000D_
10. Kick Starting Development Using Essence_x000D_
11. Developing with Essence_x000D_
12. The Development Journey_x000D_
13. Reflection on Kernel_x000D_
Part 3 - Small Scale Development with Practices_x000D_
14. Kick Starting Development with Practices_x000D_
15. Running with Scrum_x000D_
16. Running with User Story Lite_x000D_
17. Running with Use-Case Lite_x000D_
18. Running with Microservices_x000D_
19. Putting the Practices Together: Composition_x000D_
Part 4 - Large Scale Complex Development_x000D_
20. What it Means to Scale_x000D_
21. Essentializing Practices_x000D_
22. Scaling Up to Large and Complex Development_x000D_
23. Reaching Out to Different Kinds of Development_x000D_
24. Being Agile with Practices and Methods_x000D_
25. Reflecting on the SEMAT Journey_x000D_
APPENDIX: A Brief History of Software and Software Engineering_x000D_
Author Biographies_x000D_