skip to main content
Skip header Section
The Essentials of Modern Software Engineering: Free the Practices from the Method Prisons!August 2019
Publisher:
  • Association for Computing Machinery and Morgan & Claypool
ISBN:978-1-947487-27-7
Published:09 August 2019
Pages:
401
Appears In:
ACMACM Books
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

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.

References

  1. Alpha State Card Games. 2018. https://www.ivarjacobson.com/publications/brochure/alpha-state-card-games. 99, 153Google ScholarGoogle Scholar
  2. 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 ScholarGoogle Scholar
  3. K. Beck. 1999. Extreme Programming Explained: Embrace Change. Addison-Wesley Longman. 203, 285, 346Google ScholarGoogle Scholar
  4. K. Beck. 2003. Test-Driven Development by Example. Addison Wesley. 346Google ScholarGoogle Scholar
  5. K. Bittner and I. Spence. 2003. Use Case Modeling. Addison-Wesley Professional, 2003. 222, 285Google ScholarGoogle Scholar
  6. G. Booch, J. Rumbaugh, and I. Jacobson. 2005. The Unified Modeling Language User Guide. 2nd edition. Addison-Wesley. 222, 285, 345Google ScholarGoogle Scholar
  7. F. Brooks. 1975. The Mythical Man-Month. Addison Wesley. 342Google ScholarGoogle Scholar
  8. M. Cohn. 2004. User Stories Applied: For Agile Software Development. Addison-Wesley Professional. 204, 247, 285Google ScholarGoogle Scholar
  9. E. Derby and D. Larsen. 2006. Agile Retrospectives: Making Good Teams Great. Pragmatic Bookshelf, Dallas, TX, and Raleigh, NC. 196, 198, 284Google ScholarGoogle Scholar
  10. E. W. Dijkstra. 1972. "The Humble Programmer." Turing Award Lecture, CACM 15 (10): 859--866. 342Google ScholarGoogle Scholar
  11. 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 ScholarGoogle Scholar
  12. 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 ScholarGoogle Scholar
  13. ISO/IEC/IEEE 12207. 2017. https://en.wikipedia.org/wiki/ISO/IEC_12207 345Google ScholarGoogle Scholar
  14. 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 ScholarGoogle Scholar
  15. 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 ScholarGoogle Scholar
  16. M. Jackson. 1975. Principles of Program Design. Academic Press. 344Google ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. I. Jacobson and H. Lawson, editors. 2015. Software Engineering in the Systems Context, Systems Series, Volume 7. College Publications, London. 345Google ScholarGoogle Scholar
  19. I. Jacobson and E. Seidewitz. 2014. A new software engineering. Communications of the ACM, 12(10). 347Google ScholarGoogle Scholar
  20. I. Jacobson, M. Christerson, P. Jonsson, and G. Overgaard. 1992. Object-Oriented Software Engineering: A Use Case Driven Approach. ACM Press Addison-Wesley. 345Google ScholarGoogle Scholar
  21. 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 ScholarGoogle Scholar
  22. 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 ScholarGoogle Scholar
  23. 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 ScholarGoogle Scholar
  24. 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 ScholarGoogle Scholar
  25. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. P. Johnson, M. Ekstedt, and I. Jacobson. September 2012. Where's the theory for software engineering? IEEE Software, 29(5). 84, 87, 96Google ScholarGoogle Scholar
  29. 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 ScholarGoogle Scholar
  30. P. Kruchten. 2003. The Rational Unified Process: An Introduction. 3rd edition. Addison-Wesley. 345Google ScholarGoogle Scholar
  31. C. Larman and B. Vodde. 2008. Scaling Lean & Agile Development: Thinking and Organizational Tools for Large-Scale Scrum. Pearson Education, Inc. 346Google ScholarGoogle Scholar
  32. C. Larman and B. Vodde. 2016. Large-Scale Scrum: More with LeSS. Addison-Wesley Professional. 297, 339Google ScholarGoogle Scholar
  33. D. Leffingwell. 2007. Scaling Software Agility: Best Practices for Large Enterprises. Addison-Wesley. 346Google ScholarGoogle Scholar
  34. 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 ScholarGoogle Scholar
  35. 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 ScholarGoogle Scholar
  36. S. Newman. 2015. Building Microservices. O'Reilly Media, Inc. 250, 285Google ScholarGoogle Scholar
  37. 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 ScholarGoogle Scholar
  38. 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 ScholarGoogle Scholar
  39. 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 ScholarGoogle ScholarCross RefCross Ref
  40. Object Management Group. Essence---Kernel and Language for Software Engineering Methods (Essence). http://www.omg.org/spec/Essence/1.1. 63Google ScholarGoogle Scholar
  41. OMG Essence Specification. 2014. http://www.omg.org/spec/Essence/Current. 95, 346Google ScholarGoogle Scholar
  42. D. Ross. 1977. Structured Analysis (SA): A language for communicating ideas. In IEEE Transactions on Software Engineering, SE-3(1): 16--34. 344Google ScholarGoogle Scholar
  43. K. Schwaber and J. Sutherland. 2016. "The Scrum Guide. The Definitive Guide to Scrum: The Rules of the Game." Scrum.org.Google ScholarGoogle Scholar

Cited By

  1. 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)
  2. ACM
    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)
  3. ACM
    Medeiros H, Batista T and Cavalcante E On a Metaprocess for Microservice Migration Proceedings of the XXXVII Brazilian Symposium on Software Engineering, (116-121)
  4. 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)
  5. 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)
  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.
  7. 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.
  8. 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)
  9. 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
  10. 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)
Contributors
  • Florida Atlantic University
  • University of Duisburg-Essen

Recommendations