Agile Product Line Engineering
Bridging agile software development and software product line engineering
Agile software development (ASD) and software product line engineering (SPLE) seem to be two rewarding yet disparate schools of thoughts in software engineering. ASD encourages strong business involvement in development activities, focuses only on the requirements at hand, and deems huge investment in requirement and design upfront unjustifiable. On the other hand, SPLE considers intensive domain analysis and flexible & detailed software design as prerequisites to any development effort. SPLE plans for potential future projects, and dedicates considerable resources for preplanning efforts.
Integrating ASD and SPLE, although is challenging, has a huge potential of magnifying enhancements in quality, cuts in cost and reductions in time-to-market. Our research is focused on this integration. We propose a model that enables agile organizations to establish product lines without disturbing the agility of their practices. The model is a bottom-up application driven approach that relies on automated acceptance tests to derive core assets from existing code.
Agile Software Development
Agile software development promotes a raft of lightweight, iterative, and customer-driven methods that allow for fast delivery of high quality software. Agile methods have been widely adopted in industry at the team level or project level. Attempts have been made recently to scale these methods up to the enterprise level.
Software Product Line Engineering
A software product line is a family of software systems that share a common base of software artifacts. These artifacts may need to be customized to satisfy the unique requirements of customers in the market. An essential component of product line engineering is variability management which entails identifying and handling the sources of variation in a given system.
Current variability management approaches rely on heavyweight, upfront planning to predict and proactively handle variability in a system. Big design and investment upfront are in direct conflict with the minimalistic philosophy of agile methods. This in turn creates an adoption barrier for agile organizations that wish to adopt a software product line strategy.
The goal of the Agile Product Line Engineering research is to make it possible for agile organizations to address variability in a product line – efficiently and systematically – without affecting agility values and principles. We are developing a new framework that relies on the iterative nature of agile methods, and leverages existing practices and artifacts such as test-driven-development and executable specifications.
Images and Videos
- Agile Product Line Engineering – Editorial, Software Practice and Experience Journal, 2011, (41), 867–869. Published online in Wiley Online Library (wileyonlinelibrary.com). DOI: 10.1002/spe.1097
- Extreme Product Line Engineering: Managing Variability & Traceability via Executable Specifications. Yaser Ghanam and Frank Maurer. Agile Conference 2009, Chicago.
- Using Acceptance Tests For Incremental Elicitation of Variability in Requirements: An Observational Study. Yaser Ghanam and Frank Maurer. Proc. of the international conference on Agile methods in software development (Agile 2011), Salt Lake City.
Workshops and Symposiums
- An Iterative Model for Agile Product Line Engineering. Yaser Ghanam and Frank Maurer. The SPLC Doctoral Symposium, 2008 – in conjunction with the 12th International Software Product Line Conference (SPLC 2008), Limerick, Ireland.
- A Test-Driven Approach to Establishing & Managing Agile Product Lines. Yaser Ghanam, Shelly Park and Frank Maurer. The 5th Software Product Lines Testing Workshop (SPLiT 2008) in conjunction with SPLC 2008, Limerick, Ireland.
- XP Workshop on Agile Product Line Engineering. Yaser Ghanam, Kendra Cooper, Pekka Abrahamsson and Frank Maurer (2009). In Proc. of 10th International Conference on Agile Processes and eXtreme Programming (XP 2009)- Workshops, Sardinia, Italy.
- A Report on the XP Workshop on Agile Product Line Engineering. Yaser Ghanam, Frank Maurer, Pekka Abrahamsson and Kendra Cooper (2009). SIGSOFT Software Engineering Notes 34, 5 (Oct. 2009), 25-27. DOI=http://doi.acm.org/10.1145/1598732.1598754
- Managing Variability in Software Systems for Vertical and Horizontal Displays. Yaser Ghanam, Darren Andreychuk and Frank Maurer. The ACM International Conference on Interactive Tabletops and Surfaces, November 23–25, 2009, Banff, Alberta, Canada.
Demos & Software Components
Test-driven refactoring tool: https://fitclipse.svn.sourceforge.net/svnroot/fitclipse/trunk/ProductLineDesigner
- Frank Maurer (Supervisor)
- Yaser Ghanam (Student)
- Felix Riegger (Tool development)
- Steffen Salbinger (Tool development)
- Darren Andreychuk (Application development)