Software Engineering Basics
SDLC & Requirements
Architecture & Design
Testing & Deployment
OOP & Programming Principles
100

This field involves designing, building, testing, and maintaining software systems.

What is software engineering?

100

Requirements that describe what the system should do.

What are functional requirements?

100

This architecture pattern separates an application into Model, View, and Controller.

What is MVC?

100

Testing individual components of a program.

What is unit testing?
100

The OOP concept where a class inherits properties from another class.

What is inheritance?

200

A professional responsible for developing, testing, and maintaining software systems.

What is a software engineer?

200

Requirements that describe system performance, usability, and reliability.

What are non-functional requirements?

200

This architecture divides application into horizontal layers like presentation, business logic, and data. 

What is layered architecture?

200

Testing how multiple components work together.

What is integration testing?

200

The ability for objects to take many forms.

What is polymorphism?

300

The process used to plan, create, test, and deploy software. 

What is the Software Development Life Cycle (SDLC)?

300

This acronym stands for Write, Read, Share, Publish, and Manage requirements.

What is WRSPM?

300

This architecture style builds application as small independent services.

What are microservices?

300

Testing the entire system as a whole

What is system testing?
300

Hiding internal details and only exposing necessary parts.

What is encapsulation?

400

These are the major activities of the SDLC.

What are planning, requirements, design, implementation, testing, and deployment?

400

This principle ensures each component of a system focuses on a specific concern.

What is separation of concerns?

400

In UML, diagrams that show the structure of a system.

What are structural diagrams?

400

Testing performed by the end user to verify the system meets requirements.

What is acceptance testing?

400

Representing complex systems with simplified models.

What is abstraction?

500

This occurs when quick solutions are used instead of longterm ones, causing future development costs.

What is technical debt?

500

This design principle states that each module should have only one reason to change.

What is the Single Responsibility Principle?

500

Diagrams that show how a system behaves over time.

What are behavioral diagrams?

500

This concept compares whether software meets specifications versus whether it meets user needs.

What is verification vs. validation?

500

This principle states that composition is usually preferred over extending classes.

What is composition over inheritance?