Custom Software and Offshore Development | LARION

The IBM Rational Unified Process for COTS-based projects

Building solutions based on pre-existing Commercial-Off-the-Shelf (COTS) packages is different from typical green-field development. Numerous projects have unsuccessfully tried to integrate pre-existing COTS packages by defining the requirements, formulating an architecture to meet those requirements, and then trying to fit COTS packages into that architecture. The unique characteristics of COTS packages introduce dynamics and specific constraints that must be accommodated. Projects that build solutions based on COTS packages require dedicated guidance.

 This paper will introduce the IBM Rational Unified Process® for Commercial-Off-the-Shelf Package Delivery (or RUP® for COTS)1. The RUP for COTS is a configuration of the IBM Rational Unified Process, or RUP, that addresses the needs of IBM customers who demand process guidance in their projects in order to evaluate, recommend, acquire, install, configure, field, and evolve solutions based on COTS packages. In this paper, we will first introduce some best practices for COTS projects. Then, we will define the foundations of the RUP for COTS. Finally, we will walk through each RUP phase of a COTS-based project by introducing the objectives, roadmap, roles, activities, artifacts, and milestone of the phase.

 The RUP for COTS is based on the Evolutionary Process for Integrating COTS-Based Systems (EPIC)2, which is a proven methodology developed by CMU-SEI (Carnegie Mellon University-Software Engineering Institute). Specifically, the RUP for COTS is based on EPIC concepts and principles (spheres of influence, iteratively converging decisions, accumulating knowledge, and increasing stakeholder buy-in). In addition, the basis of some phase objectives, roadmap descriptions, artifacts, and milestones come from EPIC.

 

Related Article:

https://www.ibm.com/developerworks/rational/library/aug05/peraire-pannone/

 

 

 

 

More interesting resources

How to Form an Optimal Software Development Team Structure