Advertisement

An overview of the CAPITL software development environment

  • Paul Adams
  • Marvin Solomon
SCM-4 Best Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1005)

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.

Keywords

File System Content Attribute Logic Programming Language Code Attribute Abstract Syntax Tree 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Proceedings of the 14th International Conference on Software Engineering. IEEE Computer Society Press, May 1992.Google Scholar
  2. 2.
    Proceedings of the 15th International Conference on Software Engineering. IEEE Computer Society Press, May 1993.Google Scholar
  3. 3.
    Paul Adams and Marvin Solomon. POL: Persistent objects with logic. Technical Report 1158, University of Wisconsin-Madison, Computer Sciences Department, August 1993.Google Scholar
  4. 4.
    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.Google Scholar
  5. 5.
    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.Google Scholar
  6. 6.
    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.Google Scholar
  7. 7.
    Atria Software, Natick,MA. ClearCase Concepts Manual, document number 3000-002-a edition, 1992.Google Scholar
  8. 8.
    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.Google Scholar
  9. 9.
    Mark R. Brown and John R. Ellis. Bridges: Tools to extend the vesta configuration management system. Technical report, Digital SRC, June 1993.Google Scholar
  10. 10.
    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.Google Scholar
  11. 11.
    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.Google Scholar
  12. 12.
    CaseWare, Inc, Irvine, CA. Introduction to CaseWare/CM, part number ic-031-010 edition, 1993.Google Scholar
  13. 13.
    Sheng-Yang Chiu and Roy Levin. The vesta repository: A file system extension for software development. Technical report, Digital SRC, June 1993.Google Scholar
  14. 14.
    Geoffrey Clemm and Leon Osterweil. A mechanism for environment integration. ACM Transactions on Programming Languages and Systems, 12(1):1–25, January 1990.Google Scholar
  15. 15.
    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.Google Scholar
  16. 16.
    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.Google Scholar
  17. 17.
    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.Google Scholar
  18. 18.
    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.Google Scholar
  19. 19.
    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.Google Scholar
  20. 20.
    Stuart I. Feldman. Make—a program for maintaining computer programs. Software—Practice and Experience, 9(4):255–265, April 1979.Google Scholar
  21. 21.
    Christine B. Hanna and Roy Levin. The vesta language for configuration management. Technical report, Digital SRC, June 1993.Google Scholar
  22. 22.
    Stephen C. Johnson. YACC—yet another compiler compiler. C. S. Technical Report 32, Bell Laboratories, Murray Hill, NJ, 1975.Google Scholar
  23. 23.
    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.Google Scholar
  24. 24.
    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.Google Scholar
  25. 25.
    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.Google Scholar
  26. 26.
    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.Google Scholar
  27. 27.
    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.Google Scholar
  28. 28.
    Kevin Knight. Unification: a multidisciplinary survey. ACM Computing Surveys, 21(1):93–124, March 1989.Google Scholar
  29. 29.
    Butler W. Lampson and Eric E. Schmidt. Organizing software in a distributed environment. ACM SIGPLAN Notices, 18(6):1–13, June 1983.Google Scholar
  30. 30.
    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.Google Scholar
  31. 31.
    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.Google Scholar
  32. 32.
    M.E. Lesk. Lex—a lexical analyzer generator. C. S. Technical Report 39, Bell Laboratories, Murray Hill, NJ, October 1975.Google Scholar
  33. 33.
    Roy Levin and Paul R. McJones. The vesta approach to precise configuration of large software systems. Technical report, Digital SRC, June 1993.Google Scholar
  34. 34.
    Mark A. Linton, John M. Vlissides, and Paul R. Calder. Composing user interfaces with interviews. IEEE Computer, pages 8–24, February 1989.Google Scholar
  35. 35.
    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.Google Scholar
  36. 36.
    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.Google Scholar
  37. 37.
    John K. Ousterhout. Tcl: an embeddable command language. In 1990 Winter USENIX Conference Proceedings, 1990.Google Scholar
  38. 38.
    John K. Ousterhout. Tcl: An embeddable command language. 1990 Winter USENIX Conference Proceedings, 1990.Google Scholar
  39. 39.
    John K. Ousterhout. An x11 toolkit based on the tcl language. 1991 Winter USENIX Conference Proceedings, 1991.Google Scholar
  40. 40.
    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.Google Scholar
  41. 41.
    Anthony Rich. Logic-Based System Modelling. PhD thesis, University of Wisconsin-Madison, August 1991.Google Scholar
  42. 42.
    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.Google Scholar
  43. 43.
    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.Google Scholar
  44. 44.
    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.Google Scholar
  45. 45.
    R.W. Scheifler and J. Gettys. The X window system. ACM Transactions on Graphics, 16(8):57–69, August 1983.Google Scholar
  46. 46.
    Marvin Solomon. EFS: the extensible file system. Unpublished manual, 1993.Google Scholar
  47. 47.
    Richard M. Stallman and Roland McGrath. GNU Make. Free Software Foundation, Inc., Cambridge, MA, edition 0.26 beta edition, 1990.Google Scholar
  48. 48.
    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.Google Scholar
  49. 49.
    Walter F. Tichy. RCS: a system for version control. Software—Practice and Experience, 15(7):637–654, July 1985.Google Scholar
  50. 50.
    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.Google Scholar
  51. 51.
    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.Google Scholar
  52. 52.
    Dennis Vadura. Dmake—maintain program groups, or interdependent files. Technical report, University of Waterloo, 1992. Dmake Unix Programmers Manual, Version 3.8.Google Scholar
  53. 53.
    Douglas Wiebe. Generic Software Configuration Management: Theory and Design. PhD thesis, University of Washington, Seattle, 1990.Google Scholar
  54. 54.
    Edward Yourdon. The Decline & Fall of the American Programmer. Prentice Hall, 1993.Google Scholar
  55. 55.
    Andreas Zeller. Configuration management with feature logics. Technical report, Technishe Universität Braunschweig Report No. 94-01, March 1994.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1995

Authors and Affiliations

  • Paul Adams
    • 1
  • Marvin Solomon
    • 2
  1. 1.Grammatech, Inc.IthacaUSA
  2. 2.Computer Sciences DepartmentMadisonUSA

Personalised recommendations