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 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.
Innehållsförteckning
- Foreword by Ian Sommerville
- Foreword by Grady Brooch
- Preface
- THE ESSENCE OF SOFTWARE ENGINEERING
- From Programming to Software Engineering
- Software Engineering Methods and Practices
- Essence in a Nutshell
- Identifying the Key Elements of Software Engineering
- The Language of Software Engineering
- The Kernel of Software Engineering
- Reflection on Theory
- Applying Essence in the Small—Playing Serious Games
- DEVELOPING SOFTWARE WITH ESSENCE
- Kick-Starting Development Using Essence
- Developing with Essence
- The Development Journey
- Reflection on the Kernel
- SMALL-SCALE DEVELOPMENT WITH PRACTICES
- Kick-Starting Development with Practices
- Running with Scrum
- Running with User Story Lite
- Running with Use Case Lite
- Running with Microservices
- Putting the Practices Together: Composition
- LARGE-SCALE COMPLEX DEVELOPMENT
- What It Means to Scale
- Essentializing Practices
- Scaling Up to Large and Complex Development
- Reaching Out to Different Kinds of Development
- Reaching Out to the Future
- A Brief History of Software and Software Engineering
- References
- Index
- Author Biographies
Om författaren
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 longtimememberand 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 modeling. He is also known for his work in views and viewpoints in software engineering and has quite a track record in software architecture. He has been involved in SEMAT activities nearly from the start, and assisted in the standardization process of Essence—especially the language track.