Warnier / ОРР - схема (также известный как логическое построение из программы / системы) является своего рода иерархической последовательности операций , которая позволяет описание организации данных и процедур. Они изначально были разработаны в 1976 году, [1] в Франции по Жан-Доминик Warnier [2] и в Соединенных Штатах по Кеннет Орра [3] на основании булевой алгебры. [4] Этот метод помогает в разработке программных структур, идентифицируя выходные данные и результаты обработки, а затем работая в обратном направлении, чтобы определить шаги и комбинации входных данных, необходимых для их создания. [5]Простой графический метод, используемый в диаграммах Варнье / Орра, делает уровни в системе очевидными, а перемещение данных между ними - ярким.
Основные элементы
Диаграммы Варнье / Орра показывают процессы и последовательности, в которых они выполняются. Каждый процесс определяется иерархически, т.е. состоит из наборов подпроцессов, которые его определяют. На каждом уровне процесс показан в скобках, в которых сгруппированы его компоненты.
Поскольку процесс может иметь множество различных подпроцессов, диаграмма Варнье / Орра использует набор скобок для отображения каждого уровня системы. Критическими факторами при определении и разработке программного обеспечения являются итерация или повторение и чередование. Диаграммы Варнье / Орра очень хорошо это показывают. [ необходима цитата ]
Использование диаграмм Варнье / Орра
Чтобы разработать диаграмму Варнье / Орра, аналитик работает в обратном направлении, начиная с вывода системы и используя анализ, ориентированный на результат. На бумаге развитие переходит от набора к элементу (слева направо). Сначала определяются предполагаемый выход или результаты обработки. На следующем уровне, обозначенном скобкой, определяются шаги, необходимые для получения результата. Каждый шаг, в свою очередь, дополнительно определяется. Дополнительные скобки группируют процессы, необходимые для получения результата на следующем уровне.
Диаграммы Варнье / Орра предлагают системным экспертам ряд явных преимуществ. Они просты на вид и понятны. Тем не менее, они являются мощными инструментами дизайна. У них есть преимущество в том, что они показывают группы процессов и данные, которые необходимо передавать с уровня на уровень. Кроме того, обратная последовательность действий гарантирует, что система будет ориентирована на результат. Этот метод полезен как для определения данных, так и для определения процесса. Его можно использовать для каждого отдельно, или оба могут быть объединены на одной диаграмме.
Конструкции на диаграммах Варнье / Орра
На диаграммах Варнье / Орра используются четыре основных конструкции: иерархия, последовательность, повторение и чередование. Иногда необходимы также две более продвинутые концепции: параллелизм и рекурсия.
Иерархия
Иерархия является наиболее фундаментальной из всех конструкций Варнье / Орра. Это просто вложенная группа наборов и подмножеств, показанная как набор вложенных скобок. Каждая скобка на диаграмме (в зависимости от того, как вы ее представляете, символ обычно больше похож на скобку «{», чем на скобку «[», но мы называем их «скобками»), представляет один уровень иерархии. Иерархия или структура, представленная на диаграмме, может отображать организацию данных или их обработку. Однако и данные, и обработка никогда не отображаются на одной диаграмме.
Последовательность
Последовательность - это простейшая структура для отображения на диаграмме Варнье / Орра. В пределах одного уровня иерархии перечисленные функции отображаются в порядке их появления. Другими словами, шаг, указанный первым, будет первым, который будет выполнен (если диаграмма отражает процесс), а шаг, указанный последним, будет последним, который будет выполнен. Аналогично с данными, поле данных, указанное первым, является первым, которое встречается при просмотре данных, поле данных, указанное последним, является последним из обнаруженных.
Репетиция
Повторение - это представление классического «цикла» в терминах программирования. Это происходит всякий раз, когда один и тот же набор данных повторяется снова и снова (для структуры данных) или когда одна и та же группа действий должна повторяться снова и снова (для структуры обработки). Повторение обозначается помещением набора чисел в круглые скобки под повторяющимся набором.
Обычно в скобках указаны два числа, которые представляют наименьшее и наибольшее количество повторов набора. По соглашению первая буква повторяющегося набора - это буква, выбранная для обозначения максимума.
Хотя минимальная граница и максимальная граница технически могут быть любыми, чаще всего это либо «(1, n)», как в примере, либо «(0, n)». При использовании для изображения обработки повторение «(1, n)» классически известно как цикл «DoUntil», а повторение «(0, n)» называется циклом «DoWhile». На диаграмме Варнье / Орра, однако, нет различия между двумя разными типами повторения, кроме минимального связанного значения.
Иногда минимальная и максимальная границы предопределены и вряд ли изменятся: например, набор «День» встречается в наборе «Месяц» от 28 до 31 раз (поскольку в самом маленьком месяце 28 дней, в самом большом - 31). . Это вряд ли изменится. Иногда минимум и максимум фиксируются на одном и том же числе.
В целом, однако, это плохая идея - « жестко закодировать » константу, отличную от «0» или «1», в предложении «количество раз» - дизайн должен быть достаточно гибким, чтобы можно было изменять количество раз без изменений. к дизайну. Например, если на момент разработки в компании работает 38 сотрудников, жесткое кодирование «38» в качестве «количества сотрудников» в компании, безусловно, не будет таким гибким, как проектирование «(1, n)».
Предложение числа раз всегда является оператором, прикрепленным к некоторому набору (например, имени некоторой скобки), и никогда не прикрепляется к элементу (функция диаграммы, которая не разбивается на более мелкие функции). Причина этого станет более очевидной, когда мы продолжим работать с диаграммами. А пока вам придется принять это как правило построения правильной диаграммы.
Чередование
Чередование или выбор - это традиционный процесс «принятия решения», при котором принимается решение выполнить тот или иной процесс. Символ «Исключающее ИЛИ» (знак «плюс» внутри круга) указывает, что наборы, расположенные непосредственно над и под ним, являются взаимоисключающими (если один присутствует, другой нет). Эта диаграмма показывает, что Сотрудник является либо Руководящим, либо Неуправленческим, один Сотрудник не может быть обоими. Также допустимо использовать «полосу отрицания» над альтернативой аналогично инженерной нотации. Полоса читается простым использованием слова «не».
Альтернативы не обязательно должны быть двоичными, как в предыдущих примерах, но могут быть многоходовыми альтернативами.
Параллелизм
Параллелизм - одна из двух сложных конструкций, используемых в методологии. Он используется всякий раз, когда последовательность не важна. Например, в нашем календаре годы и недели действуют одновременно (или в одно и то же время). Оператор параллелизма редко используется при разработке программ (поскольку большинство языков в любом случае не поддерживает настоящую параллельную обработку), но он используется при разрешении конфликтов логических и физических структур данных.
Рекурсия
Рекурсия - наименее используемая конструкция. Он используется, чтобы указать, что набор содержит более раннюю или менее упорядоченную версию самого себя. В классической «ведомости материалов» компоненты задачи содержат части и другие подкомпоненты. Подкомпоненты также содержат подкомпоненты и так далее. Двойная скобка указывает, что набор рекурсивен. Истинно рекурсивные структуры данных встречаются довольно редко.
Смотрите также
Рекомендации
- ^ Waddel, KC; Кросс, JH (1988). «Обзор эмпирических исследований графических представлений алгоритмов» . Материалы Шестнадцатой ежегодной конференции ACM 1988 г. по информатике - CSC '88 . Атланта, Джорджия, Соединенные Штаты Америки: ACM Press: 696. DOI : 10,1145 / 322609,323161 . ISBN 9780897912600.
- ^ Варнье, Жан Доминик. (1976). Логическое построение программ . Нью-Йорк: ISBN Van Nostrand Reinhold Co. 0442291930. OCLC 2792121 .
- ^ Орр, Кен. (1977). Разработка структурированных систем . Нью-Йорк: Yourdon Press. ISBN 0917072065. OCLC 3615720 .
- ^ Хиггинс, Дэвид, А. (октябрь 1977 г.). «Структурированный дизайн программы» . Байт Журнал . 02 (10): 146–155.
- ^ Хиггинс, Дэвид, А. (декабрь 1977 г.). «Структурированное программирование с помощью диаграмм Варнье-Орра - Часть 1: Методология проектирования». Байт Журнал . 2 (12): 104–111.
Внешние ссылки
- Warnier
- Сайт-консультант Дэйва Хиггинса и первоисточник статьи в Википедии.
- Джеймс А. Сенн , Анализ и проектирование информационных систем, 2-е изд., McGraw-Hill Publishing Company
- Институт Кена Орра
- Вот веб-сайт, посвященный всем работам JD WARNIER (французский / английский)