Cohesion refers to the measure of how COTS performs a single task. It is a
measure of the stickiness of the module. A good module contains only resources
that accomplish single or similar tasks. The parts of the module are all closely
interrelated and therefore stick together. Table 2 explains the types of cohesion.
Many studies have shown that coincidental cohesion (such as one routine
that would calculate tax rate and compute Celsius to Fahrenheit) and logical cohesion (such as open all input files) are extremely inferior to other types of cohesion3.
Combining many functions into one module makes cohesion low and contributes to high error rates and increased debugging, testing, and integrating time. In addition, relatively small maintenance fixes tend to have ripple effects that require testing and debugging of many routines that are not logically related. Good developers know that an application that has many relatively simple modules is easier to develop and test. In fact, this is one of the basic concepts of object-oriented programming.
Replaced/Superseded by document(s)
In today’s software and acquisition environment, the decision to use commercial off-the-shelf (COTS) and government offthe-
shelf (GOTS) is not only necessary from a schedule and cost point of view, but often is mandated. However, there are many factors that influence the decision to use and choose COTS/GOTS software. Readers who have a background in computer science or who have taken some formal software engineering code development classes are typically familiar with the effects, but many engineers who acquire COTS do not have this background. This article discusses some basic but oftenneglected factors affecting COTS selection and use.