Skip to main content

Integrating incremental analysis with version management

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 989))

Abstract

In an interactive software development environment, incremental algorithms are used to restore consistency to structured, annotated documents after they have been modified. Versioning expresses the relationship of a document's content to its modification history. We present a means of integrating these formerly separate concerns; the analyses and transformations used both for updates and for consistency restoration are implemented using a fine-grained model of object versioning.

We treat software artifacts as graph-structured documents. Both the contents and annotations on the document can be of diverse media. We describe extensions to conventional incremental algorithms for analyzing such documents, and explain how the ability to name and access different versions of the document simultaneously simplifies these algorithms. Our design maximizes component preservation to avoid losing auxiliary information important to the user.

Making the primary distribution of update information spatial rather than temporal supports object-oriented change modeling as well as implementations customized for specific media. All clients—presentation services, analyzers, code generators, and external tools—use a single uniform interface to history information. The time to access any version of an atomic component is linear in the number of subsequent changes to that component; the time to explore structured components is O(lg(¦nodes ¦) * ¦changed set ¦). We discuss an implementation of these concepts in a working environment.

This research was supported in part by Advanced Research Projects Agency grant MDA972-92-J-1028, and by NSF grant CDA-8722788. The content of this paper does not necessarily reflect the position or the policy of the U. S. Government.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Robert A. Ballance, Susan L. Graham, and Michael L. Van De Vanter. The Pan language-based editing system. ACM Transactions on Software Engineering and Methodology, 1(1):95–127, January 1992.

    Article  Google Scholar 

  2. Brian M. Dennis. Exl: The Ensemble extension language. Master's thesis, University of California at Berkeley, May 1994.

    Google Scholar 

  3. A. Fekete, N. Lynch, M. Merritt, and W. Weihl. Nested transactions and read/write locking. In Proc. Sixth ACM Symp. on Principles of Database Systems, pages 97–111, 1987.

    Google Scholar 

  4. Christopher W. Fraser and Eugene W. Myers. An editor for revision control. Software—Practice and Experience, 9(2):277–295, 1987.

    Google Scholar 

  5. Carlo Ghezzi and Dino Mandrioli. Augmenting parsers to support incrementality. Journal of the ACM, 27(3):564–573, July 1980.

    Article  Google Scholar 

  6. Susan L. Graham. Language and document support in software development environments. In Proc. DARPA '92 Software Technology Conf., Los Angeles, April 1992.

    Google Scholar 

  7. Susan L. Graham, Michael A. Harrison, and Ethan V. Munson. The Proteus presentation system. In Proc. Fifth ACM SIGSOFT Symp. on Software Development Environments, pages 130–138, Tyson's Corner, VA, December 1992. ACM Press.

    Google Scholar 

  8. H. V. Jagadish, Avi Silberschatz, and S. Sudarshan. Recovering from main-memory lapses. In Proc. 19th VLDB Conf., pages 391–404, Dublin, 1993.

    Google Scholar 

  9. Fahimeh Jalili and Jean H. Gallier. Building friendly parsers. In Conf. Rec. Ninth ACM Symp. on Principles of Programming Languages, pages 196–206, 1982.

    Google Scholar 

  10. Randy H. Katz. Toward a unified framework for version modeling in engineering databases. ACM Computing Surveys, 22(4):275–408, 1990.

    Article  Google Scholar 

  11. J. L. Knudsen, M. Löfgren, O. L. Madsen, and B. Magnusson. Object-Oriented Environments — The Mjølner Approach. Prentice-Hall, 1993.

    Google Scholar 

  12. J. M. Larchevêque. Optimal incremental parsing. ACM Transactions on Programming Languages and Systems, 17(1):1–15, 1995.

    Article  Google Scholar 

  13. Ernst Lippe and Norbert van Oosterom. Operation-based merging. In Proc. Fifth ACM SIGSOFT Symp. on Software Development Environments, pages 78–87, December 1992.

    Google Scholar 

  14. William Maddox. Colander2: A reference manual. Technical Report (internal), Computer Science Division—EECS, University of California, Berkeley, 1993.

    Google Scholar 

  15. Boris Magnusson, Ulf Asklund, and Sten Minör. Fine-grained revision control for collaborative software development. In First ACM SIGSOFT Symp. on the Foundations of Software Engineering, pages 33–41, 1993.

    Google Scholar 

  16. John K. Ousterhout. Tcl and the Tk Toolkit. Addison-Wesley, 1994.

    Google Scholar 

  17. Vincent Quint and Irène Vatton. Grif: An interactive system for structured document manipulation. In J. C. van Vliet, editor, Text processing and document manipulation, pages 200–213. Cambridge University Press, April 1986.

    Google Scholar 

  18. Michael L. Van De Vanter, Susan L. Graham, and Robert A. Ballance. Coherent user interfaces for language-based editing systems. International Journal of Man-Machine Studies, 37:431–466, 1992.

    Article  Google Scholar 

  19. Tim A. Wagner. Adapting analysis algorithms for interactive software development environments. Master's thesis, University of California, Berkeley, 1995. Available at URL ftp://ftp.cs.berkeley.edu/ucb/sggs/.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Wilhelm Schäfer Pere Botella

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Wagner, T.A., Graham, S.L. (1995). Integrating incremental analysis with version management. In: Schäfer, W., Botella, P. (eds) Software Engineering — ESEC '95. ESEC 1995. Lecture Notes in Computer Science, vol 989. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-60406-5_16

Download citation

  • DOI: https://doi.org/10.1007/3-540-60406-5_16

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60406-8

  • Online ISBN: 978-3-540-45552-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics