맨위로가기

순서도

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

순서도는 작업의 흐름이나 알고리즘을 시각적으로 표현하기 위해 사용되는 도구이다. 1921년 프랭크와 릴리안 길브레스 부부가 "흐름 공정 차트"를 발표하면서 시작되었으며, 앨런 H. 모겐슨에 의해 산업 공학에 도입되었다. 초기에는 컴퓨터 프로그램 계획에 사용되었으나, 1970년대 이후 프로그래밍 언어의 발전으로 인해 사용 빈도가 줄어들었다. 순서도는 시스템, 프로그램, 가역 순서도 등 다양한 종류가 있으며, 기호와 작성 규칙에 따라 작성된다. 순서도 작성을 위한 다양한 소프트웨어가 존재하며, 구조적 프로그래밍 개념 도입과 함께 구조화 차트가 고안되기도 했다. 일본에서는 기업 공개 및 내부 통제를 위해 NOMA 방식, 닛노 방식, 산노다이 방식 등이 사용되기도 한다.

더 읽어볼만한 페이지

  • 알고리즘 기술 언어 - 의사코드
    의사코드는 컴퓨터 과학 및 수치 계산 분야에서 알고리즘을 설명하기 위해 사용되는 비표준적인 언어로, 자연어와 프로그래밍 언어의 요소를 혼합하여 알고리즘의 논리적 흐름을 이해하기 쉽게 하고 프로그래머가 실제 코드로 구현하기 전에 알고리즘을 설계하고 검토하는 데 유용하다.
  • 코드 예시에 관한 문서 - 람다 대수
    람다 대수는 알론조 처치가 수학기초론 연구를 위해 도입한 형식 체계로, 초기 체계의 모순 수정 후 유형 없는 람다 대수와 단순 유형 람다 대수가 발표되었으며, 프로그래밍 언어와의 관계가 명확해지면서 컴퓨터 과학과 언어학에서 중요한 위치를 차지하며 함수형 프로그래밍 언어의 기반이 되었고, 튜링 완전성을 가지는 등 다양한 분야에 응용된다.
  • 코드 예시에 관한 문서 - 러스트 (프로그래밍 언어)
    러스트는 모질라 재단 후원으로 개발된 시스템 프로그래밍 언어로서, 높은 안정성과 병렬성을 제공하며 메모리 안전성을 보장하고 효율적인 리소스 관리를 가능하게 하여 웹 브라우저 엔진, 운영체제, 웹 서비스 등 다양한 분야에서 활용되며 개발자들에게 인기가 높다.
  • 모델링 언어 - 차트
    차트는 통계 데이터를 점, 선, 도형 등으로 묘사하여 데이터의 규칙성, 경향 등을 시각적으로 제시하고 분석 방향을 제시하는 도표이며, 히스토그램, 막대그래프, 원그래프, 선 그래프 등이 흔히 사용된다.
  • 모델링 언어 - 다이어그램
    다이어그램은 2차원 기하학적 기호를 사용하여 정보를 시각적으로 표현하는 기술로, 과학, 공학, IT, 비즈니스 등 다양한 분야에서 활용되며 정보를 간략하게 나타내고 시각적 사고를 돕는다.
순서도
개요
간단한 순서도 예시
간단한 순서도 예시
정의특정 작업을 수행하기 위해 단계별로 수행해야 하는 프로세스를 그래픽으로 표현한 다이어그램
유형프로세스 순서도
데이터 순서도
시스템 순서도
프로그램 순서도
워크플로 차트
역사
발명프랭크 길브레스
릴리안 몰러 길브레스
발표 연도1921년, 미국 기계공학회
도구길브레스 부부가 개발한 "플로우 프로세스 차트"
구성 요소
기호터미널 (시작/종료)
프로세스
결정
입력/출력
흐름선
응용 분야
사용 분야프로그래밍
소프트웨어 개발
비즈니스 프로세스 모델링
프로세스 개선
문서화
프로젝트 관리
장점
시각적 표현프로세스를 쉽게 이해하고 분석할 수 있도록 도와줌
문제 해결잠재적인 문제점을 식별하고 해결하는 데 도움
의사 소통프로세스에 관련된 모든 사람이 동일한 이해를 공유하도록 함
효율성 향상불필요한 단계를 제거하고 프로세스를 최적화하는 데 도움
단점
복잡성복잡한 프로세스의 경우 순서도가 매우 복잡해질 수 있음
유지 보수프로세스가 변경되면 순서도를 업데이트해야 함
문제 해결의 한계문제 해결의 이해에는 거리가 멀 수 있음 (각 단계와 흐름은 단순하지만 전체를 이해하려면 노력이 필요)
관련 표준
ISOISO 5807
ANSIANSI Y15.3

