Диаграмма Варнье — Орра

Диаграмма Варнье — Орра — особый вид блок-схемы, предназначенной для описания организации данных и процедур, разработаны Жаном-Домиником Варнье (Франция) и . Этот метод помогает разрабатывать структуру программ путём идентификации выходных и обрабатываемых результатов с целью выявления шагов и входных комбинаций, необходимых для получения этих результатов. Простой графический метод, используемый в диаграммах Варнье — Орра, позволяет сделать очевидными как уровни в системе, так и движение информации между ними.

Основные элементы 
Диаграммы Варнье — Орра показывают процессы и последовательность, в которой эти процессы выполняются. Каждый процесс определяется иерархическим способом, то есть он состоит из набора дочерних процессов, его определяющих. На каждом уровне процесс показан в скобке, которая группирует его составляющие.

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

Использование диаграмм 

При разработке диаграммы аналитик использует метод «от обратного», начиная с вывода системы и используя анализ, ориентированный на вывод. На бумаге разработка перемещается справа налево. Сначала определяется предполагаемый вывод или результаты обработки. На следующем уровне, показанном включением в скобку, определяются шаги, необходимые для получения требуемого вывода. Аналогично выполняются дальнейшие шаги. Дополнительные скобки группируют процессы, требующиеся для получения результата на следующем уровне.

Диаграммы Варнье — Орра предлагают несколько явных преимуществ для системных экспертов. У них простой внешний вид, они легки для понимания. К тому же они являются мощнейшим средством проектирования. Их преимущество в отображении группировок процессов и данных, которые должны передаваться от уровня к уровню. Кроме того, последовательность работы «от обратного» обеспечивает разработку системы, ориентированной на результат. Этот метод полезен для определения и данных, и процессов. Он может использоваться как независимо для данных и процессов, так и совместно, на одной диаграмме.

Конструкции диаграмм 

Диаграммы Варнье — Орра состоят из четырёх базовых конструкций: иерархии, последовательности, повторения и чередования. Также существует две дополнительные концепции, которые иногда могут быть полезны: параллелизм и рекурсия.

Иерархия 

Иерархия — это важнейшая из всех конструкций диаграмм Варнье — Орра. Это просто вложенная группа множеств и подмножеств, отображаемая как ряд вложенных скобок. Каждая скобка на диаграмме (в зависимости от того, как Вы изображаете её, символ обычно больше похож на фигурную скобку «{», чем на скобку «[», но мы их будем называть «Скобками») символизируют один уровень иерархии. Иерархия или структура, которая изображена на диаграмме, может демонстрировать организацию данных или обработки. Тем не менее, одновременно данные и обработка никогда не показываются на одной и той же диаграмме.

Последовательность 

Последовательность — это простейшая структура на диаграммах Варнье-Орра. Внутри одного уровня иерархии, операции перечислены в той последовательности, в какой они будут выполняться. Аналогично с данными, поля данных перечислены в той последовательности, в какой они будут отображаться при просмотре.

Повторение 

Повторение — это представление классического «цикла» в терминах программирования. Оно встречается в тех местах, где одни и те же наборы данных встречаются снова и снова (для структур данных) или когда одна и та же группа действий встречается несколько раз (для структур обработки). Повторение изображается набором цифр, записанных в круглых скобках под повторяющимся набором.

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

Когда минимальная и максимальная границы могут быть любыми, чаще всего для примера пишут или «(1,n)», или «(0,n).» При чтении диаграммы, «(1,n)» трактуется как цикл «До», а «(0,n)» трактуется как цикл «Пока». На диаграмме Варнье-Орра, тем не менее, не различаются эти два типа повторений кроме как значением нижней границы.

По возможности, минимальная и максимальная границы предопределены и вряд ли изменятся: например, набор «День» встречается в наборе «Месяц» от 28 до 31 раза (так как самый короткий месяц содержит 28 дней, а самый длинный — 31).

В основном, плохая идея жёстко кодировать константы, отличные от «0» или «1» в качестве числа повторов — проект должен быть гибким настолько, чтобы позволять менять число повторов без изменения самого проекта. Например, если в компании работает 38 сотрудников на момент завершения проекта, жёсткое кодирование «38» как «число сотрудников» окажется не таким гибким, как «(1,n)».

Конструкция повтора — это всегда оператор, который применяется к некоторому набору (то есть к некоторой скобке), и никогда не применяется к элементу (элемент диаграммы, который не подразделяется на более мелкие элементы). Причина этого будет ясна позднее, при работе с самой диаграммой. Пока же будем считать это правилом, соблюдение которого необходимо для построения корректной диаграммы.

Чередование 

Чередование, или выбор, является традиционным представлением «решения», посредством которого принимается решение о выполнении одного из двух процессов. Оно обозначается как отношение между двумя подмножествами набора. Символ «Исключающее ИЛИ» (знак плюс в кружке) указывают, что наборы непосредственно выше и ниже этого взаимно исключительны (если один присутствует, то другой — нет). Также допустимо использовать «полосу отрицания» выше альтернативы, наподобие технического примечания. Полоса читается просто как слово «нет».

Чередования могут быть не только бинарными, они могут содержать множество альтернатив.

Параллелизм 

Параллелизм — это одна из дополнительных конструкций. Она используется тогда, когда порядок не имеет значения. Оператор параллелизма редко используется при проектировании программы (так как большинство языков программирования не поддерживают параллелизм), играет немаловажную роль при разработке логической и физической структуры данных.

Рекурсия 

Рекурсия — это наименее используемая конструкция диаграмм Варнье — Орра. Она используется для индикации того, что набор содержит версию самого себя. Двойная скобка указывает на то, что набор рекурсивный. Структуры данных, которые являются действительно рекурсивными, довольно редки.

См. также 
 Функциональная схема

Примечания

Ссылки 
 Dave Higgins Consulting website and original source for Wikipedia entry.
 James A. Senn, Analysis & Design of Information Systems, 2nd ed., McGraw-Hill Publishing Company
 Orr’s website
 Sample Diagrams

Моделирование данных
Диаграммы