Hostname: page-component-78c5997874-v9fdk Total loading time: 0 Render date: 2024-11-09T13:38:22.249Z Has data issue: false hasContentIssue false

Abstract delta modelling

Published online by Cambridge University Press:  10 November 2014

DAVE CLARKE
Affiliation:
IBBT-DistriNet, Katholieke Universiteit Leuven, Belgium Email: [email protected]
MICHIEL HELVENSTEIJN
Affiliation:
CWI, Amsterdam and LIACS, Leiden University, The Netherlands Email: [email protected]
INA SCHAEFER
Affiliation:
University of Braunschweig, Germany Email: [email protected]

Abstract

Delta modelling is an approach to facilitate the automated product derivation for software product lines. It is based on a set of deltas specifying modifications that are incrementally applied to a core product. The applicability of deltas depends on application conditions over features. This paper presents abstract delta modelling, which explores delta modelling from an abstract, algebraic perspective. Compared to the previous work, we take a more flexible approach to conflicts between modifications by introducing the notion of conflict-resolving deltas. Furthermore, we extend our approach to allow the nesting of delta models for increased modularity. We also present conditions on the structure of deltas to ensure unambiguous product generation.

Type
Special Issue: Objects and Services
Copyright
Copyright © Cambridge University Press 2014 

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

