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
Q

Occurs when elements or tasks in a module are grouped together based on their level of abstraction or responsibility

A

Layer Cohesion

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

It refers to the degree of interdependence between software modules

A

Coupling

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

It means that modules are closely connected and changes in one module may affect other modules.

A

High Coupling

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

It means that modules are independent and changes in one module have little impact on other modules

A

Low Coupling

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

Types of Coupling (11)

A

Data
Data-Structured
Stamp
Sequential
Control
Common
Content
Communicational
Functional
External
Temporal

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

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

A

Data Coupling

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

This type of coupling have components that are independent of each other and communicate through data

A

Data Coupling

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

It refers to data that is unused, redundant, or irrelevant within a data processing context

A

Tramp Data

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

In this type of coupling, the complete data structure is passed from one module to another

A

Stamp Coupling

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

Type of coupling that involves tramp data

A

Stamp Coupling

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

They are said to be coupled like this if the modules communicate by passing control information

A

Control Coupling

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

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.

A

External Coupling

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

The modules here have shared data such as global data structures

A

Common Coupling

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

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.

A

Content Coupling

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

The worst form of coupling

A

Content Coupling

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

This coupling occurs when two modules depend on the timing or order of events, such as one module needing to execute before another.

A

Temporal Coupling

41
Q

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.

A

Sequential Coupling

42
Q

This type of coupling occurs when two or more modules share a common communication mechanism, such as a shared message queue or database

A

Communicational Coupling

43
Q

This occurs when two modules depend on each other’s functionality, such as one module calling a function from another module

A

Functional Coupling

44
Q

This occurs when two or more modules share a common data structure, such as a database table or data file

A

Data-Structured Coupling

45
Q

Advantages of Low Coupling

A

Improved Maintainability
Enhanced Modularity
Better Scalability

46
Q

Advantages of High Cohesion

A

Improved Readability
Better Error Isolation
Improved Reliability

47
Q

Disadvantage of High Coupling

A

Increased Complexity
Reduced Flexibility
Decreased Modularity

48
Q

Disadvantage of Low Cohesion

A

Increased Code Duplication
Reduced Functionality
Difficulty Understanding

49
Q

Is also called Inter-Module Binding

50
Q

Is also called Intra-Module Binding

51
Q

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

A

Data-Driven Design

52
Q

What are the different types of User Experience Data Collection Techniques

A

Design Analytics
User Experience Research
Multivariate Test Results
Behavioral Flow
A/B Testing

53
Q

It is a method for developing solutions that enable business strategies and drive measurable business impact

A

Design Analytics

54
Q

Three beliefs in data analytics

A

analysts:
are designers
provide solutions
work measure in impact

55
Q

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

A/B Testing

56
Q

Is useful in evaluating page design

A

A/B Testing

57
Q

It is a technique for testing a hypothesis in which multiple variables are modified

A

Multivariate Test Results

58
Q

Its goal is to determine which combination of variations perform the best out of all possible combinations.

A

Multivariate Test Results

59
Q

It is a report that visualizes the path users traveled from one page or Event to the next.

A

Behavioral Flow

60
Q

This report can help you discover what content keeps users engaged with your site

A

Behavioral Flow

61
Q

Are points through which traffic flows

62
Q

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

A

User Experience Research

63
Q

It is the process of discovering behaviors, motivations, and needs of your customers through observation, task analysis, and other types of user feedback

A

User Research

64
Q

Gives designers an idea of what is happening on a website or app

A

Quantitative Data

65
Q

Is needed to shed light on why users do what they do

A

Qualitative Data

66
Q

Displaying data ____ is one of the best ways to present information

67
Q

Its goal is to improve encapsulation

A

Research-Driven Design

68
Q

It is responsible for knowing and maintaining the smallest rectangle that completely contains its image

A

RasterImage

69
Q

It has additional knowledge for knowing and maintaining the visibility of individual bits within its image

A

ShapedImage

70
Q

It improves encapsulation with respect to subclass clients, ensuring that all inherited behavior is part of the contract of the subclass

A

Responsibility-Driven Design

71
Q

Specifies object behavior before object structure

A

Responsibility-Driven Design

72
Q

It is the key to increasing the value of such software metrics as reusability, refinability, testability, maintainability, and extensibility

A

Encapsulation

73
Q

Four Layers of OO Design Pyramid

A

Subsystem Layer
Class and Object Layer
Message Layer
Responsibilities Layer

74
Q

Contains a representation of each subsystems that enable the software to achieve its customer -defined requirements, and implement technical infrastructure in OO Design

A

Subsystem Layer

75
Q

It contains class hierarchies that enable system to be created using generalizations in OO Design

A

Class and Object Layer

76
Q

Contains the design details that enable each object to communicate with its collaborators in OO Design

A

Message Layer

77
Q

Contains the data structure and algorithmic design for all attributes and operations for each project in OO Design

A

Responsibilities Layer

78
Q

Emphasis on the design of domain objects in OO Design

A

Foundation Layer

79
Q

Play a key role to provide support for interface design, task and data management in OO Design

A

Domain Objects

80
Q

Five Criteria for Judging a Design Method’s Ability to Achieve Modularity

A

Decomposability
Composability
Understandability
Continuity
Protection

81
Q

Means breaking down a problem into a small number of less complex sub problems in modular design

A

Decomposability

82
Q

The ease with which a program component can be understood without reference to other information or other modules

A

Understandibility

83
Q

Is satisfied in modular design if a small change in problem specification will trigger a change in just one module or few modules

A

Continuity

84
Q

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

A

Protection

85
Q

Five Basic Design Principles that can be derived for modular architectures

A

Linguistic Modular Units
Few Interfaces
Small Interfaces
Explicit Interfaces
Information Hiding

86
Q

States that programming language should be capable of supporting the modularity

A

Linguistic Modular Units

87
Q

This principle states that the overall number of communication between modules should be as small as possible

A

Few Interfaces (Low Coupling)

88
Q

States that if any two modules communicate, they should exchange as little information as possible

A

Small Interfaces (Weak Coupling)

89
Q

States that if two modules communicate it should be in an obvious and direct way

A

Explicit Interfaces

90
Q

Can be used to see what other modules may be affected when changing one module

A

Traceability Matrix

91
Q

Means all information about a component should be hidden from outside access

A

Information Hiding

92
Q

Two major design activities UML is organized into

A

System Design
Object Design

93
Q

Its primary objectives is to represent the software architecture

A

System Design

94
Q

It is concerned with the structure of the static class model and the connections between components of the model

A

Conceptual Architecture

95
Q

It describes the way the system is divided into subsystems or modules and how they communicate by exporting and importing data

A

Module Architecture

96
Q

It defines how the program code is organized into files and directories and grouped into libraries

A

Code Architecture

97
Q

It focuses on the dynamic aspects of the system and the communication between components as tasks and operations execute

A

Execution Architecture

98
Q

It focuses on a description of objects and their interactions with one another

A

Object Design

99
Q

Means production of software components which may be freely combined with each other to produce new systems in modular design

A

Composability