Technical Report No: CS-93-002
Computer and Information Science, University of South Australia
Software Engineering Environments :
Models and Classifications
J. G. Harvey
Computer and Information Science, University of South Australia,
The Levels, South Australia, 5095 Australia
Discipline of Computer Science, School of Information Science and Technology
Flinders University of South Australia
Sturt Road, Bedford Park, South Australia, Australia
Software engineering environments have evolved rapidly and significantly in the past few years and no longer resemble the monolithic structures of the past. However, they continue to remain the property of research groups with only a handful of systems commercially available. Furthermore, current software engineering environments, although complex structures, remain naive and fail to address adequately the support, data storage and control requirements introduced by the increasing scale of software development projects and teams.
This paper presents a survey of existing models and classifications of software engineering environments. It notes that the current descriptions are informal; yet to increase understanding of integration and to evaluate and compare integration aspects of current environments and current and proposed frameworks and standards, a more formal description is required. Such a model could also be a means for establishing integration measures and metrics.
Software engineering environments are no longer the monolithic and overly complex structures of the past decades, typified by the early language-centred environments such as InterLisp (Teitelman and Masinter 1981) and Smalltalk (Ramachers and Aarnts 1989). Extending these environments to provide additional functionality was a complex and difficult task. The subsequent generation of environments began to exhibit a level of separation between components (tools) and therefore a level of integration where information was provided to the various tools via a shared data space. These environments remained focused primarily on the programming phase of the software lifecycle and hence were commonly referred to as Programming Environments or Program Development Environments. Characteristically a (possibly syntax-directed) editor served as the heart of the environment, with tools such as parsers, unparsers, compilers, debuggers, browsers and multiple view mechanisms interacting often transparently with the editor. Furthermore, an abstract representation of?the program (e.g. an abstract syntax tree) commonly was utilised. Representative of this paradigm are Cedar (Donahue 1985), Mentor (Donzeau-Gouge, et al. 1980), Pecan (Habermann and Notkin 1986), MultiView (Altmann, Hawke and Marlin 1988; Marlin 1990) and Cornell (Teitelbaum and Reps 1981). The ease