Process Models Flashcards
List the process models
Waterfall
Incremental Iterative Evolutionary Spiral Prototyping
Rapid App Development
CASE
Agile
Object-oriented
COTS
What are the steps of the Waterfall model
- Requirements Definition
- Sys. & Soft. Design
- Implementation & Unit Testing.
- Integration and Sys. Testing.
- Operational Maintenance.
What are important takeaways for the Waterfall model.
No iteration, inflexible to accommodating change
Limited user involvement.
If used, should incorporate iteration and user walkthrough.
What are important takeaways for the Incremental (waterfall) Approach?
Divide project into independent parts and developing these parts separately then combining.
Benefits:
-Less cost and time for first delivery/increment.
-Less risk to develop smaller systems/increments.
-Less user rqmt. changes.
-Incremental funding.
Issues come from misuse:
-Bad change requests destabilize.
-Unstable requirements mess up increments.
-Managing complexity can be an issue
Increments:
-First increment is usually the core product.
-Each increment impact the design of later increments
What are important takeaways for the Iterative/Incremental Approach?
Not development of independent parts (chunks of functionality), but rather each iteration refines what has been developed in previous iterations.
Disadvantages:
- Phases are rigid and phases don’t overlap.
- architecture may suffer due to front loading.
What are important takeaways for the Evolutionary Approach
Developed using a prototype and refined through user feedback.
What process models are considered evolutionary?
Spiral, iterative, Agile, prototyping, and incremental models.
What are issues of evolutionary methods and applicability?
Issues: Opaque process visibility. Poorly structured systems. Oft require special skills. Applicability: Sm. or medium-size interactive systems. Parts of large systems (e.g. user interface). Short-lifetime systems.
Rapid Application Development (RAD) uses what primarily?
Prototyping, extensive user involvement, JAD (Joint App Development Sessions), and tools (CASE, Code generators) to build GUIs.
RAD is focused on?
Radically decrease design and implementation time.
RAD issues?
- Requires developers and customers who are heavily committed.
- Performance can be a problem.
- Difficult to use with new technology
CASE (Computer-Aided Software Engineering) Tools
- Diagramming tools.
- Auto consistency checking.
- Central Repository for diagrams, Project Mgt specs, and reports.
- Generate documenation.
- Auto code generators.
Key Principles of Agile
Adaptive vs. predictive.
Emphasize people not roles.
Self-adaptive processes.
When to use agile?
Small project
Unpredictable or dynamic requirements
Responsible and motivated developers
Customers that understand the process and are involved.
What are critical factors that distinguish agile?
Size Criticality Dynamism Personnel Culture