Life cycle process - kubapeter/portfolio GitHub Wiki

A life cycle process is a process to develop and manage a software product from its initial conception to its retirement. Most widely known process models are about life cycle processes.

Example

According to [Alberta]] most life cycle process models assumes following [phases and activities under the phases:

1. Specification phase

  • Identifying ideas or needs
  • Eliciting requirements - probe for them
  • Expressing requirements - document them in a structured way
  • Prioritizing requirements
  • Analyzing requirements - check them for clarity, consistency, completeness
  • Managing requirements - organize, reuse, reference them
  • Formulating potential approaches - the product team outlines a strategy, consider alternatives, and further refine their next steps

2. Design and implementation phase

  • Designing the architecture
  • Designing the database
  • Designing interfaces
  • Creating executable code
  • Integrating functionality
  • Documenting
  • Implementation

3. Verification and validation phase

  • Developing test procedures
  • Creating tests
  • Executing tests
  • Reporting evaluation results
  • Conducting reviews and audits
  • Demonstrating to clients
  • Conducting retrospectives

There are also some activities that are not bound to one of these phases. They are ongoing project management activities that generally occur in parallel to the activities discussed above. Typical examples are

  • Creating a process - setting the initial phases for development
  • Setting standards - defining clear sets of expectations on aspects of development like coding conventions, documentation levels, testing strategies, and when work should be considered done
  • Managing risks - constant analysis and mitigation of potential risks, summarized in a risk plan
  • Performing estimations
  • Allocating resources
  • Making measurements
  • Improving the process