0% found this document useful (0 votes)
0 views

Unit II Software

Unit II discusses key issues in software design, emphasizing the importance of creating a blueprint for implementation, managing design complexity, and maintaining low coupling and high cohesion among modules. It covers principles such as modularity, information hiding, and the significance of separation of concerns, along with various types of cohesion and coupling. Additionally, it highlights function-oriented design and the use of Data Flow Diagrams (DFDs) and structure charts for representing system organization and data flow.

Uploaded by

Narottam Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
0 views

Unit II Software

Unit II discusses key issues in software design, emphasizing the importance of creating a blueprint for implementation, managing design complexity, and maintaining low coupling and high cohesion among modules. It covers principles such as modularity, information hiding, and the significance of separation of concerns, along with various types of cohesion and coupling. Additionally, it highlights function-oriented design and the use of Data Flow Diagrams (DFDs) and structure charts for representing system organization and data flow.

Uploaded by

Narottam Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Unit II: Issues in Software Design

Basic Issues in Software Design

1. Which of the following is a primary goal of software design? a) To write efficient


code quickly b) To create a blueprint for implementing the system to meet requirements
c) To choose the best programming language d) To manage the development team
effectively

Answer: b) To create a blueprint for implementing the system to meet requirements

2. "Design complexity" in software engineering refers to: a) The number of lines of code
in the program b) The intricacy of interactions and dependencies within the system c) The
difficulty in understanding user requirements d) The time taken to design the system

Answer: b) The intricacy of interactions and dependencies within the system

3. A good software design should primarily aim to minimize: a) Development time b)


Lines of code c) Design complexity and maintenance effort d) Testing effort

Answer: c) Design complexity and maintenance effort

4. "High coupling" in software design generally leads to: a) Increased modularity b)


Easier system understanding c) Increased ripple effects of changes and higher
maintenance costs d) Improved system performance

Answer: c) Increased ripple effects of changes and higher maintenance costs

5. "Low cohesion" within a module indicates that: a) The module performs a well-
defined set of related tasks b) The module's elements are loosely related and perform
diverse tasks c) The module is highly independent and reusable d) The module is easy to
understand and modify

Answer: b) The module's elements are loosely related and perform diverse tasks

6. Which of the following is NOT a key consideration in basic software design? a)


Modularity b) Cohesion c) Coupling d) Programming language syntax

Answer: d) Programming language syntax (Syntax is more implementation-related, not a


core design issue)

7. The principle of "separation of concerns" in software design promotes: a) Increased


coupling between modules b) Reduced cohesion within modules c) Dividing the system
into independent, manageable modules d) Minimizing the number of modules in the
system
Answer: c) Dividing the system into independent, manageable modules

8. "Information hiding" is primarily related to which design principle? a) Modularity


b) Cohesion c) Coupling d) Layering

Answer: a) Modularity

9. "Antipatterns" in software design are: a) Proven best practices for software


development b) Commonly used design patterns c) Recurring solutions to common
problems that are ineffective and often counter-productive d) Design patterns specifically
for distributed systems

Answer: c) Recurring solutions to common problems that are ineffective and often
counter-productive

10. Which of the following is a key aspect of addressing basic issues in software design?
a) Focusing solely on functional requirements b) Ignoring non-functional requirements
initially c) Balancing various design principles and quality attributes d) Starting coding
immediately without a detailed design

Answer: c) Balancing various design principles and quality attributes

Modularity

11. Modularity in software design is primarily concerned with: a) Writing code in


modules using a specific programming language b) Dividing a system into smaller, self-
contained, and manageable units (modules) c) Reducing the overall size of the software
system d) Improving the performance of individual components

Answer: b) Dividing a system into smaller, self-contained, and manageable units


(modules)

12. The benefits of modularity include: a) Increased complexity and development time b)
Easier understanding, maintenance, reuse, and independent development c) Tighter
coupling and reduced cohesion d) Reduced flexibility and adaptability

