Насся-Шнейдерман диаграмма (НСД) в компьютерном программировании является графическим дизайном представлением для структурного программирования . [1] Этот тип диаграммы был разработан в 1972 году Исааком Насси и Беном Шнейдерманом , которые оба были аспирантами Университета Стоуни-Брук . [2] Эти диаграммы также называют structograms , [3] , поскольку они показывают , структурирует программы.
Обзор
В соответствии с нисходящим дизайном рассматриваемая проблема сокращается на все меньшие и меньшие подзадачи, пока не останутся только простые утверждения и конструкции потока управления . Диаграммы Насси – Шнейдермана прямо отражают эту нисходящую декомпозицию, используя вложенные блоки для представления подзадач. В соответствии с философией структурированного программирования диаграммы Насси – Шнейдермана не имеют представления для оператора GOTO .
Диаграммы Насси – Шнейдермана редко используются для формального программирования. Их уровень абстракции близок к структурированному программному коду, и модификации требуют перерисовки всей диаграммы, но графические редакторы сняли это ограничение. Они разъясняют алгоритмы и проекты высокого уровня, что делает их полезными в обучении. Они были включены в Microsoft Visio и десятки других программных инструментов, таких как German EasyCode .
В Германии диаграммы Насси – Шнейдермана были стандартизированы в 1985 году как DIN 66261. [4] Они до сих пор используются во введении в программирование на немецком языке, например, во введении Бёттхера и Кнайсля в C, [5] во введении Боймле-Курта и Шмидта в C [6]. ] и введение Кирха в C #. [7]
Диаграммы Насси – Шнейдермана также могут быть использованы в техническом письме . [8]
Диаграммы
Блоки процесса: блок процесса представляет собой простейший шаг и не требует анализа. Когда встречается блок процесса, выполняется действие внутри блока, и мы переходим к следующему блоку.
Блоки ветвления: есть два типа блоков ветвления. Во-первых, это простой блок ветвления True / False или Yes / No, который предлагает программе два пути в зависимости от того, выполнено ли условие. Эти блоки могут использоваться как процедура цикла, останавливающая выполнение программы до тех пор, пока не будет выполнено условие.
Второй тип блока ветвления - это блок множественного ветвления. Этот блок используется, когда в программе нужен регистр выбора. Блок обычно содержит вопрос или выбранный случай. Блок предоставляет программе множество вариантов выбора и часто используется вместе с блоками подпроцесса для экономии места.
Циклы тестирования: этот блок позволяет программе выполнять цикл одного или нескольких процессов до тех пор, пока не будет выполнено определенное условие. Блоки процесса, охватываемые каждым циклом, являются подмножеством с боковой полосой, выходящей из условия.
Существует два основных типа циклов тестирования: первый тестовый и последний тестовый блоки. Единственная разница между ними - это порядок, в котором выполняются соответствующие шаги. В первой ситуации тестирования, когда программа встречает блок, который она проверяет, чтобы увидеть, выполняется ли условие, затем, если это не так, завершает блоки процесса и затем возвращается в цикл. Тест выполняется снова, и, если условие все еще не выполнено, он обрабатывается снова. Если на каком-либо этапе условие выполняется, программа пропускает блоки обработки и переходит к следующему блоку.
Последний блок теста просто переворачивается, блоки процесса завершаются до выполнения теста. Последний цикл теста позволяет выполнять блоки процесса по крайней мере один раз перед первым тестом.
Параллельное выполнение можно нарисовать так:
Смотрите также
Публикации
- Наси, I .; Шнейдерман, Б.: Технологии блок-схем для структурного программирования , SIGPLAN Notices XII, август 1973.
Рекомендации
- Перейти ↑ Hans-Georg Fill (2009). Визуализация для семантических информационных систем . стр.32
- ^ Краткая история структурированных блок-схем (диаграммы Насси-Шнейдермана) . Черновик Webdoc: 27 мая 2003 г. ( Источник )
- ^ Рольф Изерманн (1988). Автоматическое управление: избранные доклады всемирного конгресса Международной федерации автоматического управления, который проводится раз в три года: Мюнхен, Федеративная Республика Германия, 27–31 июля 1987 г., том 10; том 14 . стр.89
- ^ Deutsches Institut für Normung e. V. (DIN): DIN 66261: Informationsverarbeitung; Sinnbilder für Struktogramme nach Nassi-Shneiderman .
- ^ Бёттчер, Аксель; Kneissl, Franz: Informatik für Ingenieure: Grundlagen унд Programmierung в C . 3-е издание. München: Oldenbourg, 2012. ISBN 978-3-486-70527-0 . См. Особенно главу 10: «Контроллструктуран» (поток управления).
- ^ Baeumle-Courth, Питер; Шмидт, Торстен: Praktische Einführung в C . Мюнхен: Ольденбург, 2012. ISBN 978-3-486-70799-1 . См. Особенно главу 6: «Контроллструктуран» (поток управления).
- ^ Кирх, Улла: C # lernen und professionalell anwenden . Гейдельберг: митп, 2009. ISBN 978-3-8266-5915-7 . См. Особенно главу 5: «Schleifen und Verzweigungen» (петли и ответвления).
- ^ Вайс, Эдмонд Х .: «Визуализация процедуры с помощью диаграмм Насси-Шнайдермана», Журнал технического письма и коммуникации , Vol. 20, № 3 (1990): 237-54.
Внешние ссылки
- Краткая история структурированных блок-схем (диаграмм Насси – Шнейдермана) , Бена Шнейдермана, черновик, 27 мая 2003 г.
- Николас Хебб: « Как создать диаграмму Наси-Шнейдермана в Excel » (без даты).
- Юлихский суперкомпьютерный центр (ЗАО): « Генерация диаграмм Наси-Шнейдермана под Unix с помощью nassi », 30 октября 2012 г.
- Йодер, Корнелия М; Шраг, Мэрилин Л .: « Диаграммы Насси-Шнейдермана: альтернатива блок-схемам для дизайна ». Proceedings, ACM SIGSOFT / BIGMETRICS Software and Assurance Workshop , ноябрь 1978 г.