Software Engineering
SDLC & Requirements
Design Principles
Testing & Implementation
Databases & APIs
100

What is the primary role of a software engineer?

A software engineer designs, develops, tests, and maintains software systems.

100

What is the acronym WRSPM used for in software requirements?

WRSPM stands for Who, What, Why, Where, When, and How, which are key elements to consider in requirements engineering.

100

What does "modularity" in software design refer to?

Modularity refers to breaking down a software system into smaller, manageable, and independently testable components.

100

What is unit testing?

Unit testing involves testing individual components of the software to ensure that each part functions correctly.

100

What is a primary key in a relational database?

A primary key is a unique identifier for each record in a database table.

200

What is one key distinction between software engineering and regular programming?

Software engineering involves managing the software development process, including planning, design, testing, and maintenance, while programming mainly focuses on writing code.

200

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

Functional requirements specify what the system should do, while non-functional requirements describe how the system should perform.

200

What is the MVC architectural pattern?

Model-View-Controller (MVC) is a design pattern where the Model represents data, the View displays data, and the Controller handles user input and updates the Model.

200

What is the purpose of system testing?

System testing verifies the entire system’s behavior against specified requirements to ensure that it works as expected.

200

What is the purpose of a foreign key in a database?

A foreign key is a field in one table that uniquely identifies a row of another table, establishing a relationship between the two.

300

Which phase in SDLC involves gathering requirements and understanding the client's needs?

Requirements gathering/Analysis.

300

What phase of SDLC involves transforming the design into actual code?

Implementation phase.

300

What does "Separation of Concerns" mean in software design?

It refers to dividing a software system into distinct sections, each responsible for a separate concern or functionality

300

What is the difference between manual and automated testing?

Manual testing requires human intervention to test the system, while automated testing uses tools to run tests automatically.

300

What is the difference between a JOIN and a SELECT statement in SQL?

A SELECT statement retrieves data from a single table, while a JOIN combines rows from two or more tables based on a related column.

400

What is technical debt in software development?

Technical debt refers to the cost of additional work incurred due to choosing an easy solution now instead of a more optimal solution in the long term.

400

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

Verification checks if the software is being built correctly, while validation checks if the right software is being built.

400

What is "Composition over Inheritance" in Object-Oriented Design?

It means favoring composition (building classes by combining simple objects) rather than inheritance to achieve code reuse.

400

What is the YAGNI principle in software development?

YAGNI stands for "You Aren’t Gonna Need It," which advises against adding features or functionality that are not currently necessary.

400

What does API stand for, and what is its purpose?

API stands for Application Programming Interface, and it allows different software systems to communicate with each other.