Software Engineering Institute Carnegie Mellon

COTS-Based Systems
Overview
Activity Areas
Briefings, Courses, and
Workshops
Products and Services
References
CURE (COTS Usage Risk Evaluation)
EPIC
Information and Publications
COTS Lessons Learned
Integration of Software-Intensive Systems
Performance-Critical Systems

Design and Software Engineering

return to CBS main page

Design

The engineering of COTS-based systems continues to involve significant technical risk.  A good indicator of the as-yet unresolved difficulties involved in building COTS-based systems is the "glue code" used to integrate components. This code is often ad hoc and brittle, but it is needed to repair mismatched assumptions that are exhibited by the components being integrated.  Without this glue code, the components would not be integrable, yet as a consequence of the code, COTS-based systems can be difficult to comprehend, less evolvable than intended, and less reliable than the constituent products.

In order to express a number of important activities involved in design and engineering of COTS-based systems, we have developed a reference model that describes the central artifacts of CBS components in various states.  COTS-based systems engineering often begins with products that have many unknown qualities and intends to produce a system that supports flexible reassembly with different components. The key ideas expressed by this reference model are:

These engineering techniques are not applied in a vacuum; there must be an underpinning of a strong architectural approach and  the selection and application of appropriate technologies based on assessing various tradeoffs. Simply put, a CBS approach does not remove the requirement for sound engineering practice.

We have produced books based on these techniques to aid in the COTS engineering process:

Building Systems from Commercial Components
Modernizing Legacy Systems: Software Technologies, Engineering Processes, and Business Practices

This reference model is not a process model; it does not imply a sequence of steps. Indeed, our experience is that architectural patterns may suggest a set of properties that must be discovered by component qualification and that, conversely, component properties discovered from qualification may suggest certain architectural patterns.


return to CBS main page