OOP 3 Flashcards

1
Q

Are two key concepts in software engineering that are used to measure the quality of a software system’s design.

A

Coupling and Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

____ coupling and ____ cohesion can make a system difficult to change and test.

A

High; Low

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

____ coupling and ____ cohesion can make a system easier to maintain and improve

A

Low; High

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

It refers to the degree to which elements within a module work together to fulfill a single, well-defined purpose.

A

Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

It means that elements are closely related and focused on a single purpose

A

High Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

It means that elements are loosely related and serve multiple purposes

A

Low Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Types of Cohesion (9)

A

Functional
Sequential
Communicational
Procedural
Temporal
Logical
Coincidental
Informational
Layer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

It is an ideal situation.

A

Functional Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

States that every essential element for a single computation is contained in the component

A

Functional Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

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.

A

Functional Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

The most desirable type of cohesion as it leads to more maintainable and reusable code

A

Functional Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Type of cohesion where an element outputs some data that becomes the input for other elements

A

Sequential Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Type of cohesion where two elements operate on the same input data or contribute towards the same output data

A

Communicational Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Occurs when elements or tasks are grouped together in a module based on their interactions with each other

A

Communicational Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Elements of this type of cohesion ensure the order of execution

A

Procedural Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

This type of cohesion occurs when the elements or tasks are grouped together in a module based on their sequence of execution

A

Procedural Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Type of cohesion where the elements are related by their timing involved

A

Temporal Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

This cohesion contains the code for initializing all the parts of the system

A

Temporal Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Occurs when elements or tasks are grouped together in a module based on their timing or frequency of execution

A

Temporal Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Type of cohesion where the elements are logically related and not functionally

A

Logical Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Type of cohesion where the elements are unrelated

A

Coincidental Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

In this type of cohesion, the elements have no conceptual relationship other than location in source code.

A

Coincidental Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

It is the worst form of cohesion

A

Coincidental Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Occurs when elements or tasks are grouped together in a module based on their relationship to a specific data structure or object

A

