stringtranslate.com

Диаграмма Насси – Шнейдермана

Пример диаграммы Насси – Шнейдермана

Диаграмма Насси -Шнейдермана (НСД) в компьютерном программировании представляет собой графическое представление структурного программирования . [1] Этот тип диаграммы был разработан в 1972 году Исааком Насси и Беном Шнейдерманом , которые оба были аспирантами Университета Стоуни-Брук . [2] Эти диаграммы также называются структурограммами , [3] поскольку они показывают структуру программы.

Обзор

Следуя нисходящему проектированию , рассматриваемая проблема сводится к все меньшим и меньшим подзадачам, пока не останутся только простые операторы и конструкции потока управления . Диаграммы Насси – Шнейдермана прямо отражают эту нисходящую декомпозицию, используя вложенные блоки для представления подзадач. В соответствии с философией структурного программирования диаграммы Насси-Шнейдермана не представляют оператора GOTO .

Диаграммы Насси – Шнейдермана редко используются для формального программирования. Их уровень абстракции близок к структурированному программному коду, и модификации требуют перерисовки всей диаграммы, но графические редакторы устранили это ограничение. Они разъясняют алгоритмы и проекты высокого уровня, что делает их полезными в обучении. Они были включены в Microsoft Visio и десятки других программных инструментов, таких как немецкий EasyCODE. [4]

В Германии диаграммы Насси-Шнейдермана были стандартизированы в 1985 году как DIN 66261. [5] Они до сих пор используются в немецких введениях в программирование, например, во введении Бетчера и Кнайсля в C, [6] во введении Бёмле-Курта и Шмидта в C [7]. ] и введение Кирха в C#. [8]

Диаграммы Насси-Шнейдермана также можно использовать в технических текстах . [9]

Диаграммы

Блоки процессов: блок процессов представляет собой простейший этап и не требует анализа. Когда встречается блок процесса, выполняется действие внутри блока, и мы переходим к следующему блоку.

Блоки процессов

Блоки ветвления: существует два типа блоков ветвления. Во-первых, это простой блок ветвления «Истина/Ложь» или «Да/Нет», который предлагает программе два пути в зависимости от того, выполнено или нет условие. Эти блоки можно использовать в качестве процедуры цикла, останавливающей работу программы до тех пор, пока не будет выполнено условие.

Блоки ветвления True/False

Второй тип блока разветвления представляет собой блок с множественным разветвлением. Этот блок используется, когда в программе необходим выбор случая. Блок обычно содержит вопрос или выбор случая. Блок предоставляет программе множество вариантов выбора и часто используется вместе с блоками подпроцессов для экономии места.

Множественные блоки ветвления

Циклы тестирования: этот блок позволяет программе запускать один или несколько процессов до тех пор, пока не будет выполнено определенное условие. Блоки процесса, охватываемые каждым циклом, подразделяются на боковые панели, выходящие за пределы условия.

Существует два основных типа циклов тестирования: первый блок и последний. Единственная разница между ними заключается в порядке выполнения соответствующих шагов. В ситуации «сначала проверка», когда программа встречает блок, она проверяет, выполнено ли условие, затем, если оно не выполнено, процесс блокируется, а затем возвращается обратно. Тест выполняется еще раз и, если условие все еще не выполнено, он обрабатывается снова. Если на каком-либо этапе условие выполняется, программа пропускает блоки процесса и переходит к следующему блоку.

Тест первого блока цикла

Последний блок теста просто переворачивается, блоки процесса завершаются до выполнения теста. Последний цикл теста позволяет выполнить блоки процесса хотя бы один раз перед первым тестом.

Тест последнего блока цикла

Параллельное выполнение можно изобразить следующим образом:

параллельная обработка

Смотрите также

Публикации

Рекомендации

  1. ^ Ханс-Георг Филл (2009). Визуализация для семантических информационных систем . стр.32
  2. ^ Краткая история структурированных блок-схем (диаграммы Насси-Шнейдермана) . Черновик веб-документа: 27 мая 2003 г. (Источник)
  3. ^ Рольф Изерманн (1988). Автоматическое управление: Избранные доклады всемирного конгресса Международной федерации автоматического управления, проводимого раз в три года: Мюнхен, Федеративная Республика Германия, 27–31 июля 1987 г., Том 10; Том 14 . стр.89
  4. ^ «Реализация со структурными диаграммами» . ЭАСИКОД ГмбХ . Проверено 7 февраля 2023 г.
  5. ^ Немецкий институт нормирования e. V. (DIN): DIN 66261: Informationsverarbeitung; Sinnbilder für Struktogramme nach Nassi-Shneiderman.
  6. ^ Бетчер, Аксель; Кнайсль, Франц: Informatik für Ingenieure: Grundlagen und Programmierung на C. 3-е издание. Мюнхен: Ольденбург, 2012. ISBN 978-3-486-70527-0 . См. особенно главу 10: «Kontrollstrukturen» (поток управления). 
  7. ^ Бёмл-Корт, Питер; Шмидт, Торстен: Praktische Einführung in C. Мюнхен: Ольденбург, 2012. ISBN 978-3-486-70799-1 . См. особенно главу 6: «Kontrollstrukturen» (поток управления). 
  8. ^ Кирх, Улла: C# Lernen und professionalell anwenden . Гейдельберг: MITP, 2009. ISBN 978-3-8266-5915-7 . См. особенно главу 5: «Schleifen und Verzweigungen» (петли и ответвления). 
  9. ^ Вайс, Эдмонд Х.: «Визуализация процедуры с помощью диаграмм Насси-Шнайдермана», Журнал технического письма и коммуникации , Vol. 20, №. 3 (1990): 237-54.

Внешние ссылки