Traditional Software Process Models

Zhipeng Huang Lecture 5: Traditional Software Process Models

CMPSC 345 Software Engineering
Date: Jan. 27, 2026

Last Class Review

  • Key topics discussed include:

    • Characterizing the Size and Complexity: Understanding how size and complexity affect software development and support.

    • Technical Issues: Identifying technical challenges in developing and supporting software systems.

    • Nontechnical Issues: Exploring human and organizational factors impacting software development.

    • Payroll System Example: Using a payroll system as a case study to illustrate concerns in development and support activities for large application software.

    • Coordination Efforts: Highlighting the necessary coordination among processes, products, and personnel in software development.

    • These topics will be elaborated upon in later lectures.

Software Development Life Cycle (SDLC)

  • Definition: The Software Development Life Cycle is a structured methodology used for designing, developing, and testing high-quality software.

  • Purpose: It delineates the complete procedure of software development step-by-step.

  • Importance: It ensures systematic and efficient development, delivery, and maintenance of software.

  • Source: Reference link: GeeksforGeeks

Lecture Objectives

  • Introduce: The generic concept of software engineering process models.

  • Discuss: Traditional process models:

    • Code-and-Fix Model

    • Waterfall Model

    • Incremental Model

    • Spiral Model

  • Describe: The Rational Unified Process (RUP).

  • Assess: These processes in relation to the Capability Maturity Model (CMM) and Capability Maturity Model Integrated (CMMI).

  • Discuss: The necessity for modifying and refining standard processes.

Software Process Overview

  • Definition: The software process refers to the methods used in developing and supporting software.

  • Examples of Activities: Requirements gathering, design, coding, testing, release, and maintenance.

  • Systematic Process Benefits: Aligns tasks to ensure consistent and high-quality results.

  • Consequences of No Designed Process: Inconsistency or skipped tasks leading to poor products or project failures.

  • Software Process Models Purpose: To provide guidance for achieving software objectives by defining:

    • Tasks to be performed

    • Inputs and outputs for each task

    • Preconditions and postconditions for tasks

    • Sequence and flow of tasks

Simplest Process Model (Code-and-Fix Model)

  • Characteristics:

    • Focus is primarily on coding.

    • Minimal formal requirements, ideal for small projects.

  • Tasks Include:

    • Problem Statement

    • Code

    • Compile

    • Debug

    • Unit Test

    • Release

  • Example Scenario: A student is asked to quickly write a small C++ program to sort a list of integers.

Limitations of the Simplest Model
  • **Suitable For: **

    • Small homework assignments

    • Quick scripts

    • Prototypes

    • One-time tools

  • Problems for Large Projects:

    • Code becomes messy and difficult to maintain.

    • Increased number of bugs.

    • Lack of clear structure or documentation.

  • Historical Context: Early projects often employed this model despite its limitations but were eventually outgrown in favor of more structured models as complexity grew.

Waterfall Model

  • Overview:

    • One of the oldest software development models, introduced by Royce in 1970.

    • Represents the software life cycle as a linear sequence of stages, akin to a waterfall.

  • Process Structure:

    • Each stage is completed before moving onto the next; outputs from one stage become inputs for the next. Once a phase is completed, going back is difficult.

  • Example Application: Online Course Registration System.

    • Stages:

    • Requirements: Features like student login, course registration, and class capacity enforcement.

    • Design: Database tables setup (Students, Courses, Enrollments) and user interface decisions.

    • Implementation: Separately developed backend and frontend code.

    • Testing: Login functionality, registration limits, and error handling tests.

    • Deployment: Release the system to university users.

    • Maintenance: Handle bug fixes or update policies.

Advantages & Disadvantages of Waterfall Model
  • Advantages:

    • Clear Structure: Provides a well-defined approach.

    • Documentation: Generates comprehensive documents at each stage.

    • Tracking: Allows for progress tracking through distinct stages.

  • Disadvantages:

    • Changes are difficult once a phase is completed, often leading to late discovery of problems.

    • Modifications: Incorporation of iterative activities allowing for task overlapping and revision (including techniques like Joint Application Development - JAD).

Incremental Model

  • Purpose: Designed to manage larger software projects by breaking them into smaller, manageable components.

  • Adaptation of Waterfall: Each increment undergoes the full cycle (requirements, design, implementation, testing), but only for a segment of the entire system.

  • Integration: Continuously integrates completed components into the overall system for testing.

Multiple-Release Incremental Model
  • Structure:

    • Release 1 contains core functionality.

    • Subsequent releases add additional features and bug fixes incrementally.

    • Facilitates evolutionary software development—enables continuous improvement.

    • New releases build on previous designs and code.

Example of Incremental Model: Mobile Banking App
  • Release 1: Core functionality (user login, account balance view). Testing login and balance display followed by user feedback collection.

  • Release 2: Introduces fund transfer and transaction history features.

  • Release 3: Includes bill payment features and mobile check deposit.

  • Future Releases: Additional features added in following iterations.

