International Journal of Advanced Studies in Computer Science and Engineering IJASCSE, Volume 3, Issue 1, 2014 www.ijascse.org Page 35 Jan. 31 Enhancing Software Development through Software Product Line: Developing Product Family rather than Individual Products Adekola Olubukola D. 1 1 Computer Science, Babcock University, Ilisan Remo, Ogun State, Nigeria, Awodele Oludele 2 2 Computer Science, Babcock University, Ilisan Remo, Ogun State, Nigeria, Abstract —Software Engineering is an art of designing software products for users’ consumption. This is an enduring knowledge area due to growing computational needs. Nobody succeed re-inventing the wheel. Re-usability is a key concept in software design. To an extent, the concept of software reuse has helped developers in meeting up with the market demands. Common reuse method includes using developed components, modules etc. to build new products. Yet, the traditional software engineering reuse patterns have not successfully addressed development challenges in terms of delivery time, cost and quality. This paper considers a new approach to re- use called Software Product Line Engineering (SPLE). This is described as “Industrial/Massive re-use”. While traditional software engineering focuses on developing individual products, software product line practice focuses on developing product family. To gain significant reduction in development time, reduced cost (both in development and products) and increase software quality, development is channeled towards SPLE. Keywords-component; Software Engineering, Re-usability, developer, module, component, reuse, Software Product Line Engineering (SPLE), product family) I. INTRODUCTION Software development process has recorded dramatic changes over the years consequent upon response to evolving users and market demands. Vital among many others are the need for low cost both of production and sales, timely delivery and higher quality. One of the most recent of these innovations is the adoption of Product Line Engineering in delivering software, hardware and engineering products. Product Line Engineering has really endured in the manufacturing industries. Bringing this into software production is quite an extended and elaborate way of thinking. The use of this in enhancing software development process is termed Software Product Line Engineering (SPLE). This could also be tagged industrializing software. Though more work is required to be put into the entire software engineering processes from requirement gathering to system delivery but the outcome is worth the extra mile. The remarkable attribute of Software Product Line (SPL) that has afforded much acceptance is the industrial software re-use. This ushered in ample benefits in terms of shorter delivery period, quality and cost. Two important aspects in product line include identifying product commonality and deriving product variability. Product line combine development for re-use and development with re-use in a proactive manner. A more simplified explanation to this description is that designers employing this technique have reuse as first thing in mind [16] i.e. reuse is not an afterthought in the design process. It means the system is built for reuse from the word “go” where requirements are gathered till the product is finished. Therefore, a software product line model describes a set of products in the same domain (family of products) instead of a single software system. In traditional software engineering, software architecture is evaluated with respect to the requirements of the individual product alone. Whereas a product line approach requires the software expert to consider requirements for a family of related / similar systems and the relationship between those requirements. There are three main areas of evolution process in PLE: Architecture, Components and Product. From start, when products in the same domain are considered, elements shared by all the products in the line are realized and elements that may distinguish a product from another are also captured. The shared ones are regarded as the commonality described as core assets while the differing ones are the variants that differentiate one product from another called variable asset [16]. Core assets are those assets that form the basis for the software product lines. Suffice to say that SPLE introduces dimensions such as variability modeling and product derivation in engineering software products. The variability is where characteristics that distinguish a product from another are gathered and the product derivation is the complete process of constructing products from the software product line. II. SOFTWARE PRODUCT LINES KEY DEVELOPMENT PROCESSES A going concern is the need to develop multiple, similar software products rather than focusing on engineering a single individual product per time.