The Architecture of the Arcadia-1 Process Centered Software Environment
Leon J. Osterweil, Ron Taylor · 2005
Arcadia is a research project aimed at producing process-centered software environments. The project [3] is organized as a consortium of six universities and corporations, collaboration on parallel research in five major areas of importance to software environments: environment architecture, software process, software object management, user interfaces, and measurement and evaluation. Arcadia will produce Arcadia, 1 a prototype process-centered software environment that integrates componentry from each of these parallel research activities. The integration effort provides experimental evaluation of the separate research activities as well as a working prototype environment. A process-centered environment in one that supports the activities of its users by proactively coordinating the actions of tools and humans in the execution of software processes that are explicitly represented by executable code contained within the environment. Arcadia- I incorporates executable processes coded primarily in the Appl/A language [2, 11. The processes coded are expected to include requirements specification, design, testing, and certain management functions. Our research has indicated that research and prototype development in process programming languages, object management, user interfaces, and measurement and evaluation are all critical to being able to support the proactive execution of these process programs. Fitting components resulting from these various separate research activities together into a working whole environment represents a great challenge as well. In Arcadia we have devoted a considerable amount of work to identification of the key components and the specification of interfaces to them. Our hope is that we will be able to establish an open architecture for process centered software environments so as to create a marketplace for supporting componentry. The attached diagram represents a distillation of our current thinking about this architecture. The diagram depicts a layered virtual machine view of Arcadia-1. It indicates four distinct conceptual layers-the project programming layer, process programming layer, environment building layer, and underlying operating system layer. Each layer is to be thought of as a virtual machine that is responsible for supporting the execution of programs written at the layer above it. Hence each layer presumes the complete and correct functioning of the virtual machine below it. Each layer’s support is provided through a set of interfaces. The diagram shows each layer as a set of boxes, depicting the major modular components implementing the layer’s virtual machine. Each layer is bounded at the top by a horizontal line, with imbedded boxes. Each box represents a separate, specific interface through which the support services of the layer are furnished. Each interface is at the head of one or more arrows whose tails are at the various modular components responsible for furnishing the services provided through that interface. In turn, each modular component is at the head of one or more arrows whose tails This work was supportedin part by the National Science Foundation under grants CCR-8704311, CCR 8996102, and CCR-8521398 with cooperation from the Defense Advanced Research Projects Agency.