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

редактировать
Пример диаграммы Наси – Шнейдермана

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

Содержание

  • 1 Обзор
  • 2 Диаграммы
  • 3 См. Также
  • 4 Публикации
  • 5 Ссылки
  • 6 Внешние ссылки

Обзор

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

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

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

Диаграммы Наси – Шнейдермана также могут использоваться в техническом письме.

Диаграммы

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

Блоки обработки

Блоки ветвления: есть два типа блоков ветвления. Во-первых, это простой блок ветвления True / False или Yes / No, который предлагает программе два пути в зависимости от того, выполнено ли условие или нет. Эти блоки могут использоваться как процедура цикла, останавливающая выполнение программы до тех пор, пока не будет выполнено условие.

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

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

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

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

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

Тестировать первый блок цикла

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

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

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

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

См. Также

Публикации

Ссылки

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

На Wikimedia Commons есть материалы, связанные с to Диаграммы Наси-Шнейдермана.
Последняя правка сделана 2021-05-31 10:05:56
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте