Abstract
The CAPITL programming environment is comprised of a shared, object-oriented, versioned database, an embedded logic-based data-manipulation language, and a graphical user interface. With each software object the database stores a rich set of attributes that describe its syntax, intended semantics, and relationship to other objects. CAPITL is implemented in POL, a data model and deductive query language with elements of persistent, object-oriented and logic-based programming languages. POL is implemented in and tightly coupled with C++.
A request for a derived object consists of a partial description of its attributes. A planner written in POL searches the database for tools and sources that can be combined to create an object meeting the description. Since tools are stored in the database like other objects, plans that create tools as well as intermediate inputs are possible. A builder, also written in POL, executes plans to materialize software products. The builder verifies that existing objects are current, minimally re-applying tools as sources, tools, or system descriptions change.
After an overview of the database and the POL programming system, we outline CAPITL's logic-based approach to system modelling, illustrating it with two examples. We conclude with a status report and an outline of future directions.
This work was supported in part by the Defense Advanced Research Projects Agency under ARPA Order No. 8856 (monitored by the Office of Naval Research under contract N00014-92-J-1937).
Preview
Unable to display preview. Download preview PDF.
References
Proceedings of the 14th International Conference on Software Engineering. IEEE Computer Society Press, May 1992.
Proceedings of the 15th International Conference on Software Engineering. IEEE Computer Society Press, May 1993.
Paul Adams and Marvin Solomon. POL: Persistent objects with logic. Technical Report 1158, University of Wisconsin-Madison, Computer Sciences Department, August 1993.
Hassan Aït-Kaci. An Algebraic Semantics Approach to the Effective Resolution of Type Equations, pages 293–351. Number 45 in Theoretical Computer Science. Elsevier Science Publishers B.V., 1986.
Hassan Aït-Kaci and Roger Nasr. LOGIN: a logic programming language with built-in inheritance. Journal of Logic Programming, pages 181–215, March 1986.
P. Asirelli and P. Inverardi. Enhancing configuration facilities in software development: A logic approach. In Proceedings of ESEC '87: 1st European Software Engineering Conference, volume 289 of Lecture Notes in Computer Science, pages 55–63. Springer-Verlag, September 1987.
Atria Software, Natick,MA. ClearCase Concepts Manual, document number 3000-002-a edition, 1992.
N. Belkhatir, J. Estublier, and W. L. Melo. Adele 2: A support to large software development process. In M. Downson, editor, Proceedings of the 1st International Conference on Software Process, pages 159–170, Redondo Beach, CA, October 1991. IEEE Computer Society Press.
Mark R. Brown and John R. Ellis. Bridges: Tools to extend the vesta configuration management system. Technical report, Digital SRC, June 1993.
Todd Brunhoff and Jim Fulton. Imake — c preprocessor interface to the make utility. Technical report, Unix Programmer's Manual, X Window System, Version 11, Release 5.
Michael Carey, David DeWitt, Goetz Graefe, David Haight, Joel Richardson, Daniel Schuh, Eugene Shekita, and Scott Vandenberg. The EXODUS extensible DBMS project: an overview. In Stan Zdonik and David Maier, editors, Readings in Object-Oriented Databases. Morgan-Kaufman, 1990.
CaseWare, Inc, Irvine, CA. Introduction to CaseWare/CM, part number ic-031-010 edition, 1993.
Sheng-Yang Chiu and Roy Levin. The vesta repository: A file system extension for software development. Technical report, Digital SRC, June 1993.
Geoffrey Clemm and Leon Osterweil. A mechanism for environment integration. ACM Transactions on Programming Languages and Systems, 12(1):1–25, January 1990.
David J. DeWitt, Michael J. Franklin, Nancy E. Hall, Mark L. McAuliffe, Jeffrey F. Naughton, Daniel T. Schuh, Marvin H. Solomon, C. K. Tan, Odysseas G. Tsatalos, Seth J. White, and Michael J. Zwilling. Shoring up persistent applications. In SIGMOD, Minneapolis, MN, May 1994.
James R. Driscol, Neil Sarnak, Daniel D. Sleator, and Robert E. Tarjan. Making data structures persistent. Journal of Computer and System Sciences, 38(1):86–124, February 1989.
J. Estublier. A configuration manager: the ADELE database of programs. In Proceedings of the Workshop on Software Engineering Environments for Programmingin-the-Large, pages 140–147, Harwichport, MA, June 1985. GTE Laboratories.
J. Estublier, S. Ghoul, and S. Krakowiak. Preliminary experience with a configuration control system. In Proceedings of the SIGSOFT/SIGPLAN Software Eng. Symposium on Practical Software Development Environments, pages 149–156. ACM, April 1984.
Jacky Estublier. Configuration management: the notion and the tools. In Proceedings of the International Workshop on Software Version and Configuration Control, pages 38–61, Grassau, W. Germany, January 1988. B.G. Teubner, Stuttgart, W. Germany.
Stuart I. Feldman. Make—a program for maintaining computer programs. Software—Practice and Experience, 9(4):255–265, April 1979.
Christine B. Hanna and Roy Levin. The vesta language for configuration management. Technical report, Digital SRC, June 1993.
Stephen C. Johnson. YACC—yet another compiler compiler. C. S. Technical Report 32, Bell Laboratories, Murray Hill, NJ, 1975.
Gail Kaiser and Peter H. Feiler. Granularity issues in a knowledge-based programming environment. In 2nd Kansas Conference on Knowledge-Based Software Development, Manhattan, KA, October 1986.
Gail Kaiser and Peter H. Feiler. SMILE/MARVEL: Two approaches to knowledgebased programming environments. Tech. Report CU-CS-227-86, Department of Computer Science, Columbia University, New York, NY 10027, October 1986.
Gail Kaiser and Peter H. Feiler. An architecture for intelligent assistance in software development. In Proceedings of the Ninth International Conference on Software Engineering, pages 80–88, Monterey, CA, March 1987. IEEE Computer Society Press.
Gail E. Kaiser. A rule-based process server component for constructing rule-based development environments. In Proceedings of the 7th International Software Process Workshop, pages 76–78, October 1991.
Thilo Kielmann. Using prolog for software system maintenance. In Proceedings of the First International Conference on the Practical Application of Prolog, volume 1, London, UK, October 1992.
Kevin Knight. Unification: a multidisciplinary survey. ACM Computing Surveys, 21(1):93–124, March 1989.
Butler W. Lampson and Eric E. Schmidt. Organizing software in a distributed environment. ACM SIGPLAN Notices, 18(6):1–13, June 1983.
David B. Leblang and Robert P. Chase, Jr. Computer-aided software engineering n a distributed workstation environment. ACM SIGPLAN Notices, 19(5): 104–112, April 1984.
David B. Leblang and Gordon D. McLean, Jr. Configuration management for large-scale software development efforts. In Proceedings of the Workshop on Software Engineering Environments for Programming-in-the-Large, pages 122–127, Harwichport, MA, June 1985. GTE Laboratories.
M.E. Lesk. Lex—a lexical analyzer generator. C. S. Technical Report 39, Bell Laboratories, Murray Hill, NJ, October 1975.
Roy Levin and Paul R. McJones. The vesta approach to precise configuration of large software systems. Technical report, Digital SRC, June 1993.
Mark A. Linton, John M. Vlissides, and Paul R. Calder. Composing user interfaces with interviews. IEEE Computer, pages 8–24, February 1989.
Axel Mahler and Andreas Lampen. Shape—a software configuration management tool. In Proceedings of the International Workshop on Software Version and Configuration Control, Grassau, W. Germany, January 1988. B.G. Teubner, Stuttgart, W. Germany.
Axel Mahler and Andreas Lampen. An integrated toolset for engineering software configurations. In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, number (24)2 in ACM SIGPLAN Notices, pages 191–200, February 1989.
John K. Ousterhout. Tcl: an embeddable command language. In 1990 Winter USENIX Conference Proceedings, 1990.
John K. Ousterhout. Tcl: An embeddable command language. 1990 Winter USENIX Conference Proceedings, 1990.
John K. Ousterhout. An x11 toolkit based on the tcl language. 1991 Winter USENIX Conference Proceedings, 1991.
Dewayne E. Perry, Nancy A. Staudenmayer, and Lawrence G. Votta, Jr. Finding out what goes on in a software development organization. Technical report, Personal communication (paper submitted for publication), September 1993.
Anthony Rich. Logic-Based System Modelling. PhD thesis, University of Wisconsin-Madison, August 1991.
Anthony Rich and Marvin Solomon. A logic-based approach to system modelling. In Peter H. Feiler, editor, Workshop on Software Configuration Management, pages 84–93, Trondheim, Norway, June 1991.
Joel Richardson, Michael Carey, and Daniel Schuh. The design of the E programming language. ACM Transactions on Programming Languages and Systems, 15(3), July 1993.
Russell Sandberg, David Goldberg, Steve Kleiman, Dan Walsh, and Bob Lyon. Design and implementation of the sun network filesystem. In Proceedings of the Summer 1985 USENIX Conference, pages 119–130, Portland, OR, June 1985.
R.W. Scheifler and J. Gettys. The X window system. ACM Transactions on Graphics, 16(8):57–69, August 1983.
Marvin Solomon. EFS: the extensible file system. Unpublished manual, 1993.
Richard M. Stallman and Roland McGrath. GNU Make. Free Software Foundation, Inc., Cambridge, MA, edition 0.26 beta edition, 1990.
Stanley M. Sutton, Jr., Dennis Heimbigner, and Leon J. Osterweil. Managing change in software development through process programming. Technical Report 1, University of Colorado at Boulder, June 1991.
Walter F. Tichy. RCS: a system for version control. Software—Practice and Experience, 15(7):637–654, July 1985.
Walter F. Tichy. Tools for software configuration management. In Jürgen F.H. Winkler, editor, Proceedings of the First International Workshop on Software Version and Configuration Control, pages 1–20, Grassau, FRG, January 1988. B.G. Teubner, Stuttgart, W. Germany.
Walter F. Tichy and Mark C. Baker. Smart recompilation. In 12th Annual ACM Symposium on Principles of Programming Languages, pages 236–244, New Orleans, Louisiana, January 1985.
Dennis Vadura. Dmake—maintain program groups, or interdependent files. Technical report, University of Waterloo, 1992. Dmake Unix Programmers Manual, Version 3.8.
Douglas Wiebe. Generic Software Configuration Management: Theory and Design. PhD thesis, University of Washington, Seattle, 1990.
Edward Yourdon. The Decline & Fall of the American Programmer. Prentice Hall, 1993.
Andreas Zeller. Configuration management with feature logics. Technical report, Technishe Universität Braunschweig Report No. 94-01, March 1994.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Adams, P., Solomon, M. (1995). An overview of the CAPITL software development environment. In: Estublier, J. (eds) Software Configuration Management. SCM SCM 1993 1995. Lecture Notes in Computer Science, vol 1005. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60578-9_1
Download citation
DOI: https://doi.org/10.1007/3-540-60578-9_1
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-60578-2
Online ISBN: 978-3-540-47768-6
eBook Packages: Springer Book Archive