Abstract
Dividing software systems in components improves software reusability as well as software maintainability. Components live at several levels, we concentrate on the implementation level where components are formed by source files, divided over directory structures.
Such source code components are usually strongly coupled in the directory structure of a software system. Their compilation is usually controlled by a single global build process. This entangling of source trees and build processes often makes reuse of source code components in different software systems difficult. It also makes software systems inflexible because integration of additional source code components in source trees and build processes is difficult.
This paper’s subject is to increase software reuse by decreasing coupling of source code components. It is achieved by automized assembly of software systems from reusable source code components and involves integration of source trees, build processes, and configuration processes. Application domains include generative programming, product-line architectures, and commercial off-the-shelf (COTS) software engineering.
This research was sponsored by the Dutch Telematica Instituut, project DSL.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
E. C. Bailey. Maximum RPM. Red Hat Software, Inc., 1997.
D. S. Batory, C. Johnson, B. MacDonald, and D. von Heeder. Achieving extensibility through product-lines and domain-specific languages: A case study. In International Conference on Software Reuse, volume 1844 of LNCS, pages 117–136. Springer-Verlag, 2000.
R. H. Berlack. Software Configuration Management. Wiley and Sons, New York, 1991.
M. van den Brand, A. van Deursen, J. Heering, H. de Jong, M. de Jonge, T. Kuipers, P. Klint, L. Moonen, P. Olivier, J. Scheerder, J. Vinju, E. Visser, and J. Visser. The ASF+SDF Meta-Environment: a component-based language development environment. In Compiler Construction 2001 (CC2001), volume 2027 of LNCS. Springer-Verlag, 2001.
P. Brereton and P. Singleton. Deductive software building. In J. Estublier, editor, Software Configuration Management: Selected Papers of the ICSE SCM-4 and SCM-5 Workshops, number 1005 in LNCS, pages 81–87. Springer-Verlag, Oct. 1995.
J. Buffenbarger and K. Gruel. A language for software subsystem composition. In 34th Annual Hawaii International Conference on System Sciences (HICSS-34). IEEE, 2001.
M. Cagan and A. Wright. Untangling configuration management. In J. Estublier, editor, Software Configuration Management: Selected Papers of the ICSE SCM-4 and SCM-5 Workshops, number 1005 in LNCS, pages 35–52. Springer-Verlag, 1995.
G. M. Clemm. The Odin system. In J. Estublier, editor, Software Configuration Management: Selected Papers of the ICSE SCM-4 and SCM-5 Workshops, number 1005 in LNCS, pages 241–2262. Springer-Verlag, Oct. 1995.
R. Conradi and B. Westfechtel. Version models for software configuration management. ACM Computing Surveys, 30(2):232–282, June 1998.
K. Czarnecki and U. W. Eisenecker. Components and generative programming. In O. Nierstrasz and M. Lemoine, editors, ESEC/FSE’ 99, volume 1687 of LNCS, pages 2–19. Springer-Verlag / ACM Press, 1999.
K. Czarnecki and U. W. Eisenecker. Generative Programming. Methods, Tools, and Applications. Addison-Wesley, 2000.
A. van Deursen, M. de Jonge, and T. Kuipers. Feature-based product line instantiation using source-level packages. submitted for publication, january 2002.
A. van Deursen and P. Klint. Domain-specific language design requires feature descriptions. Journal of Computing and Information Technology, 2001.
A. van Deursen and T. Kuipers. Building documentation generators. In Proceedings; IEEE International Conference on Software Maintenance, pages 40–49. IEEE Computer Society Press, 1999.
S. I. Feldman. Make-A program for maintaining computer programs. Software-Practice and Experience, 9(3):255–265, Mar. 1979.
C. A. Gunter. Abstracting dependencies between software configuration items. ACM Transactions on Software Engineering and Methodology, 9(1):94–131, Jan. 2000.
J. van Gurp, J. Bosch, and M. Svahnberg. On the notion of variability in software product lines. In R. Kazman, P. Kruchten, C. Verhoef, and H. van Vliet, editors, Proceedings of the Working IEEE/IFIP Conference on Software Architecture, pages 45–54. IEEE, 2001.
A. van der Hoek, R. S.Hall, D. Heimbigner, and A. L. Wolf. Software release management. In M. Jazayeri and H. Schauer, editors, ESEC/FSE’ 97, volume 1301 of LNCS, pages 159–175. Springer / ACM Press, 1997.
A. van der Hoek and A. L. Wolf. Software release management for component-based software, 2001. (In preparation).
M. de Jonge, E. Visser, and J. Visser. XT: a bundle of program transformation tools. In M. van den Brand and D. Parigot, editors, Proceedings of Language Descriptions, Tools and Applications (LDTA 2001), volume 44 of Electronic Notes in Theoretical Computer Science. Elsevier Science Publishers, 2001.
K. Kang, S. Cohen, J. Hess, W. Novak, and A. Peterson. Feature-oriented domain analysis (FODA) feasibility study. Technical Report CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pennsylvania, november 1990.
C. W Krueger. Software reuse. ACM Computing Surveys, 24(2):131–183, June 1992.
Y.-J. Lin and S. P. Reiss. Configuration management in terms of modules. In J. Estublier, editor, Software Configuration Management: Selected Papers of the ICSE SCM-4 and SCM-5 Workshops, number 1005 in LNCS, pages 101–117. Springer-Verlag, 1995.
D. Mackenzie and B. Elliston. Autoconf: Generating automatic configuration scripts, 1998. http://www.gnu.org/manual/autoconf/.
D. Mackenzie and T. Tromey. Automake, 2001. http://www.gnu.org/manual/automake/.
P. Miller. Recursive make considered harmful, 1997. http://www.pcug.org.au/~millerp/rmch/recu-make-cons-harm.html.
R. van Ommering. Configuration management in component based product populations. In Tenth International Workshop on Software Configuration Management (SCM-10), 2001. http://www.ics.uci.edu/~andre/scm10/papers/ommering.pdf.
R. van Ommering, F. van der Linden, J. Kramer, and J. Magee. The Koala component model for consumer electronics software. IEEE Computer, 33(3):78–85, March 2000.
D. B. Tucker and S. Krishnamurthi. Applying module system research to package management. In Tenth International Workshop on Software Configuration Management (SCM-10), 2001. http://www.ics.uci.edu/~andre/scm10/papers/tucker.pdf.
E. Visser. Stratego: A language for program transformation based on rewriting strategies. System description of Stratego 0.5. In A. Middeldorp, editor, Rewriting Techniques and Applications (RTA’01), volume 2051 of LNCS, pages 357–361. Springer-Verlag, May 2001.
D. Whitgift. Methods and Tools for Software Configuration Management. John Wiley & Sons, 1991.
A. Zeller and G. Snelting. Unified versioning through feature logic. ACM Transactions on Software Engineering and Methodology, 6(4):398–441, Oct. 1997.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
de Jonge, M. (2002). Source Tree Composition. In: Gacek, C. (eds) Software Reuse: Methods, Techniques, and Tools. ICSR 2002. Lecture Notes in Computer Science, vol 2319. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-46020-9_2
Download citation
DOI: https://doi.org/10.1007/3-540-46020-9_2
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43483-2
Online ISBN: 978-3-540-46020-6
eBook Packages: Springer Book Archive