나시-슈나이더만 도표
Nassi–Shneiderman diagramA 나시-컴퓨터 프로그래밍의 쉐이더맨 다이어그램(NSD)은 구조화된 프로그래밍을 위한 그래픽 디자인 표현이다.[1] 이런 형태의 도표는 1972년 스토니 브룩 대학의 대학원생이었던 아이작 나시와 벤 슈나이더만에 의해 개발되었다.[2] 이 도표들은 프로그램의 구조를 보여주기 때문에 구조그램이라고도 불린다.[3]
개요
하향식 설계 이후, 문제는 단순한 문장과 제어 흐름 구성만이 남을 때까지 점점 더 작은 하위 문제로 축소된다. Nassi-Shneiderman 다이어그램은 하위 문제를 나타내기 위해 내포된 상자를 사용하여 이러한 하향식 분해를 직접 반영한다. 구조화된 프로그래밍의 철학과 일치, 나시-Shneiderman 다이어그램에는 GOTO 문장이 표시되지 않는다.
나시-슈나이더만 도표는 공식 프로그래밍에 거의 사용되지 않는다. 추상화 수준은 구조화된 프로그램 코드에 가깝고 수정하려면 전체 도표를 다시 그려야 하지만 그래픽 편집자는 그러한 제한을 없앴다. 그들은 알고리즘과 높은 수준의 설계를 명확히 하여 가르치는 데 유용하게 만든다. 그것들은 마이크로소프트 비시오와 독일 이지 코드와 같은 수십 개의 다른 소프트웨어 도구에 포함되었다.
독일에선 나시-Shneiderman 도표는 1985년에 DIN 66261로 표준화되었다.[4] 독일의 프로그래밍 소개에는 여전히 사용되고 있는데, 예를 들어 Bötcher와 Kneißl의 C 소개,[5] Baeumle-Cours, Schmidt의 C 소개[6], Kirch의 C#[7] 소개 등이다.
Nassi-Shneiderman 도표는 기술 문서에도 사용될 수 있다.[8]
도표
프로세스 블록: 프로세스 블록은 가장 간단한 단계를 나타내며 분석이 필요하지 않다. 프로세스 블록에 부딪히면 블록 내부의 동작이 수행되고 우리는 다음 블록으로 이동한다.
분기 블록: 분기 블록에는 두 가지 유형이 있다. 첫째는 조건이 충족되었는지 여부에 따라 프로그램에 두 가지 경로를 제공하는 단순 참/거짓 또는 예/아니오 분기 블록이다. 이러한 블록은 조건이 충족될 때까지 프로그램을 계속하지 못하게 하는 루핑 절차로 사용될 수 있다.
두 번째 유형의 분기 블록은 다중 분기 블록이다. 이 블록은 프로그램에서 선택 케이스를 필요로 할 때 사용된다. 블록에는 일반적으로 질문이나 선택 사례가 포함되어 있다. 블록은 프로그램에 일련의 선택사항을 제공하며, 종종 공간을 절약하기 위해 하위 프로세스 블록과 함께 사용된다.
시험 루프: 이 블록은 프로그램이 특정 조건이 충족될 때까지 하나의 프로세스 또는 일련의 프로세스를 반복하도록 허용한다. 각 루프로 덮인 프로세스 블록은 조건으로부터 확장된 측면 막대와 하위 집합이다.
시험 루프에는 먼저 시험하는 것과 마지막 시험 블록의 두 가지 주요 유형이 있다. 둘의 유일한 차이점은 관련 단계가 완료되는 순서다. 테스트 첫 번째 상황에서 프로그램이 블록과 마주쳤을 때 조건이 충족되는지 테스트한 다음, 프로세스 블록이 완료되지 않은 경우 다시 루프를 실행한다. 테스트는 다시 수행되며, 조건이 여전히 충족되지 않으면 다시 처리한다. 어느 단계에서든 조건이 충족되면 프로그램은 프로세스 블록을 건너뛰고 다음 블록으로 계속된다.
테스트 마지막 블록은 단순히 반대로 진행되며, 프로세스 블록은 테스트를 수행하기 전에 완료된다. 테스트 마지막 루프는 첫 번째 테스트 전에 프로세스 블록을 적어도 한 번 수행할 수 있도록 한다.
병렬 실행은 다음과 같이 그릴 수 있다.
참고 항목
출판물
- 나시, 나시; 슈나이더만, B. 구조화된 프로그래밍을 위한 플로우차트 기법, SIGPlan Notice XII, 1973년 8월.
참조
- ^ 한스-조그 필(2009년). 의미론적 정보 시스템의 시각화. 페이지
- ^ 구조화된 흐름도의 짧은 역사(Nassi-Shneiderman 다이어그램). Webdoc 초안: 2003년 5월 27일 (출처)
- ^ 롤프 이세르만(1988년). 자동 제어: 국제자동제어연맹 3년마다 열리는 세계회의의 선정 논문: 뮌헨, 독일연방공화국, 1987년 7월 27~31권, 제10권; 제14권 페이지 89
- ^ 독일어 연구소 Für Normung e. V. (DIN): DIN 66261: Informationsverar bytung; Sinnbilder für Struktogramme nach Nassi-Shneiderman.
- ^ 뵈트체르, 악셀, 크나이셀, 프란츠, Informatik Für Innovieure: 그룬들라겐 und Programmingierung in C. 3판. 뮌헨: 올덴부르, 2012. ISBN978-3-486-70527-0. 특히 10장: "Kontrollstructuren"(제어 흐름)을 참조하십시오.
- ^ Baumle-Courth, Peter; Schmidt, Torsten: C의 Praktische Einführung. 뮌헨: 올덴부르, 2012. ISBN 978-3-486-70799-1 특히 6장: "Kontrollstructuren"(제어 흐름)을 참조하십시오.
- ^ 키르흐, 울라: C# 레넌과 프로페셔널 셀 안웬덴. 하이델베르크: mitp, 2009. ISBN 978-3-8266-5915-7 특히 5장: "Schleifen und Verzweigungen"(루프 및 나뭇가지)을 참조하십시오.
- ^ Weiss, Edmond H.: "Nassi-Schneiderman Charts로 절차 시각화", Journal of Technical Writing and Communication, Vol. 20, Nr. 3(1990): 237-54.
외부 링크
![]() | 위키미디어 커먼즈에는 나시-슈나이더만 다이어그램과 관련된 미디어가 있다. |
- 구조화된 플로우차트의 짧은 역사(Nassi–2003년 5월 27일, Ben Shneiderman의 초안인 Shneiderman 다이어그램).
- 니콜라스 헵: "엑셀에서 나시-슈나이더만 도표를 만드는 방법"(날짜 없음)
- JSC(Julich Supercomputing Centre) : "2012년 10월 30일, "유닉스 하의 Nassi-Shneiderman 다이어그램 생성"
- 요더, 코넬리아 M, 마릴린 L.: "나시-슈나이더만 차트: 설계에 대한 흐름도의 대안". 절차, ACM SIGSoft/BIGMETRYS 소프트웨어 및 보증 워크샵, 1978년 11월.