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 practiceindependent 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 microservices 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.
Chapters
- Alpha State Card Games. 2018. https://www.ivarjacobson.com/publications/brochure/alpha-state-card-games. 99, 153Google Scholar
- S. Ambler and M. Lines. 2012. Disciplined Agile Delivery: A Practitioner's Guide to Agile Software Delivery in the Enterprise. IBM Press. 297, 339, 346Google Scholar
- K. Beck. 1999. Extreme Programming Explained: Embrace Change. Addison-Wesley Longman. 203, 285, 346Google Scholar
- K. Beck. 2003. Test-Driven Development by Example. Addison Wesley. 346Google Scholar
- K. Bittner and I. Spence. 2003. Use Case Modeling. Addison-Wesley Professional, 2003. 222, 285Google Scholar
- G. Booch, J. Rumbaugh, and I. Jacobson. 2005. The Unified Modeling Language User Guide. 2nd edition. Addison-Wesley. 222, 285, 345Google Scholar
- F. Brooks. 1975. The Mythical Man-Month. Addison Wesley. 342Google Scholar
- M. Cohn. 2004. User Stories Applied: For Agile Software Development. Addison-Wesley Professional. 204, 247, 285Google Scholar
- E. Derby and D. Larsen. 2006. Agile Retrospectives: Making Good Teams Great. Pragmatic Bookshelf, Dallas, TX, and Raleigh, NC. 196, 198, 284Google Scholar
- E. W. Dijkstra. 1972. "The Humble Programmer." Turing Award Lecture, CACM 15 (10): 859--866. 342Google Scholar
- D. Graziotin and P. Abrahamsson. 2013. A web-based modeling tool for the SEMAT Essence theory of software engineering. Journal of Open Research Software, 1,1(e4); 147, 153Google Scholar
- ISO/IEC/IEEE 2382. 2015. Information technology-Vocabulary. International Organization/International Electrotechnical Commission, Geneva, Switzerland. https://www.iso.org/obp/ui/#iso:std:iso-iec:2382:ed-1:v1:en. 343Google Scholar
- ISO/IEC/IEEE 12207. 2017. https://en.wikipedia.org/wiki/ISO/IEC_12207 345Google Scholar
- ISO/IEC/IEEE 15288. 2002, 2008, 2015. Systems and software engineering---System life cycle processes. International Standardization Organization/International Electrotechnical Commission, 1 Rue de Varembe, CH-1211 Geneve 20, Switzerland. 345Google Scholar
- ISO/IEC/IEEE 24765. 2017. Systems and software engineering-Vocabulary. International Organization/International Electrotechnical Commission, Geneva, Switzerland. https://www.iso.org/obp/ui/#iso:std:iso-iec-ieee:24765:ed-2:v1:en. 343Google Scholar
- M. Jackson. 1975. Principles of Program Design. Academic Press. 344Google Scholar
- I. Jacobson. 1987. Object-oriented software development in an industrial environment. Conference Proceedings of Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 87). 221, 285Google Scholar
Digital Library
- I. Jacobson and H. Lawson, editors. 2015. Software Engineering in the Systems Context, Systems Series, Volume 7. College Publications, London. 345Google Scholar
- I. Jacobson and E. Seidewitz. 2014. A new software engineering. Communications of the ACM, 12(10). 347Google Scholar
- I. Jacobson, M. Christerson, P. Jonsson, and G. Overgaard. 1992. Object-Oriented Software Engineering: A Use Case Driven Approach. ACM Press Addison-Wesley. 345Google Scholar
- I. Jacobson, I. Spence, and K. Bittner. 2011. Use-Case 2.0: The Guide to Succeeding with Use Cases. https://www.ivarjacobson.com/publications/whitepapers/use-case-ebook. 169, 222, 226, 233, 285Google Scholar
- I. Jacobson, P.-W. Ng, P. E. McMahon, I. Spence, and S. Lidman. December 2012. The essence of software engineering: The SEMAT kernel. Communications of the ACM, 55(12). http://queue.acm.org/detail.cfm?id=2389616. 30, 95Google Scholar
- I. Jacobson, P.-W. Ng, P. E. McMahon, I. Spence, and S. Lidman. 2013a. The Essence of Software Engineering: Applying the SEMAT Kernel. Addison-Wesley. xxvi, 30, 90, 95, 336Google Scholar
- I. Jacobson, I. Spence, and P.-W. Ng. (October) 2013b. Agile and SEMAT: Perfect partners. Communications of the ACM, 11(9). http://queue.acm.org/detail.cfm?id=2541674. 30, 96Google Scholar
- I. Jacobson, I. Spence, and B. Kerr. 2016. Use-Case 2.0: The hub of software development. Communications of the ACM, 59(5): 61--69. 169, 222, 226, 285Google Scholar
Digital Library
- I. Jacobson, I. Spence, and P.-W. Ng. 2017. Is there a single method for the Internet of Things? Queue, 15.3: 20. 335, 339Google Scholar
Digital Library
- P. Johnson and M. Ekstedt. 2016. The Tarpit---A general theory of software engineering. Information and Software Technology 70: 181--203. https://www.researchgate.net/profile/Pontus_Johnson/publication/278743539_The_Tarpit_-_A_General_Theory_of_Software_Engineering/links/55b4490008aed621de0114f5/The-Tarpit-A-General-Theory-of-Software-Engineering.pdf. 91, 92, 96Google Scholar
Digital Library
- P. Johnson, M. Ekstedt, and I. Jacobson. September 2012. Where's the theory for software engineering? IEEE Software, 29(5). 84, 87, 96Google Scholar
- R. Knaster and D. Leffingwell. 2017. SAFe 4.0 Distilled: Applying the Scaled Agile Framework for Lean Software and Systems Engineering. Addison-Wesley Professional. 297, 339Google Scholar
- P. Kruchten. 2003. The Rational Unified Process: An Introduction. 3rd edition. Addison-Wesley. 345Google Scholar
- C. Larman and B. Vodde. 2008. Scaling Lean & Agile Development: Thinking and Organizational Tools for Large-Scale Scrum. Pearson Education, Inc. 346Google Scholar
- C. Larman and B. Vodde. 2016. Large-Scale Scrum: More with LeSS. Addison-Wesley Professional. 297, 339Google Scholar
- D. Leffingwell. 2007. Scaling Software Agility: Best Practices for Large Enterprises. Addison-Wesley. 346Google Scholar
- P. E. McMahon. January/February 2015. A thinking framework to power software development team performance. Crosstalk, The Journal of Defense Software Engineering. http://www.crosstalkonline.org/. 96, 154Google Scholar
- NATO. 1968. "Software Engineering: Report on a conference sponsored by the NATO Science Committee." P. Naur and B. Randell, editors. Garmisch, Germany, October 7--11. 342Google Scholar
- S. Newman. 2015. Building Microservices. O'Reilly Media, Inc. 250, 285Google Scholar
- P.-W. Ng. 2013. Making software engineering education structured, relevant and engaging through gaming and simulation. Journal of Communication and Computer 10: 1365--1373. 99, 153Google Scholar
- P.-W. Ng. 2014. Theory based software engineering with the SEMAT kernel: Preliminary investigation and experiences. Proceedings of the 3rd SEMAT Workshop on General Theories of Software Engineering. ACM. 30, 96Google Scholar
- P.-W. Ng. 2015. Integrating software engineering theory and practice using Essence: A case study. Science of Computer Programming, 101: 66--78. 96, 152, 154Google Scholar
Cross Ref
- Object Management Group. Essence---Kernel and Language for Software Engineering Methods (Essence). http://www.omg.org/spec/Essence/1.1. 63Google Scholar
- OMG Essence Specification. 2014. http://www.omg.org/spec/Essence/Current. 95, 346Google Scholar
- D. Ross. 1977. Structured Analysis (SA): A language for communicating ideas. In IEEE Transactions on Software Engineering, SE-3(1): 16--34. 344Google Scholar
- K. Schwaber and J. Sutherland. 2016. "The Scrum Guide. The Definitive Guide to Scrum: The Rules of the Game." Scrum.org.Google Scholar
Cited By
- Malich S, Cervantes H and Kazman R Developing and Applying an Essence-based Description of the Attribute-Driven Design Method Proceedings of the 1st International Workshop on Designing Software, (21-26)
-
Ozkan N, Bal S and Gök M (2023). What more can LEGO Teach Agile Methods 2023 4th International Informatics and Software Engineering Conference (IISEC), 10.1109/IISEC59749.2023.10391011, 979-8-3503-1803-6, (1-6)
- Campos D, Martins L, Bezerra C and Machado I Investigating Developers' Contributions to Test Smell Survivability: A Study of Open-Source Projects Proceedings of the 8th Brazilian Symposium on Systematic and Automated Software Testing, (86-95)
- Medeiros H, Batista T and Cavalcante E On a Metaprocess for Microservice Migration Proceedings of the XXXVII Brazilian Symposium on Software Engineering, (116-121)
-
Grant E (2023). Advancing Object-Oriented Model-Driven Software Engineering Pedagogy 2023 IEEE 35th International Conference on Software Engineering Education and Training (CSEE&T), 10.1109/CSEET58097.2023.00015, 979-8-3503-2202-6, (41-48)
-
Ramos A, Jesus V, Gonçalves C, Caetano F and Silveira C (2023). Monitoring Indoor Air Quality and Occupancy with an IoT System: Evaluation in a Classroom Environment 2023 18th Iberian Conference on Information Systems and Technologies (CISTI), 10.23919/CISTI58278.2023.10211974, 978-989-33-4792-8, (1-6)
-
Jacobson I, Sutherland J, Kerr B and Buhnova B (2022). Better Scrum through Essence, Software: Practice and Experience, 10.1002/spe.3070, 52:6, (1531-1540), Online publication date: 1-Jun-2022.
-
Henao-Roqueme A and Zapata-Jaramillo C (2021). Identificación de estructuras sintácticas en corpus: un enfoque para encontrar áreas de conocimiento en disciplinas dirigidas por proyectos, Revista UIS Ingenierías, 10.18273/revuin.v20n4-2021006, 20:4, Online publication date: 6-Jul-2021.
-
Jana D and Pal P (2020). ESSENCE Kernel in Overcoming Challenges of Agile Software Development 2020 IEEE 17th India Council International Conference (INDICON), 10.1109/INDICON49873.2020.9342375, 978-1-7281-6916-3, (1-8)
-
Tell P, Klünder J, Küpper S, Raffo D, MacDonell S, Münch J, Pfahl D, Linssen O and Kuhrmann M (2020). Towards the statistical construction of hybrid development methods, Journal of Software: Evolution and Process, 10.1002/smr.2315
-
Ozkan N and Gok M (2020). Investigation of Agile Mindset Elements by Using Literature Review for a Better Understanding of Agility 2020 Turkish National Software Engineering Symposium (UYMS), 10.1109/UYMS50627.2020.9247073, 978-1-7281-8541-5, (1-6)