2. 역사

최초의 구조화된 공정 흐름 문서화 방법인 "흐름 공정 차트"는 1921년 프랭크 길브레스와 릴리안 길브레스 부부가 미국 기계 기술자 협회(ASME) 회원들에게 "공정 차트: 작업을 수행하는 최상의 방법을 찾는 첫 번째 단계"라는 발표를 통해 소개했다.[2] 길브레스 부부의 도구는 곧 산업 공학 커리큘럼에 도입되었다. 1930년대 초, 산업 공학자인 앨런 H. 모겐슨은 뉴욕 레이크 플래시드에서 열린 자신의 작업 단순화 회의에서 일부 산업 공학 도구의 사용법을 비즈니스 사람들에게 교육하기 시작했다.

1944년, 앨런 H. 모겐슨의 졸업생인 아트 스피닝거는 이 도구를 프록터 앤드 갬블로 가져가 그곳에서 의도적인 방법 변화 프로그램을 개발했다. 같은 해 벤 S. 그레이엄은 다중 흐름 공정 차트를 개발하여 여러 문서와 그 관계를 제시함으로써 정보 처리에 흐름 공정 차트를 적용했다.[3] 1947년, ASME는 길브레스의 원본 작업을 기반으로 한 기호 세트를 "ASME 표준: 작동 및 흐름 공정 차트"로 채택했다.[4]

더글러스 하트리는 1949년에 허먼 골드스타인과 존 폰 노이만이 컴퓨터 프로그램을 계획하기 위해 순서도(원래는 다이어그램)를 개발했다고 설명했다.[5] 그의 동시대의 설명은 IBM 엔지니어[6]와 골드스타인의 개인적인 회상에 의해 뒷받침되었다.[7] 골드스타인과 폰 노이만의 초기 프로그래밍 순서도는 폰 노이만의 수집된 작품에 재현된 미출판 보고서 "전자 계산 기기를 위한 문제 계획 및 코딩, 파트 II, 볼륨 1"(1947)에서 찾아볼 수 있다.[8]

순서도는 컴퓨터 알고리즘을 설명하는 데 널리 사용되었지만, 대화형 컴퓨터 터미널과 3세대 프로그래밍 언어컴퓨터 프로그래밍의 일반적인 도구가 되면서 1970년대에 인기가 감소했다. 알고리즘은 그러한 프로그래밍 언어소스 코드로 더 간결하게 표현될 수 있기 때문이다. 종종 의사 코드가 사용되는데, 이는 특정 언어의 세부 사항을 엄격하게 준수하지 않고 그러한 언어의 일반적인 관용어를 사용한다.

그럼에도 불구하고, 순서도는 21세기 초에도 컴퓨터 알고리즘을 설명하는 데 여전히 사용되었다.[9] UML 활동 다이어그램드라콘 차트와 같은 일부 기술은 순서도의 확장으로 간주될 수 있다.

3. 종류

순서도는 목적과 대상에 따라 다양하게 분류된다.

Sterneckert (2003)는 순서도를 다음 네 가지로 분류했다.[10]


  • '''문서 순서도''': 시스템을 통한 문서 흐름에 대한 제어를 보여준다.
  • '''데이터 순서도''': 시스템 내 데이터 흐름에 대한 제어를 보여준다.
  • '''시스템 순서도''': 물리적 또는 자원 수준에서 제어를 보여준다.
  • '''프로그램 순서도''': 시스템 내의 프로그램에서 제어를 보여준다.


이 모든 유형의 순서도는 특정 흐름 자체가 아닌, 어떤 종류의 제어에 초점을 맞춘다는 공통점이 있다.[10]

Andrew Veronis (1978)는 순서도를 시스템 순서도, 일반 순서도, 상세 순서도의 세 가지 기본 유형으로 분류했다.[11]

Marilyn Bohl (1978)은 솔루션 계획에 사용되는 순서도에는 시스템 순서도와 프로그램 순서도 두 가지 종류가 있다고 말했다.[12]