Answer: b) Easier understanding, maintenance, reuse, and independent development

13. "Functional modularity" is based on: a) Grouping data and operations together b)
Decomposing the system based on functions or processes c) Organizing modules in
layers d) Distributing modules across a network

Answer: b) Decomposing the system based on functions or processes


14. "Object-oriented modularity" is based on: a) Decomposing the system into functions
b) Grouping data and operations (methods) that operate on that data into objects c)
Organizing modules in layers d) Designing modules as independent services

Answer: b) Grouping data and operations (methods) that operate on that data into objects

15. A "module interface" defines: a) The internal implementation details of a module b)


How a module interacts with other modules c) The programming language used to
implement the module d) The performance characteristics of the module

Answer: b) How a module interacts with other modules

16. "Loose coupling" between modules is achieved by: a) Maximizing dependencies


between modules b) Minimizing dependencies and interactions between modules c)
Grouping highly related functionalities within the same module d) Sharing
implementation details between modules

Answer: b) Minimizing dependencies and interactions between modules

17. Which of the following is NOT a desirable characteristic of a modular system? a)


High cohesion within modules b) Loose coupling between modules c) Large, monolithic
modules d) Well-defined module interfaces

Answer: c) Large, monolithic modules

18. Modularity supports which software engineering principle? a) "Code and fix"
approach b) "Divide and conquer" approach c) "Big bang integration" approach d)
"Monolithic design" approach

Answer: b) "Divide and conquer" approach

19. "Information hiding" within modules contributes to: a) Increased coupling b)


Reduced cohesion c) Reduced complexity and improved maintainability d) Increased
performance overhead

Answer: c) Reduced complexity and improved maintainability

20. Modularity is essential for managing complexity in: a) Only small-scale software
projects b) Only large-scale software projects c) Both small and large-scale software
projects, but more critical for large projects d) Primarily hardware design, not software
design

Answer: c) Both small and large-scale software projects, but more critical for large
projects

Cohesion
21. Cohesion in software design refers to: a) The degree of interdependence between
modules b) The degree to which elements within a module are functionally related c) The
size and complexity of a module d) The performance efficiency of a module

Answer: b) The degree to which elements within a module are functionally related

22. High cohesion is generally desirable because it leads to: a) Modules that are difficult
to understand and maintain b) Modules that are focused, single-purpose, and easier to
reuse and maintain c) Modules with many unrelated responsibilities d) Modules that are
tightly coupled with other modules

Answer: b) Modules that are focused, single-purpose, and easier to reuse and maintain

23. "Functional cohesion" is considered the: a) Weakest type of cohesion b) Strongest and
most desirable type of cohesion c) Most common type of cohesion in practice d) Least
important type of cohesion

Answer: b) Strongest and most desirable type of cohesion

24. "Logical cohesion" occurs when: a) Module elements are grouped because they
perform similar functions logically, but are not related functionally b) Module elements
are grouped because they are executed in sequence c) Module elements are grouped
because they access the same data d) Module elements are grouped because they are
located in the same physical memory location

Answer: a) Module elements are grouped because they perform similar functions
logically, but are not related functionally

25. "Sequential cohesion" means that: a) Module elements are grouped because the output
of one element serves as input to the next b) Module elements are grouped because they
are executed in parallel c) Module elements are grouped because they perform the same
function repeatedly d) Module elements are grouped because they are logically related

Answer: a) Module elements are grouped because the output of one element serves as
input to the next

26. "Communicational cohesion" (or informational cohesion) occurs when: a) Module


elements are grouped because they communicate frequently with each other b) Module
elements are grouped because they operate on the same input or output data c) Module
elements are grouped because they are logically related d) Module elements are grouped
because they are executed in sequence

Answer: b) Module elements are grouped because they operate on the same input or
output data
27. "Procedural cohesion" is characterized by: a) Module elements grouped based on the
order of procedural steps in a task, even if functionally unrelated b) Module elements
grouped because they perform similar functions c) Module elements grouped because
they operate on the same data d) Module elements grouped because they are logically
related

