Software Engineering
Software Design & Architecture
Software Testing & Development
OOP & Agile Development
Databases, APIs& Version Control
100

What is the purpose of software engineering?

To design, develop, test, and maintain software in a systematic, disciplined, and measurable manner.

100

What is modularity in software design?

The practice of dividing a system into separate, independent modules that can be developed and maintained individually.

100

What are the STLC phases?

Requirement analysis, test planning, test case development, environment setup, test execution, test closure.

100

What are the four pillars of OOP?

Encapsulation, Inheritance, Polymorphism, and Abstraction.

100

What is a DBMS? and what is it used for?

A Database Management System (DBMS) is software used to store, retrieve, and manage data in databases.

200

What is the SDLC, and name at least two of its activities?  

The Software Development Life Cycle (SDLC) is a process for planning, creating, testing, and deploying software.

 Activities include requirements analysis, design, implementation, testing, deployment, and maintenance.

200

Name two characteristics of “good” architecture design.

All characteristics :

Scalability, maintainability, performance efficiency, modularity, and flexibility.

200

What is the difference between verification and validation in software testing?

Verification checks if the software meets requirements (e.g., code reviews, static testing). Validation ensures the software works as expected (e.g., functional testing, UAT).

200

Explain the difference between inheritance and composition.

Inheritance: One class derives from another. Composition: A class contains other classes as attributes (preferred for flexibility).

200

What SQL command is used to retrieve data from a database?

SELECT

300

What is the difference between functional and non-functional requirements?

Functional requirements define what the system should do 

(e.g., login functionality).

on-functional requirements define system qualities 

(e.g., performance, security, scalability).

300

What is the difference between structural and behavioral UML diagrams?

Structural diagrams show the static structure of a system (e.g., Class Diagrams), while behavioral diagrams represent interactions and state changes over time (e.g., Sequence Diagrams, Activity Diagrams).

300

Define unit testing, system testing, and integration testing.

Unit Testing: Testing individual components. 

System Testing: Testing the entire system. 

Integration Testing: Ensuring components work together.

300

What does YAGNI stand for, and why is it important?

"You Ain't Gonna Need It" – A principle that discourages adding functionality until necessary to avoid complexity.

300

Explain the difference between a primary key and a foreign key.

Primary Key: Uniquely identifies a record. 

Foreign Key: A reference to a primary key in another table.

400

What does WRSPM stand for in requirements engineering?World, Reference, System, Program, Machine – a model for understanding software system

World, Reference, System, Program, Machine.

It is a model for understanding software system requirements.

400

Name and describe the three types of software architecture patterns (Layered, Microservices, Client-server).

Layered: Organized in layers (e.g., presentation, business, data). Microservices: Independent services communicating via APIs. Client-server: Clients request services from centralized servers.

400

What is technical debt, and why is it important to manage it?

Technical debt is the cost of shortcuts in development that lead to future rework. Managing it reduces maintenance costs and improves system quality.

400

What are the 4 core values of the Agile Manifesto?

1) Individuals and interactions over processes and tools

 2) Working software over comprehensive documentation

 3) Customer collaboration over contract negotiation

 4) Responding to change over following a plan.

400

What is the purpose of an API in software development?

An API (Application Programming Interface) allows different software systems to communicate and share data.

500

Explain the difference between building vs. buying software.

Building software means developing a custom solution in-house, while buying software means purchasing an existing solution from a vendor.

500

Explain the difference between the MVC and client-server architecture patterns.

MVC (Model-View-Controller) separates data (Model), UI (View), and logic (Controller). The client-server pattern has clients requesting resources from a central server.

500

What are some key considerations when refactoring code?

Improve readability, reduce complexity, remove redundant code, enhance maintainability, and follow best practices (e.g., DRY, KISS, SOLID).

500

Define the roles of a Scrum Master and Product Owner.

Scrum Master: Facilitates the Scrum process and removes obstacles. 

Product Owner: Defines project vision and prioritizes backlog.

500

What is the difference between Git and GitHub?

Git: A version control system for tracking changes. 

GitHub: A cloud-based platform for hosting Git repositories.