Farima Farmahini Farahani

Thesis Title: Developing an Agile Product Line Engineering (APLE) Methodology                  


Software Product Line Engineering (PLE) and Agile Software Development are two leading approaches in the software industry. Despite the inherent differences between the two approaches, they are intended to fulfill common goals, such as: Reducing time to market, increasing customer satisfaction, promoting product quality, managing changes in requirements, and decreasing development costs. In addition, each of them has certain positive features which address the other’s weaknesses. As a result, it seems reasonable to integrate the two approaches in order to produce a method which fulfills the common goals while addressing the weaknesses. Agile Product Line Engineering (APLE) is a relatively novel approach that is specifically used in situations where applying PLE would be appropriate, but it cannot be applied because of the volatility of the market situation. Among other advantages of this combined approach are the ability of addressing wider types of projects, reduction of domain engineering costs, and the ability to deal with situations where existing knowledge is not enough to predict all the variation points in the software product line. Moreover, while Agile Development aims at tactical and short-term objectives, Product Line Engineering aims at strategic and long-term organizational goals; the utmost importance of both types of these goals in organizations is another reason that justifies the development and use of APLE approaches.
Although there are many advantages in combining the two approaches, some difficulties also exist. One of the most important problems is the need for design documents in PLE, whereas agile methods are typically unwilling to prescribe such documents. In addition, PLE is more applicable to larger projects where reuse of components is justifiable, whereas Agile methods are more compatible with smaller-sized projects. Furthermore, the two approaches use radically different strategies to manage changing requirements. These obstacles turn the combination of the two approaches into a challenging endeavor.
Since “software development processes are software too,” an engineering approach has been devised for developing software processes. This relatively novel discipline, which has come to be called “Method Engineering,” helps developers engineer methodologies that fit the requirements of the project at hand. To this aim, a generic high-level framework that is the result of applying abstraction to current methodologies would be extremely useful, as it can be utilized along with its constituting method fragments to instantiate the target methodology.
The main objective of this project is to propose a new APLE methodology that resolves the issues in combining the two approaches and addresses the weaknesses of other APLE methodologies. To this aim, existing APLE methods will first be investigated and analyzed to identify their strengths and weaknesses. A generic high-level framework will then be produced for APLE methodologies. The target methodology will ultimately be developed by applying current Method Engineering methods to the generic framework. The validity of the proposed methodology will be assessed based on appropriate evaluation criteria (considering the specific characteristics of the problem domain), and also through a case study.

(Progress Chart)

Contact Information

   Email: FarimaFarahani[at] ce [dot] sharif [dot] edu