본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

N-S 차트(Nassi-Shneiderman Chart, NS 차트)는 프로그램의 처리 흐름을 화살표 없이 순차·선택·반복 세 가지 구조의 상자만을 겹쳐 쌓아 나타내는 구조적 프로그래밍용 설계 도표이다.

N-S 차트는 1973년 아이작 나시(Isaac Nassi)와 벤 슈나이더만(Ben Shneiderman)이 구조적 프로그래밍에 맞춰 고안했다. 전체 프로그램을 큰 직사각형 하나로 놓고, 그 안을 순차·선택·반복 구조를 뜻하는 작은 상자로 나누어 채운다. 상자 안에 상자를 넣는 방식이라 상자 도표(Box Diagram)라고도 하고, 구조적 흐름도(Structured Flowchart)라고도 부른다.

순서도는 기호를 화살표(흐름선)로 이어 흐름을 그리므로 어디로든 건너뛰는 흐름(GOTO)을 그릴 수 있다. N-S 차트에는 화살표가 없다. 흐름은 언제나 위에서 아래로 내려가며, 상자는 정해진 세 구조로만 그릴 수 있다. 그래서 임의로 제어를 옮기는 GOTO 를 표현할 수 없고, 그려진 도표는 그대로 구조적 프로그램이 된다.

구조 그리는 법 프로그램 구문
순차(Sequence) 처리 상자를 위에서 아래로 차례로 쌓는다 대입문, 함수 호출의 나열
선택(Selection) 상자 위쪽에 조건을 적은 역삼각형을 두고 아래를 참·거짓 두 칸으로 나눈다 if ~ else
다중 선택(Case) 조건 아래를 값마다 여러 칸으로 나눈다 switch ~ case
반복(Iteration) 반복 조건을 적은 테두리가 안쪽 상자를 ㄱ자·ㄴ자로 감싼다. 조건이 위에 있으면 선조건(while), 아래에 있으면 후조건(do-while, until) 반복이다 while, for, do-while

예를 들어 "n 을 입력받아 n 이 0 보다 크면 1 부터 n 까지 더해 출력하고, 아니면 오류를 출력" 하는 처리는 다음처럼 나뉜다.

n 입력
n > 0 ? (선택)
참 거짓
sum ← 0, i ← 1 "오류" 출력
i ≤ n 인 동안 반복: sum ← sum + i, i ← i + 1
sum 출력
  • 논리의 기술에 중점을 두고 도형(상자)으로 표현한다
  • 순차·선택·다중 선택·반복 같은 제어 논리 구조만으로 흐름을 나타낸다
  • 화살표나 GOTO 를 쓰지 않는다. 임의의 위치로 제어를 옮기는 것은 표현할 수 없다
  • 모든 구조가 입구 하나, 출구 하나(single entry, single exit)를 가진다
  • 흐름이 한눈에 보여 이해하기 쉽고, 상자가 그대로 if·while 같은 구문에 대응해 코드로 옮기기 쉽다
  • 선택 구조가 표처럼 나뉘어 조건이 겹친 곳의 처리를 명확히 알아볼 수 있다
  • 단점: 그리기가 번거롭고, 일부를 고치면 도표를 다시 그려야 하는 경우가 많다. 상자 하나가 처리 하나라 큰 프로그램 전체 구조나 모듈 사이의 인터페이스를 나타내기에는 알맞지 않다

다른 표현 도구와 비교

편집 원본 편집
구분 N-S 차트 순서도 HIPO
표현 대상 한 모듈 안의 처리 논리 한 모듈 안의 처리 흐름 시스템의 기능 계층과 입력·처리·출력
흐름 표시 상자의 위아래 배치(화살표 없음) 흐름선(화살표) 도표(가시적 목차, 총체·세부 다이어그램)
GOTO 표현 불가 가능 해당 없음
구조적 프로그래밍과의 관계 세 구조만 그릴 수 있어 그대로 구조적이다 구조적이지 않은 흐름도 그릴 수 있다 하향식 설계 문서화 도구