Answer: a) Module elements grouped based on the order of procedural steps in a task,
even if functionally unrelated

28. "Temporal cohesion" occurs when: a) Module elements are grouped because they are
executed at the same time b) Module elements are grouped because they are logically
related c) Module elements are grouped because they operate on the same data d) Module
elements are grouped because they are executed in sequence

Answer: a) Module elements are grouped because they are executed at the same time

29. "Coincidental cohesion" is the: a) Strongest type of cohesion b) Weakest and least
desirable type of cohesion, where elements are unrelated c) Most common type of
cohesion in practice d) Most efficient type of cohesion in terms of performance

Answer: b) Weakest and least desirable type of cohesion, where elements are unrelated

30. Aiming for high cohesion in module design helps in: a) Increasing coupling between
modules b) Reducing module size and complexity c) Making modules more general-
purpose and reusable d) Making modules harder to understand and maintain

Answer: b) Reducing module size and complexity

Coupling and Layering

31. Coupling in software design refers to: a) The degree of cohesion within a module b)
The degree of interdependence and interconnections between modules c) The size and
complexity of modules d) The performance of interactions between modules

Answer: b) The degree of interdependence and interconnections between modules

32. Low coupling is generally desirable because it leads to: a) Systems that are harder to
change and maintain b) Systems where changes in one module are less likely to affect
others c) Modules that are less reusable d) Modules with unclear interfaces

Answer: b) Systems where changes in one module are less likely to affect others

33. "Data coupling" is the: a) Tightest form of coupling b) Loosest and most desirable form
of coupling c) Most complex form of coupling d) Least common form of coupling

Answer: b) Loosest and most desirable form of coupling


34. In "data coupling," modules interact by passing: a) Control flags or switches b)
Complex data structures c) Simple data parameters d) Shared global data

Answer: c) Simple data parameters

35. "Control coupling" occurs when: a) Modules share and modify the same global data b)
One module passes control flags or switches to another module, influencing its execution
logic c) Modules interact through well-defined interfaces and data parameters d) Modules
are grouped based on temporal relationships

Answer: b) One module passes control flags or switches to another module, influencing
its execution logic

36. "Common coupling" (or global coupling) is characterized by: a) Modules interacting
through well-defined interfaces b) Modules sharing and modifying global data c)
Modules passing data parameters to each other d) Modules being logically related but
functionally independent

Answer: b) Modules sharing and modifying global data

37. "Content coupling" (or pathological coupling) is the: a) Loosest form of coupling b)
Tightest and most undesirable form of coupling, where one module directly modifies the
internal data or control flow of another c) Most common form of coupling d) Most
efficient form of coupling

Answer: b) Tightest and most undesirable form of coupling, where one module directly
modifies the internal data or control flow of another

38. "Stamp coupling" (or data-structure coupling) involves modules passing: a) Simple
data parameters b) Control flags c) Complex data structures, but only using parts of the
structure d) Shared global data

Answer: c) Complex data structures, but only using parts of the structure

39. Layered architecture promotes: a) High coupling between layers b) Low cohesion
within layers c) Organization of the system into hierarchical layers with well-defined
responsibilities and interfaces d) Direct communication between all modules in the
system

Answer: c) Organization of the system into hierarchical layers with well-defined


responsibilities and interfaces

40. In a layered architecture, a layer typically interacts with: a) Only layers above it b)
Only layers below it c) Primarily the layer immediately below it and potentially layers
above it d) Any layer in the system
Answer: c) Primarily the layer immediately below it and potentially layers above it

Function-Oriented Software Design

41. Function-oriented software design primarily focuses on: a) Objects and their
interactions b) Data structures and algorithms c) Decomposing the system into functions
or processes d) Events and state transitions

Answer: c) Decomposing the system into functions or processes

42. In function-oriented design, the system is viewed as a set of: a) Interacting objects b)
Sequential steps or procedures c) Data entities and relationships d) Events and responses

