Issues encountered in building a flexible software development environment: lessons from the Arcadia project

This paper presents some of the more significant technical lessons that the Arcadia project has learned about developing effective software development environments. The principal components of the Arcadia-1 architecture are capabilities for process definition and execution, object management, user interface development and management, measurement and evaluation, language processing, and analysis and testing. In simultaneously and cooperatively developing solutions in these areas we learned several key lessons. Among them: the need to combine and apply heterogenous componentry, multiple techniques for developing components, the pervasive need for rich type models, the need for supporting dynamism (and at what granularity), the role and value of concurrency, and the role and various forms of event-based control integration mechanisms. These lessons are explored in the paper.

[1]  Richard J. Beach,et al.  A structural view of the Cedar programming environment , 1986, TOPL.

[2]  Michael J. Carey,et al.  Programming constructs for database system implementation in EXODUS , 1987, SIGMOD '87.

[3]  J. E Moss Implementing Persistence for an Object Oriented Language , 1987 .

[4]  Philip A. Bernstein,et al.  Database System Support for Software Engineering , 1987, International Conference on Software Engineering.

[5]  Roger King,et al.  The Cactis Project: Database Support for Software Environment , 1988, IEEE Trans. Software Eng..

[6]  Jack C. Wileden,et al.  Pgraphite: an experiment in persistent typed object management , 1988, SDE 3.

[7]  David J. DeWitt,et al.  The Object-Oriented Database System Manifesto , 1994, Building an Object-Oriented Database System, The Story of O2.

[8]  Lori A. Clarke,et al.  Task interaction graphs for concurrency analysis , 1989, ICSE '89.

[9]  Jack C. Wileden,et al.  OROS: toward a type model for software development environments , 1989, OOPSLA 1989.

[10]  Jack C. Wileden,et al.  The AdaPIC Tool Set: Supporting Interface Control and Analysis Throughout the Software Development Process , 1989, IEEE Trans. Software Eng..

[11]  Jack C. Wileden,et al.  Extending and Limiting PGraphite-style Persistence , 1990, Workshop on Persistent Objects.

[12]  A. Nico Habermann,et al.  Beyond schema evolution to database reorganization , 1990, OOPSLA/ECOOP '90.

[13]  Steven P. Reiss,et al.  Connecting tools using message passing in the Field environment , 1990, IEEE Software.

[14]  S. Sutton,et al.  Language constructs for managing change in process-centered environments , 1990, SDE 4.

[15]  Leon J. Osterweil,et al.  Q: A Multi-lingual Interprocess Communications System for Software Environment Implementation , 1990 .

[16]  David J. DeWitt,et al.  The Architecture of the EXODUS Extensible DBMS , 1986, On Object-Oriented Database System.

[17]  Douglas C. Schmidt,et al.  Metric-driven analysis and feedback systems for enabling empirically guided software development , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[18]  Richard N. Taylor,et al.  User interface development and software environments: the Chiron-1 system , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[19]  Richard N. Taylor,et al.  Team-oriented process programming , 1991 .

[20]  Jack C. Wileden,et al.  Specification-level interoperability , 1991, CACM.