Software Engineering
Design and
Testing
Agile
Practices
Databases, APIs
and Git
UML and
Architectures
100

The systematic application of engineering principles to designing, developing, testing, and maintaining software.

What is software engineering?

100

The four basic database operations abbreviated by this acronym: Create, Read, Update, and Delete.

What is CRUD?

100

The principle meaning "You Aren't Gonna Need It," which discourages implementing features before they are needed.

What is YAGNI?

100

The acronym for Application Programming Interface.

What is an API?

100

The acronym for Unified Modeling Language.

What is UML?

200

The process that includes requirements analysis, design, implementation, testing, deployment, and maintenance.

What is the Software Development Life Cycle (SDLC)?

200

The process of checking whether software is being built correctly according to specifications, as opposed to checking whether it meets users' needs.

What is verification?

200

A fixed-length period in Scrum during which a team works toward a defined goal and produces a usable increment.

What is a sprint?

200

The version control system used to track changes to code, as opposed to the online platform commonly used to host repositories and collaborate.

What is Git?

200

The type of UML diagram that represents a system's static structure, rather than its behavior or interactions.

What is a structural diagram?

300

The requirements framework whose letters stand for World, Requirements, Specification, Program, and Machine.

What is WRSPM?

300

The type of testing that checks individual components or functions in isolation.

What is unit testing?

300

The Scrum role responsible for helping the team follow Scrum, facilitating the process, and helping remove obstacles.

What is the Scrum Master?

300

The SQL command used to retrieve data from a database table.

What is SELECT?

300

The software design principle of breaking a system into smaller, manageable, separate modules.

What is modularity?

400

In a banking application, transferring money is an example of this type of requirement, while encrypting financial information is an example of a non-functional requirement.

What is a functional requirement?

400

The type of testing used when a login module works independently but fails when connected to the database module.

What is integration testing? 

400

The accumulated cost of shortcuts or postponed improvements that make future software changes harder.

What is technical debt?

400

The type of key in an Enrollments table that references a key in a Students table.

What is a foreign key?

400

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

What is MVC (Model-View-Controller)?

500

The reason software engineering involves more than simply writing code, including planning, design, testing, collaboration, deployment, and maintenance.

What is the process of developing and maintaining reliable software?

500

The design approach that combines objects to create a "has-a" relationship, often reducing tight coupling compared with inheritance.

What is composition?

500

The workflow management method that visualizes work, limits work in progress, and helps identify bottlenecks.

What is Kanban?

500

The Git command that stages changes in the current directory and its subdirectories for the next commit.

What is git add .?

500

The architecture pattern that divides an application into independently deployable services, each responsible for a specific business function.

What is microservices architecture?