Skip to main content
Informatik.uz
Chapter 4. Modern technologies and projects

Stages of a software project

Making software is more than writing code: there are stages of analysis, design, coding, testing, release and maintenance. We also look at version control and teamwork.

Topic 11 of 112 min readUpdated October 27, 2026
All topics (11 of 11)

Large programs are not code written by one person in a single night but the result of a thought-out process. The software life cycle usually has these stages: analysis (finding out what is needed), design (planning the structure and appearance of the program), coding, testing, release (handing over to users) and maintenance (fixing errors and adding new features).

In the analysis stage the requirements are written down: who the program is for, what tasks it performs and what it does not do. For example, in a “school library” project: add a book, lend it to a student, take it back, view the list of borrowers who are late. In design these tasks are divided into modules, the data structure (for example database tables) is planned and a sketch of the interface is drawn. A good plan saves a lot of time later.

In the testing stage the program is checked for correct work: with typical values, edge cases (zero, an empty string) and wrong input. Testing can be automated; for example, in Python a simple assert f(3) == 6 statement checks that a function result equals the expected one. The earlier an error is found, the cheaper it is to fix. It is also important to add comments and brief documentation to the code: after several months even the author must be able to understand it.

Working in a team needs a version control system, the most widespread being Git. It saves every change of the code, lets you return to an earlier state when needed and allows several people to work at once. The main commands are git init (create a repository), git add and git commit (save a change) and git push (send to the server). Dividing roles, breaking tasks into small steps and setting deadlines help finish a project successfully.

Key takeaways

  • The software life cycle: analysis, design, coding, testing, release, maintenance.
  • Requirements define in advance exactly what the program must do.
  • Design divides the tasks into modules and defines the data structure.
  • Testing uses typical, edge and wrong values; the earlier an error is found, the cheaper it is to fix.
  • Git saves code changes and makes teamwork easier.

Practice tasks

  1. Write the requirements for an “attendance register” program for your class: list at least 5 tasks and 2 things the program will not do.
  2. Make a plan for a project of your choice covering each stage (analysis, design, coding, testing, release) and give each one an approximate deadline.
  3. Write a Python function bigger(a, b) that returns the larger of two numbers and test it with at least four assert statements (typical values, equal numbers, negative numbers, zero).

Review questions

Test yourself: think first, then reveal the answer.

  1. 1What stages make up the software life cycle?
    Analysis, design, coding, testing, release and maintenance.
  2. 2What is a version control system (Git) for?
    It saves every change of the code, allows returning to an earlier state and lets a team work at the same time.

0 of 11 topics completed

Sign in to mark
Informatika 11-sinf darsligi muqovasi
In the textbookInformatics — Grade 11