Git, Github, and UML

Agile Software Development

Software Architecture

Design
Software 101

100

What is Git?

A distributed version control system that tracks changes in code, allowing developers to collaborate and revert to previous versions.

100

What is Agile software development?

Agile is an iterative and incremental approach to software development that focuses on flexibility, collaboration, and delivering working software in short cycles called sprints, rather than following a rigid, linear plan.

100

What is MVC?

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

100

(True or false?)

Good software should be able to accommodate change

True

100

(True or false?) A foreign key is required in every table in MySQL.

False

200

What is a branch in Git?

A separate line of development that allows you to work on features or fixes without affecting the main codebase.

200

What are the 4 core values of the Agile Manifesto?

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

What is Modularity?

A design principle that breaks a system into small, self-contained components that can be developed and tested independently.

200

"In a Layered architecture, what is the key rule about how layers communicate with each other?"



Answer: Each layer can only communicate with the layer directly below it, ensuring separation of concerns and preventing tightly coupled code.

200

What action does the git commit command perform?

As long as all the previous steps have been done correctly, (git add, changing to the correct repository) git commit will commit the new version of the file(s) to the repo.

300

What is the purpose of a commit?

A commit saves a snapshot of your changes to the repository's history with a message describing what was changed.



300

What is a Sprint in Agile?

A Sprint is a fixed, short time period (typically 1–4 weeks) in which a development team works to complete a set of defined tasks or user stories, resulting in a potentially shippable product increment at the end.

300

What are non-functional requirements?

Requirements that define how well a system performs, including qualities like security, scalability, and reliability.

300

What is intellectual distance?

How closely the structure of the system matches the real-world problem it is solving.

300

What is a remote repository in github?

A remote repository contains all the files for a project and is publicly accessible for teammates to collaborate on.

400

What is UML?

Unified Modeling Language — a standardized way to visually represent the design and structure of a software system.

400

What is the difference between Agile and Waterfall?

Waterfall is a linear, sequential approach where each phase (requirements, design, development, testing) must be completed before the next begins, making it rigid and difficult to accommodate change. Agile is iterative and flexible, allowing requirements and solutions to evolve throughout the development process.

400

What are microservices?

An architecture pattern that structures an application as a collection of small, independent services that communicate via APIs.

400

What is high level design?

This describes the overall architecture of the project, and how the major pieces of the final application will fit and interact at an abstract level. It is also the first step in design.

400

What does API stand for and what does it do?

Application program interface, allows one software application to communicate with another.

500

What is a class diagram?

A structural diagram that shows classes, their attributes, methods, and relationships between them.

500

What are some popular frameworks that implement Agile?

Some popular Agile frameworks include Scrum (which uses sprints, daily standups, and defined roles like Scrum Master and Product Owner), Kanban (which visualizes workflow on a board to manage tasks), and SAFe (Scaled Agile Framework, used for large enterprises).

500

What three outcomes come from good architectural design?

Faster development, reduced idle time, maintainable software.

500

What is low level design?

Low level design explains how the software will work and interact. It what tables the database contains and their relations, the functions, objects, and how the UI will look.

500

3. "What is the SDLC and what are its five core activities?"

Answer: The Software Development Life Cycle (SDLC) is the process of planning, building, and maintaining software. Its five activities are: requirements elicitation, requirements analysis, verification and validation, requirements traceability, and requirements management.

M
e
n
u