Theory Area

Leaders: Michael Goedicke and Pontus Johnson

Awareness and Community building
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 by Pontus, Mathias and Ivar), the benefits of such theories are difficult to overestimate. However, awareness of this fact is low in the software engineering community. Therefore, in order to fully realize the theoretical potential of SEMAT, there is a need to build awareness of the importance of theory in the software engineering community.

The series of workshops held under the title SEMAT Workshop on a General Theory of Software Engineering (GTSE) are a key component in such awareness building. By gathering a community of researchers interested in the development of general software engineering theory, momentum can be created, and the issue can receive the public attention it deserves. First indications of such effort can be seen (e.g., invitations to give talks, attendance to the workshop series etc.) and there is good chance that this development will be a sustainable effort in software engineering community.

In order to build a large community, it is important to encourage a diversity of opinions. Too forceful attempts to guide the thinking of the solicited researchers will most likely result in them abandoning the SEMAT community. SEMAT can in this area thus best act as a platform for an open discussion on general theories. The main goal in this sub-activity is thus to promote community awareness of the benefits of general theories.

A SEMAT general theory of software engineering
In addition to community awareness building, which is an organizational task, we also want to contribute with a SEMAT general theory of software engineering. This theory should be solidly based on the Essence language and kernel, but should demonstrate the benefits that come with good theories. In particular, the theory 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, SEMAT should be augmented to allow the prediction of critical software engineering phenomena. Sample questions that the theory aims to answer including the following:

  • How will project success be affected by changing the way of working?
  • How will project success be affected by changing the team structure and characteristics?
  • How will project success be affected by changing the content and form of the requirements?
  • 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.

Practice-specific research
Apart from looking for a general theory of software engineering, practice specific research also needs to be conducted. Those specific research aims to answer questions such as “Is pair programming better than peer programming”, “are use cases better than user stories”, “components better than just objects”.