Introduction
Building software can be complex and confusing without a clear plan. A software process helps organize the steps needed to create software, making the work smoother and more predictable.
Imagine building a house. You can either follow a strict plan from start to finish, build parts step-by-step improving as you go, or work closely with the owner to make changes quickly. Sometimes, you also check for risks like bad weather before continuing.
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ Requirements │──────▶│ Design │──────▶│ Implementation│
└───────────────┘ └───────────────┘ └───────────────┘
│ │ │
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ Testing │◀──────│ Delivery │◀──────│ Maintenance │
└───────────────┘ └───────────────┘ └───────────────┘
Waterfall Model Flow
Iterative and Agile models repeat these steps in cycles, while Spiral adds risk checks in loops.phases = ['Requirements', 'Design', 'Implementation', 'Testing']
for i in range(len(phases)):
print(phases[i])
if i == 2:
print('Review before Testing')Pass the test and this pattern moves unknown