Arrange the following types of Cohesion from best to worst type. (A) Logical Cohesion (B) Sequential Cohesion (C) Communication Cohesion (D) Temporal Cohesion (E) Procedural Cohesion Choose the correct answer from the options given below:
B → C → E → D → A
Cohesion in software engineering is a measure of how strongly related or focused the elements within a module are. A high level of cohesion is desirable because it indicates that a module performs a single, well-defined task. This makes the module easier to understand, test, maintain, and reuse. Conversely, low cohesion means a module performs unrelated or loosely related tasks, making it complex and harder to manage.
The different types of cohesion are ranked from best (most desirable) to worst (least desirable). Let's look at the types provided in the question and their typical ranking:
The standard ranking of these types from best to worst is:
Therefore, arranging the given types from best to worst results in the order B → C → E → D → A.
This order aligns with the principle that tasks within a module should be as functionally related as possible (Sequential and Communication) rather than being grouped just by time (Temporal) or arbitrary category (Logical).
Here is a summary of the cohesion types mentioned and their position in the hierarchy:
| Rank (Best to Worst) | Cohesion Type | Description |
|---|---|---|
| 1 | Sequential Cohesion (B) | Output of one element is input to another. |
| 2 | Communication Cohesion (C) | Elements operate on the same data. |
| 3 | Procedural Cohesion (E) | Elements grouped by execution order. |
| 4 | Temporal Cohesion (D) | Elements grouped by time of execution. |
| 5 | Logical Cohesion (A) | Elements grouped by logical category. |
Based on this ranking, the correct arrangement from best to worst cohesion is B → C → E → D → A.
| Cohesion Type | Ranking | Characteristics |
|---|---|---|
| Sequential | Best (among those listed) | Tasks linked by data flow (output → input). |
| Communication | Second Best | Tasks share common input/output data. |
| Procedural | Middle | Tasks grouped by execution sequence. |
| Temporal | Fourth Best | Tasks grouped by execution time. |
| Logical | Worst (among those listed) | Tasks grouped by category, selected by flag/parameter. |
Cohesion is often discussed alongside Coupling, another important concept in software design. While cohesion measures the strength of relationships *within* a module, coupling measures the strength of relationships *between* modules.
Good software design aims for high cohesion and low coupling. Achieving this balance leads to systems that are easier to develop, understand, test, and maintain.
Other types of cohesion not listed in the question include:
Understanding these types helps in designing modular, maintainable, and robust software systems.
COCOMO stands for _______
Among the following, which option describes a functional requirement?
Which of the following is/are the phases of system development life cycle?
The model in which the requirements are implemented by its category is
RAD software process model stands for