Software Product Lines to Faster Achieving Productivity

Software Product Lines to Faster Achieving Productivity

Sathya Ganeshan (Leeds Metropolitan University, UK) and Muthu Ramachandran (Leeds Metropolitan University, UK)
DOI: 10.4018/978-1-60566-731-7.ch009
OnDemand PDF Download:
No Current Special Offers


Software Product Lines have been in the scene of software development since the 1970s. Throughout this time, it has changed from a hot topic that was discussed in universities and seminar halls as future goal of companies, to an everyday reality. There are many crucial aspects that decide the success of a software product line. One among them is the identification, development and maintenance of core assets. This chapter aims at providing a brief introduction to this area of software product lines and ways to improve productivity through efficient core asset management.
Chapter Preview


Throughout the years Software Product Line based development of applications have received wide interest. They are now represented in some shape or form in most of the development world, ranging from a simple reuse of code to the most structured and ambitious projects. Among the many factors that decide the success of a product family is a well defined role for core assets. Core assets have been researched and talked about since the dawn of product lines themselves. Most notably core assets were studied by Software Engineering Institute or SEI. According to them the goal of core assets is to develop a production facility to create a family of products (Clements & Northrop, 2004). The importance given by SEI to core assets can be understood from figure 1.

Figure 1.

SEI’s essential product line activities SEI (2004)


Figure 1 gives the most condensed view of SEI’s software product line’s essential activities. The figure shows three intertwining activities of core asset development, product development and management in a never ending cycle. The three cycles are dependent on each other and cannot function alone in the absence of the other activities. Among the two engineering divisions primarily agreed upon within a software product lines, the creation, development and maintenance of core assets falls within the domain engineering disciple. In spite of the wide interest core assets have received over the years, it is surprising to learn that not many works are available about them (Sun Her et al, 2007), their role in a product line. In fact there is a lack of clear definition of what constitutes a core asset as varying think tanks suggest different ways of identifying them.

This chapter tries to explore the basic concepts associated with core assets and also provides our own method for managing them.


Starting With Core Assets

Core assets are those entities that form the building blocks of creating a new product. They could be anything ranging from code, architecture to components, test cases etc. In short these are the entities that are to be reused. It should also be understood that since they are designed for reuse to the maximum, they are automatically the commonalties that are most treasured upon in the initial commonality analysis stage. Here after in this chapter, we shall denote software product lines as SPL and commonality analysis as CA.

To put it simply, core assets can be considered as the small plastic Lego blocks that are used to build any kind of toy structure. Figure 2 explains this concept.

Figure 2.

Core assets: Building blocks of product family


Figure 2 might be a little simplified, but serves its purpose. These colorful building blocks of Lego can be considered as assets of varying characteristics. Provided with the right architecture, these blocks could be put in the right place to create a meaningful structure. The product development process, in diagram 2 shamelessly over simplifies the task. In the SPL world, this would include tools, architecture and product development process put together. Now that we had a simple idea of what a core asset is, let us look at what constitutes a core asset.

Complete Chapter List

Search this Book: