Диаграмма Насси – Шнейдермана
Диаграмма Насси-Шнейдермана (НСД) в компьютерном программировании представляет собой графическое представление структурного программирования . [1] Этот тип диаграммы был разработан в 1972 году Исааком Насси и Беном Шнейдерманом, которые оба были аспирантами Университета Стоуни-Брук . [2] Эти диаграммы еще называют структурограммами . [3] поскольку они показывают структуру программы.
Обзор
[ редактировать ]Следуя нисходящему проектированию , рассматриваемая проблема сводится к все меньшим и меньшим подзадачам, пока не останутся только простые операторы и конструкции потока управления . Диаграммы Насси-Шнейдермана прямо отражают эту нисходящую декомпозицию, используя вложенные блоки для представления подзадач. В соответствии с философией структурного программирования диаграммы Насси-Шнейдермана не представляют оператора GOTO .
Диаграммы Насси – Шнейдермана редко используются для формального программирования. Их уровень абстракции близок к структурированному программному коду, и модификации требуют перерисовки всей диаграммы, но графические редакторы устранили это ограничение. Они разъясняют алгоритмы и проекты высокого уровня, что делает их полезными в обучении. Они были включены в Microsoft Visio и десятки других программных инструментов, таких как немецкий EasyCODE. [4]
В Германии диаграммы Насси – Шнейдермана были стандартизированы в 1985 году как DIN 66261. [5] Они до сих пор используются в немецких введениях в программирование, например, во введении Бетчера и Кнайсла в C. [6] Бёмле-Корт и введение Шмидта в C [7] и введение Кирха в C#. [8]
Диаграммы Насси-Шнейдермана также можно использовать в технических текстах . [9]
Диаграммы
[ редактировать ]Блоки процессов: блок процессов представляет собой простейший этап и не требует анализа. При обнаружении блока процесса выполняется действие внутри блока и мы переходим к следующему блоку.
Блоки ветвления: существует два типа блоков ветвления. Во-первых, это простой блок ветвления «Истина/Ложь» или «Да/Нет», который предлагает программе два пути в зависимости от того, выполнено или нет условие. Эти блоки можно использовать в качестве процедуры цикла, останавливающей работу программы до тех пор, пока не будет выполнено условие.
Второй тип блока разветвления представляет собой блок с множественным разветвлением. Этот блок используется, когда в программе необходим выбор случая. Блок обычно содержит вопрос или выбор случая. Блок предоставляет программе множество вариантов выбора и часто используется вместе с блоками подпроцессов для экономии места.
Циклы тестирования: этот блок позволяет программе запускать один или несколько процессов до тех пор, пока не будет выполнено определенное условие. Блоки процесса, охватываемые каждым циклом, подразделяются на боковые панели, выходящие за пределы условия.
Существует два основных типа циклов тестирования: первый блок и последний. Единственная разница между ними заключается в порядке выполнения соответствующих шагов.В ситуации «сначала проверка», когда программа встречает блок, она проверяет, выполнено ли условие, затем, если оно не выполнено, процесс блокируется, а затем возвращается обратно. Тест выполняется снова и, если условие по-прежнему не выполнено, он обрабатывается снова. Если на каком-либо этапе условие выполняется, программа пропускает блоки процесса и переходит к следующему блоку.
Последний блок теста просто переворачивается, блоки процесса завершаются до выполнения теста. Последний цикл теста позволяет выполнить блоки процесса хотя бы один раз перед первым тестом.
Параллельное выполнение можно нарисовать так:
См. также
[ редактировать ]Публикации
[ редактировать ]- Насси, И.; Шнейдерман, Б.: Блок-схемы методов структурного программирования , Уведомления SIGPLAN XII, август 1973 г.
Ссылки
[ редактировать ]- ^ Ханс-Георг Филл (2009). Визуализация для семантических информационных систем . стр.32
- ^ Краткая история структурированных блок-схем (диаграммы Насси-Шнейдермана) . Черновой вариант веб-документа: 27 мая 2003 г. ( Источник )
- ^ Рольф Изерманн (1988). Автоматическое управление: Избранные доклады всемирного конгресса Международной федерации автоматического управления, проводимого раз в три года: Мюнхен, Федеративная Республика Германия, 27–31 июля 1987 г., Том 10; Том 14 . стр.89
- ^ «Реализация со структурными диаграммами» . ИЗИКОД ГмбХ . Проверено 7 февраля 2023 г.
- ^ Немецкий институт стандартизации e. V. (DIN): DIN 66261: Обработка информации; Символы для структурограмм по Насси-Шнейдерману .
- ^ Бетчер, Аксель; Кнайсль, Франц: Информатика для инженеров: основы и программирование на C. 3-е издание. Мюнхен: Ольденбург, 2012. ISBN 978-3-486-70527-0 . См. особенно главу 10: «Kontrollstrukturen» (поток управления).
- ^ Бёмл-Корт, Питер; Шмидт, Торстен: Практическое введение в C. Мюнхен: Ольденбург, 2012. ISBN 978-3-486-70799-1 . См. особенно главу 6: «Kontrollstrukturen» (поток управления).
- ^ Кирх, Улла: Изучите C# и используйте его профессионально . Гейдельберг: MITP, 2009. ISBN 978-3-8266-5915-7 . См. особенно главу 5: «петли и ветки».
- ^ Вайс, Эдмонд Х.: «Визуализация процедуры с помощью диаграмм Насси-Шнайдермана», Журнал технического письма и коммуникации , Vol. 20, №. 3 (1990): 237-54.
Внешние ссылки
[ редактировать ]- Краткая история структурированных блок-схем (диаграмм Насси – Шнейдермана) , Бен Шнейдерман, черновик, 27 мая 2003 г.
- Николас Хебб: « Как создать диаграмму Насси-Шнейдермана в Excel » (без даты).
- Юлихский суперкомпьютерный центр (ОАО): « Генерация диаграмм Насси-Шнейдермана под Unix с помощью nassi », 30 октября 2012 г.
- Йодер, Корнелия М; Шраг, Мэрилин Л.: « Диаграммы Насси-Шнейдермана: альтернатива блок-схемам для проектирования ». Труды семинара по программному обеспечению и обеспечению качества ACM SIGSOFT/BIGMETRICS , ноябрь 1978 г.