Compositional SPL Technologies
Emergent compositional SPL technologies have been the subject of intensive research in recent years , . An example of these technologies is Aspect Oriented Software Development (AOSD) –. AOSD techniques have proven effective to modularize concerns (features) on artefacts such as code, models, and requirements . However, until recently, incipient work on consistency has been proposed in Aspect Oriented Modelling (AOM) . Another prominent approach in this category is Feature Oriented Software Development (FOSD) , . FOSD provides formalisms, methods, languages and tools for building variable, customizable and extensible software. FOSD has been successfully used in several case studies , . FOSD advocates modularizing features, increments in program functionality , as the systems building blocks. At the heart of FOSD is a feature algebra that drives the (de)composition of software artefacts , , . A feature module contains all the software artefacts, or parts thereof, required for implementing the feature. In other words, feature modules capture the multiple views of a feature. Current realizations of FOSD ,  work under the assumption that either feature artefacts are derived from other artefacts (e.g. via compilation) or are by default manually kept consistent. This assumption may work for the artefact types (source code, make scripts, grammars, equations, XML, and state machines) FOSD has primarily focused on, but it is a limitation as FOSD expands to other activities such as analysis and design that typically employ modelling languages such as UML. Incipient research on modelling and FOSD has been conducted –, it works by extending FOSD composition operator to UML models.
An important trait of SPL is that not all feature combinations yield correct and meaningful software products. Depending on the problem domain, selecting a feature may require the selection of other features; conversely, selecting a feature may exclude or prevent the selection of other features. Feature Models are the de facto mechanism to model the commonality and variability of SPL and there exists a significant body of work on their formal analysis , . At a finer granularity, Safe Composition is the guarantee that all programs which are members of a product line are indeed type safe (i.e. absent of references to undefined elements) . It works by including the constraints that composed programs should meet (e.g. single introduction of a class member) in addition to the domain constraints. It is important to stress that Safe Composition eliminates the need to individually check every single program that can be composed, which even for small SPL is impractical. Even though, it focuses on source code, the same principles and techniques could be applied to other artefacts.
A crucial demand of MVM systems is consistency checking to describe and preserve the semantic relationships amongst the elements of the different views. Consistency checking works by evaluating consistency rules on models to verify if they meet the semantic constraints. As the size of models increase, so does the time taken to verify them. A recent trend in consistency checking is work on incremental approaches which react to changes and evaluate only those rules and on only those model elements (previously identified by profiling) that can potentially cause an inconsistency. Among those incremental approaches is work by Egyed et al. – and Blanc et al. , .
Multi-Dimensional Separation of Concerns (MDSoC)
MDSoC argues that stakeholders concerns should be encapsulated across all dimensions (views) simultaneously and subsequently composed to build an entire system , . A key novel insight is to consider model changes as increments (decrements) in the functionality expressed in the models. MDSoC can thus be regarded as a foundation of SPL compositional technologies because both propose to build complex multi-dimensional systems by assembling less complex modules in a disciplined, flexible and scalable way. Such modules are increments in functionality of multi-dimensional systems.
Develop extensions to Safe Composition of diverse artefacts.
Safe Composition research has focused on source code artefacts, however techniques such as that proposed in  can be mapped to non-code artefacts. By adding constraints from other artefacts it is possible to consider multiple artefacts simultaneously. We refer to this as Multi-View Safe Composition. We have recently shown how to extend Safe Composition for checking consistency in basic UML models , and highlighted its importance and applicability in software architectures . A key issue is if the underlying logic foundations (feature models and SAT solvers ) scale when constraints (e.g. written as OCL rules) from multiple artefacts are considered.
Develop techniques that ally compositional SPL approaches with incremental consistency checking.
Compositional SPL works by incrementally adding (composing) feature functionality across multiple artefacts. Incremental consistency checking could be applied in synchronization with feature composition with two potential benefits: improved performance to check consistency, and a lightweight non-formal empirical validation that composition is implemented consistently across all the artefacts kinds.
Devise and apply an assessment plan to evaluate usability and usefulness of the techniques proposed.
For this objectives, several case studies of different sizes and domains will be considered. They will be drawn from examples publicly available from projects websites and those developed by our group and our collaborators. They will be used to evaluate performance, applicability, and usability of the tool support.
 D. S. Batory, J. N. Sarvela, and A. Rauschmayer, “Scaling step-wise refinement,” IEEE Trans. Software Eng., vol. 30, no. 6, pp. 355–371, 2004.
 K. Czarnecki and U. Eisenecker, Generative Programming: Methods, Tools, and Applications. Addison-Wesley, 2000.
 K. Pohl, G. Bockle, and F. J. van der Linden, Software Product Line Engineering: Foundations, Principles and Techniques. Springer, 2005.
 P. Zave, “Faq sheet on feature interaction,” http://www.research.att.com/ pamela/faq.html.
 M. Svahnberg, J. van Gurp, and J. Bosch, “A taxonomy of variability realization techniques,” Softw., Pract. Exper., vol. 35, no. 8, pp. 705–754, 2005.
 F. J. van d. Linden, K. Schmid, and E. Rommes, Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering. Springer, 2007.
 B. Nuseibeh, J. Kramer, and A. Finkelstein, “A framework for expressing the relationships between multiple views in requirements specification,” IEEE Trans. Software Eng., vol. 20, no. 10, pp. 760–773, 1994.
 A. Finkelstein, D. M. Gabbay, A. Hunter, J. Kramer, and B. Nuseibeh, “Inconsistency handling in multperspective specifications,” IEEE Trans. Software Eng., vol. 20, no. 8, pp. 569–578, 1994.
 D. Batory, “AHEAD Tool Suite,” 2010, http://www.cs.utexas.edu/users/schwartz/ATS.html.
 “Aspect-oriented model-driven product line engineering (ample),” 2009, http://www.ample-project.net/.
 M. Mezini and K. Ostermann, “Variability Management with Feature-Oriented Programming and Aspects,” in Proceedings of the International Symposium on Foundations of Software Engineering (FSE), 2004, pp. 127–136.
 I. Groher and M. Völter, “Using aspects to model product line variability,” in SPLC (2), S. Thiel and K. Pohl, Eds. Lero Int. Science Centre, University of Limerick, Ireland, 2008, pp. 89–95.
 J. Kienzle, W. A. Abed, and J. Klein, “Aspect-oriented multi-view modeling,” in AOSD, K. J. Sullivan, Ed. ACM, 2009, pp. 87–98.
 R. E. Lopez-Herrejon, “Understanding Feature Modularity,” Ph.D. dissertation, Department of Computer Sciences, The University of Texas at Austin, 2006.
 S. Trujillo, D. S. Batory, and O. Díaz, “Feature oriented model driven development: A case study for portlets,” in ICSE. IEEE Computer Society, 2007, pp. 44–53.
 D. Batory and S. O’Malley, “The Design and Implementation of Hierarchical Software Systems with Reusable Components,” ACM Transactions on Software Engineering and Methodology (TOSEM), vol. 1, no. 4, pp. 355–398, 1992.
 R. E. Lopez-Herrejon, D. S. Batory, and C. Lengauer, “A disciplined approach to aspect composition,” in PEPM, J. Hatcliff and F. Tip, Eds. ACM, 2006, pp. 68–77.
 D. S. Batory, “Using modern mathematics as an fosd modeling language,” in GPCE, Y. Smaragdakis and J. G. Siek, Eds. ACM, 2008, pp. 35–44.
 S. Apel, C. Kästner, and C. Lengauer, “Featurehouse: Language-independent, automated software composition,” in ICSE. IEEE, 2009, pp. 221–231.
 R. E. Lopez-Herrejon, “Language and uml support for features: Two research challenges,” in VaMoS, ser. Lero Technical Report, K. Pohl, P. Heymans, K. C. Kang, and A. Metzger, Eds., vol. 2007-01, 2007, pp. 97–100.
 S. Umapathy, “Extension of UML models to Support Feature Modularization of Software Product Lines,” Master’s thesis, Computing Laboratory, University of Oxford, 2007.
 R. E. Lopez-Herrejon, “Models, features and algebras -an exploratory study of model composition and software product lines,” in ICSOFT (SE/MUSE/GSDCA), J. Cordeiro, B. Shishkov, A. Ranchordas, and M. Helfert, Eds. INSTICC Press, 2008, pp. 293–296.
 R. E. Lopez-Herrejon and J. E. Rivera, “Realizing feature oriented software development with equational logic: An exploratory study,” in JISBD, A. Vallecillo and G. Sagardui, Eds., 2009, pp. 269–274.
 D. Benavides, S. Segura, and A. R. Cortés, “Automated analysis of feature models 20 years later: A literature review,” Inf. Syst., vol. 35, no. 6, pp. 615–636, 2010.
 M. Mendonça, A. Wasowski, K. Czarnecki, and D. D. Cowan, “Efficient compilation techniques for large scale feature models,” in GPCE, Y. Smaragdakis and J. G. Siek, Eds. ACM, 2008, pp. 13–22.
 S. Thaker, D. S. Batory, D. Kitchin, and W. R. Cook, “Safe composition of product lines,” in GPCE, C. Consel and J. L. Lawall, Eds. ACM, 2007, pp. 95–104.
 A. Egyed, “Fixing inconsistencies in uml design models,” in ICSE ’07: Proceedings of the 29th International Conference on Software Engineering. Washington, DC, USA: IEEE Computer Society, 2007, pp. 292–301.
 ——, “Instant consistency checking for the uml,” in ICSE, L. J. Osterweil, H. D. Rombach, and M. L. Soffa, Eds. ACM, 2006, pp. 381–390.
 A. Egyed, E. Letier, and A. Finkelstein, “Generating and evaluating choices for fixing inconsistencies in uml design models,” in ASE. IEEE, 2008, pp. 99–108.
 X. Blanc, I. Mounier, A. Mougenot, and T. Mens, “Detecting model inconsistency through operation-based model construction,” in ICSE, W. Schäfer, M. B. Dwyer, and V. Gruhn, Eds. ACM, 2008, pp. 511–520.
 X. Blanc, A. Mougenot, I. Mounier, and T. Mens, “Incremental detection of model inconsistencies based on model operations,” in CAiSE, ser. Lecture Notes in Computer Science, P. van Eck, J. Gordijn, and R. Wieringa, Eds., vol. 5565. Springer, 2009, pp. 32–46.
 P. Tarr, H. Ossher, W. Harrison, and J. S. M. Sutton, “N Degrees of Separation: Multi-Dimensional Separation of Concerns,” in ICSE, 1999, pp. 107–119.
 D. S. Batory, R. E. Lopez-Herrejon, and J.-P. Martin, “Generating product-lines of product-families,” in ASE. IEEE Computer Society, 2002, pp. 81–92.
 G. de Fombelle, X. Blanc, L. Rioux, and M.-P. Gervais, “Finding a path to model consistency,” in ECMDA-FA, ser. Lecture Notes in Computer Science, A. Rensink and J. Warmer, Eds., vol. 4066. Springer, 2006, pp. 101–112.
 K. Lauenroth and K. Pohl, “Dynamic consistency checking of domain requirements in product line engineering,” in RE. IEEE Computer Society, 2008, pp. 193–202.
 R. E. Lopez-Herrejon and A. Egyed, “Detecting inconsistencies in multi-view models with variability,” in ECMFA, ser. Lecture Notes in Computer Science, T. Kühne, B. Selic, M.-P. Gervais, and F. Terrier, Eds., vol. 6138. Springer, 2010, pp. 217–232.
 ——, “On the need of safe software product line architectures,” in ECSA, ser. Lecture Notes in Computer Science, M. A. Babar and I. Gorton, Eds., vol. 6285. Springer, 2010, pp. 493–496.
 M. Huth and M. Ryan, Logic in Computer Science. Modelling and Reasoning about systems. Cambridge University Press, 2004.
 H. D. Rombach, “Design for maintenance -use of engineering principles and product line technology,” in CSMR, A. Winter, R. Ferenc, and J. Knodel, Eds. IEEE, 2009, pp. 1–2.
 M. de Medeiros Ribeiro and P. Borba, “Improving guidance when restructuring variabilities in software product lines,” in CSMR, A. Winter, R. Ferenc, and J. Knodel, Eds. IEEE, 2009, pp. 79–88.
 C. Nunes, U. Kulesza, C. Sant’Anna, I. Nunes, A. F. Garcia, and C. J. P. de Lucena, “Comparing stability of implementation techniques for multi-agent system product lines,” in CSMR, A. Winter, R. Ferenc, and J. Knodel, Eds. IEEE, 2009, pp. 229–232.
 T. Käkölä and J. C. Dueñas, Eds., Software Product Lines -Research Issues in Engineering and Management. Springer, 2006.
 “Modelware project website,” 2009, http://www.ample-project.net/.
 “Modelplex project website,” 2009, http://www.modelplex.org/.
 J. Bézivin, S. Bouzitouna, M. D. D. Fabro, M.-P. Gervais, F. Jouault, D. S. Kolovos, I. Kurtev, and R. F. Paige, “A canonical scheme for model composition,” in ECMDA-FA, 2006.
 C. Herrmann, H. Krahn, B. Rumpe, M. Schindler, and S. Völkel, “An algebraic view on the semantics of model composition,” in ECMDA-FA, ser. Lecture Notes in Computer Science, D. H. Akehurst, R. Vogel, and R. F. Paige, Eds., vol. 4530. Springer, 2007, pp. 99–113.
 Y. Smaragdakis and J. G. Siek, Eds., Generative Programming and Component Engineering, 7th International Conference, GPCE 2008, Nashville, TN, USA, October 19-23, 2008, Proceedings. ACM, 2008.
 A. Winter, R. Ferenc, and J. Knodel, Eds., 13th European Conference on Software Maintenance and Reengineering, CSMR 2009, Architecture-Centric Maintenance of Large-SCale Software Systems, Kaiserslautern, Germany, 24-27 March 2009. IEEE, 2009.