COTS is the acronym for Commercial-Off-the-Shelf, referring to the products that are tailored for specific purposes and as per parameters that are defined for an explicitly structured range. In other words, if we talk about software, they are the software readily available for customer use without any modification. src
COTS products (commercially available) are used “as is”. COTS products are designed to be easy to install and interact with existing system components. Nearly all of the software the average computer user purchases falls into the COTS category: operating systems, office product packages, word processors, and e-mail programs are among many examples. One of the main advantages of mass-produced COTS software is its relatively low price.
MOTS products (either modified or modifiable or on the shelf depending on the context) are usually COTS products whose source code can be changed. Products can be customized by buyers, sellers or other parties to meet customer needs. In a military context, MOTS refers to finished products developed or customized by commercial suppliers to meet specific military requirements. Because MOTS products are tailored for specific purposes, they can be purchased and used immediately. However, because the MOTS software specifications come from outside sources, government agencies sometimes tend to use this product because they fear that future product changes are out of their control.
Government Products (GOTS) are sometimes developed by an outside agency, but with agency resources and specifications. Because companies have the power of taking decision over all aspects of GOTS products, they are usually preferred for government purposes.
NC3A (for NATO consulting, command and control) is a NOTS (NATO ready or niche, depending on context) product developed to meet specific NATO requirements. In a more general context, niche offered refers to software developed by a vendor that is aimed at a specific and narrow market segment as opposed to the broad market for COTS products.
Related to but rhymes is POTS, short for “Ordinary Old Telephone Service”.
COTS software, along with the use of other per-existing components, is increasingly becoming an integral part of organizations’ complete IT strategy for creating and delivering systems. This is particularly true for organization with requirements matching those of one or more commercial IT market place segments. A vibrant market exists today that delivers COTS software components, ranging from operating systems to database management systems, software development environments and mission as well as business applications. The rise in demand for COTS elements and, to some extent, other preexisting constituents, is attributed to their ability of fast delivery to the end users. Added to this are the other benefits of sharing development costs with other consumers, an opportunity for improving performance and escalating mission capabilities, which can help organizations claim an advantageous position in the increasingly competitive marketplace. However, despite these benefits, not many organizations are able to afford the time and resources to replicate market-tested capabilities as they find COTS-based systems expensive and difficult to construct, field and support. A key reason for such difficulty lies in the wrong approach of building these systems where organizations neglect the aspect of proper integration of COTS components and simply assume that they can throw the various components together to make them work or simply draw upon their conventional engineering skills and processes. Sadly, these things don’t work in the building of a COTS-based system.
Some people may also think the software testing the responsibility to be the duty of the software vendor as it’s the vendor who develops the software. However, the scenario is changing fast these days. As organizations and their management decide to purchase and deploy COTS-based systems, activities related to software testing are not necessarily reduced. Rather, they get modified to other types of testing, which aren’t seen or noticed on some internal developed systems.
What is COTS integration?
When we talk about integration or specifically COTS integration, we actually mean the amalgamation of one COTS software with other software. The other software can either be a COTS or non-COTS. The COTS integrated systems are also known as COTS-based-systems, abbreviated as CBS. A COTS software product is a vital component in CBS.
In the domain of software engineering, the focus, with respect to the CBS approach, changes from one of conventional system construction and specification to one requiring instantaneous consideration of the system context (system characteristics like schedule, requirements, support and operating set-ups, cost etc), potential of products in the market, and feasible designs as well as architectures.
You might be wondering now – Why is proper ‘integration’ so important?— The answer is – proper integration is required so that the COTS product work amicably with the rest of the system. The system will not function properly or will be incomplete without the correct amalgamation.
It’s also important to remember that crafting solutions based on integrating pre-existing components is not the same as your usual custom development. This is because the components in the former case aren’t designed to meet a project-defined condition. Since COTS components are created with the aim of satisfying the requirements of a market segment, it becomes essential to comprehend the components’ functionality and the way they tend to change over time in order to modify the end-user business processes and requirements, thus ensuring that the resulting architecture is run the right way. No wonder that emphasis is given on COTS integration and testing and testing services and solutions related to this domain are in high demand.
Classification of CBS
A COTS-based system (CBS), on the basis of system composition of COTS product, is broadly classified into COTS-solution system and COTS- aggregated system. A COTS-solution system is specifically tailored to provide major system functionality. It is usually one significant product or a suite of products from a solitary vendor. Example: – ORACLE, SAP etc.
On the other hand, COTS- aggregated system is a combination of different products, which could be either COTS or non-COTS, from different suppliers.
When it’s COTS-solution system or CSS, the tests which are conducted are design focused. The tests should analyze the cost-effectiveness of the product. They should ensure the utmost outcome yield with a reasonable sum of effort. It’s important to ensure here that the system is simple, attractive and at the same time, user-friendly as well.
For a COTS-based system testing, the initial step of testing involves COTS product evaluation. Where all the components – the COTS and the non-COTS components, are tested individually to assure proper functioning. The tests assess whether the systems in the CBS are compatible to each other and are yielding acceptable results or not. How far the results obtained are reliable is also tested as is the level of reliability of the system as a whole which implies the functional and nonfunctional testing have to be done for all required end to end business processes.
The maintainability is another key factor. This means that the system should ideally require less maintenance and be good in adaptability when it comes to adapting with different CBS. The documentation of the various COTS used in the CBS should be available and updated timely. Proper risk drive testing should be done, which focuses on the risk that can be generated or reduced by the CBS.
At last, trusting the words of Disraeli that, ‘Present interests more than past and future will be more than present’, the hope of new systems and processes is to be kept alive.
How can gomadeindia assist?
gomadeindia has expertise in enabling independent testing services and is far ahead of the curve in following the process of Continuous testing Integration.
We’re focused on delivering high value-added engagements with measurable returns on your investment. Simplify your test data management to reduce your software development and testing costs. Talk to us today.