This term describes applying engineering principles to software development to produce reliable and efficient programs.
What is Software Engineering
The type of requirement that defines what the system should do.
What is a functional requirement?
UML stands for this.
What is Unified Modeling Language?
STLC stands for this.
What is the Software Testing Life Cycle?
CRUD stands for this.
What is Create, Read, Update, and Delete?
Name the main activities of the SDLC
What are planning, analysis, design, implementation, testing, deployment, and maintenance?
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?
Structural diagrams are also known as this type of diagram.
What are static diagrams?
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)?
Explain the KISS principle.
What is Keep It Simple, Stupid — the idea that systems work best when they’re simple and not overcomplicated?
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?
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?
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?
Define a software defect.
What is a flaw or bug that causes the program to behave unexpectedly or produce incorrect results?
Define technical debt.
What is the future cost of fixing shortcuts or poor coding decisions made for faster delivery?
Name the five main stages of the Software Development Life Cycle in order.
What are planning, analysis, design, implementation, and testing/deployment?
Give an example of a good architecture design principle.
What is high cohesion and low coupling, which improve maintainability and scalability?
Explain the client-server model.
What is a model where a client sends requests to a server, which processes them and sends back responses?
Name the main types of software testing.
What are unit testing, integration testing, system testing, acceptance testing, manual testing, and regression testing?
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?
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)?
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?
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?
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?
List examples of clean code principles.
What are YAGNI (You Aren’t Gonna Need It), separation of concerns, single responsibility, and documenting your code?