Advantages & Disadvantages of Incremental Model
  • Advantages:

    • Early delivery of working software.

    • Reduced risk compared to the Waterfall Model.

    • Easier to accommodate changes.

    • Progress is visible and measurable.

  • Disadvantages:

    • Requires a good architectural foundation up front.

    • Integration complexity may escalate.

    • Planning of increments can be challenging.

    • Not ideal for components that are highly interdependent.

  • Ideal Use Cases:

    • Requirements are stable but may evolve.

    • The system can be divided into independent features.

    • Early user feedback is critical for success.

    • Suited for medium to large projects.

Spiral Model

  • Introduction:

    • Proposed by Barry Boehm in 1988, the Spiral Model is an evolutionary and risk-driven approach to software development.

    • Focuses on reducing risks through iterative cycles.

  • Four Quadrants of Spiral Model:

    1. Determine Objectives, Alternatives, Constraints.

    2. Evaluate Alternatives, Identify and Resolve Risks.

    3. Develop and Test.

    4. Plan the Next Phase.

In-Depth Exploration of Spiral Model Phases
  • First Quadrant:

    • Identify goals and limitations for each iteration.

  • Second Quadrant:

    • Assess risks and evaluate alternatives to mitigate them.

  • Third Quadrant:

    • Create prototypes or implement incremental developments based on risk assessments.

  • Fourth Quadrant:

    • Validate achievements and strategize for the following cycle.

Example of Spiral Model: Self-Driving Car Software Development
  • Cycle 1: Basic Navigation

    • Objective: Develop fundamental navigation capabilities.

    • Alternatives: Use existing algorithms vs. custom solutions.

    • Constraints: Safety and accuracy must be prioritized.

    • Risk Assessment: Testing custom algorithms for accuracy; use pre-built algorithms initially to mitigate risk.

    • Development Phase: Conduct prototype tests of basic navigation with pre-built algorithms.

    • Planning Next Cycle: Assess results and prepare for obstacle detection inclusion in Cycle 2.

  • Cycle 2: Obstacle Detection

    • Objective: Integrate obstacle detection capabilities.

    • Alternatives: Selection between LIDAR or camera-based systems.

    • Constraints involve cost and reliability.

    • Risk Mitigation: Ensure better accuracy with LIDAR testing in low light conditions.

    • Cycle 3: Lane Detection

    • Develop and test lane detection systems using machine learning vs. rule-based methodologies.

Advantages & Challenges of the Spiral Model
  • Key Focus: Unlike other models, risk analysis drives the Spiral model rather than feature order or time.

  • Advantages:

    • Continuous risk assessment reduces potential issues early on.

    • Flexible, allowing for development evolution as new challenges arise.

    • Ensures production of operational software early in the development cycle.

  • Challenges:

    • Requires specialized skills in risk assessment, not always available.

    • Complexity in managing iterative risks, which can become resource-intensive.

Rational Unified Process (RUP) Framework

  • Overview: RUP is defined as an iterative, incremental, use-case-driven framework emphasizing architecture and risk management at the outset.

  • Core features:

    • Iterative and incremental development cycles.

    • Use-case driven, where requirements are expressed as use cases.

    • Focus on architecture to establish a solid foundation early on.

    • Emphasis on risk management, particularly during initial project phases.

RUP Phases
  1. Inception Phase:

    • Evaluate whether to build the system based on initial requirements.

  2. Elaboration Phase:

    • Assess safety in building the system by examining architecture and potential risks.

  3. Construction Phase:

    • Focus on correct development and quality assurance testing.

  4. Transition Phase:

    • Final validation and preparation for user readiness and release decisions.

Activities in RUP Phases
  • Common Activities Include:

    • Requirements gathering

    • Design outline

    • Implementation circuitry

    • Testing cycles

    • Integration tasks

  • Phase Considerations:

    • Clarifying timing for emphasizing different tasks and decision-making.

Assessment Questions

  • Waterfall Process Disadvantages:

    • A. Very little overlapping of tasks

    • B. It is a single iteration

    • C. Sequential order of tasks

    • D. All of these are correct
      Correct Answer: D

  • RUP Objectives for Requirements:

    • A. Inception

    • B. Elaboration

    • C. Construction

    • D. Transition

    • E. All of these are correct
      Correct Answer: B

  • Code-and-Fix Model Scenario:

    • A student writes code, runs it, fixes errors, and repeats without planning. Process Model: Code-and-Fix.

  • Startup Product Development:

    • A startup wants a product quickly with feature additions based on user feedback. Best Model: Incremental model.

  • High-Risk Medical Device Project:

    • High safety risk, unclear requirements, and expensive failures. Best Model: Spiral model.

What's Next?

  • Future Topics:

    • Process Assessment Models

    • Agile Software Process Models

    • Preparation for Quiz 2 (Lecture 5)