Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1109/ASE.2008.36guideproceedingsArticle/Chapter ViewAbstractPublication PagesaseConference Proceedingsconference-collections
Article
Free access

Type-Checking Software Product Lines - A Formal Approach

Published: 15 September 2008 Publication History

Abstract

A software product line (SPL) is an efficient means to generate a family of program variants for a domain from a single code base. However, because of the potentially high number of possible program variants, it is difficult to test all variants and ensure properties like type-safety for the entire SPL. While first steps to type-check an entire SPL have been taken, they are informal and incomplete. In this paper, we extend the Featherweight Java (FJ) calculus with feature annotations to be used for SPLs. By extending FJ's type system, we guarantee that - given a well-typed SPL - all possible program variants are well- typed as well. We show how results from this formalization reflect and help implementing our own language-independent SPL tool CIDE.

References

[1]
S. Apel, T. Leich, and G. Saake, "Aspectual feature modules," IEEE Trans. Softw. Eng., vol. 34, no. 2, pp. 162-180, 2008.
[2]
S. Apel and D. Hutchins, "An overview of the gDeep calculus," Department of Informatics and Mathematics, University of Passau, Germany, Tech. Rep. MIP-0712, 2007.
[3]
S. Apel, C. Kästner, and C. Lengauer, "An overview of Feature Featherweight Java," Department of Informatics and Mathematics, University of Passau, Germany, Tech. Rep. MIP-0802, Apr. 2008.
[4]
S. Apel, C. Lengauer, B. Möller, and C. Kästner, "An algebra for features and feature composition," in Proceedings of the 12th International Conference on Algebraic Methodology and Software Technology (AMAST), ser. Lecture Notes in Computer Science, vol. 5140. Springer-Verlag, Jul. 2008, pp. 36-50.
[5]
L. Bass, P. Clements, and R. Kazman, Software Architecture in Practice. Boston, MA, USA: Addison-Wesley, 1998.
[6]
D. Batory, "Feature models, grammars, and propositional formulas." in Proc. Int'l Software Product Line Conference, Sep. 2005, pp. 7-20.
[7]
D. Batory and B. J. Geraci, "Composition validation and subjectivity in GenVoca generators," IEEE Trans. Softw. Eng., vol. 23, no. 2, pp. 67-82, 1997.
[8]
D. Batory, J. N. Sarvela, and A. Rauschmayer, "Scaling stepwise refinement," IEEE Trans. Softw. Eng., vol. 30, no. 6, pp. 355-371, 2004.
[9]
K. Czarnecki and M. Antkiewicz, "Mapping features to models: A template approach based on superimposed variants," in Proc. Int'l Conf. Generative Programming and Component Engineering, 2005, pp. 422- 437.
[10]
K. Czarnecki and U. Eisenecker, Generative programming: methods, tools, and applications. ACM Press, 2000.
[11]
K. Czarnecki and K. Pietroszek, "Verifying feature-based model templates against well-formedness OCL constraints," in Proc. Int'l Conf. Generative Programming and Component Engineering. New York, NY, USA: ACM Press, 2006, pp. 211-220.
[12]
S. Drossopoulou, T. Valkevych, and S. Eisenbach, "Java type soundness revisited," Department of Computing, Imperial College London, Tech. Rep. 09, 2000.
[13]
M. Flatt, S. Krishnamurthi, and M. Felleisen, "Classes and mixins," in Proc. Conf. Principles of Programming Languages. New York, NY, USA: ACM, 1998, pp. 171-183.
[14]
J. Gosling, B. Joy, G. Steele, and G. Bracha, Java¿Language Specification, 3rd ed., ser. The JavaTMSeries. Addison-Wesley Professional, 2005.
[15]
M. L. Griss, "Implementing product-line features by composing aspects," in Proc. Int'l Software Product Line Conference. Norwell, MA, USA: Kluwer Academic Publishers, 2000, pp. 271-288.
[16]
S. Huang, D. Zook, and Y. Smaragdakis, "Statically safe program generation with SafeGen," in Proc. Int'l Conf. Generative Programming and Component Engineering. Springer, 2005, pp. 309-326.
[17]
A. Igarashi, B. Pierce, and P. Wadler, "Featherweight Java: A minimal core calculus for Java and GJ," ACM Trans. Program. Lang. Syst., vol. 23, no. 3, pp. 396-450, 2001.
[18]
A. Igarashi and B. C. Pierce, "On inner classes," Inf. Comput., vol. 177, no. 1, pp. 56-89, 2002.
[19]
S. Jarzabek, P. Bassett, H. Zhang, and W. Zhang, "XVCL: XML-based variant configuration language," in Proc. Int'l Conf. on Software Engineering. Los Alamitos, CA, USA: IEEE Computer Society, 2003, pp. 810-811.
[20]
K. Kang et al., "Feature-Oriented Domain Analysis (FODA) Feasibility Study," Software Engineering Institute, Tech. Rep. CMU/SEI-90-TR-21, Nov. 1990.
[21]
C. Kästner, S. Apel, and M. Kuhlemann, "Granularity in software product lines," in Proc. Int'l Conf. on Software Engineering. New York, NY, USA: ACM, May 2008, pp. 311-320.
[22]
C. Kästner, S. Apel, S. Trujillo, M. Kuhlemann, and D. Batory, "Language-independent safe decomposition of legacy applications into features," School of Computer Science, University of Magdeburg, Germany, Tech. Rep. 2, Mar. 2008.
[23]
C. Krueger, "Easing the transition to software mass customization," in Proc. Int'l Workshop on Software Product-Family Eng. London, UK: Springer-Verlag, 2002, pp. 282-293.
[24]
J. Liu, D. Batory, and C. Lengauer, "Feature oriented refactoring of legacy applications," in Proc. Int'l Conf. on Software Engineering, 2006, pp. 112-121.
[25]
T. Nipkow and D. von Oheimb, "Java light is type-safe - definitely," in Proc. Conf. Principles of Programming Languages. New York, NY, USA: ACM, 1998, pp. 161-170.
[26]
N. Nystrom, S. Chong, and A. Myers, "Scalable extensibility via nested inheritance," in Proc. Conf. Object-Oriented Programming, Systems, Languages and Applications. New York, NY, USA: ACM Press, 2004, pp. 99-115.
[27]
B. C. Pierce, Types and Programming Languages. Cambridge, MA, USA: MIT Press, 2002.
[28]
K. Pohl, G. Böckle, and F. J. van der Linden, Software Product Line Engineering: Foundations, Principles and Techniques. Secaucus, NJ, USA: Springer, 2005.
[29]
C. Szyperski, Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 2002.
[30]
S. Thaker, D. Batory, D. Kitchin, and W. Cook, "Safe composition of product lines," in Proc. Int'l Conf. Generative Programming and Component Engineering. New York, NY, USA: ACM, 2007, pp. 95- 104.

