Models of software development environments
IEEE Transactions on Software Engineering
We present a general model of software development environments that consists of three components: policies, mechanisms and structures. The advantage of this formalization is that it distinguishes precisely those aspects of an environment that are useful in comparing and contrasting software development environments. We introduce four classes of models by means of a sociological metaphor that emphasizes scale: the individual, the family, the city and the state models. The utility of this
... y is that it delineates the important classes of interaction among software developers and exposes the ways in which current software development environments inadequately support the development of large systems. Environments reflecting the individual and family models are the current state of the art. Unfortunately, these two models are ill-suited for the development of large systems that require more than, say, 20 programmers. We argue that there is a qualitative difference between the interactions among a small, "family" project and a large, "city" project and that this qualitative difference requires a fundamentally different model of software development environments. We illustrate the city model with Inscape/Infuse and ISTAR, the only two environments we know of that instantiate this model, and show that there is a pressing need for further research on this kind of environment. Finally, we postulate a state model, which is in need of further clarification, understanding and, ultimately, implementation. __________________ * We say partial in the sense that Garlan's views do not help at all if the environment and its tools already exist independently of Garlan's mechanisms and new tools need to be added. It is a full solution in the sense that if one develops the entire environment with Garlan's views, then adding a new tool requires that one adds the view needed by that tool to the original set and generates the newly integrated structure.