OOP 3 Flashcards
Are two key concepts in software engineering that are used to measure the quality of a software system’s design.
Coupling and Cohesion
____ coupling and ____ cohesion can make a system difficult to change and test.
High; Low
____ coupling and ____ cohesion can make a system easier to maintain and improve
Low; High
It refers to the degree to which elements within a module work together to fulfill a single, well-defined purpose.
Cohesion
It means that elements are closely related and focused on a single purpose
High Cohesion
It means that elements are loosely related and serve multiple purposes
Low Cohesion
Types of Cohesion (9)
Functional
Sequential
Communicational
Procedural
Temporal
Logical
Coincidental
Informational
Layer
It is an ideal situation.
Functional Cohesion
States that every essential element for a single computation is contained in the component
Functional Cohesion
This type of cohesion occurs when all elements or tasks in a module contribute to a single well-defined function or purpose, and there is little to no coupling between the elements.
Functional Cohesion
The most desirable type of cohesion as it leads to more maintainable and reusable code
Functional Cohesion
Type of cohesion where an element outputs some data that becomes the input for other elements
Sequential Cohesion
Type of cohesion where two elements operate on the same input data or contribute towards the same output data
Communicational Cohesion
Occurs when elements or tasks are grouped together in a module based on their interactions with each other
Communicational Cohesion
Elements of this type of cohesion ensure the order of execution
Procedural Cohesion
This type of cohesion occurs when the elements or tasks are grouped together in a module based on their sequence of execution
Procedural Cohesion
Type of cohesion where the elements are related by their timing involved
Temporal Cohesion
This cohesion contains the code for initializing all the parts of the system
Temporal Cohesion
Occurs when elements or tasks are grouped together in a module based on their timing or frequency of execution
Temporal Cohesion
Type of cohesion where the elements are logically related and not functionally
Logical Cohesion
Type of cohesion where the elements are unrelated
Coincidental Cohesion
In this type of cohesion, the elements have no conceptual relationship other than location in source code.
Coincidental Cohesion
It is the worst form of cohesion
Coincidental Cohesion
Occurs when elements or tasks are grouped together in a module based on their relationship to a specific data structure or object
Informational Cohesion