Midterm 1 Practice Flashcards

1
Q

What is Software Engineering/Development?

A

The application of engineering principles to design, develop, test, and maintain software systems.

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

What is Programming?

A

The act of writing code to solve specific problems, often without considering broader software design or maintenance concerns.

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

What is Computer Science?

A

The theoretical study of algorithms, computation, and data structures, forming the foundation for software engineering.

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

How is Software Engineering different from Programming?

A

Software engineering involves a structured, engineering-based approach to software development, while programming is just writing code.

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

How is Software Engineering different from Computer Science?

A

Software engineering focuses on practical application, while computer science is more theoretical.

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

What is the Waterfall model?

A

A sequential, structured software development approach where each phase must be completed before moving to the next.

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

What is the Incremental model?

A

A software development approach where functionality is built and delivered in small, usable parts.

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

What is the Iterative model?

A

A software development approach that involves repeated cycles of development and refinement based on feedback.

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

How does the Waterfall model compare to the Incremental model?

A

Waterfall is rigid and sequential, while Incremental delivers functionality in parts, allowing partial system use earlier.

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

How does the Waterfall model compare to the Iterative model?

A

Waterfall follows a fixed plan, while Iterative allows continuous improvement through repeated cycles.

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

Why is the Waterfall model sometimes criticized?

A

It struggles with changing requirements and lacks flexibility, making it difficult to adapt mid-project.

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

What are the phases of the software lifecycle?

A
  1. Requirement Analysis – Gather and define user needs. 2. Design – Create system architecture and detailed specifications. 3. Implementation – Write and integrate code. 4. Testing – Identify and fix defects. 5. Deployment – Release the software for use. 6. Maintenance – Ongoing bug fixes, updates, and improvements.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What happens in the Requirement Analysis phase of the software lifecycle?

A

Gather and define user needs, setting the foundation for development.

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

What happens in the Design phase of the software lifecycle?

A

Create system architecture and detailed specifications.

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

What happens in the Implementation phase of the software lifecycle?

A

Write and integrate the code based on design specifications.

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

What happens in the Testing phase of the software lifecycle?

A

Identify and fix defects to ensure software works as expected.

17
Q

What happens in the Deployment phase of the software lifecycle?

A

Release the software for users to access and utilize.

18
Q

What happens in the Maintenance phase of the software lifecycle?

A

Fix bugs, update features, and improve system performance over time.

19
Q

What is Incremental Development?

A

A development approach where the system is built in small, usable parts (increments).

20
Q

What is Iterative Development?

A

A development approach where the software is refined in repeated cycles based on feedback.

21
Q

What is Agile Software Engineering?

A

A flexible, iterative approach to software development that emphasizes collaboration, customer feedback, and rapid delivery.

22
Q

What are the four core tenets of the Agile Manifesto?

A
  1. Individuals and interactions over processes and tools. 2. Working software over comprehensive documentation. 3. Customer collaboration over contract negotiation. 4. Responding to change over following a plan.
23
Q

What is a Daily Standup in Agile?

A

A short daily meeting where team members update each other on progress, blockers, and plans.

24
Q

What is Sprint Planning in Agile?

A

A meeting where the team selects tasks for the next sprint based on priorities and capacity.

25
Q

What is a Sprint Review in Agile?

A

A meeting where the team demonstrates completed work to stakeholders.

26
Q

What is a Sprint Retrospective in Agile?

A

A meeting where the team discusses what went well, what didn’t, and how to improve for the next sprint.

27
Q

How do you determine which tasks go in which iteration when planning a project?

A

Consider priorities, dependencies, and team velocity to balance workload and deliver value.

28
Q

What are common methods for estimating pending tasks?

A
  • Story points: Relative complexity-based estimation. - T-shirt sizing: Categorizing tasks as S, M, L, XL. - Planning Poker: Team-based estimation game.
29
Q

How do we generate stakeholders?

A

Identify anyone affected by or interested in the software, including users, developers, investors, and regulators.

30
Q

Who are stakeholders for a Google Maps clone?

A
  • End users (drivers, pedestrians, businesses). - Developers (building and maintaining the system). - Advertisers (businesses using the platform). - Government agencies (traffic data providers).
31
Q

What are Functional Requirements?

A

Define what the system must do (e.g., ‘Users can search for locations’).

32
Q

What are Non-Functional Requirements?

A

Define system qualities, such as performance, security, and usability (e.g., ‘Must load search results in under 2 seconds’).