Analyzing Growth Trends of Reusable Software Components

Analyzing Growth Trends of Reusable Software Components

Kuljit Kaur
DOI: 10.4018/978-1-4666-2958-5.ch003
(Individual Chapters)
No Current Special Offers


Reusable software components are the software modules that can be (re)used across a number of applications in a particular domain. Component users prefer to use those components which can be adapted easily for their changing requirements. So components have to evolve continuously in order to attract users. This chapter focuses on the evolutionary aspects of software components. It mentions various techniques for monitoring software evolution. It uses metrics based analysis as the technique to show software evolution of 15 reusable components from the point of view of their size, complexity, and functionality. The evolution analysis is motivated by laws of software evolution which suggest that as software ages, it increases in size and complexity (unless it is managed) and it has to offer increased functionality to please its users. The findings of the study indicate that the size of the software components (in this data set) grows at a linear rate, and complexity is well managed. However, increase in functionality is sub linear for almost all the components. It remains almost constant for some of them.
Chapter Preview

Reusable Software Components

Component Based Development (CBD) has emerged as an important paradigm for software development. In this paradigm, a software system is developed as a composite of sub-parts, rather than a monolithic entity. These sub-parts are pre-built software units, or components. A new software system for a specific domain is just assembled using the domain-specific pre-built components. This approach reduces production cost, gives a shorter time-to-market, and results in a high quality product (Mohagheghi & Conradi, 2007), the sought after goals of the software industry since long.

Reusable components are just modules that have been designed to be useful in solving all the problems including the ones which are not anticipated beforehand. Software development organizations can reuse software components which are built in-house or acquired from third parties. Third party components fall in two categories – Open Source Software (OSS) Components and Commercial Off the Shelf (COTS) components.

A widely accepted definition of a software component is given by Szyperski [3]:

A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties.

Complete Chapter List

Search this Book: