A tutorial on feature oriented programming and product-lines

Feature Oriented Programming (FOP) is a design methodology and tools for program synthesis. The goal is to specify a target program in terms of the features that it offers, and to synthesize an efficient program that meets these specifications. FOP has been used to develop product-lines in disparate domains, including compilers for extensible Java dialects [3], fire support simulators for the U.S. Army [5], high-performance network protocols [1], and program verification tools [14].

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

[2]  Don Batory,et al.  Scaling step-wise refinement , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[3]  Don S. Batory,et al.  Composition Validation and Subjectivity in GenVoca Generators , 1997, IEEE Trans. Software Eng..

[4]  Ira D. Baxter,et al.  Design maintenance systems , 1991, CACM.

[5]  Don S. Batory,et al.  The design and implementation of hierarchical software systems with reusable components , 1992, TSEM.

[6]  Krzysztof Czarnecki,et al.  Components and generative programming (invited paper) , 1999, ESEC/FSE-7.

[7]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[8]  Gang Chen,et al.  Design wizards and visual programming environments for generators , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[9]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[10]  Harold Ossher,et al.  Using multidimensional separation of concerns to (re)shape evolving software , 2001, CACM.

[11]  Dewayne E. Perry The inscape environment , 1989, ICSE '89.

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

[13]  BatoryDon,et al.  Achieving extensibility through product-lines and domain-specific languages , 2002 .

[14]  Charles Simonyi,et al.  The Death of Computer Languages, The Birth of Intentional Programming , 1995 .

[15]  Krzysztof Czarnecki,et al.  Generative Programming for Embedded Software: An Industrial Experience Report , 2002, GPCE.

[16]  David R. Barstow,et al.  Proceedings of the 25th International Conference on Software Engineering , 1978, ICSE.

[17]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[18]  R. E. Kurt Stirewalt,et al.  A component-based approach to building formal analysis tools , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.