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.
At the start of the initiative the founders wrote a call for action statement and a vision statement. The initiative was envisioned to be a multi-year effort working in parallel to bridge the gap between the developer community and the academic community and create 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 incl 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.
A significant number of world-class experts in the field of software engineering endorse the initiative's Call for Action. The signatories include Scott Ambler, Dines Bjørner, Barry Boehm, Erich Gamma, Ken Schwaber etc. The initiative is also supported by corporations such as IBM, Microsoft, Ericsson, ABB and Samsung, and academic institutions such as Peking University, Chalmers University of Technology, Florida Atlantic University, Wits University and KAIST. Some of the signatories are known in the field for well established software engineering models or methods, which are not always compatible. Yet the consensus on the initiative shows that they agree with the importance of refounding software engineering.
The Practice Area
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 track: 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 to help software practitioners/students, practice/method authors and tool builders in the use of Essence. This guide will contain scenarios demonstrating how teams can use the Essence kernel to assess where they are and where they need to focus next independent of their chosen method and life cycle. Scenarios are also being developed to show teams how they can assess their current practices looking for gaps and potential overlaps. The Users Guide will also contain a practice development guide to help both practice authors and practitioners create and update practices and methods.
The Education Area
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 world-wide, including (in alphabetical order):Carnegie Mellon University Silicon Valley, Free University of Bozen Bolzano, KTH Royal Institute of Technology, Universidad Nacional de Colombia, University of Duisburg-Essen, University of Oslo, Waseda University,National Institute of Informatics, Wits University Johannesburg and more.
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.
The Theory Area
An important part of SEMAT is that a general theory of software engineering is planned to emerge. As argued extensively elsewhere (e.g. in the IEEE Software article Where's the Theory for Software Engineering), the benefits of such theories are significant.
A series of workshops held under the title SEMAT Workshop on a General Theory of Software Engineering (GTSE) are a key component in awareness building around general theories.
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.
Regional Chapters of SEMAT
Chapters of SEMAT in China, Latin America, South Africa, Russia, Japan and Korea.
Japan Chapter was established in April 2013, and it has more than 250 members as of November 2013. Several organizations including Waseda University are considering to include SEMAT in their education and training courses. Member activities have just started: 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. Japanese translations of SEMAT Kernel Cards, Essence Article, and Vision Statement are already available on the chapter's web site: http://www.semat.jp.
LG Electronics, SK Telecom, Samsung SDS, Daewoo Shipbuilding & Marine Engineering, National Information Society Agency are among about 50 members of the chapter inaugurated in October 2013. Member activities have just started: 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. Visit http://semat-korea.org.
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, High 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 System 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.
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. In fact, the Chapter members have participated in some of the most important 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 played a crucial role in the submission sent in response to the OMG call for proposals and currently is devoted to the study of 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 (now in press) and some other Semat materials and papers into Spanish.
Practical Applications of SEMAT
Ideas developed by the SEMAT community have been successfully applied in the real world by both industry and academia. Examples from the industry are:
- MunichRe 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.
- Fujitsu Services have built Apt Toolkit based on the early version of the software-engineering kernel. This toolkit covers both agile and waterfall ways of working.
- KPN[clarification needed] adopted a kernel-based process by more than 300 projects across 13 programs as part of a move to iterative development and unifying QA process to apply to all projects regardless of the methods or practices used.
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
Another publicly available tool initiative is the SematAcc, the Essence Accelerator system. This tool is designed to speed up the learning of Essence Theory in Software Engineering and to easily test it with any software project.
- 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.