Component Attributes and Their Importance in Decisions and Component Selection

This paper is a journal extension of work that was recognized as a distinguished paper at the 44th Euromicro Conference on Software Engineering and Advanced Applications. In this paper, we bring deeper analyses and novel plots but the overall theme is the same: what matters the most when deciding which component to add during software evolution? Please read the original blog post.

Panagiota Chatzipetrou, Efi Papatheocharous, Krzysztof Wnuk, Markus Borg, Emil Alégroth, and Tony Gorschek. Component Attributes and Their Importance in Decisions and Component Selection, Software Quality Journal, 2019. (open access)

Abstract

Component-based software engineering is a common approach in the 
development and evolution of contemporary software systems. Different component sourcing options are available, such as: (1) Software developed internally (in-house), (2) Software developed outsourced, (3) Commercial off-the-shelf software, and (4) Open-Source Software. However, there is little available research on what attributes of a component are the most important ones when selecting new components. The objective of this study is to investigate what matters the most to industry practitioners when they decide to select a component. We conducted a cross-domain anonymous survey with industry practitioners involved in component selection. First, the practitioners selected the most important attributes from a list. Next, they prioritized their selection using the Hundred-Dollar ($100) test. We analyzed the results using compositional data analysis. The results of this exploratory analysis showed that cost was clearly considered to be the most important attribute for component selection. Other important attributes for the practitioners were: support of the component, longevity prediction, and level of off-the-shelf fit to product. Moreover, several practitioners still consider in-house software development to be the sole option when adding or replacing a component. On the other hand, there is a trend to complement it with other component sourcing options and, apart from cost, different attributes factor into their decision. Furthermore, in our analysis, nonparametric tests and biplots were used to further investigate the practitioners’ inherent characteristics. It seems that smaller and larger organizations have different views on what attributes are the most important, and the most surprising finding is their contrasting views on the cost attribute: larger organizations with mature products are considerably more cost aware.