Computer supported systems development

Abstract: This thesis deals with the design and construction of System Development Environments, that is the use of computers to make software intensive development work more efficient and predictable. The results are centered around the construction of such a development environment. A major theme and contribution is in extending the support provided by such environments from single user scenarios to large projects involving coordinated teams of developers. The thesis consists of seven parts, and starts out with a database oriented view of the problem. The basic idea is that all data objects created during the life of a project should be collected in a database, that also represents the various dependencies and relationships between the objects. 'Me state of a project is then defined in terms of those data, and their evolution corresponds to the evolution of the project. Automation is achieved by a rich number of surrounding tools which have access to this database. The first paper describes the design of this database by generalizing and extending the role of the Ado program library. The main contribution is in the benefits then achieved in terms of automatic data collection and consistency management. Another important result is the basic mechanisms for support of version handling. Several following papers show how to extend existing results into explicit support for programming-in-the-large, in contrast to the single person and local context support that has long dominated the thinking. This also leads to new results in supporting teams of programmers, with the problem of managing parallel change and continuous reintegration of results. The importance of several levels of abstraction and interactive data navigation support is discussed, and solutions are described. The problem of keeping data from different development phases consistent is identified, and solution principles are developed. Besides extending environments functionality towards larger projects. the thesis provides new results in how to architect those environments internally. A central concept is integration, that is the coordination between different tools to make them cooperate towards a common goal. This stands, however, often in conflict with other requirements, such as subsystem separation and autonomy. Several approaches to handle this dilemma are described. A widely accepted definition and analysis of the concept of integration is also presented. The final part, which is the most extensive, generalizes the experiences of the project in the light of a broad survey of other results. It provides an extensive overview of problem statements, solution techniques, and technology important to the construction of system development environments. The most important direction for the future is in further support for work in distributed teams. The areas of computer supported cooperative work, distributed systems, process modelling, workflow management. and broadband communications will be merged into new innovative approaches. The future development environment will a) to a large extent be an interperson communication environment; b) generalize so that most of it can be applied not only to system development, but to all situations where people work together in projects.

  This dissertation MIGHT be available in PDF-format. Check this page to see if it is available for download.