Source Tree Composition

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.

[1]  Pearl Brereton,et al.  Deductive Software Building , 1995, SCM.

[2]  Aaas News,et al.  Book Reviews , 1893, Buffalo Medical and Surgical Journal.

[3]  Krzysztof Czarnecki,et al.  Components and Generative Programming , 1999, ESEC / SIGSOFT FSE.

[4]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[5]  Arie van Deursen,et al.  Domain-specific language design requires feature descriptions , 2002 .

[6]  Krzysztof Czarnecki,et al.  Generative Programming , 2001, ECOOP Workshops.

[7]  Ed Bailey,et al.  Maximum RPM , 1997 .

[8]  Jeff Magee,et al.  The Koala Component Model for Consumer Electronics Software , 2000, Computer.

[9]  Merijn de Jonge,et al.  XT: a bundle of program transformation tools , 2001, Electron. Notes Theor. Comput. Sci..

[10]  Rob C. van Ommering Configuration Management in Component Based Product Populations , 2001, SCM.

[11]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[12]  Eelco Visser,et al.  Stratego: A Language for Program Transformation Based on Rewriting Strategies , 2001, RTA.

[13]  Alexander L. Wolf,et al.  Software release management for component‐based software , 2003, Softw. Pract. Exp..

[14]  Arie van Deursen,et al.  The ASF+SDF Meta-environment: A Component-Based Language Development Environment , 2001 .

[15]  Jim Buffenbarger,et al.  A language for software subsystem composition , 2001, Proceedings of the 34th Annual Hawaii International Conference on System Sciences.

[16]  Arie van Deursen,et al.  The Asf+Sdf Meta-Environment: a Component-Based Language Development Environment , 2001, LDTA@ETAPS.

[17]  David B. Tucker Applying Module System Research to Package Management , 2002 .

[18]  E. Bersoff,et al.  Software Configuration Management , 1978, SIGMETRICS Perform. Evaluation Rev..

[19]  Don S. Batory,et al.  Achieving extensibility through product-lines and domain-specific languages: a case study , 2000, TSEM.

[20]  Martin Cagan Untangling Configuration Management , 1995, SCM.

[21]  Geoffrey Clemm The Odin System , 1995, SCM.

[22]  Jan Bosch,et al.  Managing Variability in Software Product Lines , 2000 .

[23]  Reidar Conradi,et al.  Version models for software configuration management , 1998, CSUR.

[24]  Andreas Zeller,et al.  Unified versioning through feature logic , 1997, TSEM.

[25]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[26]  André van der Hoek SCM-10: tenth international workshop on software configuration management new practices, new challenges, and new boundaries , 2001, ICSE.

[27]  Steven P. Reiss,et al.  Configuration Management in Terms of Modules , 1995, SCM.

[28]  Jan Bosch,et al.  On the notion of variability in software product lines , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[29]  Stuart I. Feldman,et al.  Make — a program for maintaining computer programs , 1979, Softw. Pract. Exp..

[30]  Murali Ramakrishnan Software release management , 2004, Bell Labs Technical Journal.

[31]  Arie van Deursen,et al.  Feature-Based Product Line Instantiation Using Source-Level Packages , 2002, SPLC.

[32]  J. Buffenberger,et al.  A language for software subsystem composition , 2001 .

[33]  Carl A. Gunter Abstracting dependencies between software configuration items , 1996, SIGSOFT '96.

[34]  Walter F. Tichy,et al.  Configuration management , 1995 .

[35]  Arie van Deursen,et al.  Building documentation generators , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).