- Лекция 10. Описание процессов при помощи блок-схем
- Блок-схемы алгоритмов. ГОСТ. Примеры
- Содержание:
- Элементы блок-схем алгоритмов
- Примеры блок-схем
- Сортировка вставками
- Сортировка выбором
- Нужны ли блок-схемы? Альтернативы
- Язык нотаций: как объяснять сложные процессы с помощью блок-схем
- Что такое нотация
- Как мы выбирали нотацию
- Список базовых элементов
- 1. Простая блок-схема
- 2. ARIS eEPS
- 3. BPMN
- Особенности элементов нотации BPMN
- Как работать с нотацией BPMN
- Как быстро нарисовать схему
- Какие инструменты использовать
Лекция 10. Описание процессов при помощи блок-схем
Простейшим, но важным, способом описания бизнес-процессов является методика составления блок-схем. Данный подход имеет много общего с графическими языками описания алгоритмов программного обеспечения.
Таблица. Графические объекты блок-схемы процесса
Такая форма представления блок-схем удобна для документирования процессов и создания регламентирующей документации: описания процессов, должностных и рабочих инструкций.
Пример описания процесса при помощи блок-схем представлен на следующем рисунке 22.
Рис. 10.1. Пример блок-схемы процесса.
Описание процессов при помощи блок-схем имеет одно, очень существенное преимущество – простота и доступность для восприятия руководителями и специалистами предприятия. Затраты на обучение исполнителей чтению блок-схем являются минимальными. Кроме того, для формирования блок-схем не требуются специализированные, дорогостоящие программные продукты.
Блок-схемы, как правило, используются при описании последовательных цепочек работ для их визуализации. Область применения блок-схем очень похожа на область применения методологии IDEF3
WFD-схема бизнес-процесса «Управление персоналом / Подбор персонала/Поиск и привлечение кандидатов»
| | следующая лекция ==> |
| | Цели урока иностранного языка и способы их достижения |
Дата добавления: 2015-12-10 ; просмотров: 7701 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ
Источник
Блок-схемы алгоритмов. ГОСТ. Примеры
Схема — это абстракция какого-либо процесса или системы, наглядно отображающая наиболее значимые части. Схемы широко применяются с древних времен до настоящего времени — чертежи древних пирамид, карты земель, принципиальные электрические схемы. Очевидно, древние мореплаватели хотели обмениваться картами и поэтому выработали единую систему обозначений и правил их выполнения. Аналогичные соглашения выработаны для изображения схем-алгоритмов и закреплены ГОСТ и международными стандартами.
На территории Российской Федерации действует единая система программной документации (ЕСПД), частью которой является Государственный стандарт — ГОСТ 19.701-90 «Схемы алгоритмов программ, данных и систем» [1]. Не смотря на то, что описанные в стандарте обозначения могут использоваться для изображения схем ресурсов системы, схем взаимодействия программ и т.п., в настоящей статье описана лишь разработка схем алгоритмов программ.
Рассматриваемый ГОСТ практически полностью соответствует международному стандарту ISO 5807:1985.
Содержание:
Элементы блок-схем алгоритмов
Блок-схема представляет собой совокупность символов, соответствующих этапам работы алгоритма и соединяющих их линий. Пунктирная линия используется для соединения символа с комментарием. Сплошная линия отражает зависимости по управлению между символами и может снабжаться стрелкой. Стрелку можно не указывать при направлении дуги слева направо и сверху вниз. Согласно п. 4.2.4, линии должны подходить к символу слева, либо сверху, а исходить снизу, либо справа.
Есть и другие типы линий, используемые, например, для изображения блок-схем параллельных алгоритмов, но в текущей статье они, как и ряд специфических символов, не рассматриваются. Рассмотрены лишь основные символы, которых всегда достаточно студентам.
Терминатор начала и конца работы функции
Операции ввода и вывода данных
Выполнение операций над данными
Блок, иллюстрирующий ветвление алгоритма
Вызов внешней процедуры
Начало и конец цикла
Подготовка данных
Соединитель
Комментарий
Примеры блок-схем
В качестве примеров, построены блок-схемы очень простых алгоритмов сортировки, при этом акцент сделан на различные реализации циклов, т.к. у студенты делают наибольшее число ошибок именно в этой части.
Сортировка вставками
Массив в алгоритме сортировки вставками разделяется на отсортированную и еще не обработанную части. Изначально отсортированная часть состоит из одного элемента, и постепенно увеличивается.
На каждом шаге алгоритма выбирается первый элемент необработанной части массива и вставляется в отсортированную так, чтобы в ней сохранялся требуемый порядок следования элементов. Вставка может выполняться как в конец массива, так и в середину. При вставке в середину необходимо сдвинуть все элементы, расположенные «правее» позиции вставки на один элемент вправо. В алгоритме используется два цикла — в первом выбираются элементы необработанной части, а во втором осуществляется вставка.
Блок-схема алгоритма сортировки вставками
В приведенной блок-схеме для организации цикла используется символ ветвления. В главном цикле (i Блок-схема алгоритма сортировки пузырьком
На блок-схеме показано использование символов начала и конца цикла. Условие внешнего цикла (А) проверяется в конце (с постусловием), он работает до тех пор, пока переменная hasSwapped имеет значение true. Внутренний цикл использует предусловие для перебора пар сравниваемых элементов. В случае, если элементы расположены в неправильном порядке, выполняется их перестановка посредством вызова внешней процедуры (swap). Для того, чтобы было понятно назначение внешней процедуры и порядок следования ее аргументов, необходимо писать комментарии. В случае, если функция возвращает значение, комментарий может быть написан к символу терминатору конца.
Сортировка выбором
В сортировке выбором массив разделяется на отсортированную и необработанную части. Изначально отсортированная часть пустая, но постепенно она увеличивается. Алгоритм производит поиск минимального элемента необработанной части и меняет его местами с первым элементом той же части, после чего считается, что первый элемент обработан (отсортированная часть увеличивается).
Блок-схема сортировки выбором
На блок-схеме приведен пример использования блока «подготовка», а также показано, что в ряде случаев можно описывать алгоритм более «укрупнённо» (не вдаваясь в детали). К сортировке выбором не имеют отношения детали реализации поиска индекса минимального элемента массива, поэтому они могут быть описаны символом вызова внешней процедуры. Если блок-схема алгоритма внешней процедуры отсутствует, не помешает написать к символу вызова комментарий, исключением могут быть функции с говорящими названиями типа swap, sort, … .
На блоге можно найти другие примеры блок-схем:
Часть студентов традиционно пытается рисовать блок-схемы в Microsoft Word, но это оказывается сложно и не удобно. Например, в MS Word нет стандартного блока для терминатора начала и конца алгоритма (прямоугольник со скругленными краями, а не овал). Наиболее удобными, на мой взгляд, являются утилиты MS Visio и yEd [5], обе они позволяют гораздо больше, чем строить блок-схемы (например рисовать диаграммы UML), но первая является платной и работает только под Windows, вторая бесплатная и кроссплатфомренная. Все блок-схемы в этой статье выполнены с использованием yEd.
Нужны ли блок-схемы? Альтернативы
Частные конторы никакие блок-схемы не используют, в книжках по алгоритмам [6] вместо них применяют словесное описание (псевдокод) как более краткую форму. Возможно блок-схемы применяют на государственных предприятиях, которые должны оформлять документацию согласно требованиям ЕСПД, но есть сомнения — даже для регистрации программы в Государственном реестре программ для ЭВМ никаких блок-схем не требуется.
Тем не менее, рисовать блок-схемы заставляют школьников (примеры из учебников ГОСТ не соответствуют) — выносят вопросы на государственные экзамены (ГИА и ЕГЭ), студентов — перед защитой диплом сдается на нормоконтроль, где проверяется соответствие схем стандартам.
Разработка блок-схем выполняется на этапах проектирования и документирования, согласно каскадной модели разработки ПО, которая сейчас почти не применяется, т.к. сопровождается большими рисками, связанными с ошибками на этапах проектирования.
Появляются подозрения, что система образования прогнила и отстала лет на 20, однако аналогичная проблема наблюдается и за рубежом. Международный стандарт ISO 5807:1985 мало чем отличается от ГОСТ 19.701-90, более нового стандарта за рубежом нет. Там же производится множество программ для выполнения этих самых схем — Dia, MS Visio, yEd, …, а значит списывать их не собираются. Вместо блок-схем иногда применяют диаграммы деятельности UML [6], однако удобнее они оказываются, разве что при изображении параллельных алгоритмов.
Периодически поднимается вопрос о том, что ни блок-схемы, ни UML не нужны, да и документация тоже не нужна. Об этом твердят программисты, придерживающиеся методологии экстремального программирования (XP) [7], ходя даже в их кругу нет единого мнения.
В ряде случаев, программирование невозможно без рисования блок-схем, т.к. это один процесс — существуют визуальные языки программирования, такие как ДРАКОН [8], кроме того, блок-схемы используются для верификации алгоритмов (формального доказательства их корректности) методом индуктивных утверждений Флойда [9].
В общем, единого мнения нет. Очевидно, есть области, в которых без чего-то типа блок-схем обойтись нельзя, но более гибкой альтернативы нет. Для формальной верификации необходимо рисовать подробные блок-схемы, но для проектирования и документирования такие схемы не нужны — я считаю разумным утверждение экстремальных программистов о том, что нужно рисовать лишь те схемы, которые помогают в работе и не требуют больших усилий для поддержания в актуальном состоянии [10].
Источник
Язык нотаций: как объяснять сложные процессы с помощью блок-схем
Некоторые стратегии email-маркетинга похожи на сценарии Дэвида Линча: если не объяснить, что к чему относится и как работает, не разберёшься.
Чтобы клиенту было проще понять стратегию, мы оформляем её не только в виде текстового описания, но и в виде схемы. А чтобы все схемы были «написаны» на одном языке, мы используем нотации.
Что такое нотация
Нотация — это набор графических элементов для отображения элементов системы. Проще говоря, нотация определяет правила, по которым мы обозначаем на схеме процессы, операции и события и соединяем их между собой.
Как мы выбирали нотацию
Существуют десятки нотаций: как простых, так и очень сложных, которые используются в программировании, логистике, бизнес-анализе — везде, где нужно описать процесс. Разберёмся, какие из них нам подходят.
Наша цель — описать, как мы встраиваем email-маркетинг в существующую систему коммуникации бренда с покупателями или, что реже, как выстроить эту систему с нуля.
Задача — выстроить цепочки взаимодействия между участниками и показать, когда и при каких условиях мы будем отправлять рассылки.
Плюс у нас есть свои требования к нотации:
- Простота изучения . Нотация должна быть простой, иначе на её изучение потребуется много времени и это затормозит работу.
- Простота восприятия. Схема должна быть понятна неподготовленному человеку, который не знаком с языком нотации.
Нотации, которые подходят нам, в проектировании бизнес-процессов относятся к классу workflow. Это так называемые диаграммы потоков работ, которые отображают последовательность выполнения действий во времени.
Грамотно и без космических обещаний
Рассмотрим основные элементы этих нотаций на примерах простой блок-схемы, известной с уроков информатики, популярной нотации ARIS eEPC и более сложной современной нотации BPMN.
Список базовых элементов
Элемент | Блок-схема | ARIS eEPC | BPMN |
События. Указывают на границы процесса — начало и конец. Также могут отображать промежуточные события в процессе. | |||
Операция процесса. Элементы для отображения действий (задач, функций). Совпадают практически во всех нотациях класса workflow. | |||
Шлюз, или оператор логики. Служит для описания ситуации, когда те или иные условия влияют на ход процесса. Отвечает на вопросы «и», «или», «либо-либо». | |||
Стрелки «связь между операциями». Показывают, что операция наступает только после завершения предыдущей. По сути, демонстрируют ход процесса во времени. | |||
Стрелки «поток информации». Отображают обмен сообщениями (документами, письмами и прочим) между участниками процесса. |
Теперь попробуем описать простую стратегию в каждой из нотаций.
1. Простая блок-схема
В нотации «Простая блок-схема» чаще всего используют несколько элементов: процесс, решение, документ, данные и стрелку. Стрелки либо не именуются вообще, либо создатель схемы старается дать им короткие и понятные названия.
Схема получается действительно простой и интуитивно понятной и вполне подойдёт для описания небольших стратегий. К тому же она нестрогая, а это значит, что вы можете создать собственные элементы и комбинировать их на своё усмотрение.
Важно помнить, что, если вы хотите внедрить методику построения схем в компании, вам нужно заранее разработать внутренний стандарт её использования. Иначе мы получим много разных схем, в которых будет сложно ориентироваться.
2. ARIS eEPS
Аббревиатура eEPC расшифровывается как extended Event Driven Process Chain — это расширенное описание цепочки процесса, управляемого событиями. Событие «создаёт» операцию (функцию), которая в свою очередь «создаёт» следующее событие.
При построении схемы в нотации ARIS eEPC нужно учитывать основные правила:
— каждой функции должно предшествовать событие;
— каждая функция должна завершаться событием;
— в каждую функцию может входить и выходить только одна стрелка, связывающая её с событием-причиной или с событием-следствием.
Основной недостаток этой нотации, как и простой блок-схемы, в том, что она не отражает взаимодействие участников процесса. В остальном она довольно удобная и понятная как для построения, так и для чтения.
3. BPMN
Об этой нотации стоит рассказать подробнее. Она основана на методологии BPM (Business Process Management — управление бизнес-процессами). Схема в нотации BPMN моделирует поведение участников бизнес-взаимодействия во времени.
BPMN выбирают профессионалы управления бизнес-процессами, которым нужно выстроить стратегию бизнеса, выявить недостатки и модернизировать. Эта нотация позволяет и отразить детали, и взглянуть на бизнес-процесс с высоты птичьего полёта.
Язык нотации BPMN сложный, он требует специального изучения. Однако не обязательно использовать все элементы: можно выбрать такие, которые подходят именно вам.
Особенности элементов нотации BPMN
Зоны ответственности | Элемент |
Пул . Отображает участника взаимодействия, выполняющего ту или иную роль в процессе. Под участником может пониматься не только человек, но и система — сервис рассылок, сайт. |
Элементы потока | Элемент |
Задачи и подпроцессы . Операции в BPMN могут быть простыми (задача) и составными (подпроцесс). Подпроцессы нужны, чтобы упростить вид схемы. |
Например, «Отправить письмо-подтверждение заказа» — задача, но, если мы захотим указать на схеме процесс «Оформление заказа», она станет подпроцессом внутри этого процесса.
Задачи и подпроцессы могут иметь маркеры. Например, силуэт человека — пользовательская операция (выполняет сотрудник), шестерёнка — сервисная (выполняется сервисом автоматически).
Например, в процессе «Оформление заказа» старт — это клик на сайте на кнопку «Оформить заказ». Финиш — получение посылки или оставление отзыва.
Промежуточное событие — к примеру, отмена заказа. После него нужно выполнить ещё ряд действий: отправить подтверждение отмены заказа, выяснить причину и прочее.
Так, параллельный шлюз (И) обозначает ветвление процесса на параллельные потоки, когда действия выполняются одновременно.
Например, после того, как становится известно, что товара нет на складе, нужно в одно и то же время информировать клиента о задержке доставки и отправить запрос на склад.
Эксклюзивный шлюз (ИЛИ) можно представить в виде вопроса, на который может быть несколько ответов, но в результате верным будет только один.
Например, задаем вопрос: «Как клиент хочет оформить доставку?». Если самовывозом, то нужно отправить письмо, что товар забронирован. Если другим способом — выслать трек-номер посылки.
Неэксклюзивный шлюз (И/ИЛИ) обозначает условие, в результате которого могут выполняться параллельные действия или только одно действие.
- если сумма заказа больше 3 000 рублей, клиент получает подарок #1;
- если сумма заказа больше 3 000 рублей и дополнительно заказан товар с особым ценником, клиент получает подарки #1 и #2;
- если сумма заказа меньше 3 000 рублей, но заказан товар с особым ценником, клиент получает подарок #2;
- если сумма заказа меньше 3000 рублей и в заказе нет товара с особым ценником, клиент не получает подарок.
Комплексный шлюз означает, что действие произойдёт при выполнении каждого из действий в ветвлении.
Например, письмо-подтверждение подписки отправится, если лид подписался на рекламную рассылку и с pop-up, и в личном кабинете, и при оформлении заказа.
Данные | Элемент |
Объекты данных. Отображают информацию, которая нужна для выполнения операции (входящие данные) или появляется в результате действия (исходящие данные). |
Например, после того, как банк проверит кредитную историю клиента, появятся дополнительные данные, которые нужно передать в ESP для оповещения об одобрении кредита или отказе.
Соединяющие элементы | Элемент |
Потоки управления. Используются для связи элементов потока (событий, задач, шлюзов). Если нужно, над стрелкой можно прописать текст. |
Если вы не хотите нагромождать на схеме шлюзы между задачами, можно обозначать условия специальным маркером на конце стрелки:
- если действие на одной из веток начнётся после того, как будет выполнено действие, от которого идёт разветвление, рисуем линию с ромбом;
- если нужно выделить ветку, по которой будет идти поток при невыполнении всех прочих действий, рисуем линию с косой чертой.
Артефакты | Элемент |
Сноска, или текстовая аннотация. Используется для уточнения значения элементов схемы, чтобы она была понятна неподготовленному человеку. |
Как работать с нотацией BPMN
При работе с BPMN необходимо соблюдать стандарты. Нельзя по своему усмотрению менять вид графических элементов и расставлять связи между ними, если вы действительно хотите научиться говорить на языке BPMN.
Как быстро нарисовать схему
Создавать схемы несложно, главное — понимать суть процесса, продумать механизм его реализации и следовать алгоритму создания схемы.
- Задайте границы . На схеме нужно отразить события начала и конца процесса.
- Нарисуйте основные блоки . Представьте, что процесс идёт идеально, и составьте цепочку задач, выполняя которые вы придёте к результату.
- Добавьте ветвления. Обозначьте варианты развития событий. Так работать проще, чем ставить их с самого начала и путаться в стрелках.
- Добавьте недостающие данные. При необходимости разместите на схеме важные документы, базы данных, текстовые комментарии.
Какие инструменты использовать
Сейчас существует много платных и бесплатных инструментов для моделирования бизнес-процессов. Среди бесплатных нам нравятся BizAgi Modeler и онлайн-сервис Draw.io . У них простой и понятный интерфейс, встроенные нотации, а схемы можно сохранять в виде изображений jpg, png и svg.
Нам этого хватает, поэтому платными инструментами мы не пользуемся. Но, если очень хочется, можете купить Visual Paradigm. По подписке он стоит от 6 до 89 долларов в месяц, полная лицензия — от 99 до 1 999 долларов. Также популярен Microsoft Visio (по подписке — от 5 до 15 долларов в месяц).
Самая интересная возможность в платных версиях — проверка процессов. Когда вы построите схему, программа проверит, нет ли логических ошибок.
Для нас самый удобный из сервисов — BizAgi, потому что именно в нём у каждого элемента есть удобное меню с атрибутами. То есть вам не нужно тратить время на то, чтобы выбрать подходящую длину стрелки между блоками. А ещё он на русском языке.
Пока всё. В следующей статье мы расскажем, как составить полную графическую схему email-коммуникаций в нотации BPMN.
Источник