Answer: b) Sequential steps or procedures

43. Data Flow Diagrams (DFDs) are a key modeling tool in: a) Object-oriented design b)
Function-oriented design c) Layered architecture d) Microservices architecture

Answer: b) Function-oriented design

44. DFDs primarily represent: a) The structure of data in the system b) The flow of data
between processes and data stores c) The relationships between entities d) The sequence
of operations in a process

Answer: b) The flow of data between processes and data stores

45. A "process" in a DFD represents: a) A data store or database b) A transformation of


data c) An external entity interacting with the system d) A data flow path

Answer: b) A transformation of data

46. A "data store" in a DFD represents: a) A process that transforms data b) A repository
for data at rest c) An external entity d) A data flow path

Answer: b) A repository for data at rest

47. An "external entity" in a DFD represents: a) A process within the system b) A data
store within the system c) A source or sink of data outside the system boundary d) A data
flow path within the system

Answer: c) A source or sink of data outside the system boundary

48. Structure charts are used in function-oriented design to represent: a) Data flow
within the system b) Hierarchical organization and control flow of modules c) Data
structures and relationships d) User interactions with the system
Answer: b) Hierarchical organization and control flow of modules

49. A structure chart primarily shows: a) Data transformations b) Module invocation


hierarchy and parameters passed between modules c) Data entities and attributes d) Event
sequences and state changes

Answer: b) Module invocation hierarchy and parameters passed between modules

50. Function-oriented design is well-suited for systems where: a) Data structures are
complex and dynamic b) Functionality is clearly defined and data is relatively stable c)
Object interactions are the primary focus d) Event-driven processing is dominant

Answer: b) Functionality is clearly defined and data is relatively stable

Data Flow Diagram and Structure Chart

51. In a DFD, a circle or bubble typically represents a: a) Data store b) Process c)


External entity d) Data flow

Answer: b) Process

52. In a DFD, a rectangle or square typically represents a: a) Process b) Data store c)


External entity d) Data flow

Answer: c) External entity

53. In a DFD, parallel lines or an open-ended rectangle typically represent a: a) Process


b) External entity c) Data store d) Data flow

Answer: c) Data store

54. In a DFD, an arrow typically represents a: a) Process b) External entity c) Data store
d) Data flow

Answer: d) Data flow

55. Level 0 DFD (context diagram) shows: a) Detailed processes within the system b) The
system as a single process and its interactions with external entities c) Data stores within
the system d) Control flow between modules

Answer: b) The system as a single process and its interactions with external entities

56. Level 1 DFD decomposes: a) Data stores into smaller components b) External entities
into internal processes c) The context diagram's single process into major sub-processes
d) Data flows into control flows
Answer: c) The context diagram's single process into major sub-processes

57. Structure charts are read from: a) Left to right b) Right to left c) Top to bottom,
showing hierarchical relationships d) Bottom to top, showing data flow

Answer: c) Top to bottom, showing hierarchical relationships

58. In a structure chart, a rectangular box represents a: a) Data store b) Module or


function c) Data flow d) External entity

Answer: b) Module or function

59. In a structure chart, an arrow with an open circle at the tail represents: a) Data flow
b) Control flow c) Data parameter passed d) Control parameter passed (flag)

Answer: d) Control parameter passed (flag)

60. In a structure chart, an arrow with a filled circle at the tail represents: a) Control
flow b) Data parameter passed c) Control parameter passed (flag) d) Data store access

Answer: b) Data parameter passed

Microservices Architecture

61. Microservices architecture is characterized by: a) Building a large, monolithic


application b) Developing the system as a suite of small, independent, and loosely
coupled services c) Organizing the system into layers d) Focusing on function
decomposition

Answer: b) Developing the system as a suite of small, independent, and loosely coupled
services

62. Key benefits of microservices architecture include: a) Tighter coupling and increased
complexity b) Improved scalability, resilience, technology diversity, and faster
deployment c) Reduced fault isolation and increased blast radius of failures d)
Centralized data management and monolithic database

