Software Engineering Exam Preparation Questions with Topical
Assessments, Past University Examination Papers and Detailed
Step by Step Verified Solutions — 188 Questions and Answers
Already Graded A+ Premium Exam Tested And Verified
Subject Area Software Engineering
Description This exam assesses advanced understanding of software engineering principles,
including design patterns, requirements engineering, software architecture, testing,
and project management. It covers topics from typical graduate-level software
engineering courses and past university examination papers.
Expected Grade A+
Total Questions 188
Duration 3 hours
Learning Outcomes 1. Apply design patterns to solve complex software design problems
2. Analyze and evaluate software architectures for quality attributes
3. Design and implement rigorous testing strategies
4. Manage software projects using agile and plan-driven methodologies
5. Understand and apply formal methods in software verification
Accreditation This examination meets the standards of top US R1 universities (Ivy League,
MIT, Stanford, etc.) for graduate-level software engineering courses.
Page 1
,1. Consider a system that must handle concurrent updates to a shared data
structure. Which synchronization mechanism ensures that no thread can read a
value that is in an inconsistent state due to an incomplete write, while also preventing
deadlock?
Answer: Implementing a readers-writer lock where readers acquire a shared lock
and writers acquire an exclusive lock
A readers-writer lock allows concurrent reads while ensuring exclusive access for
writes, preventing inconsistent reads. Option A can cause performance bottlenecks but
no deadlock. Option C may lead to inconsistent states if multiple fields are updated.
Option D can cause busy-waiting and potential deadlock if not carefully managed.
2. In the context of requirements engineering, which of the following best describes a
'non-functional requirement' that is often overlooked but critical for system success?
Answer: The system shall process 1000 transactions per second under peak load
Non-functional requirements specify quality attributes like performance. Option B is a
performance requirement (throughput). Options A and D are functional requirements.
Option C is a design constraint, not a non-functional requirement.
3. A software architect is designing a system for a large e-commerce platform that
must handle varying load patterns. The architect decides to use a microservices
architecture with an API gateway. Which of the following is a primary advantage of
this approach over a monolithic architecture?
Answer: Independent deployability and scalability of individual services
Microservices allow each service to be deployed and scaled independently, which is a
key advantage. Option A is incorrect because microservices communicate over network,
not shared memory. Option B is harder in microservices. Option D is false as network
latency is introduced.
4. Which of the following design patterns is most appropriate for implementing a
system that needs to support multiple algorithms for compression, and allows the
client to choose one at runtime without modifying the client code?
Answer: Strategy Pattern
The Strategy pattern defines a family of algorithms and makes them interchangeable at
runtime. The Decorator adds responsibilities dynamically. Factory Method creates
objects. Observer notifies dependents. Thus, Strategy is correct.
Page 2
,5. In software testing, which of the following is a key difference between integration
testing and system testing?
Answer: Integration testing focuses on interactions between modules; system
testing focuses on the entire system's behavior
Integration testing verifies interfaces between modules, while system testing validates
the complete integrated system. Option A is not strictly true. Option C is partially true
but not the key difference. Option D is not always the case.
6. A software project team is using Scrum. During a sprint, a stakeholder requests a
new feature that was not in the product backlog. What is the correct course of action
according to Scrum?
Answer: The product owner informs the stakeholder that the request will be
considered for a future sprint
In Scrum, the sprint backlog is frozen during the sprint. New requests should be added
to the product backlog for future sprints. The product owner manages the backlog.
Options A, C, and D violate sprint commitment.
7. Which of the following metrics is most suitable for measuring the maintainability
of a software system?
Answer: Cyclomatic complexity
Cyclomatic complexity measures the number of linearly independent paths, indicating
how difficult code is to test and maintain. LOC is a size metric, defect density measures
quality, and MTTF measures reliability.
8. In formal methods, which of the following is a property that can be verified using
model checking?
Answer: The system never enters a deadlock state
Model checking can verify temporal logic properties like safety (e.g., no deadlock).
Termination is undecidable in general, time complexity is not a temporal property, and
user requirements are often informal.
Page 3
, 9. A software team is refactoring a legacy system. Which of the following is a code
smell that indicates a need for refactoring?
Answer: A method has a high cyclomatic complexity due to nested conditionals
High cyclomatic complexity due to nested conditionals is a code smell indicating the
method may be doing too much and is hard to test/maintain. Option A is not a smell;
small methods are good. Option C is minor. Option D suggests interface segregation
violation but not as directly harmful as B.
10. Which of the following best describes the concept of 'separation of concerns' in
software architecture?
Answer: Organizing code into modules that each address a single responsibility
Separation of concerns is about modularizing functionality so that each module
addresses a distinct concern. Layering is one way to achieve it, but the core idea is
modularization with single responsibility. Option C is a different concept. Option D is
organizational.
11. Given a system with a modular architecture where each module has an interface
that exposes operations, which of the following best characterizes the relationship
between module cohesion and coupling when applying the principle of information
hiding?
Answer: Achieving high cohesion within modules typically reduces coupling
because modules with focused responsibilities have simpler interfaces.
High cohesion means a module has a single, well-defined purpose, which leads to
smaller, more focused interfaces. This naturally reduces coupling because modules
depend on fewer, simpler operations. The other options misstate the relationship: high
cohesion reduces coupling (not increases), information hiding supports both high
cohesion and low coupling, and they are not independent.
Page 4
Assessments, Past University Examination Papers and Detailed
Step by Step Verified Solutions — 188 Questions and Answers
Already Graded A+ Premium Exam Tested And Verified
Subject Area Software Engineering
Description This exam assesses advanced understanding of software engineering principles,
including design patterns, requirements engineering, software architecture, testing,
and project management. It covers topics from typical graduate-level software
engineering courses and past university examination papers.
Expected Grade A+
Total Questions 188
Duration 3 hours
Learning Outcomes 1. Apply design patterns to solve complex software design problems
2. Analyze and evaluate software architectures for quality attributes
3. Design and implement rigorous testing strategies
4. Manage software projects using agile and plan-driven methodologies
5. Understand and apply formal methods in software verification
Accreditation This examination meets the standards of top US R1 universities (Ivy League,
MIT, Stanford, etc.) for graduate-level software engineering courses.
Page 1
,1. Consider a system that must handle concurrent updates to a shared data
structure. Which synchronization mechanism ensures that no thread can read a
value that is in an inconsistent state due to an incomplete write, while also preventing
deadlock?
Answer: Implementing a readers-writer lock where readers acquire a shared lock
and writers acquire an exclusive lock
A readers-writer lock allows concurrent reads while ensuring exclusive access for
writes, preventing inconsistent reads. Option A can cause performance bottlenecks but
no deadlock. Option C may lead to inconsistent states if multiple fields are updated.
Option D can cause busy-waiting and potential deadlock if not carefully managed.
2. In the context of requirements engineering, which of the following best describes a
'non-functional requirement' that is often overlooked but critical for system success?
Answer: The system shall process 1000 transactions per second under peak load
Non-functional requirements specify quality attributes like performance. Option B is a
performance requirement (throughput). Options A and D are functional requirements.
Option C is a design constraint, not a non-functional requirement.
3. A software architect is designing a system for a large e-commerce platform that
must handle varying load patterns. The architect decides to use a microservices
architecture with an API gateway. Which of the following is a primary advantage of
this approach over a monolithic architecture?
Answer: Independent deployability and scalability of individual services
Microservices allow each service to be deployed and scaled independently, which is a
key advantage. Option A is incorrect because microservices communicate over network,
not shared memory. Option B is harder in microservices. Option D is false as network
latency is introduced.
4. Which of the following design patterns is most appropriate for implementing a
system that needs to support multiple algorithms for compression, and allows the
client to choose one at runtime without modifying the client code?
Answer: Strategy Pattern
The Strategy pattern defines a family of algorithms and makes them interchangeable at
runtime. The Decorator adds responsibilities dynamically. Factory Method creates
objects. Observer notifies dependents. Thus, Strategy is correct.
Page 2
,5. In software testing, which of the following is a key difference between integration
testing and system testing?
Answer: Integration testing focuses on interactions between modules; system
testing focuses on the entire system's behavior
Integration testing verifies interfaces between modules, while system testing validates
the complete integrated system. Option A is not strictly true. Option C is partially true
but not the key difference. Option D is not always the case.
6. A software project team is using Scrum. During a sprint, a stakeholder requests a
new feature that was not in the product backlog. What is the correct course of action
according to Scrum?
Answer: The product owner informs the stakeholder that the request will be
considered for a future sprint
In Scrum, the sprint backlog is frozen during the sprint. New requests should be added
to the product backlog for future sprints. The product owner manages the backlog.
Options A, C, and D violate sprint commitment.
7. Which of the following metrics is most suitable for measuring the maintainability
of a software system?
Answer: Cyclomatic complexity
Cyclomatic complexity measures the number of linearly independent paths, indicating
how difficult code is to test and maintain. LOC is a size metric, defect density measures
quality, and MTTF measures reliability.
8. In formal methods, which of the following is a property that can be verified using
model checking?
Answer: The system never enters a deadlock state
Model checking can verify temporal logic properties like safety (e.g., no deadlock).
Termination is undecidable in general, time complexity is not a temporal property, and
user requirements are often informal.
Page 3
, 9. A software team is refactoring a legacy system. Which of the following is a code
smell that indicates a need for refactoring?
Answer: A method has a high cyclomatic complexity due to nested conditionals
High cyclomatic complexity due to nested conditionals is a code smell indicating the
method may be doing too much and is hard to test/maintain. Option A is not a smell;
small methods are good. Option C is minor. Option D suggests interface segregation
violation but not as directly harmful as B.
10. Which of the following best describes the concept of 'separation of concerns' in
software architecture?
Answer: Organizing code into modules that each address a single responsibility
Separation of concerns is about modularizing functionality so that each module
addresses a distinct concern. Layering is one way to achieve it, but the core idea is
modularization with single responsibility. Option C is a different concept. Option D is
organizational.
11. Given a system with a modular architecture where each module has an interface
that exposes operations, which of the following best characterizes the relationship
between module cohesion and coupling when applying the principle of information
hiding?
Answer: Achieving high cohesion within modules typically reduces coupling
because modules with focused responsibilities have simpler interfaces.
High cohesion means a module has a single, well-defined purpose, which leads to
smaller, more focused interfaces. This naturally reduces coupling because modules
depend on fewer, simpler operations. The other options misstate the relationship: high
cohesion reduces coupling (not increases), information hiding supports both high
cohesion and low coupling, and they are not independent.
Page 4