Software Engineering Basics
Requirements Engineering & Design
UML & Architecture Patterns
Software Testing
Implementation & Programming Principles
100

This term describes applying engineering principles to software development to produce reliable and efficient programs. 

What is Software Engineering

100

The type of requirement that defines what the system should do.

What is a functional requirement?

100

UML stands for this.

What is Unified Modeling Language?

100

STLC stands for this.

What is the Software Testing Life Cycle?

100

CRUD stands for this.

What is Create, Read, Update, and Delete?

200

Name the main activities of the SDLC

What are planning, analysis, design, implementation, testing, deployment, and maintenance?

200

What does WRSPM stand for, and what does each letter mean?

What is World, Requirements, Specification, Program, and Machine — a model for understanding system boundaries?

200

Structural diagrams are also known as this type of diagram.

What are static diagrams?

200

Explain the difference between verification and validation.

What is verification ensuring the product is built correctly (meets design), and validation ensuring the correct product is built (meets user needs)?

200

Explain the KISS principle.

What is Keep It Simple, Stupid — the idea that systems work best when they’re simple and not overcomplicated?

300

What does a software engineer not do that a computer scientist might?

What is focusing on building, maintaining, and managing software systems instead of studying theoretical computation and algorithms?

300

Define modularity and explain why it’s important.

What is dividing a system into smaller, independent parts to make it easier to maintain, test, and reuse?

300

Define the MVC pattern.

What is Model-View-Controller — where the model manages data, the view handles the UI, and the controller manages user input and logic?

300

Define a software defect.

What is a flaw or bug that causes the program to behave unexpectedly or produce incorrect results?

300

Define technical debt.

What is the future cost of fixing shortcuts or poor coding decisions made for faster delivery?

400

Name the five main stages of the Software Development Life Cycle in order.

What are planning, analysis, design, implementation, and testing/deployment?

400

Give an example of a good architecture design principle.

What is high cohesion and low coupling, which improve maintainability and scalability?

400

Explain the client-server model.

What is a model where a client sends requests to a server, which processes them and sends back responses?

400

Name the main types of software testing.

What are unit testing, integration testing, system testing, acceptance testing, manual testing, and regression testing?

400

Describe refactoring and what to consider when doing it.

What is improving existing code structure without changing its behavior, focusing on readability, duplication, and efficiency?

500

Explain why software engineering is considered both an art and a discipline.

What is combining creative problem solving (art) with structured, rule-based methods and standards (engineering discipline)?

500

Compare layered and microservices architectures.

What is layered architecture organizing code into vertical tiers (UI, business logic, data), while microservices splits an application into small, independent services that communicate via APIs?

500

Difference between a class diagram and a sequence diagram.

What is a class diagram showing static relationships between classes, and a sequence diagram showing dynamic interactions over time?

500

Can software ever be completely bug-free? Explain.

What is no, software can never be 100% bug-free due to complexity and changing environments, but testing minimizes defects?

500

List examples of clean code principles.

What are YAGNI (You Aren’t Gonna Need It), separation of concerns, single responsibility, and documenting your code?