The use of commercial off-the-shelf (COTS) components is perceived to significantly shorten development time and cost, while improving quality, in developing large, complex software systems.
Ideally, COTS components should be used only if they are effective, i.e., they do lead to the perceived benefits, as pre-packaged solutions which presumably have already gone through the various time-consuming and costly phases of requirements specification, design, coding, testing, and have been hardened over time.
On the contrary, indiscriminate use of COTS components can lead to quite the opposite of their perceived benefits, since they can lead to a system which poorly satisfies the stakeholders’ needs, due to mismatches between such needs and the capabilities of the COTS components being deployed. And yet errors of omission and commission in the poor system may too often be discovered only too late, hence resulting in a waste of resources, major rework and perhaps even the cancellation of the entire project.
Effective use of COTS components, thus, inevitably requires a well-disciplined systematic methodology that would facilitate the exploitation of the benefits of COTS components while guarding against their pitfalls.
The goal of this project is the provision of such a methodology, called COTS-Aware Requirements Engineering and Software Architecting (CARE/SA), during the Requirements Engineering and Software Architecting phases that focuses on the matching, ranking, and selection of COTS components based on functional and non-functional capabilities.
The CARE/SA research is going to significantly advance the state-of-the-art in Requirements Engineering and Software Architecting by delivering a methodology that effectively supports the use of COTS components by facilitating the opportunities of using COTS while considering their risks at the same time.
To accomplish this, the research offers innovative solutions to the complex problem of defining the requirements and the software architecture, while matching, ranking, and selecting among COTS components that may or may not fulfill the stakeholder needs well. The CARE solutions will help determine, at the earliest possible moment, what stakeholder needs can be met by COTS components if they indeed can be, and what needs to be weakened or even sacrificed if not. More specifically, this project aims to provide a set of models, techniques and a tool set for the effective use of COTS components, including:
|Scheme for representing the various stakeholders as intentional agents(i.e., agents that make decisions), the high-level functional and non-functional requirements of such agents as goals, and the structural and behavioral system functional requirements as objects|
|Scheme for matching, detecting and resolving discrepancies between, the capabilities associated with the COTS components and the needs of the stakeholders associated with the current system under development|
|Qualitative and quantitative decision making approaches for ranking and selecting COTS components|
|Formal product- and process- models and meta-models that are consistent, complete, and correct|
|A knowledge-based tool, the CARE Assistant, that assists the developers in creating complete, correct, and consistent deliverables|