[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2934466.2934471acmotherconferencesArticle/Chapter ViewAbstractPublication PagessplcConference Proceedingsconference-collections
research-article

Product-line maintenance with emergent contract interfaces

Published: 16 September 2016 Publication History

Abstract

A software product line evolves whenever one of its products need to evolve. Maintenance of preprocessor-based product lines is a difficult task, as changes to the code base may unintentionally influence the behavior of uninvolved products. Hence, developers should be supported during maintenance. We present emergent contract interfaces to make product-line development more efficient and less error-prone. The key idea is that for a given maintenance point (i.e., an assignment), we calculate (a) features in the source code that may be affected and (b) assertions based on contracts defined in the code base. By means of a controlled experiment, we provide empirical evidence regarding efficiency and error-avoidance with emergent contract interfaces.

References

[1]
I. Abal, C. Brabrand, and A. Wasowski. 42 Variability Bugs in the Linux Kernel: A Qualitative Analysis. In ASE, pages 421--432. ACM, 2014.
[2]
V. Alves, I. Cardim, H. Vital, P. Sampaio, A. Damasceno, P. Borba, and G. Ramalho. Comparative Analysis of Porting Strategies in J2ME Games. In ICSM, pages 123--132. IEEE, 2005.
[3]
V. Alves, P. Matos, L. Cole, P. Borba, and G. Ramalho. Extracting and Evolving Mobile Games Product Lines. In SPLC, pages 70--81. Springer, 2005.
[4]
T. Anderson and J. Finn. The New Statistical Analysis of Data. Springer, 1996.
[5]
M. Barnett, M. Fähndrich, K. R. M. Leino, P. Müller, W. Schulte, and H. Venter. Specification and Verification: The Spec# Experience. Comm. ACM, 54:81--91, 2011.
[6]
D. Batory. Feature Models, Grammars, and Propositional Formulas. In SPLC, pages 7--20. Springer, 2005.
[7]
D. Bruns, V. Klebanov, and I. Schaefer. Verification of Software Product Lines with Delta-Oriented Slicing. In FoVeOOS, pages 61--75. Springer, 2011.
[8]
L. Burdy, Y. Cheon, D. R. Cok, M. D. Ernst, J. Kiniry, G. T. Leavens, K. R. M. Leino, and E. Poll. An Overview of JML Tools and Applications. STTT, 7(3):212--232, 2005.
[9]
B. B. P. Cafeo, C. Hunsen, A. Garcia, S. Apel, and J. Lee. Segregating Feature Interfaces to Support Software Product Line Maintenance. In Modularity, pages 1--12. ACM, 2016.
[10]
I. D. Carmo Machado, J. D. McGregor, Y. a. C. Cavalcanti, and E. S. De Almeida. On Strategies for Testing Software Product Lines: A Systematic Literature Review. IST, 56(10):1183--1199, 2014.
[11]
M. Cataldo, A. Mockus, J. A. Roberts, and J. D. Herbsleb. Software Dependencies, Work Dependencies, and Their Impact on Failures. TSE, 35(6):864--878, 2009.
[12]
P. Clements and L. Northrop. Software Product Lines: Practices and Patterns. Addison-Wesley, 2001.
[13]
F. Damiani, O. Owe, J. Dovland, I. Schaefer, E. B. Johnsen, and I. C. Yu. A Transformational Proof System for Delta-Oriented Programming. In FMSPLE, pages 53--60. ACM, 2012.
[14]
E. W. Dijkstra. Go To Statement Considered Harmful. Comm. ACM, 11(3):147--148, 1968.
[15]
J. Feigenspan, C. Kästner, S. Apel, J. Liebig, M. Schulze, R. Dachselt, M. Papendieck, T. Leich, and G. Saake. Do Background Colors Improve Program Comprehension in the #Ifdef Hell? EMSE, 18(4):699--745, 2013.
[16]
J. Feigenspan, C. Kästner, J. Liebig, S. Apel, and S. Hanenberg. Measuring Programming Experience. In ICPC, pages 73--82. IEEE, 2012.
[17]
E. Figueiredo, N. Cacho, C. Sant'Anna, M. Monteiro, U. Kulesza, A. Garcia, S. Soares, F. Ferrari, S. Khan, F. Castor Filho, and F. Dantas. Evolving Software Product Lines with Aspects: An Empirical Study on Design Stability. In ICSE, pages 261--270. ACM, 2008.
[18]
C. Flanagan and K. R. M. Leino. Houdini, an Annotation Assistant for ESC/Java. In FME, pages 500--517. Springer, 2001.
[19]
R. Hähnle and I. Schaefer. A Liskov Principle for Delta-Oriented Programming. In ISOLA, pages 32--46. Springer, 2012.
[20]
J. Hatcliff, G. T. Leavens, K. R. M. Leino, P. Müller, and M. Parkinson. Behavioral Interface Specification Languages. CSUR, 44(3):16:1--16:58, 2012.
[21]
A. Jedlitschka, M. Ciolkowski, and D. Pfahl. Reporting Experiments in Software Engineering. In Guide to Advanced Empirical Software Engineering, pages 201--228. Springer, 2008.
[22]
C. Kästner, S. Apel, and M. Kuhlemann. Granularity in Software Product Lines. In ICSE, pages 311--320. ACM, 2008.
[23]
C. Kästner, S. Apel, T. Thüm, and G. Saake. Type Checking Annotation-Based Product Lines. TOSEM, 21(3):14:1--14:39, 2012.
[24]
C. Kästner, P. G. Giarrusso, T. Rendel, S. Erdweg, K. Ostermann, and T. Berger. Variability-Aware Parsing in the Presence of Lexical Macros and Conditional Compilation. In OOPSLA, pages 805--824. ACM, 2011.
[25]
C. Kästner, K. Ostermann, and S. Erdweg. A Variability-Aware Module System. In OOPSLA, pages 773--792. ACM, 2012.
[26]
D. Le, E. Walkingshaw, and M. Erwig. #ifdef Confirmed Harmful: Promoting Understandable Software Variation. In VL/HCC, pages 143--150. IEEE, 2011.
[27]
G. T. Leavens, A. L. Baker, and C. Ruby. Preliminary Design of JML: A Behavioral Interface Specification Language for Java. SEN, 31(3):1--38, 2006.
[28]
J. Liebig, S. Apel, C. Lengauer, C. Kästner, and M. Schulze. An Analysis of the Variability in Forty Preprocessor-Based Software Product Lines. In ICSE, pages 105--114. IEEE, 2010.
[29]
J. Liebig, A. Janker, F. Garbe, S. Apel, and C. Lengauer. Morpheus: Variability-Aware Refactoring in the Wild. In ICSE, pages 380--391. IEEE, 2015.
[30]
B. H. Liskov and J. M. Wing. A Behavioral Notion of Subtyping. TOPLAS, 16(6):1811--1841, 1994.
[31]
F. Medeiros, C. Kästner, M. Ribeiro, R. Gheyi, and S. Apel. A Comparison of 10 Sampling Algorithms for Configurable Systems. In ICSE, 2016. To appear.
[32]
F. Medeiros, M. Ribeiro, R. Gheyi, and B. Fonseca. A Catalogue of Refactorings to Remove Incomplete Annotations. J.UCS, 20(5):746--771, 2014.
[33]
B. Meyer. Object-Oriented Software Construction. Prentice-Hall, Inc., 1st edition, 1988.
[34]
T. Molderez and D. Janssens. Modular Reasoning in Aspect-Oriented Languages from a Substitution Perspective. TAOSD, pages 3--59, 2015.
[35]
F. Nielson, H. R. Nielson, and C. Hankin. Principles of Program Analysis. Springer, 2010.
[36]
D. L. Parnas. On the Criteria to be used in Decomposing Systems into Modules. Comm. ACM, 15(12):1053--1058, 1972.
[37]
H. Rebělo, G. T. Leavens, R. Lima, P. Borba, and M. Ribeiro. Modular Aspect-Oriented Design Rule Enforcement with XPIDRs. In FOAL, pages 13--18. ACM, 2013.
[38]
H. Rebělo, R. Lima, M. Cornélio, G. T. Leavens, A. Mota, and C. Oliveira. Optimizing JML Feature Compilation in Ajmlc Using Aspect-Oriented Refactorings. In SBLP, 2009.
[39]
M. Ribeiro, P. Borba, and C. Kästner. Feature Maintenance with Emergent Interfaces. In ICSE, pages 989--1000. ACM, 2014.
[40]
M. Ribeiro, H. Pacheco, L. Teixeira, and P. Borba. Emergent Feature Modularization. In SPLASH, pages 11--18. ACM, 2010.
[41]
M. Ribeiro, F. Queiroz, P. Borba, T. Tolědo, C. Brabrand, and S. Soares. On the Impact of Feature Dependencies when Maintaining Preprocessor-Based Software Product Lines. In GPCE, pages 23--32. ACM, 2011.
[42]
R. Schröter, N. Siegmund, T. Thüm, and G. Saake. Feature-Context Interfaces: Tailored Programming Interfaces for Software Product Lines. In SPLC, pages 102--111. ACM, 2014.
[43]
S. Schulze, T. Thüm, M. Kuhlemann, and G. Saake. Variant-Preserving Refactoring in Feature-Oriented Software Product Lines. In VaMoS, pages 73--81. ACM, 2012.
[44]
T. Thüm. Product-Line Specification and Verification with Feature-Oriented Contracts. PhD thesis, University of Magdeburg, Germany, 2015.
[45]
T. Thüm, S. Apel, C. Kästner, I. Schaefer, and G. Saake. A Classification and Survey of Analysis Strategies for Software Product Lines. CSUR, 47(1):6:1--6:45, 2014.
[46]
T. Thüm, S. Apel, A. Zelend, R. Schröter, and B. Möller. Subclack: Feature-Oriented Programming with Behavioral Feature Interfaces. In MASPEGHI, pages 1--8. ACM, 2013.
[47]
T. Thüm, T. Winkelmann, R. Schröter, M. Hentschel, and S. Krüger. Variability Hiding in Contracts for Dependent Software Product Lines. In VaMoS, pages 97--104. ACM, 2016.

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
SPLC '16: Proceedings of the 20th International Systems and Software Product Line Conference
September 2016
367 pages
ISBN:9781450340502
DOI:10.1145/2934466
  • General Chair:
  • Hong Mei
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • Huawei Technologies Co. Ltd.: Huawei Technologies Co. Ltd.
  • Key Laboratory of High Confidence Software Technologies: Key Laboratory of High Confidence Software Technologies, Ministry of Education
  • DC Holdings: Digital China Holdings Limited

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 16 September 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. design by contract
  2. evolution
  3. maintenance
  4. preprocessor variability
  5. software product lines
  6. weakest precondition

Qualifiers

  • Research-article

Conference

SPLC '16
Sponsor:
  • Huawei Technologies Co. Ltd.
  • Key Laboratory of High Confidence Software Technologies
  • DC Holdings

Acceptance Rates

Overall Acceptance Rate 167 of 463 submissions, 36%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)1
Reflects downloads up to 12 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media