Software Design Overview
October 2025
Building a System
- Requirement analysis and definition
- System design
- Program design
- Writing the programs
- Unit testing
- Integration testing
- System testing
- System delivery
- Maintenance
Roles
| Role | Purpose |
|---|---|
| Requirement Analysts | Work with customers to identify and document requirements |
| Designers | Generate a system-level description of the system structure and its purpose |
| Programmers | Write programs adhering to the design |
| Testers | Catch faults by testing the program |
| Trainers | Train users on how to use the completed system |
| Maintenance Team | Fix faults after the system has been shipped |
| Librarians | Deals with paperwork storage and management ie: the software requirements doc |
| Configuration Management Team | Maintains 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