Answer: b) Improved scalability, resilience, technology diversity, and faster deployment

63. Each microservice typically: a) Shares a common database with other microservices b)
Has its own independent database or data store c) Relies on shared memory for
communication d) Is deployed as a single monolithic unit

Answer: b) Has its own independent database or data store


64. Communication between microservices typically occurs through: a) Shared memory
b) Direct database access c) Lightweight protocols like REST or gRPC d) Tight coupling
and direct function calls

Answer: c) Lightweight protocols like REST or gRPC

65. "Service discovery" in microservices architecture is the process of: a) Discovering


new business requirements b) Automatically locating and communicating with available
service instances c) Discovering and fixing bugs in microservices d) Discovering new
technologies for microservices development

Answer: b) Automatically locating and communicating with available service instances

66. "API Gateway" in microservices architecture acts as a: a) Database for microservices


b) Load balancer for microservices c) Single entry point for clients to access multiple
microservices d) Service registry for microservices

Answer: c) Single entry point for clients to access multiple microservices

67. "Containerization" (e.g., using Docker) is often used in microservices architecture


to: a) Increase coupling between services b) Isolate and package microservices with their
dependencies for deployment c) Centralize data management for microservices d) Reduce
the number of microservices

Answer: b) Isolate and package microservices with their dependencies for deployment

68. Microservices architecture is BEST suited for: a) Small, simple applications with
limited scalability needs b) Large, complex, and evolving applications requiring
scalability and resilience c) Batch processing systems with fixed functionalities d)
Embedded systems with resource constraints

Answer: b) Large, complex, and evolving applications requiring scalability and


resilience

69. A potential challenge of microservices architecture is: a) Reduced scalability and


resilience b) Increased complexity in distributed system management, monitoring, and
testing c) Technology lock-in and limited diversity d) Slower deployment cycles

Answer: b) Increased complexity in distributed system management, monitoring, and


testing

70. "Fault isolation" in microservices means that: a) Faults in one microservice are
automatically fixed by other microservices b) Failures in one microservice are contained
and less likely to cascade to other services c) Microservices are designed to be
completely fault-tolerant and never fail d) Faults are detected and resolved during the
design phase itself
Answer: b) Failures in one microservice are contained and less likely to cascade to other
services

Layered Architecture

71. Layered architecture is also known as: a) Monolithic architecture b) N-tier architecture
c) Microkernel architecture d) Event-driven architecture

Answer: b) N-tier architecture

72. The primary goal of layered architecture is to: a) Improve performance by reducing
communication overhead b) Organize the system into distinct layers with specific
responsibilities to manage complexity c) Increase coupling between modules for better
integration d) Distribute functionalities across multiple services

Answer: b) Organize the system into distinct layers with specific responsibilities to
manage complexity

73. A typical layered architecture often includes layers like: a) Presentation, Business
Logic, Data Access, and Persistence b) Microservices, API Gateway, Service Registry c)
Kernel, Microkernel, and User-level services d) Event producers, Event bus, Event
consumers

Answer: a) Presentation, Business Logic, Data Access, and Persistence

74. The "Presentation layer" in layered architecture is responsible for: a) Data storage
and retrieval b) Implementing core business logic and rules c) Handling user interface
and user interactions d) Managing communication between layers

Answer: c) Handling user interface and user interactions

75. The "Business Logic layer" (or Application layer) is responsible for: a) Data storage
and persistence b) Implementing core business rules, logic, and workflows c) User
interface and presentation logic d) Managing network communication

Answer: b) Implementing core business rules, logic, and workflows

76. The "Data Access layer" (or Persistence layer) is responsible for: a) User interface
and presentation b) Business logic processing c) Interacting with databases or data
storage systems d) Network communication and service discovery

Answer: c) Interacting with databases or data storage systems

