ENSF 461 MIDTERM PRACTICE EXAMINATION 2026
QUESTIONS WITH ANSWERS GRADED A+
● Software Engineering. Answer: Disciplined application of engineering principles to
software development
● Functional Requirements. Answer: Statements describing what a system must do
● Non-Functional Requirements. Answer: Constraints on system quality attributes such as
performance and security
● Use Case. Answer: Description of system interactions from a user's perspective to achieve
a goal
● User Story. Answer: Agile requirement format stating who wants what and why
● Backlog. Answer: Prioritized list of features and tasks in an agile project
● Sprint. Answer: Fixed-length iteration in Scrum typically lasting one to four weeks
● Scrum. Answer: Agile framework with defined roles, events, and artifacts
● Kanban. Answer: Agile method visualizing work flow to limit work in progress
● UML. Answer: Unified Modeling Language providing standard notations for software design
● Class Diagram. Answer: UML diagram showing classes, attributes, methods, and
relationships
● Sequence Diagram. Answer: UML diagram showing object interactions over time
● Activity Diagram. Answer: UML diagram showing workflow or business logic
● State Machine Diagram. Answer: UML diagram showing states and transitions of an
object
● Association. Answer: Relationship indicating objects interact or are connected
● Aggregation. Answer: Weak whole-part relationship where parts can exist independently
, ● Composition. Answer: Strong whole-part relationship where parts cannot exist without the
whole
● Inheritance. Answer: IS-A relationship where subclass inherits from superclass
● Interface. Answer: Contract specifying methods a class must implement
● Encapsulation. Answer: Hiding internal implementation details behind a well-defined
interface
● Cohesion. Answer: Degree to which elements within a module belong together; high is
preferred
● Coupling. Answer: Degree of interdependence between modules; low is preferred
● Single Responsibility Principle. Answer: Each class should have only one reason to
change
● Open Closed Principle. Answer: Software entities should be open for extension but closed
for modification
● Liskov Substitution Principle. Answer: Subtypes must be substitutable for their base
types
● Dependency Inversion Principle. Answer: High-level modules should not depend on
low-level modules
● Design Pattern. Answer: Reusable solution to a commonly occurring design problem
● Singleton Pattern. Answer: Ensures a class has only one instance and provides global
access
● Observer Pattern. Answer: Defines one-to-many dependency so dependents update
automatically
● Strategy Pattern. Answer: Defines family of algorithms, encapsulates each one, and
makes them interchangeable
● Model View Controller. Answer: Architectural pattern separating data, presentation, and
control logic
● Layered Architecture. Answer: Organizes software into horizontal layers each with
specific responsibilities
QUESTIONS WITH ANSWERS GRADED A+
● Software Engineering. Answer: Disciplined application of engineering principles to
software development
● Functional Requirements. Answer: Statements describing what a system must do
● Non-Functional Requirements. Answer: Constraints on system quality attributes such as
performance and security
● Use Case. Answer: Description of system interactions from a user's perspective to achieve
a goal
● User Story. Answer: Agile requirement format stating who wants what and why
● Backlog. Answer: Prioritized list of features and tasks in an agile project
● Sprint. Answer: Fixed-length iteration in Scrum typically lasting one to four weeks
● Scrum. Answer: Agile framework with defined roles, events, and artifacts
● Kanban. Answer: Agile method visualizing work flow to limit work in progress
● UML. Answer: Unified Modeling Language providing standard notations for software design
● Class Diagram. Answer: UML diagram showing classes, attributes, methods, and
relationships
● Sequence Diagram. Answer: UML diagram showing object interactions over time
● Activity Diagram. Answer: UML diagram showing workflow or business logic
● State Machine Diagram. Answer: UML diagram showing states and transitions of an
object
● Association. Answer: Relationship indicating objects interact or are connected
● Aggregation. Answer: Weak whole-part relationship where parts can exist independently
, ● Composition. Answer: Strong whole-part relationship where parts cannot exist without the
whole
● Inheritance. Answer: IS-A relationship where subclass inherits from superclass
● Interface. Answer: Contract specifying methods a class must implement
● Encapsulation. Answer: Hiding internal implementation details behind a well-defined
interface
● Cohesion. Answer: Degree to which elements within a module belong together; high is
preferred
● Coupling. Answer: Degree of interdependence between modules; low is preferred
● Single Responsibility Principle. Answer: Each class should have only one reason to
change
● Open Closed Principle. Answer: Software entities should be open for extension but closed
for modification
● Liskov Substitution Principle. Answer: Subtypes must be substitutable for their base
types
● Dependency Inversion Principle. Answer: High-level modules should not depend on
low-level modules
● Design Pattern. Answer: Reusable solution to a commonly occurring design problem
● Singleton Pattern. Answer: Ensures a class has only one instance and provides global
access
● Observer Pattern. Answer: Defines one-to-many dependency so dependents update
automatically
● Strategy Pattern. Answer: Defines family of algorithms, encapsulates each one, and
makes them interchangeable
● Model View Controller. Answer: Architectural pattern separating data, presentation, and
control logic
● Layered Architecture. Answer: Organizes software into horizontal layers each with
specific responsibilities