Computational Autonomy and Information Systems Open Reference

A Vision and its Role in Long-Term CS Research

Erik Sandewall


If 'science' and 'engineering' are defined as being different, then the term 'computer science' is a misnomer and the entire discipline ought to have been characterized as the union of 'software theory' and 'software engineering', just like e.g. 'control theory' and 'control engineering'. However, in this case 'software engineering' must be taken in a much broader sense than the term has acquired until present.

The area of 'software engineering in a broad sense', or 'systems research in computer science' is concerned with the design of certain very complex systems, namely, the entire software systems in contemporary computers. These systems are complex not only in the sense of being large and having many parts, but more importantly because of the variety of structure and the richness of the interdependencies between the parts.

If a person or a group works on design issues in some part of that overall design then they can take the overall structure for granted and only address one segment of it. Furthermore, if we should consider that the contemporary overall structure is the best possible one, then it is natural to investigate it locally even in the longer term.

However, if one thinks (as I do) that the overall structure is far from optimal, that in the longer term it should be done very differently, and furthermore that contemporary software technology has grave deficiencies from the point of view of the end users, then one must adopt a broad and long-term perspective for the research. Specific research projects must have concrete goals and be relevant for immediate needs, of course, but it must also be possible to understand them in the context of an long-term destination.

As leader of the research projects, since around 1970, that are represented on the CAISOR site, I have had a concept for the overall structure of software that differs from the usually established one, and that one could maybe call a vision. It has evolved somewhat over time but its main ingredients have been there since the start. The purpose of this 'Vision' section is to describe it as clearly and convincingly as possible.

The 'Vision' section is therefore complementary to the site's 'Hyperbook' section. The latter is a synthesis of results from the specific research projects, including both those concerned with 'theory' and those concerned with 'engineering' in the sense understood here. It is a selective composition, since not all results are represented and the selection is done so as to emphasize results that relate one way or another to that vision, but still it is a presentation of a number of concrete results by several authors.

It must be understood that the software architecture concept, or the 'vision' has not always been shared by all the members of these groups over the years, but that is part of the game and it does not matter. (In fact it has probably been a good thing, for if a group of people all share the same vision without questioning it then they can lose contact with the world). The credit for the results in the 'Hyperbook' section is shared by many people; the responsibility for the proposals and projections in the 'Vision' section is only on me.

Some of the things I said in 1970 or in 1980 were considered unreal at the time and became real a number of years later. Although such ideas are therefore no longer visionary, they have anyway been retained here in some cases, since my goal is to present a coherent, forward-looking concept that has underlied our research for many years.

By definition this 'vision' or 'concept' is not finished and cast in concrete; additional amendments must be expected. Therefore, please be invited to write back with comments, agreements, and disagreements, and even with proposed contributions to this site.


Posted on 2005-03-17 as part of the CAISOR website. [Version history].