Solution
Concept:
- A design solution is said to be highly modular if the different modules in the solution have high cohesion and their inter-module couplings are low.
- Cohesion is like a type of ranking which is used to measure the degree of modules that are functionally related
The degree of Cohesion can be defined as

Therefore B → C → E → D → A is the correct order
Additional Information
Logical cohesion:
A module is said to be logically cohesive, if all elements of the module perform similar operations, such as error handling, data input, data output, etc.
Example of logical cohesion
consider a module that contains a set of print functions to generate various types of output reports such as grade sheets, salary slips, annual reports, etc.
Sequential Cohesion:
An element outputs some data that becomes the input for other elements, i.e., data flow between the parts. It occurs naturally in functional programming languages.
Temporal Cohesion:
The elements are related by their timing involved. A module connected with temporal cohesion all the tasks must be executed in the same time-span. This cohesion contains the code for initializing all the parts of the system. Lots of different activities occur, all at init time.
Communicational Cohesion:
Two elements operate on the same input data or contribute towards the same output data. Example- update record in the database and send it to the printer.
Procedural Cohesion:
Elements of procedural cohesion ensure the order of execution. Actions are still weakly connected and unlikely to be reusable. Ex- calculate student GPA, print student record, calculate cumulative GPA, print cumulative GPA.