나시슈나이더만도
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
나시-슈나이더만 다이어그램은 아이작 나시와 벤 슈나이더만이 1973년에 발표한 구조적 프로그래밍을 위한 순서도 기법이다. 이 다이어그램은 톱다운 설계를 따르며, 프로그램의 제어 흐름을 시각적으로 표현한다. 다이어그램은 처리 블록, 분기 블록, 테스트 루프, 병렬 처리 등의 구성 요소로 이루어져 있으며, 알고리즘 설계, 프로그래밍 교육, 기술 문서 작성 등 다양한 분야에서 활용될 수 있다. 그러나, 복잡한 프로그램의 표현에 한계가 있고, 수정이 어렵다는 비판도 존재한다.
더 읽어볼만한 페이지
- 다이어그램 - 회로도
회로도는 전기 또는 전자 회로의 구성 요소와 연결을 기호와 선으로 나타낸 도식적 표현으로, 표준화된 기호와 규칙을 따르며 전자 제품 설계 및 교육에 필수적인 도구이지만 표기법 통일은 아직 완벽하지 않다. - 다이어그램 - 헤르츠스프룽-러셀 도표
헤르츠스프룽-러셀 도표(HR도표)는 항성의 광도와 표면 온도 관계를 나타내는 그래프로, 항성의 분류, 진화 단계, 물리적 특성을 이해하는 데 필수적인 도구이며, 주계열성, 거성, 초거성 등 다양한 항성의 종류와 분포를 보여주며 항성물리학 발전에 기여한다. - 컴퓨터 프로그래밍 - 순서도
순서도는 컴퓨터 알고리즘이나 프로세스를 시각적으로 표현하는 도구로, 흐름 공정 차트에서 기원하여 컴퓨터 프로그래밍 분야에서 알고리즘을 설명하는 데 사용되며, 다양한 종류와 소프트웨어 도구가 존재한다. - 컴퓨터 프로그래밍 - 의사코드
의사코드는 컴퓨터 과학 및 수치 계산 분야에서 알고리즘을 설명하기 위해 사용되는 비표준적인 언어로, 자연어와 프로그래밍 언어의 요소를 혼합하여 알고리즘의 논리적 흐름을 이해하기 쉽게 하고 프로그래머가 실제 코드로 구현하기 전에 알고리즘을 설계하고 검토하는 데 유용하다.
나시슈나이더만도 |
---|
2. 역사
1973년 SIGPLAN에 나시와 슈나이더만이 구조적 프로그래밍을 위한 순서도 기법을 발표하면서 나시-슈나이더만도가 등장하였다.
2. 1. 개발 배경
나시와 슈나이더만은 1973년 8월 SIGPLAN에 ''구조적 프로그래밍을 위한 순서도 기법''을 발표했다.2. 2. 표준화 및 확산
나시와 슈나이더만은 1973년 8월 SIGPLAN 공지에 ''구조적 프로그래밍을 위한 순서도 기법''[1]을 발표하였다.I. Nassi|나시영어, B. Shneiderman|슈나이더만영어
3. 다이어그램 구성 요소
나시-슈나이더만 다이어그램은 톱다운 설계 방식을 따르며, 주어진 문제를 간단한 구문과 제어 흐름 구조만 남을 때까지 더 작은 하위 문제로 축소한다. 이러한 톱다운 분해는 중첩된 상자를 사용하여 하위 문제를 나타내는 방식으로 다이어그램에 직접 반영된다. 구조적 프로그래밍의 원칙에 따라, 나시-슈나이더만 다이어그램에는 GOTO 문에 대한 표현이 없다.[1]
나시-슈나이더만 다이어그램은 다음 요소들로 구성된다.
- 처리 블록 (Process Block)
- 분기 블록 (Branch Block)
- 참/거짓 분기 블록
- 다중 분기 블록
- 테스트 루프 (Test Loop)
- 테스트 선행 루프 (Test First Loop)
- 테스트 후행 루프 (Test Last Loop)
- 병렬 처리
3. 1. 처리 블록 (Process Block)
처리 블록은 가장 간단한 단계를 나타내며 분석이 필요하지 않다. 처리 블록을 만나면 블록 내부의 작업이 수행되고 다음 블록으로 넘어간다.3. 2. 분기 블록 (Branch Block)
분기 블록에는 참/거짓 분기 블록과 다중 분기 블록 두 가지 유형이 있다.[1]3. 2. 1. 참/거짓 분기 블록
분기 블록에는 두 가지 유형이 있다. 첫 번째는 단순한 참/거짓 또는 예/아니오 분기 블록으로, 조건이 충족되었는지 여부에 따라 프로그램에 두 가지 경로를 제공한다. 이러한 블록은 조건이 충족될 때까지 프로그램이 계속 진행되는 것을 막는 반복 절차로 사용할 수 있다.[1]
3. 2. 2. 다중 분기 블록
분기 블록에는 두 가지 유형이 있다. 첫 번째는 단순한 참/거짓 또는 예/아니오 분기 블록으로, 조건이 충족되었는지 여부에 따라 프로그램에 두 가지 경로를 제공한다. 이러한 블록은 조건이 충족될 때까지 프로그램이 계속 진행되는 것을 막는 반복 절차로 사용할 수 있다.두 번째 유형의 분기 블록은 다중 분기 블록이다. 이 블록은 프로그램에 선택 사례가 필요할 때 사용된다. 블록은 일반적으로 질문 또는 선택 사례를 포함한다. 블록은 프로그램에 일련의 선택 사항을 제공하며 공간을 절약하기 위해 하위 프로세스 블록과 함께 사용되는 경우가 많다.
3. 3. 테스트 루프 (Test Loop)
테스트 루프는 프로그램이 특정 조건이 충족될 때까지 하나 또는 일련의 프로세스를 반복할 수 있도록 하는 블록이다. 각 루프에서 다루는 처리 블록은 조건에서 확장되는 사이드바로 표현된다.테스트 루프에는 테스트 선행(Test First) 블록과 테스트 후행(Test Last) 블록 두 가지 주요 유형이 있다. 이 둘의 유일한 차이점은 관련된 단계가 완료되는 순서이다.
3. 3. 1. 테스트 선행 루프 (Test First Loop)
테스트 루프는 특정 조건이 충족될 때까지 하나 또는 일련의 프로세스를 반복하는 블록이다. 각 루프에서 처리 블록은 조건에서 확장되는 사이드바로 표현된다.테스트 루프에는 테스트 선행 블록과 테스트 후행 블록, 두 가지 주요 유형이 있다. 이 둘의 유일한 차이점은 관련 단계가 완료되는 순서이다. 테스트 선행 블록의 경우, 프로그램은 블록에 진입하면 조건 충족 여부를 먼저 테스트하고, 충족되지 않으면 처리 블록을 완료한 후 다시 루프를 반복한다. 조건이 충족될 때까지 이 과정이 반복되며, 조건이 충족되면 프로그램은 처리 블록을 건너뛰고 다음 블록으로 진행한다.
테스트 후행 블록은 이와 반대로, 처리 블록이 먼저 완료된 후 조건 테스트가 수행된다. 따라서 테스트 후행 루프에서는 첫 번째 테스트 전에 처리 블록이 최소 한 번 실행된다.
3. 3. 2. 테스트 후행 루프 (Test Last Loop)
테스트 루프에는 테스트 선행 블록과 테스트 후행 블록의 두 가지 주요 유형이 있다. 두 유형의 유일한 차이점은 관련된 단계가 완료되는 순서이다. 테스트 선행 블록의 경우 프로그램이 블록을 만나면 조건이 충족되었는지 테스트한 다음, 충족되지 않은 경우 처리 블록을 완료하고 다시 루프한다. 테스트가 다시 수행되고 조건이 여전히 충족되지 않으면 다시 처리된다. 어느 시점에서든 조건이 충족되면 프로그램은 처리 블록을 건너뛰고 다음 블록으로 계속 진행한다.테스트 후행 블록은 단순히 반전되며, 테스트가 수행되기 전에 처리 블록이 완료된다. 테스트 후행 루프를 사용하면 첫 번째 테스트 전에 처리 블록을 최소 한 번 수행할 수 있다.
3. 4. 병렬 처리 (Parallel Processing)
'''병렬 처리'''는 다음과 같이 나타낼 수 있다.4. 활용 분야
나시-슈나이더만 다이어그램은 형식적인 프로그래밍에는 거의 사용되지 않지만, 알고리즘과 고수준 설계를 명확하게 표현할 수 있어 교육 및 기술 문서 작성에 유용하게 활용된다. 1985년 독일에서는 DIN 66261로 표준화되기도 했다.
4. 1. 프로그래밍 교육
톱다운 설계에 따라, 주어진 문제는 간단한 구문과 제어 흐름 구조만 남을 때까지 작고 작은 하위 문제로 축소된다. 나시-슈나이더만 다이어그램은 하위 문제를 나타내기 위해 중첩된 상자를 사용하여 이러한 톱다운 분해를 직접적으로 반영한다. 구조적 프로그래밍의 철학에 따라 나시-슈나이더만 다이어그램은 GOTO 문에 대한 표현이 없다.나시-슈나이더만 다이어그램은 형식적인 프로그래밍에는 거의 사용되지 않는다. 추상화 수준이 구조적 프로그램 코드에 가깝고 수정을 위해서는 전체 다이어그램을 다시 그려야 하지만, 그래픽 편집기가 이러한 제한을 제거했다. 알고리즘과 고수준 설계를 명확하게 표현할 수 있어 교육에 유용하다. 마이크로소프트 비지오와 독일의 EasyCODE를 포함한 수십 개의 다른 소프트웨어 도구에 포함되었다.
독일에서 나시-슈나이더만 다이어그램은 1985년 DIN 66261로 표준화되었다. C 언어에 대한 Böttcher와 Kneißl의 입문서, Baeumle-Courth와 Schmidt의 C 언어 입문서 및 Kirch의 C# 입문서와 같이 독일의 프로그래밍 입문서에서 여전히 사용된다.
4. 2. 기술 문서 작성
톱다운 설계를 따르기 때문에, 주어진 문제는 간단한 구문과 제어 흐름 구조만 남을 때까지 작고 작은 하위 문제로 축소된다. 나시-슈나이더만 다이어그램은 하위 문제를 나타내기 위해 중첩된 상자를 사용하여 이러한 톱다운 분해를 직접적으로 반영한다. 구조적 프로그래밍의 철학에 따라 나시-슈나이더만 다이어그램은 GOTO 문에 대한 표현이 없다.나시-슈나이더만 다이어그램은 형식적인 프로그래밍에는 거의 사용되지 않는다. 그 추상화 수준은 구조적 프로그램 코드에 가깝고, 수정을 위해서는 전체 다이어그램을 다시 그려야 하지만, 그래픽 편집기가 이러한 제한을 제거했다. 나시-슈나이더만 다이어그램은 알고리즘과 고수준 설계를 명확하게 하므로 교육에 유용하다. 또한 마이크로소프트 비지오와 독일의 EasyCODE를 포함한 수십 개의 다른 소프트웨어 도구에 포함되었다.
독일에서 나시-슈나이더만 다이어그램은 1985년 DIN 66261로 표준화되었다. 예를 들어 C 언어에 대한 Böttcher와 Kneißl의 입문서, Baeumle-Courth와 Schmidt의 C 언어 입문서 및 Kirch의 C# 입문서와 같이 독일의 프로그래밍 입문서에서 여전히 사용된다.
4. 3. 알고리즘 설계
톱다운 설계를 따르며, 주어진 문제는 간단한 구문과 제어 흐름 구조만 남을 때까지 작고 작은 하위 문제로 축소된다. 나시-슈나이더만 다이어그램은 하위 문제를 나타내기 위해 중첩된 상자를 사용하여 이러한 톱다운 분해를 직접적으로 반영한다. 구조적 프로그래밍의 철학에 따라 GOTO 문에 대한 표현은 없다.나시-슈나이더만 다이어그램은 형식적인 프로그래밍에는 거의 사용되지 않는다. 추상화 수준이 구조적 프로그램 코드에 가깝고 수정을 위해서는 전체 다이어그램을 다시 그려야 하지만, 그래픽 편집기가 이러한 제한을 제거했다. 알고리즘과 고수준 설계를 명확하게 하며, 교육에 유용하다. 마이크로소프트 비지오와 독일의 EasyCODE를 포함한 수십 개의 다른 소프트웨어 도구에 포함되었다.
독일에서 나시-슈나이더만 다이어그램은 1985년 DIN 66261로 표준화되었다. 독일의 프로그래밍 입문서에서 여전히 사용된다.
나시-슈나이더만 다이어그램은 기술 문서에서도 사용될 수 있다.
4. 4. 소프트웨어 개발
톱다운 설계를 따른다는 점에서, 주어진 문제는 간단한 구문과 제어 흐름 구조만 남을 때까지 작고 작은 하위 문제로 축소된다. 나시-슈나이더만 다이어그램은 하위 문제를 나타내기 위해 중첩된 상자를 사용하여 이러한 톱다운 분해를 직접적으로 반영한다. 구조적 프로그래밍의 철학에 따라 나시-슈나이더만 다이어그램은 GOTO 문에 대한 표현이 없다.나시-슈나이더만 다이어그램은 형식적인 프로그래밍에는 거의 사용되지 않는다. 그 추상화 수준은 구조적 프로그램 코드에 가깝고 수정을 위해서는 전체 다이어그램을 다시 그려야 하지만, 그래픽 편집기가 이러한 제한을 제거했다. 나시-슈나이더만 다이어그램은 알고리즘과 고수준 설계를 명확하게 하며, 이는 교육에 유용하다. 또한 마이크로소프트 비지오와 독일의 EasyCODE를 포함한 수십 개의 다른 소프트웨어 도구에 포함되었다.
독일에서 나시-슈나이더만 다이어그램은 1985년 DIN 66261로 표준화되었다. C 언어에 대한 Böttcher와 Kneißl의 입문서, Baeumle-Courth와 Schmidt의 C 언어 입문서 및 Kirch의 C# 입문서와 같이 독일의 프로그래밍 입문서에서 여전히 사용된다.
나시-슈나이더만 다이어그램은 기술 문서에서도 사용될 수 있다.
5. 한계 및 비판
(이전 출력이 비어 있으므로, 수정할 내용이 없습니다. 원본 소스, 요약 등 필요한 정보를 제공해주시면 '한계 및 비판' 섹션 내용을 작성하겠습니다.)
참조
[1]
서적
Visualisation for Semantic Information Systems
2009
[2]
웹사이트
A short history of structured flowcharts (Nassi-Shneiderman Diagrams)
http://www.cs.umd.ed[...]
2003-05-27
[3]
서적
Automatic Control: Selected papers from the triennial world congress of the International Federation of Automatic Control : Munich, Federal Republic of Germany, 27–31 July 1987, Volume 10;Volume 14
1988
[4]
웹사이트
Implementation with structure diagrams
http://www.easycode.[...]
EASYCODE GmbH
2023-02-07
[5]
간행물
DIN 66261: Informationsverarbeitung; Sinnbilder für Struktogramme nach Nassi-Shneiderman
http://www.nia.din.d[...]
Deutsches Institut für Normung e. V. (DIN)
[6]
서적
Informatik für Ingenieure: Grundlagen und Programmierung in C
Oldenbourg
2012
[7]
서적
Praktische Einführung in C
Oldenbourg
2012
[8]
서적
C# lernen und professionell anwenden
mitp
2009
[9]
논문
Visualizing a Procedure with Nassi-Schneiderman Charts
1990
[10]
서적
Visualisation for Semantic Information Systems
2009
[11]
웹사이트
A short history of structured flowcharts (Nassi-Shneiderman Diagrams)
http://www.cs.umd.ed[...]
2003-05-27
[12]
서적
Automatic Control: Selected papers from the triennial world congress of the International Federation of Automatic Control : Munich, Federal Republic of Germany, 27–31 July 1987, Volume 10;Volume 14
1988
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com