Cited By

View all
  • (2024)Towards Efficient Build Ordering for Incremental Builds with Multiple ConfigurationsProceedings of the ACM on Software Engineering10.1145/36607741:FSE(1494-1517)Online publication date: 12-Jul-2024
  • (2022)Towards incremental build of software configurationsProceedings of the ACM/IEEE 44th International Conference on Software Engineering: New Ideas and Emerging Results10.1145/3510455.3512792(101-105)Online publication date: 21-May-2022
  • (2022)On the benefits and limits of incremental build of software configurationsProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510190(1584-1596)Online publication date: 21-May-2022
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Guide Proceedings
ASE '08: Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering
September 2008
538 pages
ISBN:9781424421879

Publisher

IEEE Computer Society

United States

Publication History

Published: 15 September 2008

Author Tags

  1. Featherweight Java calculus
  2. feature annotation
  3. formal approach
  4. program variants
  5. software product lines
  6. type checking
  7. type safety
  8. type system

Qualifiers

  • Article

Acceptance Rates

Overall Acceptance Rate 82 of 337 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)16
  • Downloads (Last 6 weeks)4
Reflects downloads up to 19 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Towards Efficient Build Ordering for Incremental Builds with Multiple ConfigurationsProceedings of the ACM on Software Engineering10.1145/36607741:FSE(1494-1517)Online publication date: 12-Jul-2024
  • (2022)Towards incremental build of software configurationsProceedings of the ACM/IEEE 44th International Conference on Software Engineering: New Ideas and Emerging Results10.1145/3510455.3512792(101-105)Online publication date: 21-May-2022
  • (2022)On the benefits and limits of incremental build of software configurationsProceedings of the 44th International Conference on Software Engineering10.1145/3510003.3510190(1584-1596)Online publication date: 21-May-2022
  • (2019)Static Analysis of Featured Transition SystemsProceedings of the 23rd International Systems and Software Product Line Conference - Volume A10.1145/3336294.3336295(39-51)Online publication date: 9-Sep-2019
  • (2019)Test them all, is it worth it? Assessing configuration sampling on the JHipster Web development stackEmpirical Software Engineering10.1007/s10664-018-9635-424:2(674-717)Online publication date: 1-Apr-2019
  • (2019)Finding suitable variability abstractions for lifted analysisFormal Aspects of Computing10.1007/s00165-019-00479-y31:2(231-259)Online publication date: 1-Apr-2019
  • (2018)Variability Bugs in Highly Configurable SystemsACM Transactions on Software Engineering and Methodology10.1145/314911926:3(1-34)Online publication date: 12-Jan-2018
  • (2017)Yo variability! JHipsterProceedings of the 11th International Workshop on Variability Modelling of Software-Intensive Systems10.1145/3023956.3023963(44-51)Online publication date: 1-Feb-2017
  • (2016)Precise semantic history slicing through dynamic delta refinementProceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering10.1145/2970276.2970336(495-506)Online publication date: 25-Aug-2016
  • (2015)Safe evolution patterns for software product linesProceedings of the 37th International Conference on Software Engineering - Volume 210.5555/2819009.2819203(875-878)Online publication date: 16-May-2015
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media