Диаграмма Насси – Шнейдермана - Nassi–Shneiderman diagram

А Диаграмма Насси – Шнейдермана (НСД) в компьютерном программировании это графический дизайн представление для структурное программирование.[1] Этот тип диаграмма был разработан в 1972 г. Исаак Наси и Бен Шнейдерман которые оба были аспирантами в Университет Стоуни-Брук.[2] Эти диаграммы также называют структурограммы,[3] поскольку они показывают структуру программы.
Обзор
После нисходящий дизайн, рассматриваемая проблема сокращается на все меньшие и меньшие подзадачи, пока не будут только простые формулировки и поток управления конструкции остаются. Диаграммы Насси – Шнейдермана прямо отражают эту нисходящую декомпозицию, используя вложенные блоки для представления подзадач. В соответствии с философией структурного программирования диаграммы Насси – Шнейдермана не имеют представления для ИДТИ К утверждение.
Диаграммы Насси – Шнейдермана редко используются для формального программирования. Их уровень абстракции близок к структурированному программному коду, и модификации требуют перерисовки всей диаграммы, но графические редакторы сняли это ограничение. Они разъясняют алгоритмы и высокоуровневые проекты, что делает их полезными в обучении. Они были включены в Microsoft Visio и десятки других программных инструментов, таких как немецкий EasyCode.
В Германии диаграммы Насси – Шнейдермана были стандартизированы в 1985 году как DIN 66261.[4] Они до сих пор используются в немецких введениях в программирование, например во введении Бёттхера и Кнайсля в C,[5] Введение Баумле-Кур и Шмидта в C[6] и введение Кирха в C #.[7]
Диаграммы Насси – Шнейдермана также могут быть использованы в техническое письмо.[8]
Диаграммы
Блоки процесса: блок процесса представляет собой простейший шаг и не требует анализа. Когда встречается блок процесса, выполняется действие внутри блока, и мы переходим к следующему блоку.

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

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

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

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

Одновременный исполнение можно нарисовать так:

Смотрите также
Публикации
- Наси, I .; Шнейдерман, Б .: Технологии блок-схем для структурного программирования, SIGPLAN Уведомления XII, август 1973 г.
Рекомендации
- ^ Ханс-Георг Филл (2009). Визуализация для семантических информационных систем. стр.32
- ^ Краткая история структурированных блок-схем (диаграмм Насси-Шнейдермана). Черновик Webdoc: 27 мая 2003 г. (Источник )
- ^ Рольф Изерманн (1988). Автоматический контроль: избранные доклады всемирного конгресса Международной федерации автоматического контроля, проводимого раз в три года: Мюнхен, Федеративная Республика Германия, 27–31 июля 1987 г., том 10; том 14. стр.89
- ^ Deutsches Institut für Normung e. В. (DIN): DIN 66261: Informationsverarbeitung; Sinnbilder für Struktogramme nach Nassi-Shneiderman.
- ^ Бёттхер, Аксель; Кнайсль, Франц: Informatik für Ingenieure: Grundlagen und Programmierung на C. 3-е издание. Мюнхен: Ольденбург, 2012. ISBN 978-3-486-70527-0. См. Особенно главу 10: «Контроллструктуран» (поток управления).
- ^ Баумле-Кур, Питер; Шмидт, Торстен: Praktische Einführung in 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 г.
- Йодер, Корнелия М; Шраг, Мэрилин Л .: "Диаграммы Наси-Шнейдермана: альтернатива блок-схемам для дизайна ". Материалы семинара по программному обеспечению и гарантиям ACM SIGSOFT / BIGMETRICS, Ноябрь 1978 г.