Software Development Life Cycle Models: A Comprehensive Guide

Software Development Life Cycle Models

Activity-Centered vs. Entity-Centered Views

Activity-centered models focus on the activities involved in software development, while entity-centered models emphasize the work products created during these activities.

The activity-centered view helps participants understand how work products are created, while the entity-centered view focuses on the content and structure of the work products.

IEEE 1074 Standard

The IEEE 1074 standard provides a common framework for developing life cycle models and defines key terms like processes, process groups, and activities.

Examples of process groups include project management, pre-development, development, and post-development.

The standard also introduces the concept of tasks, which represent the smallest unit of work relevant to management.

Capability Maturity Model (CMM)

The CMM is a methodology for assessing and improving an organization’s software development process maturity.

It defines five maturity levels, ranging from ad hoc (Level 1) to optimizing (Level 5).

Each level is characterized by a set of key process areas (KPAs) that organizations must address to achieve that level of maturity.

Benefits of Process Maturity

  • Increased control of projects
  • Predictability of project cost and schedule
  • Objective evaluations of changes

Challenges of Process Maturity

  • Increased oversight and monitoring
  • Overhead for data collection and analysis

Waterfall Model

The waterfall model is a sequential, activity-centered model that emphasizes completing each phase before moving on to the next.

It features a constant verification activity to ensure that each development activity meets the required standards.

V-Model

The V-model is a variation of the waterfall model that explicitly links development activities with verification activities.

It emphasizes the notion of levels of abstraction, with activities moving from high-level requirements to detailed implementation and then back to high-level validation.

Spiral Model

The spiral model is an iterative, risk-driven model that addresses the limitations of the waterfall model by accommodating change.

It involves a series of rounds, each consisting of four phases: objective setting, risk assessment, development and verification, and planning for the next round.

Limitations of Waterfall and Spiral Models

Both models struggle with frequent changes during development.

The waterfall model assumes that phases are completed sequentially, while the spiral model allows for change between phases but not within them.

Issue-Based Development

Issue-based development focuses on managing a collection of issues, which can be open or closed.

Closed issues have resolutions and can be reopened if necessary, allowing for iterative development.

Choosing a Life Cycle Model

The choice of life cycle model depends on the frequency of change expected during development.

For projects with infrequent changes, linear models like the waterfall or V-model are suitable.

For projects with more frequent changes, iterative models like the spiral model or issue-based development are more appropriate.