Software Engineering Research
by Gilles Kahn
As a research area, software engineering is loosely defined. The articles in this issue are an ample demonstration of that fact. Building software in a professional manner implies mastering a variety of disciplines and techniques, each of which involves research of its own. One could compare this activity to preparing food in a kitchen. First of all there are industrial kitchen -for example for frozen food - large restaurants, fast food places, but also high-class restaurants or very small places. Orthogonally, one can classify restaurants by the kind of food they serve, which implies using different cooking utensils and different seasonings. Kitchen research, for some involves finding rules for guaranteeing that the food is healthy, for others making sure that it tastes good, and finally some want it prepared efficiently and economically.
The articles in this issue reflect the large variety of concerns involved in the engineering of software. One could find the following broad categories :
- controlling the documents, from specification to code, that are involved in software production; assisting in creating them and working with them
- modeling and prototyping software systems
- systematic design methods
- verification and validation of critical software
- construction and verification of more general software
- constraint programming
- parallel programming and implementation of network protocols
- controlling the software construction process.
It is clear that there is much more research activity in the ERCIM laboratories beyond what is reported in this issue, which nevertheless exhibits a few broad trends :
- Research, prompted by industrial needs, tries to encompass earlier phases in the specification and design of software, and does not concentrate solely on the coding activity
- Verification and validation, in some specific areas, have yielded significant gains in development cost; broadening the scope of successful verification is a major objective of research
- Special purpose formalisms, based on a deep understanding of the programming task at hand, are a source of efficiency and reliability
It is clear that the European research laboratories design ingenious and creative ways of developing software, that are often ahead of anything that exists in a commercial product. There are indications in this issue that, more often than not, their work is noticed and taken advantage of in industrial software development.
Gilles Kahn - INRIA
Tel: +33 1 3963 5122