Apel, S., Janda, F., Trujillo, S. and Kästner, C. (2009a) Model superimposition in software product lines. In: International Conference on Model Transformation (ICMT) 4–19.CrossRefGoogle Scholar
Apel, S., Kästner, C. and Batory, D.S. (2008a) Program refactoring using functional aspects. In: GPCE 161–170.Google Scholar
Apel, S., Kästner, C. and Lengauer, C. (2009b) FeatureHouse: Language-independent, automated software composition. In: ICSE 221–231.CrossRefGoogle Scholar
Apel, S., Leich, T. and Saake, G. (2008b) Aspectual feature modules. IEEE Transactions on Software Engineering 34 (2)162180.Google Scholar
Apel, S., Lengauer, C., Möller, B. and Kästner, C. (2010) An algebraic foundation for automatic feature-based program synthesis. Science of Computer Programming (SCP) 75 (11)10221047.CrossRefGoogle Scholar
Batory, D. and O'Malley, S. (1992) The design and implementation of hierarchical software systems with reusable components. ACM Transactions on Software Engineering and Methodology 1 (4)355398.CrossRefGoogle Scholar
Batory, D., Sarvela, J. and Rauschmayer, A. (2004) Scaling step-wise refinement. IEEE Transactions on Software Engineering 30 (6)355371.CrossRefGoogle Scholar
Batory, D. and Smith, D. (2007) Finite map spaces and quarks: algebras of program structure. Technical Report TR-07-66, University of Texas at Austin, Department of Computer Sciences.Google Scholar
Bettini, L., Damiani, F. and Schaefer, I. (2010) Implementing software product lines using traits. In: Proceedings of Object-Oriented Programming Languages and Systems (OOPS), Track of ACM SAC 2096–2102.CrossRefGoogle Scholar
Bracha, G. (2007) Executable grammars in Newspeak. Electronic Notes in Theoretical Computer Science 193 318.CrossRefGoogle Scholar
Clarke, D., Helvensteijn, M. and Schaefer, I. (2010) Abstract delta modelling. In: Proceedings of GPCE, ACM 1322.Google Scholar
Clements, P. and Northrop, L. (2001) Software Product Lines: Practices and Patterns, Addison Wesley Longman.Google Scholar
Costanza, P. and Hirschfeld, R. (2005) Language constructs for context-oriented programming: an overview of ContextL. In: DLS, ACM Press 110.Google Scholar
Czarnecki, K., Helson, S. and Eisenecker, U. (2004) Staged configuration using feature models. In: Nord, R. (ed.) Proceedings of 3rd International Software Product Line Conference (SPLC 2004). Lecture Notes in Computer Science 3154 266283.CrossRefGoogle Scholar
Czarnecki, K. and Kim, C. (2005) Cardinality-based feature modelling and constraints: a progress report. In: International Workshop on Software Factories at OOPSLA'05, San Diego, USA: ACM Press 19.Google Scholar
Ducasse, S., Nierstrasz, O., Schärli, N., Wuyts, R. and Black, A. (2006) Traits: A mechanism for fine-grained reuse. ACM Transactions on Programming Languages and Systems 28 (2)331388.CrossRefGoogle Scholar
Hähnle, R. (2010) HATS: highly adaptable and trustworthy software using formal methods. In: ISoLA (2) 3–8.CrossRefGoogle Scholar
Haugen, Ø., Møller-Pedersen, B., Oldevik, J., Olsen, G. and Svendsen, A. (2008) Adding standardized variability to domain specific languages. In: SPLC 139–148.CrossRefGoogle Scholar
Heidenreich, F. and Wende, C. (2007) Bridging the gap between features and models. In: Aspect-Oriented Product Line Engineering (AOPLE'07).Google Scholar
Heymans, P., Schobbens, P., Trigaux, J., Bontemps, Y., Matulevicius, R. and Classen, A. (2008) Evaluating formal properties of feature diagram languages. Software, IET 2 (3)281302.Google Scholar
Jacobson, J. (2009) A formalization of Darcs patch theory using inverse semigroups. Technical Report CAM report 09-83, UCLA.Google Scholar
Kang, K. C., Cohen, S., Hess, J., Nowak, W. and Peterson, S. (1990) Feature-oriented domain analysis (FODA) feasibility study. Technical Report CMU/SEI-90-TR-021, Carnegie Mellon University Software Engineering Institute.CrossRefGoogle Scholar
Kästner, C. and Apel, S. (2008) Type-checking software product lines - A formal approach. In: ASE, IEEE 258267.Google Scholar
Kästner, C., Apel, S. and Batory, D. (2007) A case study implementing features using Aspect J. In: SPLC, IEEE 223232.Google Scholar
Kästner, C., Apel, S. and Kuhlemann, M. (2008) Granularity in software product lines. In: ICSE 311–320.CrossRefGoogle Scholar
Kästner, C., Apel, S., ur Rahman, S., Rosenmüller, M., Batory, D. and Saake, G. (2009) On the impact of the optional feature problem: Analysis and case studies. In: Proceedings of International Software Product Line Conference (SPLC). 181–190.Google Scholar
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C. V., Loingtier, J.-M. and Irwin, J. (1997) Aspect-oriented programming. In: ECOOP. Springer Lecture Notes in Computer Science 1241 220242.CrossRefGoogle Scholar
Krueger, C. (2002) Eliminating the adoption barrier. IEEE Software 19 (4)2931.CrossRefGoogle Scholar
Liu, J., Batory, D. S. and Lengauer, C. (2006) Feature oriented refactoring of legacy applications. In: ICSE 112–121.CrossRefGoogle Scholar
Lopez-Herrejon, R., Batory, D. and Cook, W. (2005) Evaluating support for features in advanced modularization technologies. In: ECOOP. Springer Lecture Notes in Computer Science 3586 169194.CrossRefGoogle Scholar
Loughran, N. and Rashid, A. (2004) Framed aspects: supporting variability and configurability for AOP. In: ICSR. Springer Lecture Notes in Computer Science 3107 127140.Google Scholar
Mens, T., Taentzer, G. and Runge, O. (2005) Detecting structural refactoring conflicts using critical pair analysis. Electronic Notes in Theoretical Computer Science 127 (3)113128.CrossRefGoogle Scholar
Mezini, M. and Ostermann, K. (2004) Variability management with feature-oriented programming and aspects. In: SIGSOFT FSE, ACM 127136.CrossRefGoogle Scholar
Noda, N. and Kishi, T. (2008) Aspect-oriented modeling for variability management. In: SPLC 213–222.Google Scholar
Odersky, M. (2007) The Scala Language Specification, version 2.4. Technical Report, Programming Methods Laboratory, EPFL.Google Scholar
Oldevik, J., Haugen, Ø. and Møller-Pedersen, B. (2009) Confluence in domain-independent product line transformations. In: FASE 34–48.Google Scholar
Perrouin, G., Klein, J., Guelfi, N. and Jézéquel, J.-M. (2008) Reconciling automation and flexibility in product derivation. In: SPLC 339–348.CrossRefGoogle Scholar
Pohl, K., Böckle, G. and van der Linden, F. (2005) Software Product Line Engineering: Foundations, Principles, and Techniques, Springer, Heidelberg.CrossRefGoogle Scholar
Prehofer, C. (1997) Feature-oriented programming: A fresh look at objects. In: ECOOP, Springer Lecture Notes in Computer Science 1241 419443.CrossRefGoogle Scholar
Schaefer, I. (2010) Variability modelling for model-driven development of software product lines. In: International Workshop on Variability Modelling of Software-intensive Systems (VaMoS 2010) 85–92.Google Scholar
Schaefer, I., Bettini, L., Bono, V., Damiani, F. and Tanzarella, N. (2010) Delta-oriented programming of software product lines. In: SPLC. Springer Lecture Notes in Computer Science 6287 7791.CrossRefGoogle Scholar
Schaefer, I., Bettini, L. and Damiani, F. (2011) Compositional type-checking for delta-oriented programming. In: International Conference on Aspect-oriented Software Development (AOSD'11) 43–56.CrossRefGoogle Scholar
Schaefer, I. and Damiani, F. (2010) Pure delta-oriented programming. In: FOSD (2010) 49–56.CrossRefGoogle Scholar
Schaefer, I., Worret, A. and Poetzsch-Heffter, A. (2009) A model-based framework for automated product derivation. In: Proceedings of workshop in Model-based Approaches for Product Line Engineering (MAPLE 2009) 14–21.Google Scholar
Smaragdakis, Y. and Batory, D. (2002) Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs. ACM Transactions on Software Engineering and Methodology 11 (2)215255.Google Scholar
Tarr, P., Ossher, H., Harrison, W. and Sutton, S. Jr (1999) N degrees of separation: multi-dimensional separation of concerns. In: ICSE 107–119.CrossRefGoogle Scholar
van Deursen, A. and Klint, P. (2002) Domain-specific language design requires feature descriptions. Journal of Computing and Information Technology 10 (1)118.CrossRefGoogle Scholar
Völter, M. and Groher, I. (2007) Product line implementation using aspect-oriented and model-driven software development. In: SPLC 233–242.CrossRefGoogle Scholar
Zhang, H. and Jarzabek, S. (2003) An XVCL-based approach to software product line development. In: Software Engineering and Knowledge Engineering 267–275.Google Scholar