ABSTRACT
A Software Product Line (SPL) exploits reuse-in-the-large to enable customization by explicitly modeling commonalities and variabilities of closely related software systems. Delta-Oriented Programming (DOP) is a flexible implementation approach to SPL engineering, which transforms an existing core product to another desired product by applying transformation operations. By capturing product alterations related to configurable functionality within delta modules, DOP closely resembles a natural process of software development, which proves beneficial in early stages of development. However, increasing complexity for a growing SPL in later development stages caused by the invasiveness of DOP drastically impairs maintenance and extensibility. Hence, a process utilizing the invasiveness of DOP in early development stages and restricting it in later stages would allow developers to mature growing delta-oriented SPLs. Moreover, ever-increasing complexity requires means to migrate into less invasive development approaches that are more suited for large-scale configurable applications. To this end, we propose a development process for delta-oriented SPLs including explicit variability points, metrics and refactorings as well as a semi-automatic reengineering of a delta-oriented SPL into a development approach based on blackbox-components. In this paper, we sketch this development process with its constituents and point out required research essential for successfully maturing a delta-oriented SPL.
- Jonathan Aldrich. 2005. Open Modules: Modular Reasoning About Advice. In Proceedings of the 19th European Conference on Object-Oriented Programming (ECOOP’05). Springer-Verlag, Berlin, Heidelberg, 144– 168. Google ScholarDigital Library
- Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2013. Feature-Oriented Software Product Lines. Springer. Google ScholarCross Ref
- Sven Apel, Christian Kästner, and Christian Lengauer. 2009. FeatureHouse: Language-independent, Automated Software Composition. In Proceedings of the 31st International Conference on Software Engineering (ICSE ’09). IEEE Computer Society, Washington, DC, USA, 221–231. Google ScholarDigital Library
- Sven Apel, Sergiy Kolesnikov, Jörg Liebig, Christian Kästner, Martin Kuhlemann, and Thomas Leich. 2012. Access Control in FeatureOriented Programming. SCP 77, 3 (2012), 174 – 187.Google Scholar
- Don Batory, Jacob Neal Sarvela, and Axel Rauschmayer. 2004. Scaling Step-Wise Refinement. Software Engineering, IEEE Transactions on 30, 6 (2004), 355–371.Google ScholarDigital Library
- Eric Bodden, Éric Tanter, and Milton Inostroza. 2014. Join Point Interfaces for Safe and Flexible Decoupling of Aspects. ACM Trans. Softw. Eng. Methodol. 23, 1, Article 7 (Feb. 2014), 41 pages.Google ScholarDigital Library
- P. Clements and L. Northrop. 2002. Software Product Lines: Practices and Patterns. Addison-Wesley.Google Scholar
- K. Czarnecki and U. Eisenecker. 2000. Generative Programming: Methods, Tools, and Applications. Addison-Wesley.Google ScholarDigital Library
- F. Damiani and M. Lienhardt. 2016. Refactoring Delta-Oriented Product Lines to Achieve Monotonicity. ArXiv e-prints (April 2016). arXiv: cs.SE/1604.00346Google Scholar
- Ferruccio Damiani and Ina Schaefer. 2012. Family-Based Analysis of Type Safety for Delta-Oriented Software Product Lines. In Leveraging Applications of Formal Methods, Verification and Validation. Technologies for Mastering Change, Tiziana Margaria and Bernhard Steffen (Eds.). Lecture Notes in Computer Science, Vol. 7609. Springer Berlin Heidelberg, 193–207. Google ScholarDigital Library
- Martin Fowler. 1999. Refactoring - Improving the Design of Existing Code. Addison-Wesley Longman.Google Scholar
- Ralph E Johnson and Brian Foote. 1988. Designing reusable classes. Journal of object-oriented programming 1, 2 (1988), 22–35.Google Scholar
- K.C. Kang, S.G. Cohen, J.A. Hess, W.E. Novak, and A.S. Peterson. 1990. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report. DTIC Document. Google ScholarCross Ref
- Christian Kästner, Sven Apel, and Martin Kuhlemann. 2008. Granularity in Software Product Lines. In Proceedings of the 30th International Conference on Software Engineering. ACM, 311–320. Google ScholarDigital Library
- Jonathan Koscielny, Sönke Holthusen, Ina Schaefer, Sandro Schulze, Lorenzo Bettini, and Ferruccio Damiani. 2014. DeltaJ 1.5: DeltaOriented Programming for Java 1.5. In Proceedings of the 2014 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools (PPPJ ’14). ACM, New York, NY, USA, 63–74. Google ScholarCross Ref
- Jia Liu, Don Batory, and Christian Lengauer. 2006. Feature Oriented Refactoring of Legacy Applications. In Proceedings of the 28th International Conference on Software Engineering (ICSE ’06). ACM, New York, NY, USA, 112–121.Google ScholarDigital Library
- Christopher Pietsch, Dennis Reuling, Udo Kelter, and Timo Kehrer. 2017. A Tool Environment for Quality Assurance of Delta-oriented Model-based SPLs. In Proceedings of the Eleventh International Workshop on Variability Modelling of Software-intensive Systems (VAMOS ’17). ACM, New York, NY, USA, 84–91. Google ScholarDigital Library
- Christian Prehofer. 1997. Feature-Oriented Programming: A Fresh Look at Objects. In ECOOP’97 — Object-Oriented Programming, Mehmet Akşit and Satoshi Matsuoka (Eds.). Lecture Notes in Computer Science, Vol. 1241. Springer Berlin Heidelberg, 419–443. Google ScholarCross Ref
- Ina Schaefer, Lorenzo Bettini, Viviana Bono, Ferruccio Damiani, and Nico Tanzarella. 2010. Delta-Oriented Programming of Software Product Lines. In Software Product Lines: Going Beyond. Springer, 77–91. Google ScholarCross Ref
- Ina Schaefer, Rick Rabiser, Dave Clarke, Lorenzo Bettini, David Benavides, Goetz Botterweck, Animesh Pathak, Salvador Trujillo, and Karina Villela. 2012. Software Diversity: State of the Art and Perspectives. International Journal on Software Tools for Technology Transfer 14, 5 (2012), 477–495. Google ScholarDigital Library
- Reimar Schröter, Sebastian Krieter, Thomas Thüm, Fabian Benduhn, and Gunter Saake. 2016. Feature-Model Interfaces: The Highway to Compositional Analyses of Highly-Configurable Systems. In Proceedings of the 38th International Conference on Software Engineering (ICSE ’16). ACM, New York, NY, USA, 667–678. Google ScholarDigital Library
- Reimar Schröter, Norbert Siegmund, Thomas Thüm, and Gunter Saake. 2014. Feature-Context Interfaces: Tailored Programming Interfaces for Software Product Lines. In Proceedings of the 18th International Software Product Line Conference - Volume 1 (SPLC ’14). ACM, New York, NY, USA, 102–111. Google ScholarDigital Library
- Sandro Schulze, Oliver Richers, and Ina Schaefer. 2013. Refactoring Delta-Oriented Software Product Lines. In Proceedings of the 12th Annual International Conference on Aspect-oriented Software Development (AOSD ’13). ACM, New York, NY, USA, 73–84. Google ScholarDigital Library
- Christoph Seidl, Ina Schaefer, and Uwe Aßmann. 2014. DeltaEcore – A Model-Based Delta Language Generation Framework. In Modellierung (Modellierung’14).Google Scholar
- Christoph Seidl, Sven Schuster, and Ina Schaefer. 2015. Generative Software Product Line Development Using Variability-aware Design Patterns. In Proceedings of the 2015 ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences (GPCE 2015). ACM, New York, NY, USA, 151–160. Google ScholarDigital Library
- Kevin Sullivan, William G. Griswold, Hridesh Rajan, Yuanyuan Song, Yuanfang Cai, Macneil Shonle, and Nishit Tewari. 2010. Modular Aspect-oriented Design with XPIs. ACM Trans. Softw. Eng. Methodol. 20, 2, Article 5 (Sept. 2010), 42 pages.Google ScholarDigital Library
Index Terms
- Towards a development process for maturing Delta-oriented software product lines
Recommendations
Delta-oriented multi software product lines
SPLC '14: Proceedings of the 18th International Software Product Line Conference - Volume 1Modern software systems outgrow the scope of traditional software product lines (SPLs) resulting in multi software product lines (MSPLs) with many interconnected subsystem versions and variants. Delta-oriented programming (DOP) is a flexible, modular ...
Refactoring delta-oriented software product lines
AOSD '13: Proceedings of the 12th annual international conference on Aspect-oriented software developmentDelta-oriented programming (DOP) is an implementation approach to develop software product lines (SPL). Delta-oriented SPLs evolve over time due to new or changed requirements and need to be maintained to retain their value. Refactorings have been ...
Evaluating delta-oriented programming for evolving software product lines
VACE '17: Proceedings of the 2nd International Workshop on Variability and Complexity in Software DesignManaging variability is a hard task for every technique that develops variability-rich systems, such as software product lines (SPL), especially in its evolution. Hence, to be effective a technique should provide stability and respect the Open-Closed ...
Comments