Waterfall Flashcards
(30 cards)
Why are software development models important?
They help manage software projects by allocating resources, estimating timelines, and mitigating risks.
Why do software projects require separation between coding and management?
Coding and management require different skill sets; management focuses on planning, while coding focuses on execution.
Why did early software development adopt manufacturing models?
They provided structure, homogeneity, and predictability to project planning.
What is a key difference between physical engineering and software engineering?
In physical engineering, changes during construction (e.g., bridges) are costly, whereas in software, changes can be relatively cheap.
Why is the software development model called “Waterfall”?
It follows a step-by-step approach where progress flows in one direction, like a waterfall.
What is a major limitation of the Waterfall model?
It is rigid and does not easily allow changes once a phase is completed.
What is the purpose of the requirements capture phase?
To define what the software should do, ideally with client input.
What is a common criticism of the requirements capture phase?
It can lead to overly complex requirements that users may struggle to understand.
What is the goal of the design phase?
To transform requirements into a structured plan, including software components and data schemas.
Name two common tools used in software design.
UML diagrams (e.g., class diagrams, sequence diagrams), database schemas.
What happens in the implementation phase?
Development teams write code based on the design specifications.
What technique is often used to integrate different software components?
Continuous Integration (CI).
How much time in a software project is typically allocated to coding?
About one-third of the total project time.
What is the purpose of the verification phase?
To remove defects (debugging) and ensure the software works as expected.
When do most user-reported bugs occur?
After deployment, often due to unforeseen user behaviours.
How does Test-Driven Development (TDD) help in verification?
It incorporates unit testing early in development to catch issues sooner.
Why is maintenance an ongoing process in software?
Software evolves with feature updates, bug fixes, and compatibility changes.
How do version numbers reflect software evolution?
Versions indicate major, minor, and patch updates (e.g., v1.2.3).
Give an example of a dependency that can trigger maintenance.
Changes in libraries, languages, or operating systems.
Why is Waterfall often considered an “anti-model”?
It is mainly used as a reference to compare with newer, more flexible models.
When does Waterfall make sense in software development?
When reworking earlier stages is costly, such as in highly regulated environments.
What is a common problem when integrating third-party frameworks in Waterfall projects?
Misalignment between the design phase and actual API functionality.
How do augmented Waterfall models improve on the original?
They overlap phases and allow iterative feedback.
What did Winston W. Royce suggest to improve Waterfall?
Passing over phases twice and incorporating prototyping.