Добавлен: 15.11.2018
Просмотров: 2454
Скачиваний: 15
Обоснованные отклонения от элементарного бизнес-процесса
Несмотря на то, что основные прецеденты приложения должны сответствовать элементарным бизнес-процессам, зачастую полезно прецеденты более низкого уровня, представляющие подзадачи или последовательности действий в рамках основного прецедента. То есть могут сущестовать преценденты, не соотвествующие EBP.
Прецеденты и задачи
Исполнители имеют свои задачи (или потребности), для решения которых они используют систему. Поэтому прецеденты уровня EBP еще называют прецедентами уровня задач пользователя (user goal). Это делается для того, чтобы обратить внимание на реализацию потребностей пользователей системы или основного исполнителя,
Отсюда следует алгоритм выделения прецедентов.
1. Выделить задачи (цели) пользователей.
2. Определить для каждой из них отдельный прецедент.
При таком подходе несколько смещаются акценты аналитиков. Вместо вопроса "Каковы прецеденты для данной системы?" возникает вопрос "Каковы задачи исполнителей?". Чтобы отобразить эту взаимосвязь, имя прецедента должно соответствовать названию задачи. Например, задаче электронного оформления продажи должен соответствовать прецедент Оформление продажи.
Заметим, что такая симметрия позволяет оценить адекватность уровня выделения прецедентов и задач пользователя в соответствии с правилом выделения элементарных бизнес-процессов.
Совет. Ключевая идея состоит в том, чтобы для выделения прецедентов исследовать задачи исполнителей.
Допустим, мы собрались на семинаре для формулировки требований. На этом семинаре основной вопрос можно формулировать двумя способами.
• Что делает система?
• Каковы задачи исполнителей?
Ответы на первый вопрос, скорее, отражают текущие решения и процедуры, а также сложность этих процедур.
Ответы на второй вопрос, особенно в сочетании с исследованием целей более высокого уровня ("в чем задача этой задачи?"), открывают видение новых и более эффективных решений, акцентируют внимание на получении ощутимого результата и позволяют глубже понять основные потребности заинтересованных лиц в контексте обсуждаемой системы.
Пример: использование рекомендаций в соответствии с EBP
Допустим, вы являетесь системным аналитиком и отвечаете за формулировку требований к системе Алтын. Для этого вам нужно исследовать задачи пользователей. На семинаре по формулировке требований может состояться такой диалог.
Системный аналитик: "Каковы ваши задачи в контексте использования POS-системы”
Кассир: "Во-первых, быстро зарегистрироваться. Во-вторых, оформлять продажи."
Системный аналитик: "Какая задача более высокого уровня приводит, на ваш взгляд, к необходимости выделения отдельной задачи регистрации?"
Кассир: "Мне необходимо "представиться" системе, а она должна проверить, имею ли я право ею пользоваться."
Системный аналитик: "Какова еще более глобальная задача?"
Кассир: "Предотвратить утечку или повреждение данных."
Обратите внимание на стратегию аналитика выстроить иерархию целей и выявить таким образом нужный уровень для элементарного бизнес-процесса. Это позволяет лучше понять мотивацию действий исполнителей и их задачи.
Предотвращение утечки данных — это цель более высокого уровня, чем задача пользователя.
Цель следующего уровня иерархии ("представиться" системе и выполнить аутентификацию) несколько ближе к задачам пользователя. Но относится ли она к уровню элементарных бизнес-процессов? Ее решение не добавляет ощутимого результата или измеримого бизнес-значения. Если на вопрос о том, чем кассир занимался сегодня на работе, прозвучит ответ: "Я 20 раз зарегистрировался!", то вряд ли такой ответ устроит начальника. Значит, это второстепенная задача, Которая служит достижению важной цели, но не относится к уровню ЕВР. Уровню ЕВР точнее всего соответствует задача оформления продажи.
В качестве другого примера можно рассмотреть процесс регистрации выручки, когда кассир задвигает ящик с наличностью и закрывает его в системе, регистрируется и вводит в систему сумму выручки. Регистрация выручки — это прецедент уровня ЕВР (или уровня задач пользователя), а регистрация в системе — это один из его шагов, выполняющий вспомогательную задачу, а не отдельный прецедент.
Вспомогательные задачи и прецеденты
Несмотря на то, что задача "представиться" системе и выполнить аутентификацию (или задача регистрации) не была отнесена к уровню задач пользователя, она все же является целью, но на более низком уровне. Такие задачи называют вспомогательными (subfunctional goal), поскольку они призваны обеспечивать выполнение задач пользователя. Для вспомогательных задач отдельные прецеденты создаются очень редко, хотя специалисты по написанию прецедентов зачастую рекомендуют улучшать (обычно упрощать) набор прецедентов.
Для вспомогательных задач писать прецеденты не запрещается, однако это не всегда нужно, поскольку при этом усложняется модель прецедентов. Количество вспомогательных задач для системы может исчисляться сотнями, но стоит ли создавать так много прецедентов?
Важно понимать, что с увеличением числа прецедентов возрастает сложность задачи формулировки и управления требованиями, а значит, увеличивается также время решения этой задачи,
Основным мотивом написания прецедента для вспомогательной должна служить повторяемость этой задачи или ее важное значение как предусловия для множества других прецедентов. Этому принципу удовлетворяет задача авторизации, которая обеспечивает предусловие для большинства, если не всех остальных прецедентов уровня задач пользователя.
Таким образом, вполне логично создать прецедент Аутентификация пользователя.
Составные задачи и прецеденты
Задачи могут принадлежать к различным уровням сложности и являться составными, начиная от уровня предприятия ("быть прибыльным"), до задач среднего уровня ("регистрация торговых операций") и вспомогательных задач в рамках приложения ("проверка правильности ввода").
Аналогично, и прецеденты могут относиться к различным уровням сложности и состоять из прецедентов более низкого уровня.
Наличие нескольких уровней сложности задач и прецедентов может ввести в заблуждение при определении соответствующего уровня для основных прецедентов. Для отсеивания слишком детальной информации следует использовать принцип нахождения элементарных бизнес-процессов.
Определение основных исполнителей, задач и прецедентов
Прецеденты предназначены для удовлетворения потребностей основных исполнителей. Поэтому для выделения прецедентов используется следующая процедура.
1. Определите рамки системы: является ли она программным приложением, аппаратно-программным комплексом, включает ли в себя своих пользователей или всю организацию?
2. Идентифицируйте основных исполнителей, потребности (цели) которых удовлетворяются с помощью системы.
3. Для каждого исполнителя определите его задачи. Составьте иерархию в соответствии с рекомендациями по выделению ЕВР.
4. Определите прецеденты, удовлетворяющие потребности каждого исполнителя, и присвойте им имена в соответствии с задачами. Обычно основные прецеденты соответствуют задачам пользователей, за одним исключением, о котором речь пойдет ниже.
Шаг 1. Определение рамок системы
Для данного прецедента разрабатываемой системой является сама POS-система. Все, что находится за ее пределами, включая кассира, службу авторизации платежей и т.д., в эти рамки не включается.
Для определения рамок системы следует, в первую очередь, указать, что к ней не относится, т.е. определить внешних основных и вспомогательных исполнителей. После идентификации внешних исполнителей рамки системы очерчиваются более четко. Например, возлагается ли на систему полная ответственность за авторизацию платежей? Нет, эту задачу выполняет внешний исполнитель — служба авторизации платежей.
Шаги 2 и 3. Определение основных исполнителей и задач
Нельзя однозначно указать последовательность определения исполнителей и задач. Обычно на семинаре по определению требований методом мозгового штурма идентифицируются и те и другие артефакты. Иногда исполнители определяются после формулировки задач, а иногда наоборот.
В процессе мозгового штурма основное внимание следует уделить определению основных исполнителей, поскольку это расширит возможности для дальнейшего исследования.
Вопросы, задаваемые при определении исполнителей и задач
При определении основных исполнителей и задач пользователей следует ответить на следующие вопросы, чтобы не упустить из виду некоторые неочевидные моменты.
-
Кто запускает и выключает систему?
-
Кто является системным администратором?
-
Кто осуществляет управление пользователями и безопасностью?
-
Относится ли время к числу исполнителей, другими словами, должна ли система выполнять какие-либо действия в ответ на события времени?
-
Существует ли процесс мониторинга, благодаря которому система перезапускается в случае сбоя?
-
Кто контролирует деятельность и производительность системы?
-
Как выполняется обновление программного обеспечения?
-
Кто анализирует журналы регистрации? Можно ли обеспечить удаленный доступ к ним?
Основные и вспомогательные исполнители
Напомним, что основные исполнители — это те, чьи потребности удовлетворяются с помощью системы. Для решения своих задач они используют систему. В отличие от них, вспомогательные исполнители (supporting actor) занимаются обслуживанием системы. Пока сосредоточимся на идентификации основных исполнителей.
Напомним также, что основными исполнителями, среди прочего, могут быть другие компьютерные системы.
Совет. Отсутствие внешних компьютерных систем среди основных исполнителей должно насторожить разработчиков.
Перечень исполнителей и их задач
Составьте список основных исполнителей и их задач. В терминах артефактов унифицированного процесса этот список должен быть разделом артефакта «Видение». Рассмотрим следующую таблицу.
Исполнитель |
Задачи |
Исполнитель |
Задачи |
Кассир |
Оформляет продажи Оформляет кредиты Выполняет возврат товара Регистрирует выручку |
Системный администратор |
Добавляет пользователей. Изменяет параметры пользователей. Удаляет пользователей. Управляет безопасностью. Управляет системными таблицами. |
Менеджер |
Включает систему Выключает систему |
Система анализа торговой деятельности |
Анализирует информацию о продажах и оценивает производительность |
Система анализа торговой деятельности – это yдаленное приложение, которое достаточно часто будет запрашивать данные от каждого узла POS-системы по сети.
"Суровая действительность"
Этот перечень выглядит достаточно просто и понятно. Однако на самом деле создать его довольно сложно. На это уходит масса усилий и требуется несколько интенсивных семинаров, организованных по методу мозгового штурма. Вернемся к приведенному выше примеру, иллюстрирующему применение правила ЕВР к задаче регистрации в системе. На семинаре, посвященном составлению этого списка, кассир может предложить рассматривать регистрацию как одну из задач уровня пользователя. Системный аналитик, углубляясь в проблему, может расширить эту задачу до уровня "идентификации и аутентификации" пользователя. Затем он может осознать, что эта задача не относится к уровню ЕВР и исключить ее из списка задач пользователя. На самом деле, в реальности все будет выглядеть несколько иначе, поскольку опытный аналитик, как правило, знает набор эвристик, сформулированных на основе его прежнего опыта, одна из которых сводится к следующему: регистрация пользователя редко относится к уровню задач ЕВР. Поэтому он достаточно быстро исключит ее из рассмотрения.
Основной исполнитель и задачи системы зависят от ее рамок.
Почему основным исполнителем для прецедента Оформление продажи является кассир, а не покупатель? Почему покупатель не включен в список исполнителей?
Ответ определяется рамками разрабатываемой системы. Если предприятие или торговую организацию рассматривать как агрегатную систему, то для нее основным исполнителем должен являться покупатель, задача которого — приобретение товаров или услуг. Однако с точки зрения самой POS-системы (которая определяет рамки системы для данного прецедента), основным исполнителем является кассир, задача которого — обслуживание продаж.
Определение исполнителей и задач путем анализа событий
Для определения исполнителей, их задач и прецедентов можно также использовать внешние события. Что это означает? Зачастую к одному и тому же уровню EBP или прецеденту, например, относится целая группа событий.
Внешнее событие |
Инициатор |
Задача |
Ввод информации о наименовании товара |
Кассир |
Оформить продажу |
Ввод информации о платеже |
Кассир или покупатель |
Оформить продажу |
… |
|
|
Рис. 2. Основные исполнители и их задачи при изменении рамок системы
Шаг 4. Определение прецедентов
Как правило, каждой задаче пользователя соответствует один прецедент уровня ЕВР. Его имя должно соответствовать названию задачи, например, задаче оформления продажи должен соответствовать прецедент Оформление продажи.
Как правило, имя прецедента начинается с существительного, описывающего действие.
Типичным исключением из правила соответствия задач и прецедентов является прецедент, решающий четыре задачи — создание, восстановление, обновление и удаление. Обычно такой прецедент называется Управление <чем-либо>. Например, задачи "изменение информации о пользователях", "удаление пользователей" и т.д. решаются в рамках прецедента Управление пользователями.
Определение прецедентов выполняется в несколько этапов, одни из которых занимают несколько минут (например, присвоение имен прецедентам), а другие — по несколько дней или недель (развернутое описание). В последующих разделах этой главы, посвященных унифицированному процессу, эти этапы будут рассмотрены в контексте итеративной разработки.
Если прецеденты описаны плохо
Для описания прецедентов для POS-системы Алтын в течение нескольких итераций созывались семинары по определению требований, постепенно количество прецедентов увеличивалось, требования уточнялись и дорабатывались с учетом обратной связи. В процессе описания прецедентов активно участвовали эксперты предметной области, кассиры и программисты. Между ними не было никаких посредников, все общение происходило напрямую.
Хорошо, но не очень. Спецификация требований создает лишь иллюзию корректности. Можно с уверенностью утверждать, что прецеденты и другие требования в этом документе не корректны. В описании не хватает важной информации и содержатся неверные утверждения. Для решения этой проблемы мы не призываем вас следовать рекомендациям однопроходного процесса разработки и приложить больше усилий к полному описанию требований на начальных этапах разработки, хотя, безусловно, эту работу нужно выполнить максимально добросовестно. Однако этого не достаточно.