Abstract
Software product lines - families of similar but not identical software products - need to address the issue of feature variability. That is, a single feature might require various implementations for different customers. Also, features might need optional extensions that are needed by some but not all products. Software product line engineering manages variability by conducting a thorough domain analysis upfront during the planning phases. However, upfront, heavyweight planning approaches are not well-aligned with the values of minimalistic practices like XP where bottom-up, incremental development is common. In this paper, we introduce a bottom-up, test-driven approach to introduce variability to systems by reactively refactoring existing code. We support our approach with an eclipse plug-in to automate the refactoring process. We evaluate our approach by a case study to determine the feasibility and practicality of the approach.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
References
Clements, P., Northrop, L.: Software Product Lines: Practice and Patterns. Addison-Wesley, Reading (2001)
Gurp, J., Bosch, J., Svahnberg, M.: On the Notion of Variability in Software Product Lines. In: Working IEEE/IFIP Conference on Software Architecture, WISCA 2001 (2001)
Schmid, K., Verlage, M.: The Economic Impact of Product Line Adoption and Evolution. IEEE Software 19(4), 50–57 (2002)
Manifesto for Agile Software Development, http://agilemanifesto.org/principles.html
Beck, K., Andres, C.: Extreme Programming Explained: Embrace Change, 2nd edn. Addison-Wesley Professional, Reading (2004)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patters: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
https://fitclipse.svn.sourceforge.net/svnroot/fitclipse/trunk/ProductLineDesigner
SourceForge, http://sourceforge.net/projects/buddi
Kruger, C.: Easing the Transition to Software Mass Customization. In: Proceedings of the 4th International Workshop on Product Family Engineering, Germany (2002)
Clegg, K., Kelly, T., McDermid, J.: Incremental Product-Line Development. In: International Workshop on Product Line Engineering, Seattle (2002)
OBrien, L., Smith, D.: MAP and OAR Methods: Techniques for Developing Core Assets for Software Product Lines from Existing Assets, CMU/SEI-2002-TN-007 (2002)
Carbon, R., Lindvall, M., Muthig, D., Costa, P.: Integrating PL Engineering and Agile Methods: Flexible Design Up-front vs. Incremental Design. In: 1st International Workshop on Agile Product Line Engineering (2006)
Hanssen, G., Fægri, T.: Process Fusion: An Industrial Case Study on Agile Software Product Line Engineering. Journal of Systems and Software (2008)
Ghanam, Y., Park, S., Maurer, F.: A Test-Driven Approach to Establishing & Managing Agile Product Lines. In: Proceedings of the 5th Software Product Line Testing Workshop (SPLiT 2008) in conjunction with SPLC 2008, Limerick, Ireland (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ghanam, Y., Maurer, F. (2010). Extreme Product Line Engineering – Refactoring for Variability: A Test-Driven Approach. In: Sillitti, A., Martin, A., Wang, X., Whitworth, E. (eds) Agile Processes in Software Engineering and Extreme Programming. XP 2010. Lecture Notes in Business Information Processing, vol 48. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-13054-0_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-13054-0_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-13053-3
Online ISBN: 978-3-642-13054-0
eBook Packages: Computer ScienceComputer Science (R0)