77. In a strict layered architecture, a layer can only directly interact with: a) Any other
layer in the system b) Only the layer immediately above it c) Only the layer immediately
below it d) Layers above and below it, but not layers at the same level
Answer: c) Only the layer immediately below it

78. Benefits of layered architecture include: a) Increased coupling and reduced cohesion b)
Easier maintenance, testability, and understandability due to separation of concerns c)
Tighter integration and reduced modularity d) Reduced scalability and resilience

Answer: b) Easier maintenance, testability, and understandability due to separation of


concerns

79. A potential drawback of layered architecture can be: a) Increased complexity in


managing dependencies between layers b) Performance overhead due to multiple layers
of indirection c) Reduced modularity and reusability d) Difficulty in testing individual
components

Answer: b) Performance overhead due to multiple layers of indirection

80. Layered architecture is well-suited for applications where: a) Scalability and


resilience are the primary concerns b) Clear separation of concerns and maintainability
are important c) Rapid development and frequent changes are required d) Event-driven
processing is dominant

Answer: b) Clear separation of concerns and maintainability are important

Serverless Computing

81. Serverless computing is characterized by: a) Managing and provisioning servers


manually b) Developers writing and deploying code without managing servers c)
Running applications on dedicated physical servers d) Building monolithic applications
on large servers

Answer: b) Developers writing and deploying code without managing servers

82. In serverless computing, "functions" (or "FaaS - Function as a Service") are: a)


Long-running, stateful services b) Short-lived, stateless units of code triggered by events
c) Monolithic applications deployed on servers d) Virtual machines running on cloud
infrastructure

Answer: b) Short-lived, stateless units of code triggered by events

83. "Event-driven" architecture is a key aspect of serverless computing because: a)


Functions are typically invoked in a sequential, procedural manner b) Functions are
triggered by events such as HTTP requests, database changes, or messages c) Functions
are always running and waiting for requests d) Functions are managed by a central
control service
Answer: b) Functions are triggered by events such as HTTP requests, database changes,
or messages

84. Key benefits of serverless computing include: a) Increased server management


overhead b) Automatic scaling, pay-per-execution pricing, and reduced operational
complexity c) Limited scalability and resilience d) Vendor lock-in and reduced
portability

Answer: b) Automatic scaling, pay-per-execution pricing, and reduced operational


complexity

85. "Statelessness" of serverless functions means that: a) Functions cannot process data b)
Functions do not maintain state between invocations c) Functions are not reliable and
may fail frequently d) Functions are not secure

Answer: b) Functions do not maintain state between invocations

Mixed Topics and University Level Complexity

86. Which design principle is MOST directly violated by "content coupling"? a)


Modularity b) Information Hiding c) Loose Coupling d) High Cohesion

Answer: c) Loose Coupling

87. In a system with "stamp coupling," if the structure of the complex data being
passed between modules changes, what is the likely impact? a) Only the module
sending the data needs to be changed b) Only the module receiving the data needs to be
changed c) Both the sending and receiving modules, and potentially others using the
same data structure, may need to be changed d) No modules will be affected as stamp
coupling is a loose form of coupling

Answer: c) Both the sending and receiving modules, and potentially others using the
same data structure, may need to be changed

88. Consider a module with "logical cohesion." What is the MOST significant
drawback of such a module in terms of maintenance and reuse? a) It is difficult to
understand the module's interface b) It is hard to reuse the module for a specific purpose
as it performs multiple, loosely related functions c) It is prone to performance bottlenecks
due to its complexity d) It is difficult to test due to its large size

Answer: b) It is hard to reuse the module for a specific purpose as it performs multiple,
loosely related functions

89. In layered architecture, "layer hopping" (skipping layers) is generally discouraged


because it: a) Improves performance by reducing overhead b) Simplifies the architecture
and reduces complexity c) Violates the principle of layer abstraction and increases
coupling d) Enhances security by limiting access between layers

Answer: c) Violates the principle of layer abstraction and increases coupling

90. When designing a microservices-based system, what is a key consideration


