ACM Home Page
Please provide us with feedback. Feedback
Language support for feature-oriented product line engineering
Full text PdfPdf (370 KB)
Source
ACM International Conference Proceeding Series archive
Proceedings of the First International Workshop on Feature-Oriented Software Development table of contents
Denver, Colorado
SESSION: Languages & product derivation table of contents
Pages 3-10  
Year of Publication: 2009
ISBN:978-1-60558-567-3
Authors
Wonseok Chae  Toyota Technological Institute at Chicago
Matthias Blume  Google, Inc.
Sponsor
: Metop GmbH
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 10,   Citation Count: 0
Additional Information:

abstract   references   index terms  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1629716.1629720
What is a DOI?

ABSTRACT

Product line engineering is an emerging paradigm of developing a family of products. While product line analysis and design mainly focus on reasoning about commonality and variability of family members, product line implementation gives its attention to mechanisms of managing variability. In many cases, however, product line methods do not impose any specific synthesis mechanisms on product line implementation, so implementation details are left to developers. In our previous work, we adopted feature-oriented product line engineering to build a family of compilers and managed variations using the Standard ML module system. We demonstrated the applicability of this module system to product line implementation. Although we have benefited from the product line engineering paradigm, it mostly served us as a design paradigm to change the way we think about a set of closely related compilers, not to change the way we build them. The problem was that Standard ML did not fully realize this paradigm at the code level, which caused some difficulties when we were developing a set of compilers.

In this paper, we address such issues with a language-based solution. MLPolyR is our choice of an implementation language. It supports three different programming styles. First, its first-class cases facilitate composable extensions at the expression levels. Second, its module language provides extensible and parameterized modules, which make large-scale extensible programming possible. Third, its macro system simplifies specification and composition of feature related code. We will show how the combination of these language features work together to facilitate the product line engineering paradigm.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
S. Apel, C. Kästner, A. Größlinger, and C. Lengauer. Feature (de)composition in functional programming. In Proceedings of the 8th International Conference on Software Composition (SC), pages 9--26, July 2009.
 
2
S. Apel, C. Kästner, and C. Lengauer. FeatureHouse: Language-independent, automated software composition. In Proceedings of the 31th International Conference on Software Engineering, 2009.
 
3
S. Apel, M. Kuhlemann, and T. Leich. Generic Feature Modules: Two-Staged Program Customization. In Proceedings of International Conference on Software and Data Technologies, pages 127--132, Sept. 2006.
 
4
S. Apel, T. Leich, M. Rosenm Ãijller, and G. Saake. Featurec++: On the symbiosis of feature-oriented and aspect-oriented programming. In Proceedings of the International Conference on Generative Programming and Component Engineering, pages 125--140, 2005.
 
5
A. W. Appel and D. B. MacQueen. Standard ML of New Jersey. In Proceedings of the third International Symp. on Prog. Lang. Implementation and Logic Programming, pages 1--13, New York, Aug. 1991.
 
6
I. Aracic, V. Gasiunas, M. Mezini, and K. Ostermann. An Overview of Caesar J. Lecture Notes in Computer Science: Transactions on Aspect-Oriented Software Development I, 2006.
 
7
Aspect J. http://www.eclipse.org/aspectj/, 2008.
 
8
D. Batory. Feature-oriented programming and the ahead tool suite. In Proceedings of the International Conference on Software Engineering, 2004.
 
9
D. Batory, R. E. Lopez-Herrejon, and J.-P. Martin. Generating product-lines of product-families. In Proceedings of the 17th IEEE International Conference on Automated Software Engineering, page 81, 2002.
 
10
M. Blume, U. A. Acar, and W. Chae. Extensible programming with first-class cases. In Proceedings of the International Conference of Functional Programming, pages 239--250, 2006.
 
11
M. Blume, U. A. Acar, and W. Chae. Exception handlers as extensible cases. In Proceedings of the ASIAN Symposium on Programming Languages and Systems, 2008.
 
12
W. Chae and M. Blume. Building a family of compilers. In Proceedings of the 12th International Software Product Line Conference, 2008.
 
13
W. Chae and M. Blume. An evaluation framework for product line implementation. Technical Report TTIC-TR-2009, TTI at Chicago, 2009.
 
14
H. Cho, K. Lee, and K. C. Kang. Feature relation and dependency management: An aspect-oriented approach. In Proceedings of Software Product Line Conference, 2008.
 
15
K. Czarnecki and U. W. Eisenecker. Generative programming: methods, tools, and applications. ACM Press/Addison-Wesley Publishing Co., 2000.
 
16
D. Garlan and M. Shaw. An introduction to software architecture. Technical report, Carnegie Mellon University, Pittsburgh, PA, USA, 1994.
 
17
K. C. Kang, M. Kim, J. Lee, and B. Kim. Feature-oriented re-engineering of legacy systems into product line assets - a case study. In Proceedings of the Software Product Line Conference, pages 45--56, 2005.
 
18
K. C. Kang, S. Kim, J. Lee, K. Kim, E. Shin, and M. Huh. Form: A feature-oriented reuse method with domain-specific reference architectures. Ann. Softw. Eng., 5:143--168, 1998.
 
19
K. C. Kang, J. Lee, and P. Donohoe. Feature-oriented product line engineering. IEEE Softw., 19(4):58--65, 2002.
 
20
C. Kästner and S. Apel. Integrating compositional and annotative approaches for product line engineering. In Proceedings of the GPCE Workshop on Modularization, Composition and Generative Techniques for Product Line Engineering (McGPLE), pages 35--40, Oct. 2008.
 
21
K. Lee, K. C. Kang, M. Kim, and S. Park. Combining feature-oriented analysis and aspect-oriented programming for product line asset development. In Proceedings of the 10th International on Software Product Line Conference, pages 103--112, 2006.
 
22
K. Lee, K. C. Kang, and J. Lee. Concepts and guidelines of feature modeling for product line software engineering. In Proceedings of the 7th International Conference on Software Reuse, pages 62--77, 2002.
 
23
R. E. Lopez-herrejon, D. Batory, and W. Cook. Evaluating support for features in advanced modularization technologies. In European Conference on Object-Oriented Programming, 2005.
 
24
R. Milner. A theory of type polymorphism in programming. J. Comput. Syst. Sci., 17(3):348--375, 1978.
 
25
N. Noda and T. Kishi. Aspect-oriented modeling for variability management. In Proceedings of the International Software Product Line Conference, 2008.
 
26
S. Pavel, J. Noyé, and J.-C. Royer. Dynamic configuration of software product lines in archjava. In Proceedings of Software Product Line Conference, pages 90--109, 2004.
 
27
M. Saleh and H. Gomaa. Separation of concerns in software product line engineering. SIGSOFT Softw. Eng. Notes, 30(4):1--5, 2005.
 
28
S. Sunkle, M. Rosenmüller, N. Siegmund, S. S. ur Rahman, G. Saake, and S. Apel. Features as first-class entities - toward a better representation of features. In Proceedings of the GPCE Workshop on Modularization, Composition, and Generative Techniques for Product Line Engineering (McGPLE), pages 27--34, Oct 2008.
 
29
P. Wadler. The expression problem, Dec. 1998. Email to the Java Genericity mailing list.