Mark A. Fryman (2001)은 의사 결정 순서도, 논리 순서도, 시스템 순서도, 제품 순서도, 프로세스 순서도 등 더 다양한 종류의 순서도를 제시했다.[13]

한국에서는 시스템 순서도와 프로그램 순서도로 분류하며,[46] 프로그램 순서도는 다시 개략 순서도와 상세 순서도로 나뉜다.[46]

  • '''시스템 순서도''': 자료가 정보로 변환되는 과정을 컴퓨터 처리 과정, 데이터 흐름을 중심으로 도식화한다. 데이터 흐름을 중심으로 작성하기 때문에 데이터가 처리되는 작업 단위로 나타내고 데이터가 변환되는 매체들을 표현하며 프로그램 논리는 작성하지 않는다.[46]
  • '''프로그램 순서도''': 작업 처리 단위를 세밀하게 표현하며, 개략 순서도와 상세 순서도로 나뉜다.[46]
  • '''개략 순서도''': 하나의 업무를 전체적, 종합적으로 나타낸 순서도로 해당 작업의 진행 순서를 표시한다.
  • '''상세 순서도''': 프로그램 내부를 상세히 나타내는 순서도로, 컴퓨터의 모든 조작과 자료의 이동 과정을 순서대로 나타내 그대로 코딩할 수 있도록 상세하게 작성한 순서도이다.


UML 활동 다이어그램과 같이 순서도와 유사하지만 다른 이름을 사용하는 다이어그램 기술도 있다.

4. 기호

국제 표준화 기구(ISO)는 1965년 10월 SC7 총회에서 순서도 작성에 필요한 표준 기호를 결의하였다.[42] 순서도 기호 사용에는 몇 가지 규칙이 있다.


  • 기호 내부에는 처리할 내용이 들어가야 한다.
  • 순서는 위에서 아래로, 왼쪽에서 오른쪽을 원칙으로 하며, 그 외의 경우에는 화살표를 사용한다.
  • 흐름선은 서로 교차해도 무관하며 서로 영향을 주지 않는다.
  • 흐름선 여러 개가 모여 하나로 합칠 수 있다.
  • 기호 모형의 가로, 세로 비율은 정해져 있지 않으나, 잘 구분할 수 있어야 한다.


순서도 기호는 기본 기호, 프로그래밍 관련 기호, 시스템 관련 기호 등 3가지 종류로 나눌 수 있으며, 총 30개의 기호가 있다.

4. 1. 일반적 기호

ANSI/ISO 형태명칭설명
흐름선[43]프로세스의 실행 순서를 나타낸다.[44]
터미널[44]하위 프로세스나 프로그램의 시작과 끝을 나타낸다.[44]
처리[43]데이터의 값, 형태, 장소를 변경하는 한 세트의 실행을 표현한다.[43]
판단[43]프로그램이 실행되는 두 가지 경로 중에 하나를 결정하는 조건부 실행을 나타낸다.[44] 일반적으로 예/아니오 질의이거나 참/거짓 검사이다.[43]
입력/출력[43]데이터의 입력과 출력을 나타낸다.[44]
주석[44]추가적인 설명을 덧붙인다.[43]
서브루틴다른 곳에 정의된 프로세스를 나타낸다.[44]
페이지 내 연결자[44]순서도의 한 페이지에서 길거나 혼란스러운 선을 대체하며, 내부에 글자가 기재된 작은 원으로 표현된다.[44][45]
페이지 간 연결자[44]연결하려는 대상이 다른 페이지에 있을 때 사용하는 연결자로, 내부에 정보가 기재된다.[44][45]


4. 2. 기타 기호

도형이름설명
데이터 파일 또는 데이터베이스
데이터 파일 또는 데이터베이스데이터를 저장하는 공간을 나타내며, 원통으로 표현된다.
문서
문서단일 문서를 나타낸다.
다중 문서
여러 문서를 나타낸다.
메뉴얼 실행
메뉴얼 실행수동으로만 실행되는 경우를 나타낸다.
메뉴얼 입력
메뉴얼 입력수동 입력을 나타낸다.
준비
준비 또는 초기화특정 설정을 준비하는 단계를 나타낸다.


5. 순서도 작성 규칙

