CSCI 370 - Lecture 5 - Approaches to Software Development: Waterfall, Incremental, and Reuse Models


Overview

This lecture explored three major approaches to software development:

  1. Waterfall Model
  2. Incremental (Iterative) Model
  3. Reuse (Integration and Configuration) Model

It emphasized the evolution from traditional linear development to more adaptive, reusable methods, and discussed practical trade-offs of each.


1. Waterfall Model

Definition

A linear and sequential software development process. Each phase must be completed before the next begins.

Steps Involved

  1. Requirements gathering
  2. System and software design
  3. Implementation (coding)
  4. Integration and testing
  5. Deployment
  6. Maintenance

Characteristics

Analogy

Like writing an entire book plot before writing any pages (e.g., author Jeffrey Deaver spends 8 months planning).

Pros

Cons


2. Incremental Model

Definition

An iterative model that develops software in small, manageable chunks, revisiting earlier phases as needed.

Process

Each increment involves:

  1. Partial requirements gathering
  2. Partial design
  3. Partial implementation
  4. Partial testing
  5. Repeat until complete
  6. Final delivery and maintenance

Characteristics

Analogy

Writing a book one chapter at a time, refining earlier chapters as new ideas evolve.

Pros

Cons

Refactoring

The process of rewriting code to improve clarity and structure without changing functionality. Essential to prevent software rot over multiple iterations.


3. Reuse Model (Integration and Configuration)

Definition

Build software systems by integrating existing components or systems rather than developing from scratch.

Process

  1. Determine requirements and feasibility
  2. Discover existing software (e.g., libraries, APIs, commercial systems)
  3. Integrate or configure it into your solution

Examples

Pros

Cons

Mitigation Strategies


V-Model (Validation and Verification)

Definition

An extension of the Waterfall Model that emphasizes corresponding testing for each development phase.

Structure

Visualized as a “V”:

Benefits


Summary of Trade-Offs

Model Pros Cons
Waterfall Structured, clear scope, good for fixed plans Inflexible, bad with change, difficult to schedule
Incremental Adaptive, better testing, early feedback Risk of messy code, may lose overall vision
Reuse Fastest, cheapest, reliable components Limited customization, dependency risks

Best Practice


Real-World Notes


Key Vocabulary


Final Thoughts

This lecture emphasized that while all development models have value, choosing the right one depends on the project’s complexity, timeline, regulatory constraints, and budget. Modern development often blends reuse and incremental methods for the best balance of flexibility, speed, and reliability.