순서도
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
순서도는 작업의 흐름이나 알고리즘을 시각적으로 표현하기 위해 사용되는 도구이다. 1921년 프랭크와 릴리안 길브레스 부부가 "흐름 공정 차트"를 발표하면서 시작되었으며, 앨런 H. 모겐슨에 의해 산업 공학에 도입되었다. 초기에는 컴퓨터 프로그램 계획에 사용되었으나, 1970년대 이후 프로그래밍 언어의 발전으로 인해 사용 빈도가 줄어들었다. 순서도는 시스템, 프로그램, 가역 순서도 등 다양한 종류가 있으며, 기호와 작성 규칙에 따라 작성된다. 순서도 작성을 위한 다양한 소프트웨어가 존재하며, 구조적 프로그래밍 개념 도입과 함께 구조화 차트가 고안되기도 했다. 일본에서는 기업 공개 및 내부 통제를 위해 NOMA 방식, 닛노 방식, 산노다이 방식 등이 사용되기도 한다.
더 읽어볼만한 페이지
- 알고리즘 기술 언어 - 의사코드
의사코드는 컴퓨터 과학 및 수치 계산 분야에서 알고리즘을 설명하기 위해 사용되는 비표준적인 언어로, 자연어와 프로그래밍 언어의 요소를 혼합하여 알고리즘의 논리적 흐름을 이해하기 쉽게 하고 프로그래머가 실제 코드로 구현하기 전에 알고리즘을 설계하고 검토하는 데 유용하다. - 코드 예시에 관한 문서 - 람다 대수
람다 대수는 알론조 처치가 수학기초론 연구를 위해 도입한 형식 체계로, 초기 체계의 모순 수정 후 유형 없는 람다 대수와 단순 유형 람다 대수가 발표되었으며, 프로그래밍 언어와의 관계가 명확해지면서 컴퓨터 과학과 언어학에서 중요한 위치를 차지하며 함수형 프로그래밍 언어의 기반이 되었고, 튜링 완전성을 가지는 등 다양한 분야에 응용된다. - 코드 예시에 관한 문서 - 러스트 (프로그래밍 언어)
러스트는 모질라 재단 후원으로 개발된 시스템 프로그래밍 언어로서, 높은 안정성과 병렬성을 제공하며 메모리 안전성을 보장하고 효율적인 리소스 관리를 가능하게 하여 웹 브라우저 엔진, 운영체제, 웹 서비스 등 다양한 분야에서 활용되며 개발자들에게 인기가 높다. - 모델링 언어 - 차트
차트는 통계 데이터를 점, 선, 도형 등으로 묘사하여 데이터의 규칙성, 경향 등을 시각적으로 제시하고 분석 방향을 제시하는 도표이며, 히스토그램, 막대그래프, 원그래프, 선 그래프 등이 흔히 사용된다. - 모델링 언어 - 다이어그램
다이어그램은 2차원 기하학적 기호를 사용하여 정보를 시각적으로 표현하는 기술로, 과학, 공학, IT, 비즈니스 등 다양한 분야에서 활용되며 정보를 간략하게 나타내고 시각적 사고를 돕는다.
순서도 | |
---|---|
개요 | |
![]() | |
정의 | 특정 작업을 수행하기 위해 단계별로 수행해야 하는 프로세스를 그래픽으로 표현한 다이어그램 |
유형 | 프로세스 순서도 데이터 순서도 시스템 순서도 프로그램 순서도 워크플로 차트 |
역사 | |
발명 | 프랭크 길브레스 릴리안 몰러 길브레스 |
발표 연도 | 1921년, 미국 기계공학회 |
도구 | 길브레스 부부가 개발한 "플로우 프로세스 차트" |
구성 요소 | |
기호 | 터미널 (시작/종료) 프로세스 결정 입력/출력 흐름선 |
응용 분야 | |
사용 분야 | 프로그래밍 소프트웨어 개발 비즈니스 프로세스 모델링 프로세스 개선 문서화 프로젝트 관리 |
장점 | |
시각적 표현 | 프로세스를 쉽게 이해하고 분석할 수 있도록 도와줌 |
문제 해결 | 잠재적인 문제점을 식별하고 해결하는 데 도움 |
의사 소통 | 프로세스에 관련된 모든 사람이 동일한 이해를 공유하도록 함 |
효율성 향상 | 불필요한 단계를 제거하고 프로세스를 최적화하는 데 도움 |
단점 | |
복잡성 | 복잡한 프로세스의 경우 순서도가 매우 복잡해질 수 있음 |
유지 보수 | 프로세스가 변경되면 순서도를 업데이트해야 함 |
문제 해결의 한계 | 문제 해결의 이해에는 거리가 멀 수 있음 (각 단계와 흐름은 단순하지만 전체를 이해하려면 노력이 필요) |
관련 표준 | |
ISO | ISO 5807 |
ANSI | ANSI 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]
UML 활동 다이어그램과 같이 순서도와 유사하지만 다른 이름을 사용하는 다이어그램 기술도 있다.
4. 기호
국제 표준화 기구(ISO)는 1965년 10월 SC7 총회에서 순서도 작성에 필요한 표준 기호를 결의하였다.[42] 순서도 기호 사용에는 몇 가지 규칙이 있다.
- 기호 내부에는 처리할 내용이 들어가야 한다.
- 순서는 위에서 아래로, 왼쪽에서 오른쪽을 원칙으로 하며, 그 외의 경우에는 화살표를 사용한다.
- 흐름선은 서로 교차해도 무관하며 서로 영향을 주지 않는다.
- 흐름선 여러 개가 모여 하나로 합칠 수 있다.
- 기호 모형의 가로, 세로 비율은 정해져 있지 않으나, 잘 구분할 수 있어야 한다.
순서도 기호는 기본 기호, 프로그래밍 관련 기호, 시스템 관련 기호 등 3가지 종류로 나눌 수 있으며, 총 30개의 기호가 있다.
4. 1. 일반적 기호
4. 2. 기타 기호
도형 | 이름 | 설명 |
---|---|---|
데이터 파일 또는 데이터베이스 | 데이터를 저장하는 공간을 나타내며, 원통으로 표현된다. | |
문서 | 단일 문서를 나타낸다. | |
여러 문서를 나타낸다. | ||
메뉴얼 실행 | 수동으로만 실행되는 경우를 나타낸다. | |
메뉴얼 입력 | 수동 입력을 나타낸다. | |
준비 또는 초기화 | 특정 설정을 준비하는 단계를 나타낸다. |
5. 순서도 작성 규칙
국제 표준화 기구에서 1965년 10월 SC7 총회에서 표준안으로 결의된 기호를 사용한다.[42] 순서도 기호 사용 규칙은 다음과 같다.
- 기호 내부에는 처리할 내용을 명확하게 작성해야 한다.
- 순서는 위에서 아래, 왼쪽에서 오른쪽을 원칙으로 하며, 그 외의 경우는 화살표를 사용한다.
- 흐름선은 서로 교차해도 무관하며, 서로 영향을 주지 않는다.
- 여러 흐름선을 하나로 합칠 수 있다.
- 기호 모형은 가로, 세로 비율은 정해져 있지 않으나, 명확하게 구분되어야 한다.
6. 순서도 소프트웨어
최근에는 다양한 순서도 소프트웨어가 개발, 배포되고 있다. 이러한 소프트웨어는 무료 프로그램과 상용 프로그램으로 나뉜다.
무료 프로그램은 다음과 같다.
- https://web.archive.org/web/20200319125330/https://app.diagrams.net/ Draw.io: 온라인 순서도 도구.
- https://gitmind.com/kr/ GitMind: 온라인 순서도 및 마인드 맵 도구, 무료 순서도 템플릿을 제공.
상용 소프트웨어는 다음과 같다.
- https://creately.com/ko/home/ Creately: 실시간 협업 기능이 있는 온라인 다이어그램 도구.
- https://www.lucidchart.com/ Lucidchart: 온라인 다이어그램 도구, 실시간 협업 가능.
- https://web.archive.org/web/20200316130547/https://www.smartdraw.com/ SmartDraw: 온라인 다이어그램 도구, 다양한 템플릿을 제공.
- XMind: 마인드맵, 피시본 다이어그램, 트리 다이어그램, 조직도, 스프레드시트 등을 지원.
- Microsoft Visio: 그림이나 도표를 그리는 소프트웨어.
어떤 드로잉 프로그램이라도 순서도 다이어그램을 만드는 데 사용할 수 있지만, 이러한 프로그램은 데이터베이스나 프로젝트 관리 시스템 또는 스프레드시트와 같은 다른 프로그램과 데이터를 공유할 수 있는 기본 데이터 모델이 없을 수 있다. 프로그래밍 언어 소스 코드에서 직접 또는 순서도 설명 언어에서 자동으로 순서도를 만들 수 있는 많은 소프트웨어 패키지가 존재한다.
순서도를 사용하여 프로그램을 나타내고 실행하는 몇 가지 응용 프로그램과 시각 프로그래밍 언어[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