A development methodology for distributed Ada application

The DAPSE (Distributed Ada Programming Support Environment) research project aims at (i) producing a technology base for developing future Ada programming support environments and (ii) demonstrating the suitability of this technology base by using it to build a prototype environment for the development of distributed Ada software. In this paper we emphasize those parts of the DAPSE project that specifically address the methodology and software tool support for building distributed applic~ tions in Ada. Our paper is structured into three major parts: (1) a brief overview of the entire DAPSE project and a general framework for distributed programming, (2) the specific distribution strategy chosen for the DAPSE project and the initial DAPSE distribution tool kit intended to support the chosen distribution strategy (including first lessons learned), and (3) future plans. 1 I n t r o d u c t i o n Ada has been designed to support the development of sequential~ parallel~ and distributed software applications. As of today, however, none of the existing compilers, run-time environments, or Ada Programming Support Environments provide adequate support for developing distributed Ada programs. The state-of-the-practice in developing distributed Ada applications is to manually distribute distinct Ada programs and implement the required communication between them (e.g., substituting the regular Ada communication mechanisms by system calls to an underlying communication layer). *This work was performed under contract DAAB07-85-C-K572 for the U.S. Army, Ft. Monmouth, N. J. tWith University of Maryland COPYRIGHT 1988 BY THE ASSOCIATION FOR COMPUTING MACHINERY, INC. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, orto republish, requires a fee and/or specific permission. The DAPSE (Distributed Ada Programming Support Environment) project is (i) a comprehensive research project that aims at producing a technology base for developing future Ada programming support environments and (ii) a software prototype activity aimed at demonstrating the suitability of this technology base for supporting the development of distributed Ada applications ([10], [11]). The DAPSE project addresses issues related to supporting the cost-effective development and maintenance of quality Ada software ([4]). In this paper we restrict our discussion to the DAPSE project issues that specifically address the methodology and software tool support for building distributed applications in Ada. In the first part of this paper we provide background information about the objectives and scope of the entire DAPSE project (section 2) and introduce a framework of general issues related to distributed programming (section 3). In the second part of this paper we discuss the specific strategy for developing distributed Ada programs chosen for the DAPSE project (section 4) and its initial prototype support (section 5). The discussion of the DAPSE distribution strategy includes a characterization of our intended application domain, the rationale for choosing a specific strategy, a description of the chosen strategy, and its relationship to the framework. We also describe our research and development plans. The initial prototype is described in terms of its current status, the first lessons we learned, and our next steps. In the final part of the paper we discuss future directions for research and development in distributed programming (section 6). 2 D A P S E P r o j e c t O v e r v i e w The Distributed Ada Programming Support Environment (DAPSE) project is a multi-yea~r research effort at Compass, Inc. The DAPSE project aims at developing a technology base for the construction of future Ada programming support environments (APSEs). The primary goals of the DAPSE project are the development of an architectural framework for future APSEs and the development of a coherent environment construction method allowing for customized generation of environments from forreal specifications (generator technology). Within this framework, we specifically address user interface techniques and approaches to distributed programming [15]. Research results are being implemented and evaluated through a series of experimental prototypes. 2.1 D A P S E C o n s t r u c t i o n M e t h o d :