Informational Cohesion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Occurs when elements or tasks in a module are grouped together based on their level of abstraction or responsibility
Layer Cohesion
26
It refers to the degree of interdependence between software modules
Coupling
27
It means that modules are closely connected and changes in one module may affect other modules.
High Coupling
28
It means that modules are independent and changes in one module have little impact on other modules
Low Coupling
29
Types of Coupling (11)
Data Data-Structured Stamp Sequential Control Common Content Communicational Functional External Temporal
30
The modules are said to be coupled like this if the dependency between the modules is based on the fact that they communicate by passing only data
Data Coupling
31
This type of coupling have components that are independent of each other and communicate through data
Data Coupling
32
It refers to data that is unused, redundant, or irrelevant within a data processing context
Tramp Data
33
In this type of coupling, the complete data structure is passed from one module to another
Stamp Coupling
34
Type of coupling that involves tramp data
Stamp Coupling
35
They are said to be coupled like this if the modules communicate by passing control information
Control Coupling
36
In this type of coupling, the modules depend on other modules that are external to the software being developed or to a particular type of hardware.
External Coupling
37
The modules here have shared data such as global data structures
Common Coupling
38
In this type of coupling, one module can modify the data of another module, or control flow is passed from one module to another module.
Content Coupling
39
The worst form of coupling
Content Coupling
40
This coupling occurs when two modules depend on the timing or order of events, such as one module needing to execute before another.
Temporal Coupling
41
This type of coupling occurs when the output of one module is used as the input of another module, creating a chain or sequence of dependencies.
Sequential Coupling
42
This type of coupling occurs when two or more modules share a common communication mechanism, such as a shared message queue or database
Communicational Coupling
43
This occurs when two modules depend on each other's functionality, such as one module calling a function from another module
Functional Coupling
44
This occurs when two or more modules share a common data structure, such as a database table or data file
Data-Structured Coupling
45
Advantages of Low Coupling
Improved Maintainability Enhanced Modularity Better Scalability
46
Advantages of High Cohesion
Improved Readability Better Error Isolation Improved Reliability
47
Disadvantage of High Coupling
Increased Complexity Reduced Flexibility Decreased Modularity
48
Disadvantage of Low Cohesion
Increased Code Duplication Reduced Functionality Difficulty Understanding
49
Is also called Inter-Module Binding
Coupling
50
Is also called Intra-Module Binding
Cohesion
51
Is a type of approach wherein we collect data and use those data in order for us to give a good user experience to our customer whether it's an app/application or a website
Data-Driven Design
52
What are the different types of User Experience Data Collection Techniques
Design Analytics User Experience Research Multivariate Test Results Behavioral Flow A/B Testing
53
It is a method for developing solutions that enable business strategies and drive measurable business impact
Design Analytics
54
Three beliefs in data analytics
analysts: are designers provide solutions work measure in impact
55
This is a method of website optimization in which the conversion rates of two versions of a page - version A and version B - are compared to one another using live traffic
A/B Testing
56
Is useful in evaluating page design
A/B Testing
57
It is a technique for testing a hypothesis in which multiple variables are modified
Multivariate Test Results
58
Its goal is to determine which combination of variations perform the best out of all possible combinations.
Multivariate Test Results
59
It is a report that visualizes the path users traveled from one page or Event to the next.
Behavioral Flow
60
This report can help you discover what content keeps users engaged with your site
Behavioral Flow
61
Are points through which traffic flows
Nodes
62
It is about diving deep into how customers interact with your brand on a practical, functional level, and observing how easily they can complete their tasks and meet their goals
User Experience Research
63
It is the process of discovering behaviors, motivations, and needs of your customers through observation, task analysis, and other types of user feedback
User Research
64
Gives designers an idea of what is happening on a website or app
Quantitative Data
65
Is needed to shed light on why users do what they do
Qualitative Data
66
Displaying data ____ is one of the best ways to present information
Visually
67
Its goal is to improve encapsulation
Research-Driven Design
68
It is responsible for knowing and maintaining the smallest rectangle that completely contains its image
RasterImage
69
It has additional knowledge for knowing and maintaining the visibility of individual bits within its image
ShapedImage
70
It improves encapsulation with respect to subclass clients, ensuring that all inherited behavior is part of the contract of the subclass
Responsibility-Driven Design
71
Specifies object behavior before object structure
Responsibility-Driven Design
72
It is the key to increasing the value of such software metrics as reusability, refinability, testability, maintainability, and extensibility
Encapsulation
73
Four Layers of OO Design Pyramid
Subsystem Layer Class and Object Layer Message Layer Responsibilities Layer
74
Contains a representation of each subsystems that enable the software to achieve its customer -defined requirements, and implement technical infrastructure in OO Design
Subsystem Layer
75
It contains class hierarchies that enable system to be created using generalizations in OO Design
Class and Object Layer
76
Contains the design details that enable each object to communicate with its collaborators in OO Design
Message Layer
77
Contains the data structure and algorithmic design for all attributes and operations for each project in OO Design
Responsibilities Layer
78
Emphasis on the design of domain objects in OO Design
Foundation Layer
79
Play a key role to provide support for interface design, task and data management in OO Design
Domain Objects
80
Five Criteria for Judging a Design Method's Ability to Achieve Modularity
Decomposability Composability Understandability Continuity Protection
81
Means breaking down a problem into a small number of less complex sub problems in modular design
Decomposability
82
The ease with which a program component can be understood without reference to other information or other modules
Understandibility
83
Is satisfied in modular design if a small change in problem specification will trigger a change in just one module or few modules
Continuity
84
Is satisfied in modular design if the effect of an abnormal condition occurring a run time in a module will remain limited to that module
Protection
85
Five Basic Design Principles that can be derived for modular architectures
Linguistic Modular Units Few Interfaces Small Interfaces Explicit Interfaces Information Hiding
86
States that programming language should be capable of supporting the modularity
Linguistic Modular Units
87
This principle states that the overall number of communication between modules should be as small as possible
Few Interfaces (Low Coupling)
88
States that if any two modules communicate, they should exchange as little information as possible
Small Interfaces (Weak Coupling)
89
States that if two modules communicate it should be in an obvious and direct way
Explicit Interfaces
90
Can be used to see what other modules may be affected when changing one module
Traceability Matrix
91
Means all information about a component should be hidden from outside access
Information Hiding
92
Two major design activities UML is organized into
System Design Object Design
93
Its primary objectives is to represent the software architecture
System Design
94
It is concerned with the structure of the static class model and the connections between components of the model
Conceptual Architecture
95
It describes the way the system is divided into subsystems or modules and how they communicate by exporting and importing data
Module Architecture
96
It defines how the program code is organized into files and directories and grouped into libraries
Code Architecture
97
It focuses on the dynamic aspects of the system and the communication between components as tasks and operations execute
Execution Architecture
98
It focuses on a description of objects and their interactions with one another
Object Design
99
Means production of software components which may be freely combined with each other to produce new systems in modular design
Composability