The software life cycle

Notes

Study Notes

HCI Notes: Software Life Cycle

The Software Life Cycle (SLC)

Models and phases for the development and maintenance of software systems.

1. Defining the Software Life Cycle

The Software Life Cycle (SLC), or Software Development Life Cycle (SDLC), is a framework defining the activities performed at each stage of a software project, from conception to retirement.

Standard SLC Phases:

  • **Requirements Analysis:** Defining functional and non-functional goals (including usability).
  • **Design:** Specifying the system architecture and detailed component design.
  • **Implementation (Coding):** Translating the design into executable code.
  • **Testing:** Verifying and validating that the system meets requirements.
  • **Deployment:** Making the software available to users.
  • **Maintenance:** Updating, fixing, and enhancing the system after deployment.

2. Waterfall Model (Traditional)

A strictly sequential model where development flows downward, like a waterfall, through all phases.

Characteristics

  • Simple, easy to manage and understand.
  • Suitable for small, well-defined projects with stable requirements.

HCI Critique

  • **Rigid:** Does not handle changes well (especially user feedback).
  • **Late Feedback:** Usability issues are discovered late (in the Testing phase) when they are costly to fix.
  • **Discourages Iteration:** Does not naturally support the iterative nature of User-Centered Design (UCD).

3. Spiral Model (Risk-Driven Iteration)

Combines the iterative nature of prototyping with the systematic aspects of the Waterfall model. It is organized into cycles (spirals), with risk analysis driving the process.

Structure per Cycle:

  • **Determine Objectives:** Define goals for the current iteration (e.g., prototype the core navigation).
  • **Risk Analysis:** Identify and resolve technical and design risks.
  • **Develop and Test:** Execute the development and verification steps.
  • **Plan Next Cycle:** Determine objectives for the next iteration.

HCI Suitability

Highly suitable for HCI. Usability evaluation and prototyping are excellent tools for mitigating design risks, making them integral parts of the Spiral Model's risk analysis phase.

4. Agile and Iterative Models

Modern approaches (like Scrum) prioritize rapid, flexible delivery and continuous collaboration. This aligns perfectly with the HCI philosophy of iterative refinement.

[Image of the Scrum Agile process cycle]

Agile Principles

  • **Working Software:** The primary measure of progress.
  • **Customer Collaboration:** Continuous stakeholder involvement.
  • **Response to Change:** Adaptability over rigid plan adherence.

HCI Integration (Agile UX)

  • **Sprint Alignment:** Design, prototyping, and user testing are integrated directly into each short development sprint.
  • **Continuous Evaluation:** Small, frequent tests replace large, formal testing periods.
  • **Design Ahead:** UX tasks (like concept design) often work one or two sprints ahead of development to prepare features.