In recent years, Component Based System (CBS) development has found widespread application, particularly in the domain of engineering software where it is often necessary to adapt and integrate existing software tools to handle new problems. The ability to identify suitable components that match system requirements is fundamental to CBS success. To date, CBS selection techniques often make an ideal assumption that there is one-to-one mapping between requirements and components. In reality, components are usually designed for general purposes and provide a range of features that can be adapted to meet the needs of a CBS. This implies that a component can potentially match more than one functionality of a CBS. On the other hand, system requirements are usually not independent of each other and a component selection process needs to consider the dependencies between system goals. Furthermore, the existing component selection methodologies usually provide a single solution for the component selection problem, thus limiting the options available to a CBS developer. In this paper, we present a component selection process that uses a signed graph to model interdependencies of CBS-to-be needs and groups related goals into clusters, based on the usage, non-functional and threat dependencies. Subsequently, the matching index of each cluster of related goals is used as a criterion to identify a portfolio of candidate components for a CBS, providing multiple solutions for the component selection problem whenever possible. The component selection process helps a developer to elicit stakeholder needs, analyze their interdependencies and select components for a CBS. We also present application of our approach to a Meeting Scheduling System (MSS) and a Construction Management System (CMS).
Read full abstract