regarding data management compared to a monolithic application? a) Centralized
database is essential for data consistency b) Data consistency across services becomes
more challenging and requires strategies like eventual consistency c) Data management
complexity is reduced due to service independence d) Data is automatically replicated
across all microservices for redundancy

Answer: b) Data consistency across services becomes more challenging and requires
strategies like eventual consistency

91. In serverless computing, "cold start" refers to: a) The initial deployment of serverless
functions b) The delay experienced when a serverless function is invoked for the first
time or after a period of inactivity c) The process of scaling down serverless functions
during periods of low demand d) The process of updating serverless function code

Answer: b) The delay experienced when a serverless function is invoked for the first
time or after a period of inactivity

92. Which of the following architectural styles is MOST suitable for building a complex
e-commerce platform requiring high scalability, resilience, and independent
deployments of different functionalities like product catalog, order processing, and
payment gateway? a) Monolithic architecture b) Layered architecture c) Microservices
architecture d) Function-oriented architecture

Answer: c) Microservices architecture

93. For a simple, internal utility application with well-defined functionalities and
minimal scalability requirements, which architecture might be a reasonable choice
to minimize development and operational overhead? a) Microservices architecture b)
Layered architecture c) Monolithic architecture d) Serverless architecture

Answer: c) Monolithic architecture

94. In function-oriented design, what is the PRIMARY concern when decomposing a


system into functions? a) Identifying objects and their relationships b) Defining data
structures and entities c) Breaking down the system into sequential processes and data
transformations d) Modeling user interactions and use cases

Answer: c) Breaking down the system into sequential processes and data transformations
95. What is a potential disadvantage of using structure charts for designing large and
complex systems? a) They are not suitable for representing data flow b) They can
become very large and difficult to manage for complex systems c) They do not support
modular design principles d) They are primarily focused on object-oriented systems

Answer: b) They can become very large and difficult to manage for complex systems

Scenario-Based MCQs

96. A development team is tasked with redesigning a legacy monolithic application to


improve its scalability and maintainability. They decide to adopt a microservices
architecture. What is the MOST critical initial step they should take? a) Immediately
start rewriting the entire application as microservices b) Identify clear service boundaries
based on business capabilities and domain decomposition c) Choose the latest
microservices framework and technologies d) Set up a centralized database for all
microservices to share

Answer: b) Identify clear service boundaries based on business capabilities and domain
decomposition

97. A web application built using layered architecture is experiencing performance


issues due to excessive data access operations from the business logic layer. What
design pattern or architectural improvement could BEST address this? a) Implement
a microservices architecture b) Introduce caching mechanisms in the data access layer c)
Increase coupling between layers to reduce communication overhead d) Remove the data
access layer to simplify the architecture

Answer: b) Introduce caching mechanisms in the data access layer

98. A startup is building a new mobile backend using serverless computing. They expect
highly variable traffic patterns with occasional spikes. What is the MOST
significant advantage of serverless computing in this scenario? a) Lower upfront
infrastructure costs and automatic scaling based on demand b) Full control over server
infrastructure and operating system c) Easier management of stateful data within
serverless functions d) Reduced vendor lock-in compared to traditional cloud services

Answer: a) Lower upfront infrastructure costs and automatic scaling based on demand

99. A software module is responsible for validating user input, formatting data for
storage, and logging errors. Which type of cohesion does this module MOST likely
exhibit? a) Functional cohesion b) Sequential cohesion c) Logical cohesion d)
Coincidental cohesion

Answer: c) Logical cohesion (performing logically similar but functionally distinct tasks)
100. A system is designed with high coupling between modules. What is the
MOST likely long-term consequence for the system's evolution and maintenance? a)
Faster development and deployment of new features b) Easier to understand and modify
individual modules independently c) Increased complexity in making changes and higher
risk of introducing ripple effects and bugs d) Improved system performance due to
reduced communication overhead

**Answer:** c) Increased complexity in making changes and higher risk of


introducing ripple effects and bugs

You might also like