Software Engineering & SDLC
Requirements &
Design
Testing & Deployment
OOP & Programming Principles
Agile, Database & Version Control
100

What is the main role of a software engineer?

(Answer can vary): To design, develop, test and maintain software systems that solve real-world problems.

100

What is modularity in software design?

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

100

Can software ever be completely bug-free?

No because it is not possible to guarantee a completely bug-free system.

100

Name one principle of OOP.

(Answers may vary): Inheritance, encapsulation, polymorphism, and abstraction.

100

Name one core value of the Agile Manifesto.

(Answers may vary): Individuals and interactions over processes and tools; Working software over comprehensive documentation; Customer collaboration over contract negotiation; Responding to change over following a plan.

200

True or False: Software engineering is just coding.

False

200

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

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

200

Name the phases of the Software testing Life Cycle (STLC).

Requirement analysis, test planning, test design, test implementation, test execution, defect tracking, and test closure.

200

What does YAGNI stand for in programming principles?

You Aren't Gonna Need It. YAGNI means don't implement features until they are necessary.
200

What is a sprint in Agile methodology?

A time-boxed period during which a Scrum team completes a set of work items or user stories.

300

Name two activities of the SDLC.

Examples can include: Requirements analysis, design, implementation, testing, deployment, and maintenance.

300

In MVC architecture, what does "C" stand for and what is its role?

Controller. Its role is to handle user input, update the model, and decides which view to display.

300

Name three types of software tests.

(Answers may vary): Unit testing, integration testing, system testing, acceptance testing, manual testing.

300

Give an example of separation of concerns in coding.

Dividing a program into modules such as a data access layer, business logic layer, and presentation layer.

300

What is the difference between Git and Github?

Git is a version control system for tracking code changes locally, while Github is a cloud-based platform for hosting Git repositories and collaboration.

400

What is "technical debt" in software engineering?

The cost of extra work caused by choosing an easy or quick solution.

400

What structural vs. behavioral UML diagrams?

Structural diagrams show the static structure of a system and behavioral diagrams show dynamic behavior.

400

What is the difference between manual testing and system testing?

Manual testing is performed by testers without automation tools, while system testing evaluates the complete integrated system against requirements.

400

Explain the difference between inheritance and composition.

Inheritance is an "is-a" relationship, while composition is a "has-a" relationship.

400

Describe the workflow of staging, committing, and pushing code in Git.

"git add" moves changes to the staging area, "git commit" saves them to the local repository, and "git push" uploads them to the remote repository.

500

What factors do you consider when deciding whether to build or buy software?

Cost, time, customization needs, maintenance, and long-term support

500

When refactoring code, what are key factors to consider?

Improving readability, reducing complexity, eliminating duplication, improving maintainability, and preserving functionality.

500

How is software deployment related to testing and implementation?

Deployment is the process of releasing software into production and combines implementation steps with final testing to ensure the system works correctly.

500

What is polymorphism, and why is it useful?

The ability of a different classes to be treated as instances of the same class through a common interface. It's useful because it allows code to be more flexible and reusable.

500

What is a primary key and a foreign key in a database?


A primary key identifies a record in a table. A foreign key is a column that creates a link between two tables by referring to the primary key of another table.

M
e
n
u