Building a System

  • Requirement analysis and definition
  • System design
  • Program design
  • Writing the programs
  • Unit testing
  • Integration testing
  • System testing
  • System delivery
  • Maintenance

Roles

RolePurpose
Requirement AnalystsWork with customers to identify and document requirements
DesignersGenerate a system-level description of the system structure and its purpose
ProgrammersWrite programs adhering to the design
TestersCatch faults by testing the program
TrainersTrain users on how to use the completed system
Maintenance TeamFix faults after the system has been shipped
LibrariansDeals with paperwork storage and management ie: the software requirements doc
Configuration Management TeamMaintains correspondence among various artifacts

Waterfall Model

flowchart
    ra[Requirements Analysis] --> sd[System Design]
    sd --> pd[Program Design]
    pd --> cd[Coding]
    cd --> ut[Unit & Integration Testing]
    ut --> st[System Testing]
    st --> at[Acceptance Testing]
    at --> om[Operation & Maintenance]

Advantages

  • Good for well understood problems
  • Simple
  • Each phase has milestones and deliverables

Disadvantages

  • No guidance on how to handle changes
  • Views software development as manufacturing rather than a creative process
  • Takes a long time before a final product is delivered

V Model

flowchart
    ra["Requirements Analysis"] --> sd["System Design"] & at["Acceptance Testing"]
    sd --> pd["Program Design"] & st["System Testing"]
    pd --> cd["Coding"] & ut["Unit & Integration Testing"]
    cd --> ut
    ut --> st & pd
    st --> at & sd
    at --> om["Operation & Maintenance"] & ra

A variation of waterfall that uses testing ot assess the phases.
If problems are found the regular phases can be re-executed.
(You’re not gonna believe this but apparently this is drawn as a V in some diagrams, Google it I ain’t doing that in Mermaid)

Prototyping Model

flowchart
    sr([System Requirements])
    pr[Prototype Requirements]
    lr[List Of Revisions]
    lr2[List Of Revisions]
    lr3[List Of Revisions]
    pd[Prototype Design]
    ps[Prototype System]
    test[Test]
    ds([Delivered System])

    sr --> pr
    pr --> pd
    pd --> ps
    ps --> test
    test --> ds

    pr --> lr
    pd --> lr2
    ps --> lr3
    lr --> pr
    lr2 --> pd
    lr3 --> ps

    lr3 --> lr2
    lr2 --> lr

Spiral Model

  • Combines development with risk management
  • Model is presented as a spiral with iterations around four major activities
    • Plan
    • Determine goals, alternatives and constraints
    • Evaluate alternatives and risks
    • Develop and test

There is a diagram but you’ll have to Google it lol

Agile Model

This is elsewhere