1. Intro & Methodologies Flashcards

(38 cards)

1
Q

What is the primary goal of software design?

A

Software design involves problem-solving and planning a software solution.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What are the two main levels of design in software development?

A

Software design includes low-level component and algorithm design, as well as high-level architectural design.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Name three common aspects considered during software design.

A

Common aspects include:
1. requirements gathering
2. object-oriented design
3. design patterns
4. architectural patterns
5. testing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

In software development, who is defined as the “Customer”?

A

The Customer is the individual or entity that requires a computer system to achieve specific business goals, either through direct user interaction or interaction with the environment.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the primary responsibility of a Software Engineer?

A

A Software Engineer’s task is to understand how the intended system needs to interact with the user or its environment to meet the customer’s requirements, and then to design the software-to-be.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is the main role of a Programmer?

A

The Programmer’s task is to implement the software-to-be that has been designed by the software engineer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What does the “Divide and Conquer” strategy entail in solving software problems?

A

It involves identifying logical parts of the system, where each part solves a segment of the problem. This is often done with a domain expert and results in a model of the problem domain.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are “Actors” when trying to understand the problem domain for software design?

A

Actors are agents external to the system that interact with it.
For instance, in an ATM system, actors include the bank customer, the ATM machine, and the bank’s remote datacenter.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are “Concepts/Objects” in the context of understanding a problem domain?

A

Concepts or Objects are agents working inside the system to make it function. These are conceptual parts of the system and can be more challenging to identify than actors.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Define “User stories” in software design.

A

User stories are scenarios for using the system, typically describing how a user will interact with the system to achieve a particular goal.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is a software development methodology?

A

It is the strategy employed to create the software solution.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the three main software development methodologies outlined in the slides?

A

The three main methods are:
1. Waterfall
2. Iterative & Incremental
3. Agile

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Briefly describe the Waterfall methodology.

A

The Waterfall methodology is a linear and sequential approach where development progresses through distinct phases (e.g., Requirements, Design, Implementation, Verification, Maintenance), with each phase being completed before the next one starts. It is unidirectional.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

State one advantage of the Waterfall methodology.

A

It is simple to come up with or easy to manage.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

State one disadvantage of the Waterfall methodology.

A

A working product is only available at the very end; it is difficult to revise plans once set; it carries high risk and uncertainty; it doesn’t readily incorporate feedback; or it’s not suitable for larger systems.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Describe the Iterative and Incremental methodology.

A

This methodology involves creating a Minimum Viable Product (MVP) first, and then incrementally adding to it in cycles or iterations. These increments are defined by the amount of work to be done.

17
Q

What does MVP stand for and what is it in Iterative and Incremental development?

A

MVP stands for Minimum Viable Product. It is a basic, usable version of the product that is created early in the development process.

18
Q

List one advantage of the Iterative and Incremental methodology.

A

An MVP can be delivered to users sooner; work can be prioritized; it can accommodate changes in requirements more easily; or the client can provide feedback after each iteration.

19
Q

List one disadvantage of the Iterative and Incremental methodology.

A

It can be harder to manage; initial planning must be robust to ensure increments integrate with future work; or defining the scope of increments can be difficult.

20
Q

How are increments defined in the Agile methodology?

A

In Agile, increments are defined by timed intervals (e.g., sprints).

21
Q

What are two primary focuses of the Agile methodology?

A

Agile focuses more on immediate requirements rather than extensive upfront planning, and it emphasizes collaboration.

22
Q

State one advantage of the Agile methodology.

A

It allows for early and frequent releases of working software; it is highly adaptable to changing requirements; it incorporates constant feedback; or it is generally a simple approach.

23
Q

State one disadvantage of the Agile methodology.

A

It can be challenging to constantly meet with the client for feedback; it requires more discipline from the team to meet time goals for each interval; or time estimation for tasks needs to be reasonably good.

24
Q

Which software development methodology is specified for use in the COMS 3009A course projects?

A

The Scrum methodology will be used for the projects.

25
Who is the Product Owner in a Scrum team, and what is their primary responsibility?
The Product Owner is responsible for the overall vision of the product and is the final authority on requirements. They also constantly manage and reprioritize the Product Backlog.
26
What is the role of the Scrum Master in a Scrum team?
The Scrum Master is part of the development team and helps facilitate the Scrum process, ensures the team works together smoothly, removes impediments, and acts as a leader and coach, but not a traditional manager.
27
Describe the Development Team in Scrum.
The Development Team is a collaborative, cross-functional group of individuals (e.g., developers, analysts, designers, domain experts) who have autonomy on how to develop the product increment.
28
What is the purpose of the Sprint Planning meeting in Scrum?
During Sprint Planning, the Development Team and Product Owner collaborate to select a set of items from the Product Backlog for the Sprint. They break these items into tasks and estimate the work required to complete them within the Sprint's time window, prioritizing them accordingly.
29
What typically happens during a Daily Scrum (or stand-up) meeting?
The Daily Scrum is a short (around 15 minutes) daily meeting where the team creates a plan for the day and discusses progress, goals, and any impediments. Each team member usually answers three questions: What did I do yesterday? What will I do today? Are there any impediments in my way?.
30
What is the main purpose of the Sprint Review meeting in Scrum?
The Sprint Review is held at the end of the Sprint for the Development Team to demonstrate the live, current version of the product to the Product Owner and other stakeholders. The Product Owner then determines which backlog items are "done," and it provides an opportunity for feedback.
31
What is the objective of the Sprint Retrospective meeting?
The Sprint Retrospective allows the Scrum Team to reflect on how the last Sprint went from a process perspective and to identify potential improvements for future Sprints. This meeting requires transparency, a safe environment, and should avoid blaming individuals.
32
What is Backlog Refinement (or Grooming) in Scrum?
Backlog Refinement is an ongoing activity where the Product Owner and Development Team refine the Product Backlog. This includes breaking down large items into smaller, more manageable ones, adjusting estimates, reassessing priorities, and possibly pruning unnecessary items. Top items in the backlog are generally more granular.
33
List the five Scrum ceremonies (or events).
The five Scrum ceremonies are 1. Sprint Planning 2. Daily Scrum 3.Sprint Review 4. Sprint Retrospective 5. Backlog Refinement.
34
What is the Product Backlog in Scrum?
The Product Backlog is a prioritized list of all features, functionalities, requirements, enhancements, and fixes that constitute the changes to be made to the product in future releases. It is managed by the Product Owner.
35
What is the Sprint Backlog in Scrum?
The Sprint Backlog is the set of Product Backlog items that have been selected for a specific Sprint, plus a plan for delivering the product Increment and realizing the Sprint Goal.
36
What is an Increment in Scrum?
The Increment is the sum of all the Product Backlog items completed during a Sprint and all previous Sprints. At the end of a Sprint, the new Increment must be "Done," meaning it is in a usable condition and meets the Scrum Team’s definition of "Done". The Development Team has autonomy on how to develop it.
37
According to the Scrum Framework diagram, what is the typical duration of a Sprint?
A typical Sprint is 1-4 weeks long.
38
Name one software tool recommended in the slides for managing Scrum projects.
Recommended tools include Github Projects, Monday, Trello, Taiga, or Notion.