국제 표준화 기구에서 1965년 10월 SC7 총회에서 표준안으로 결의된 기호를 사용한다.[42] 순서도 기호 사용 규칙은 다음과 같다.


  • 기호 내부에는 처리할 내용을 명확하게 작성해야 한다.
  • 순서는 위에서 아래, 왼쪽에서 오른쪽을 원칙으로 하며, 그 외의 경우는 화살표를 사용한다.
  • 흐름선은 서로 교차해도 무관하며, 서로 영향을 주지 않는다.
  • 여러 흐름선을 하나로 합칠 수 있다.
  • 기호 모형은 가로, 세로 비율은 정해져 있지 않으나, 명확하게 구분되어야 한다.

6. 순서도 소프트웨어

최근에는 다양한 순서도 소프트웨어가 개발, 배포되고 있다. 이러한 소프트웨어는 무료 프로그램과 상용 프로그램으로 나뉜다.

무료 프로그램은 다음과 같다.



상용 소프트웨어는 다음과 같다.

어떤 드로잉 프로그램이라도 순서도 다이어그램을 만드는 데 사용할 수 있지만, 이러한 프로그램은 데이터베이스나 프로젝트 관리 시스템 또는 스프레드시트와 같은 다른 프로그램과 데이터를 공유할 수 있는 기본 데이터 모델이 없을 수 있다. 프로그래밍 언어 소스 코드에서 직접 또는 순서도 설명 언어에서 자동으로 순서도를 만들 수 있는 많은 소프트웨어 패키지가 존재한다.

순서도를 사용하여 프로그램을 나타내고 실행하는 몇 가지 응용 프로그램과 시각 프로그래밍 언어[23]가 있다. 일반적으로 이것들은 초보 학생들을 위한 교육 도구로 사용된다.

7. 구조화 순서도

구조적 프로그래밍이 등장하면서, 순서도의 단점을 보완하기 위한 여러 가지 구조화 차트가 고안되었다. 대표적인 구조화 차트로는 NS도(w:Nassi–Shneiderman diagram, DIN 66261)가 있으며, ISO/IEC 8631 (JIS X 0128)의 Annex A (informative)에는 다음과 같은 도법들이 제시되어 있다.


  • PAD (Problem Analysis Diagram, 후타무라 요시히코 고안)[40]
  • HCP (Hierarchical ComPact description chart, 일본전신전화공사 요코스카 전기통신 연구소 개발)
  • PSD (Program Structure Diagram, 일본 전기)
  • DSD (Design Structure Diagram)
  • SPD (Structured Programming Diagram)
  • LCP (Logical Conception of Program hierarchical)
  • LCP (Logical Conception of Program flow chart)
  • YAC (Yet Another Control chart, 후지쯔)


그러나 이러한 구조화 차트들은 널리 보급되지 못했다. 폰 노이만 등이 순서도를 프로그래밍 보조 수단으로 채택했던 기계어 프로그래밍 시대가 지나고, 구조화를 지원하는 고수준 프로그래밍 언어가 등장하면서, 알고리즘을 프로그래밍 언어로 직접 명확하게 표현하는 것이 가능해졌기 때문이다. 또한, 표준화되지 않은 여러 제안들이 난립하면서 채택에 어려움이 있었다는 점도 널리 보급되지 못한 이유 중 하나이다.

구조화 차트를 사용할 때는 여러 개의 상자가 세로로 늘어서는 것을 피하고 서브루틴으로 분리하는 등, "순서도의 결점"을 경계해야 한다. 이러한 이유로 "순서도"라는 말 대신 '''구조화 차트'''라는 용어가 사용되기도 한다.

8. 기타

일본에서는 기업공개나 내부 통제를 위한 순서도로 다음과 같은 형식을 사용하기도 한다.

; NOMA 방식

: 일본경영협회(NOMA)의 이사였던 사에구사 쇼스케가 만든 방식이다. 사용하는 기호를 줄여서 간단하게 표현하는 것이 특징이다.

; 닛노 방식

: 일본능률협회가 만든 방식이다. NOMA 방식과 유사하다.

; 산노다이 방식

: 학교법인 산업능률대학이 만든 방식이다. NOMA 방식에 비해, "FAX", "복사" 등 구체적인 기호를 사용하는 것이 특징이다. 기업공개 시 제출 자료에서 이 형식을 사용하는 경우가 많다.[39]

