Диаграмма Варнье/Орра
Диаграмма Варнье/Орра (также известная как логическая конструкция программы/системы) представляет собой своего рода иерархическую блок-схему , которая позволяет описать организацию данных и процедур. Первоначально они были разработаны в 1976 году. [1] во Франции Жан -Доминик Варнье [2] и в США Кеннет Орр [3] на основе булевой алгебры. [4] Этот метод помогает проектировать структуры программы, определяя выходные данные и результаты обработки, а затем работая в обратном направлении, чтобы определить шаги и комбинации входных данных, необходимые для их создания. [5] Простой графический метод, используемый в диаграммах Варнье/Орра, делает уровни системы очевидными, а движение данных между ними — ярким.
Основные элементы
[ редактировать ]Диаграммы Варнье/Орра показывают процессы и последовательности, в которых они выполняются. Каждый процесс определен иерархическим образом, т.е. он состоит из наборов подпроцессов, которые его определяют. На каждом уровне процесс отображается в скобках, группирующих его компоненты.
Поскольку процесс может иметь множество различных подпроцессов, на диаграмме Варнье/Орра для отображения каждого уровня системы используется набор скобок. Критическими факторами при определении и разработке программного обеспечения являются итерация или повторение и чередование. Диаграммы Варнье/Орра это очень хорошо показывают. [ нужна ссылка ]
Использование диаграмм Варнье/Орра
[ редактировать ]Чтобы разработать диаграмму Варнье/Орра, аналитик работает в обратном порядке, начиная с выходных данных системы и используя анализ, ориентированный на выходные данные. На бумаге развитие движется от множества к элементу (слева направо). Сначала определяются предполагаемый результат или результаты обработки. На следующем уровне, обозначенном скобками, определяются шаги, необходимые для получения результатов. Каждый шаг, в свою очередь, уточняется. Дополнительные скобки группируют процессы, необходимые для получения результата на следующем уровне.
Диаграммы Варнье/Орра предлагают системным экспертам некоторые явные преимущества. Они просты на вид и легки для понимания. Тем не менее, они являются мощными инструментами дизайна. Их преимущество заключается в том, что они показывают группы процессов и данные, которые необходимо передавать с уровня на уровень. Кроме того, последовательность работы в обратном направлении гарантирует, что система будет ориентирована на результат. Этот метод полезен как для определения данных, так и для определения процесса. Его можно использовать для каждого отдельно, а можно объединить оба на одной схеме.
Конструкции в диаграммах Варнье/Орра
[ редактировать ]В диаграммах Варнье/Орра используются четыре основные конструкции: иерархия, последовательность, повторение и чередование. Есть также две более продвинутые концепции, которые иногда необходимы: параллелизм и рекурсия.
Иерархия
[ редактировать ]Иерархия является наиболее фундаментальной из всех конструкций Варнье/Орра. Это просто вложенная группа наборов и подмножеств, показанная в виде набора вложенных скобок. Каждая скобка на диаграмме (в зависимости от того, как вы ее представляете, символ обычно больше похож на скобку «{», чем на скобку «[», но мы называем их «скобками») представляет один уровень иерархии. Иерархия или структура, представленная на диаграмме, может показывать организацию данных или обработки. Однако данные и обработка никогда не отображаются на одной диаграмме.
Последовательность
[ редактировать ]Последовательность — это простейшая структура, отображаемая на диаграмме Варнье/Орра. В пределах одного уровня иерархии перечисленные функции отображаются в том порядке, в котором они встречаются. Другими словами, шаг, указанный первым, будет выполнен первым (если диаграмма отражает процесс), а шаг, указанный последним, будет выполнен последним. Аналогично с данными: поле данных, указанное первым, является первым, которое встречается при просмотре данных, а поле данных, указанное последним, является последним, которое встречается.
Повторение
[ редактировать ]Повторение — это представление классического «цикла» в терминах программирования. Это происходит всякий раз, когда один и тот же набор данных происходит снова и снова (для структуры данных) или всякий раз, когда одна и та же группа действий должна происходить снова и снова (для структуры обработки). Повторение обозначается размещением набора чисел в круглых скобках под повторяющимся набором.
Обычно в скобках указаны два числа, обозначающие наименьшее и наибольшее количество повторений набора. По соглашению первой буквой повторяющегося набора является буква, выбранная для обозначения максимума.
Хотя минимальная и максимальная границы технически могут быть любыми, чаще всего это либо «(1,n)», как в примере, либо «(0,n)». При описании обработки повторение «(1,n)» классически называется циклом «DoUntil», а повторение «(0,n)» называется циклом «DoWhile». Однако на диаграмме Варнье/Орра нет различия между двумя разными типами повторения, кроме минимального связанного значения.
В некоторых случаях минимальная и максимальная границы заранее определены и вряд ли изменятся: например, набор «День» встречается в наборе «Месяц» от 28 до 31 раза (поскольку самый маленький месяц имеет 28 дней, самый большой месяц - 31). . Это вряд ли изменится. А иногда минимум и максимум фиксируются на одном и том же числе.
В целом, однако, это плохая идея « жестко запрограммировать » константу, отличную от «0» или «1», в предложении количества раз — конструкция должна быть достаточно гибкой, чтобы допускать изменения количества раз без изменений. к дизайну. Например, если на момент разработки проекта в компании работает 38 сотрудников, жесткое кодирование «38» в качестве «количества сотрудников» внутри компании, безусловно, не будет таким гибким, как проектирование «(1,n)».
Предложение количества раз всегда является оператором, прикрепленным к некоторому множеству (т. е. имени некоторой скобки), и никогда не присоединяется к элементу (функция диаграммы, которая не разлагается на более мелкие функции). Причина этого станет более очевидной по мере продолжения работы с диаграммами. А пока вам придется принять это как правило формирования правильной диаграммы.
Чередование
[ редактировать ]Чередование или выбор — это традиционный процесс «решения», в ходе которого принимается решение выполнить тот или иной процесс. Символ «Исключающее ИЛИ» (знак плюс внутри круга) указывает, что наборы непосредственно над и под ним являются взаимоисключающими (если один присутствует, другой нет). На этой диаграмме показано, что Сотрудник является либо руководящим, либо неуправляющим; один Сотрудник не может быть одновременно и тем, и другим. Также допустимо использовать «черту отрицания» над альтернативой, аналогично инженерным обозначениям. Столбец читается простым использованием слова «нет».
Альтернативы не обязательно должны быть бинарными, как в предыдущих примерах, но могут быть многосторонними.
Параллелизм
[ редактировать ]Параллелизм — одна из двух продвинутых конструкций, используемых в методологии. Он используется всякий раз, когда последовательность не важна. Например, годы и недели действуют одновременно (или в одно и то же время) в нашем календаре. Оператор параллелизма редко используется при разработке программ (поскольку большинство языков все равно не поддерживают настоящую параллельную обработку), но он вступает в игру при разрешении конфликтов логических и физических структур данных.
Рекурсия
[ редактировать ]Рекурсия — наименее используемая из конструкций. Он используется для обозначения того, что набор содержит более раннюю или менее упорядоченную версию самого себя. В классической «спецификации» проблемные компоненты содержат детали и другие подкомпоненты. Подкомпоненты также содержат подкомпоненты и так далее. Двойная скобка указывает, что набор рекурсивный. Действительно рекурсивные структуры данных встречаются довольно редко.
Приложения
[ редактировать ]Один источник упомянул диаграммы Варнье-Орра (наряду с диаграммами Буха и объектными диаграммами ) как худший метод проектирования архитектуры программного обеспечения на основе моделей . [6]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Ваддел, КК; Кросс, Дж. Х. (1988). «Обзор эмпирических исследований графических представлений алгоритмов» . Материалы шестнадцатой ежегодной конференции ACM по информатике - CSC '88 1988 года . Атланта, Джорджия, США: ACM Press. п. 696. дои : 10.1145/322609.323161 . ISBN 9780897912600 . S2CID 18590219 .
- ^ Варнье, Жан Доминик. (1976). Логическое построение программ . Нью-Йорк: ISBN компании Ван Ностранд Рейнхольд. 0442291930 . ОСЛК 2792121 .
- ^ Орр, Кен. (1977). Разработка структурированных систем . Нью-Йорк: Юрдон Пресс. ISBN 0917072065 . ОСЛК 3615720 .
- ^ Хиггинс, Дэвид, А. (октябрь 1977 г.). «Разработка структурированной программы» . Журнал Байт . 02 (10): 146–155.
{{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Хиггинс, Дэвид, А. (декабрь 1977 г.). «Структурное программирование с использованием диаграмм Варнье-Орра. Часть 1: Методология проектирования». Журнал Байт . 2 (12): 104–111.
{{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Ривз, Джек В. (1992). «Что такое программная инженерия» . www.bleading-edge.com . Журнал С++ . Проверено 25 июля 2023 г.
Внешние ссылки
[ редактировать ]- Варнье
- Веб-сайт Dave Higgins Consulting и первоисточник статьи в Википедии.
- Джеймс А. Сенн , Анализ и проектирование информационных систем, 2-е изд., McGraw-Hill Publishing Company
- Институт Кена Орра
- Вот сайт всех работ JD WARNIER (французский/английский)