Skip to main content

Software Development Concepts

Systems Development Models

Agile

  • Emphasizes the customer's needs.
  • Quick development of functionality in an iterative manner.
  • Four Core Principles:
    1. Individuals and interactions over processes and tools.
    2. Working software over comprehensive documentation.
    3. Customer collaboration over contract negotiation.
    4. Responding to change over following a plan.
      • User Acceptance Testing (UAT) can provide guidance on adapting and pivoting direction.

Remember the four core principles of Agile for the exam. 

Waterfall

  • Sequential development leading to a complete product.
  • Allows return to the previous phase for corrections only.
  • Seven stages:
    1. System Requirements
    2. Software Requirements
    3. Preliminary design
    4. Detailed Design
    5. Code and Debug
    6. Testing
    7. Operations & Maintenance

Spiral

  • Metamodel or "model of models".
  • Several iterations of the waterfall model.
  • Each spiral loop results in a new prototype/iteration.
  • Iterative in nature.

Think of Spiral as a "repeating Waterfall".


Software Development Maturity Models

  • Helps in improving the quality and maturity of software processes.
  • Follows an evolutionary path from chaotic to disciplined processes.

Capability Maturity Model (CMM)

  1. Level 1: Initial - No consistent processes.
  2. Level 2: Repeatable - Basic lifecycle management.
  3. Level 3: Defined - Documented and standardized process.
  4. Level 4: Managed - Quantitative measures for understanding.
  5. Level 5: Optimized - Continuous development with feedback loops.

Level 5 indicates a high maturity in development processes.

image.png

Ideal Model

  • A software development model that incorporates attributes of SW-CMM.
  • Stages:
    1. Initiating - Business reasons established, infrastructure put in place.
    2. Diagnosing - Current state analysis and change recommendations.
    3. Establishing - Development of change plans.
    4. Acting - Implementation of the plan and solutions.
    5. Learning - Continuous analysis for improvement.

Software Development Life Cycle (SDLC)

Phase Name Description Mnemonic
Requirements
and Analysis
In this phase, the needs of potential users are understood and analyzed to produce a requirements specification.

Robots

Design This phase involves creating a detailed design of the software system, specifying architecture, components, interfaces, and other characteristics.

Design,

Implementation (or coding) The actual code is written in this phase, transforming design documentation into functional software.

Implement,

Testing The software is tested to ensure it meets the specifications and is free of defects.

Test, then

Evolution
(or Maintenance)
As software gets used, it will evolve to meet new user requirements, address discovered bugs, and incorporate other changes.

Evolve.