SEMAT (Software Engineering Method and Theory) is an initiative to reshape software engineering such that software engineering qualifies as a rigorous discipline. The initiative was launched in December 2009 by Ivar Jacobson, Bertrand Meyer, and Richard Soley with a call for action statement and a vision statement. The initiative was envisioned as a multi-year effort for bridging the gap between the developer community and the academic community and for creating a community giving value to the whole software community.
The work is now structured in four different, but strongly related areas: The Practice area, The Education area, the Theory area and the Community area. The Practice area primarily addresses practices. The Education area is concerned with all issues related to training for both the developers and the academics including students. The Theory area is primarily addressing the search for a General Theory in Software Engineering. Finally the Community area works with setting up legal entities, creating websites and community growth. It was expected that the Practice area, the Education area and the Theory area would at some point in time integrate in a way of value to all of them: the Practice area would be a "customer" of the Theory area, and direct the research to useful results for the developer community. The Theory area would give a solid and practical platform for the Practice area. And, the Education area would communicate the results in proper ways.
The first step was here to develop a common ground or a kernel including the essence of software engineering – things we always have, always do, always produce when developing software. The second step was envisioned to add value on top of this kernel in the form of a library of practices to be composed to become specific methods, specific for all kinds of reasons such as the preferences of the team using it, kind of software being built, etc. The first step is as of this writing just about to be concluded. The results are a kernel including universal elements for software development – called the Essence Kernel, and a language – called the Essence Language - to describe these elements (and elements built on top of the kernel (practices, methods, and more). Essence, including both the kernel and language, has been published as an OMG standard in beta status in July 2013 and is expected to become a formally adopted standard in early 2014.
The second step has just started, and the Practice area will be divided into a number of separate but interconnected tracks: the practice (library track), the tool track are so far identified and work has started or is about to get started. The practice track is currently working on a Users Guide.
The area focuses on leveraging the work of SEMAT in software engineering education, both within academia and industry. It promotes global education based on a common ground called Essence. The area’s target groups are instructors such as university professors and industrial coaches as well as their students and learning practitioners.
The goal of the area is to create educational courses and course materials that are internationally viable, identify pedagogical approaches that are appropriate and effective for specific target groups and disseminate experience and lessons learned.
The area includes members from a number of universities and institutes worldwide. Most members have already been involved in leveraging aspects of SEMAT in the context of their software engineering courses. They are gathering their resources and starting a common venture towards defining a new generation of SEMAT-powered software engineering curricula.
As of 2018, some studies of utilizing Essence in educational settings exist. One example of the use of Essence in university education was a software engineering course carried out in Norwegian University of Science and Technology. A study was conducted by introducing Essence into a project-based software engineering course, with the aim of understanding what difficulties the students faced in using Essence, and whether they considered it to have been useful. The results indicated that Essence could also be useful for novice software engineers by (1) encouraging them to look up and study new practices and methods in order to create their own, (2) encouraging them to adjust their way-of-working reflectively and in a situation-specific manner, (3) helping them structure their way of working. The findings of another study introducing students to Essence through a digital game supported these findings: the students felt that Essence will be useful to them in future, real-world projects, and that they wish to utilize it in them.
In addition to community awareness building, SEMAT also aims to contribute with a specific general theory of software engineering. This theory should be solidly based on the SEMAT Essence language and kernel, and should support software engineering practitioner’s’ goal-oriented decision making. As argued elsewhere, such support is predicated on the predictive capabilities of the theory. Thus, the SEMAT Essence should be augmented to allow the prediction of critical software engineering phenomena. Sample questions that the theory aims to answer including the following:
a. How will project success be affected by changing the way of working?
b. How will project success be affected by changing the team structure and characteristics?
c. How will project success be affected by changing the content and form of the requirements?
d. How will project success be affected by changing ...?
The GTSE workshop series assists in the development of the SEMAT general software engineering theory by engaging a larger community in the search for, development of, and evaluation of promising theories, which may be used as a base for the SEMAT theory.
SEMAT is chaired by Sumeet S. Malhotra of Tata Consultancy Services. The CEO of the organization is Ste Nadin of Fujitsu. The Executive Management Committee of SEMAT consists of Ivar Jacobson, Ste Nadin, Sumeet S. Malhotra, Paul E. McMahon, Michael Goedicke and Cecile Peraire.
Japan Chapter was established in April 2013, and it has more than 250 members as of November 2013. Member activities include carrying out seminars about SEMAT, considering utilization of SEMAT Essence for integrating different requirements engineering techniques and body of knowledges (BoKs), and translating articles into Japanese.
The chapter was inaugurated with about 50 members in October 2013. Member activities include: 2e Consulting started rewriting their IT service engagement methods using the Essence kernel, and uEngine Solutions started developing a tool to orchestrate Essence-kernel based practices into a project method. Korean government supported KAIST to conduct research in Essence.
Latin American Chapter
Semat Latin American Chapter was created in August 2011 in Medellin (Colombia) by Ivar Jacobson during the Latin American Software Engineering Symposium. This Chapter has 9 Executive Committee members coming from Colombia, Venezuela, Peru, Brazil, Argentina, Chile, and Mexico, chaired by Dr. Carlos Zapata from Colombia. More than 80 people signed the initial declaration of the Chapter and nowadays the Chapter members are in charge of disseminating the Semat ideas in all Latin America. Chapter members have participated in various Latin American conferences, including the Latin American Conference on Informatics (CLEI), the Ibero American Software Engineering and Knowledge Engineering Journeys (JIISIC), the Colombian Computing Conference (CCC), and the Chilean Computing Meeting (ECC). The Chapter contributed in the submission sent in response to the OMG call for proposals and currently studies didactical strategies for teaching the Semat kernel by games, theoretical studies about some kernel elements, and practical representations of several software development and quality methods by using the Semat kernel. Some of the members also translated the Essence book and some other Semat materials and papers into Spanish.
Russian Chapter has about 20 members. A few universities have incorporated SEMAT in their training courses , including Moscow State University, Moscow Institute of Physics and Technology, Higher School of Economics, Moscow State University of Economics, Statistics, and Informatics. The chapter and some commercial companies are carrying out seminars about SEMAT. INCOSE Russian Chapter is working on an extension of SEMAT to Systems Engineering. EC-leasing is working on an extension of the Kernel for Software Life Cycle. Russian Chapter attended in two conferences: Actual Problems of System and Software Engineering and SECR with SEMAT section and articles. Translation of the Essence book into Russian is in progress.
Practical Applications of SEMAT
Ideas developed by the SEMAT community have been applied by both industry and academia. Notable examples include:
- Reinsurance company Munich Re have assembled a family of "collaboration models" to cover the whole spectrum of software and application work. Four collaboration models — exploratory, standard, maintenance, and support — have been built on the same kernel from the same set of 12 practices.
Tools supporting SEMAT
The first tool that supported the authoring and development of SEMAT practices based on a kernel was the EssWork Practice Workbench tool provided by Ivar Jacobson International. The Practice Workbench tool was made available to the SEMAT community in June 2012 and is now publicly available and free to use. The Practice Workbench is an Integrated Practice Development Environment with support for collaborative practice and method development. Key features of the Practice Workbench include:
- Interactive presentation of the Essence Kernel
- Practice authoring and extension using the Essence Language
- Method composition
- Innovative card-based representation
- Publication of methods, practices and kernels as card-based HTML web-sites
- Export to the EssWork deployment environment
Other publicly available tools supporting SEMAT's Essence include:
- SematAcc, the Essence Accelerator System, designed to speed up the learning of Essence Theory in Software Engineering and to easily test it with any software project
- The Essence Board Game, intended to teach the basics of Essence in a fun fashion
- Essencery, an Open Source alternative for composing methods using the Essence graphical language syntax
- Kemell, K., Nguyen-Duc, A., Wang, X., Risku, J., and Abrahamsson, P. (2018). The Essence Theory of Software Engineering - Large-Scale Classroom Experiences from 450+ Software Engineering BSc Students. In Proceedings of the 2018 International Conference on Product-Focused Process Improvement (PROFES2018). https://arxiv.org/abs/1809.08827.
- Pieper, J., Lueth, O., Goedicke, M., and Forbrig, P. (2017). A Case Study of Software Engineering Methods Education Supported By Digital Game-Based Learning - Applying the SEMAT Essence Kernel in Games and Course Projects. In Proceedings of the 2017 IEEE Global Engineering Education Conference (EDUCON), pp. 1689-1698.
- Graziotin, Daniel; Abrahamsson, Pekka (2 September 2013). "A Web-based modeling tool for the SEMAT Essence theory of software engineering". Journal of Open Research Software. 1 (1): E4. doi:10.5334/jors.ad.
- Kemell, K., Risku, J., Evensen, A., Abrahamsson, P., Dahl, A. M., Grytten, L. H., Jedryszek, A., Rostrup, P., and Nguyen-Duc, A. (2018). Gamifying the Escape from the Engineering Method Prison. In Proceedings of the 2018 IEEE International Conference on Engineering, Technology and Innovation (ICE/ITMC). DOI:10.1109/ICE.2018.8436340./
- Evensen, A., Kemell, K., Wang, X., Risku, J., and Abrahamsson, P. (2018). Essencery - A Tool for Essentializing Software Engineering Practices. https://arxiv.org/abs/1808.02723