Multidimensional tree-structured file spaces
Development projects are often based on large collections of information. This information is typically maintained in a set of files. Current file system and database structures are inadequate for storing and manipulating this information.
This paper defines a new class of high-level data structures called "m-dimensional n-ary tree-structured spaces" (also called "md-nt spaces"), and discusses their use in the organization of the files of development project file systems.
The md-nt space organization allows the primary file system structure to represent relationships between files which are difficult or impossible to represent with conventional structures. A fundamental aspect of this organization is that arbitrary semantics, such as implications in terms of a software module's nesting, or in terms of its position within a sequence of revisions, may dynamically be associated with this structure. This enables the primary file system structure to become the basis for automatic system functions such as the recompilation of source code, the propagation of sets of changes to all appropriate files, or the storage and regeneration of revisions of a file. With conventional systems, such operations are accomplished in a manual, ad-hoc, and error-prone fashion, or via mechanisms which are external to the primary file system structure, and hence contrary to the goal of an integrated environment.
This paper also discusses some of the considerations in the design and implementation of such a file system. A prototype implementation is described, and an evaluation of the effectiveness of md-nt spaces in a software development environment is presented.
- [Boehm et al. 1982]Boehm, B.W., Elwell, J.F., Pyster, A.B., Stuckle, E.D., and Williams, R.D. "The TRW Software Productivity System," Proc. 6th International Conf. on Software Engineering, September 1982.Google Scholar
- [Cheatham 1981]Cheatham, T.E. "An Overview of the Harvard Program Development System," in [Hunke 1981].Google Scholar
- [Donzeau et al. 1980]Donzeau-Gouge, V., Huet, G., Kahn, G., and Lang, B. "Programming environment based on structured editors: The Mentor Experience," INRIA Research Report No. 26, July 1980.Google Scholar
- [Feldman 1979]Feldman, S.I. "Make — A Program for Maintaining Computer Programs," Software Practice and Experience 9(3), March 1979.Google Scholar
- [Ferch et al. 1978]Ferch, H.J., Neufeld, G.W., and Zarnke, C.R. "MANTES User Manual," University of Manitoba, August 1982.Google Scholar
- [Goldstein and Bobrow 1980]Goldstein, I.P., and Bobrow, D.G. "A Layered Approach to Software Design," Xerox Palo Alto Research Center CSL-80-5, December 1980.Google Scholar
- [Habermann and Notkin 1982]Habermann, A.N., and Notkin, D.S. "The GANDALF Software Development Environment," Carnegie-Mellon University, January 1982.Google Scholar
- [Hunke 1981]Hunke, H., ed. "Software Engineering Environments," North Holland, 1981.Google Scholar
- [Johnson and Lesk 1978]Johnson, S.C., and Lesk, M.E. "UNIX Time-Sharing System: Language Development Tools," The Bell System Technical Journal 57(6), July 1978.Google Scholar
- [McGuffin et al. 1979]McGuffin, R.W., Elliston, A.E., Tranter, B.R., and Westmacott, P.N. "CADES — Software Engineering in Practice," Proc. 4th International Conf. on Software Engineering, 1979.Google Scholar
- [Ritchie and Thompson 1974]Ritchie, D.M., and Thompson, K. "The UNIX Time-Sharing System," Communications of the ACM 17(7), July 1974.Google Scholar
- [Rochkind 1975]Rochkind, M.J. "The Source Code Control System," IEEE Transactions on Software Engineering SE-1(4), December 1975.Google Scholar
- [Thall 1982]Thall, R.M. "The KAPSE for the Ada Language System," Proc. of the AdaTEC Conference on Ada, October 1982.Google Scholar
- [Tichy 1982]Tichy, W.F. "Design, Implementation, and Evaluation of a Revision Control System," Proc. 6th International Conf. on Software Engineering, September 1982.Google Scholar