참조

[1] 웹사이트 SEVOCAB: Software Systems Engineering Vocabulary http://pascal.comput[...] 2008-07-31
[2] 웹사이트 Process Charts https://web.archive.[...] American Society of Mechanical Engineers 1921
[3] 웹사이트 People come first http://www.worksimp.[...] 1996-06-10
[4] 간행물 ASME standard; operation and flow process charts http://catalog.hathi[...] American Society of Mechanical Engineers 1947
[5] 서적 Calculating Instruments and Machines https://archive.org/[...] The University of Illinois Press
[6] 서적 IBM's Early Computers https://archive.org/[...] The MIT Press
[7] 서적 The Computer from Pascal to Von Neumann https://archive.org/[...] Princeton University Press
[8] 서적 John von Neumann Collected Works Macmillan
[9] 서적 Tools for Structured and Object-Oriented Design Prentice Hall
[10] 서적 Critical Incident Management https://books.google[...]
[11] 서적 Microprocessors: Design and Applications https://books.google[...]
[12] 서적 A Guide for Programmers
[13] 서적 Quality and Process Improvement https://books.google[...]
[14] 논문 Fundamentals of reversible flowchart languages 2016-01
[15] 논문 Taking the heat 2021-06
[16] 서적 Discovering Computers, Complete: Your Interactive Guide to the Digital World https://archive.org/[...] Cengage Learning 2011
[17] 서적 Fundamentals of Engineering Programming with C and Fortran Cambridge University Press 1998
[18] 웹사이트 ISO 5807:1985: Information processing — Documentation symbols and conventions for data, program and system flowcharts, program network charts and system resources charts https://www.iso.org/[...] International Organization for Standardization 1985-02
[19] 웹사이트 Flowcharting Techniques GC20-8152-1 https://fulmanski.pl[...] IBM 1970-03
[20] 웹사이트 What do the different flowchart shapes mean? https://www.rff.com/[...] RFF Electronics
[21] 서적 Embedded Microcomputer Systems: Real Time Interfacing Cengage Learning 2011
[22] 서적 Reasoning with Diagrams: Decision-Making and Problem-Solving with Diagrams John Wiley & Sons 2009
[23] 논문 Visual programming, programming by example, and program visualization: a taxonomy. https://www.cs.cmu.e[...] ACM
[24] 웹사이트 SEVOCAB: Software and Systems Engineering Vocabulary http://pascal.comput[...] 2008-07-31
[25] 특허 特許2922207 https://www.j-platpa[...]
[26] 서적 ハンディブック 機械 改訂2版 オーム社 2007-03-20
[27] 웹사이트 People come first http://www.worksimp.[...] 1996-06-10
[28] 서적 Calculating Instruments and Machines The University of Illinois Press
[29] 서적 IBM's Early Computers The MIT Press
[30] 서적 The Computer from Pascal to Von Neumann Princeton University Press
[31] 서적 John von Neumann Collected Works Macmillan
[32] 서적 Tools for Structured and Object-Oriented Design Prentice Hall
[33] 웹사이트 JIS X 0121:1986 「情報処理用流れ図・プログラム網図・システム資源図記号」 https://www.jisc.go.[...]
[34] 서적 Critical Incident Management https://books.google[...]
[35] 서적 Microprocessors: Design and Applications https://books.google[...]
[36] 서적 A Guide for Programmers 1978
[37] 서적 Quality and Process Improvement https://books.google[...] 2001
[38] 논문 Fundamentals of reversible flowchart languages 2016-01
[39] 논문 Taking the heat 2021-06
[40] 논문 PAD (Problem Analysis Diagram)によるプログラムの設計および作成 http://id.nii.ac.jp/[...] 情報処理学会
[41] 웹사이트 SEVOCAB: Software and Systems Engineering Vocabulary http://pascal.comput[...] 2008-07-31
[42] 서적 순서도 작성 정익사
[43] 서적 Fundamentals of Engineering Programming with C and Fortran Cambridge University Press 1998
[44] 서적 Discovering Computers, Complete: Your Interactive Guide to the Digital World https://archive.org/[...] Cengage Learning 2011
[45] 웹인용 What do the different flowchart shapes mean? https://www.rff.com/[...] RFF Electronics 2017-07-23
[46] 서적 순서도 작성 정익사



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com