탑다운 프로그래밍이란 단어가 가지는 의미 그대로 위에서 아래로 내려가면서 프로그래밍해 나간다는 말이다. 이해를 돕기 위해 한가지 예를 들어 보자. 커다란 운동장에 서울 시민들이 모여서 각 동별로 경기를 벌이게 되었는데, 너무 많은 사람들이 한꺼번에 모여들어 누가 어느 동에 사는 사람인지 도무지 구분할 수가 없어 줄을 세우기로 했다고 하자. 이 때 줄을 세우는 사람이 운동장에 모인 사람들을 전부 한사람 한사람씩 묻고 다니며 어느 동에서 왔는지 확인한다는 것은 여간 번거롭고 힘든 일이 아닐 것이다. 이렇게 하는 대신에 먼저 서울시에 있는 여러 구별로 사람들을 모이게 하고, 각 구별 집합에서는 다시 여러 동별로 사람들을 따로 구분한다면 훨씬 수월한 작업이 될 것이다. 탑다운 프로그래밍도 이런 이치와 똑같다. 어떤 프로그램을 만들고자 할 때 처음부터 세세한 부분에가지 신경을 쓰기보다는, 먼저 전체적인 구조를 모듈(기능별로 묶여진 시스템의 최소단위)별로 구성한 다음 최상위 모듈에서부터 최하위 모듈까지 순차적으로 만들어 나가는 것이다. 따라서 상위 모듈에서 하위 모듈로 내려갈수록 점점 더 세분화되고 구체화되어 간다. 위의 예와 비교해 본다면, 줄을 세우는 사람은 프로그래머가 되고, 서울시는 최상위 모듈, 구는 중간 모듈, 동은 하위 모듈이 된다. 동은 물론 통, 반, 번지에 이르는 더 작은 크기의 모듈로 세분할 수도 있다. 탑다운 프로그래밍 기법에 의하면 프로그램의 실행 순서에 따라 코딩과 테스트를 같이 할 수 있으므로 하위 모듈의 테스트 시에는 이미 테스트된 상위 레벨의 모듈을 실제 프로그램으로서 사용할 수 있다. 그리고 모듈들간의 인터페이스도 코딩된 상태에서 각 모듈을 테스트하는 단계에서부터 컴퓨터로 검증되므로, 탑다운 프로그래밍은 결과적으로 소프트웨어의 질적 향상을 촉진한다.