Файл: Лаб раб N 1 Прецеденты.doc

ВУЗ: Не указан

Категория: Методичка

Дисциплина: Проектирование информационных систем

Добавлен: 15.11.2018

Просмотров: 2451

Скачиваний: 15

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Здесь требуется другой подход. В основном проблема решается за счет итеративности процесса разработки, но в дополнение к нему иногда требуется постоянное личное общение — ежедневное обсуждение между всеми разработчи­ками при участии специалиста по предметной области, который уполномочен принимать решения о требованиях к системе. Нужен некто, к кому программи­сты могут подойти и за несколько секунд снять возникшие у них вопросы. На­пример, в рамках подхода ХР существует отличный принцип: пользователь должен постоянно находиться среди участников проекта, в том же помещении.

Описание прецедентов, относящихся к интерфейсу пользователя, в свободном стиле

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

Такой процесс исследования позволяет получить новые и более эффектив­ные решения. Например, в настоящее время достаточно распространены и недо­рого стоят клавиатура и мышь с устройствами считывания биометрической ин­формации, в частности отпечатков пальцев. Если целью является идентифика­ция и аутентификация, то почему бы для ее достижения не использовать эффективное и быстрое средство считывания биометрических данных с клавиа­туры? Однако отвечая на этот вопрос, следует принимать во внимание удобство использования. В данном случае придется установить профили типичных поль­зователей. А если их пальцы чем-то испачканы? А если они травмированы?

Базовый стиль описания

Эта идея была сформулирована в различных рекомендациях типа "не уде­ляйте внимания вопросам интерфейса пользователя, сосредоточьте внимание на содержательной стороне вопроса"


Если описание не содержит под­робной информации о реализации пользовательского интерфейса, а основное внимание в нем сосредоточено на содержательных моментах, то такой стиль описания Константин называет базовым (essential).a

Базовый стиль описания предполагает изложение на уровне намерений пользо­вателя и обязанностей системы, а не на уровне их конкретных действий. При таком стиле описания не нужно углубляться в детали технологии и механизма реализации, особенно при рассмотрении вопросов, связанных с интерфейсом пользователя.


Совет. Описывайте прецеденты в базовом стиле. Не уделяйте внимания интерфейсу пользователя, а сосредоточьтесь на содержательной стороне вопроса.

Прецедент Оформление продажи был выдержан в базовом стиле описания.

Заметим, что понятия цель и намерение являются синонимами. Этим подтверждается взаимосвязь между базовым сти­лем описания и ориентацией на цели (задачи). Действительно, многие намерения исполнителей можно трактовать как вспо­могательные цели.

Исполнители

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

Основной исполнитель (primary actor) — его задачи выполняются с использова­нием системы. Примером основного исполнителя является кассир.

- Зачем его идентифицировать? Чтобы определить цели пользователя, на основе которых формулируются прецеденты.

Вспомогательный исполнитель (supporting actor) — обслуживает систему (например, предоставляет информацию). Примером вспомогательного ис­полнителя является служба авторизации платежей.

- Зачем его идентифицировать? Чтобы определить внешние интерфейсы и протоколы.

Закулисный исполнитель (offstage actor) — заинтересован в реализации преце­дента, но не является основным или вспомогательным исполнителем. При­мером закулисного исполнителя является налоговая служба.

- Зачем его идентифицировать? Чтобы удостовериться, что все интересы определены и удовлетворены. Интересы закулисных исполнителей обыч­но не очевидны и их легко упустить из виду, если не идентифицировать

Диаграммы прецедентов

На языке UML существует система обозначений для диаграммы прецедентов, иллюст­рирующей имена прецедентов, исполнителей и взаимосвязи между ними (рис. 3).

Рис. 3. Фрагмент диаграммы прецедентов

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

Обычно новички в области моделирования прецедентов начинают с состав­ления диаграмм прецедентов и их взаимоотношений, а не с составления тексто­вых описаний. Однако специалисты по написанию прецедентов мирового класса, к числу которых относятся Андерсон (Andersen), Фовлер (Fowler), Кокбурн (Cockburn) и др., основное внимание уделяют составлению текстовых описаний, а не диаграмм, В таком ракурсе диаграмма лишь иллюстрирует способы исполь­зования системы внешними исполнителями.

Совет. Стройте простые диаграммы прецедентов в соответствии со списком исполни­телей и их задач.


Система обозначений для диаграммы прецедентов

Рис. 4. Предлагаемые обозначения

Рис. 5. Другие обозначения исполнителей


Требования и списки низкоуровневых свойств

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

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

Идентификатор

Свойство

Свойство 1.9

Система будет позволять вводить новые идентификаторы

Свойство 2.4

Система будет регистрировать платежи по кредитной карточке в бухгалтерской системе


Такие списки тоже могут оказаться полезными, однако один подобный список занимает не полстраницы, а десятки или сотни страниц, Это вызывает некоторые проблемы, решить которые позволяют прецеденты. К числу проблем относятся следующие,

  • Длинные, подробные списки функций не отражают требований в общем контексте. Различные функции и свойства организованы в обычный список разрозненных элементов. А при описании прецедентов требования рассматриваются в контексте задач и целей системы.

  • Если используются и описания прецедентов и списки функций, то происхо­дит дублирование информации. На это затрачивается больше труда, требу­ется больше усилий для их осмысления и согласования.

Совет. Старайтесь заменить подробные списки низкоуровневых свойств описанием прецедентов.

Списки высокоуровневых свойств системы вполне допустимы

Достаточно часто функциональные свойства системы описываются в крат­ких списках свойств высокого уровня в рамках документа "Видение". Это вполне оправдано. В отличие от списка низкоуровневых свойств, перечисленных на 100 страницах, список основных свойств системы должен включать не более не­скольких десятков элементов. В нем перечислены лишь функциональные свой­ства системы, не упомянутые при описании прецедентов.

Список свойств системы

Регистрация продаж.

Авторизация платежей (кредитных, дебитных, чековых).

Системное администрирование для управления пользователями, безопасностью, таблицами кодов и констант и т.п.

Автоматическая обработка информации о продажах в фоновом режиме в случае отказа внешних компонентов.


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

Определение и выполнение настраиваемых бизнес-правил в фиксированных точках сценария.

...


Когда нужен подробный список свойств?

Иногда прецедентов действительно недостаточно. Для некоторых систем нужно разработать детальный список свойств. Например, серверы приложений, системы управления базами данных и другие базовые системы нужно рассматри­вать в терминах свойств ("Необходима поддержка следующей версии XML"). Прецеденты не годятся для разработки таких приложений.

Прецеденты в рамках унифицированного процесса

Прецеденты играют жизненно важную роль при реализации унифицированного процесса, поскольку вся разработка в рамках этого подхода осуществляется под управлением прецедентов (use-case driven development). Это означает следующее.

  • Требования в основном формулируются при описании прецедентов (в моде­ли прецедентов). Остальные требования (если таковые существуют) являют­ся либо техническими (например, список функций), либо второстепенными.

  • Прецеденты — важный этап итеративного планирования. На каждой итера­ции реализуются некоторые сценарии или целые прецеденты. Поэтому опи­сания прецедентов вносят существенный вклад в оценивание результата.

  • Разработка приложения состоит в реализации прецедентов. То есть группа разработчиков продумывает способы взаимодействия объектов или архитек­туру подсистем для реализации прецедентов.

В рамках UP выделяют два вида прецедентов: системные и бизнес-прецеденты. Системные прецеденты (system use-case) — это такие, которые рас­сматривались в этой главе, например Оформление продажи. Они создаются в рамках дисциплины "Требования" и являются частью модели прецедентов.

Бизнес-прецеденты (business use-case) используются гораздо реже. При не­обходимости они создаются в рамках дисциплины "Бизнес-моделирование" как часть крупномасштабного бизнес-процесса или для облегчения понимания кон­текста новой системы. Они описывают последовательность действий в целом, выполняемых бизнес-исполнителем (business actor) (исполнителем в бизнес-среде, например, потребителем). В частности, для ресторана можно выделить бизнес-прецедент Приготовление блюда.

Прецеденты и спецификация требований в рамках итеративного процесса

В этом разделе мы вернемся к основной идее UP и итеративной разработки. Рассмотрим временные рамки, выделяемые на формулировку требований на ка­ждой итерации. В табл. 2 представлен пример (не претендующий на рекомен­дацию) определения требований в процессе реализации стратегии UP.

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


В этом состоит ключевое отличие от однопроходного процесса — промыш­ленная разработка ядра системы начинается достаточно быстро, задолго до пол­ного завершения формулировки требований.

Обратите внимание, что в конце первой итерации стадии развития прово­дится второй семинар по формулировке требований, по окончании которого сШ7о прецедентов описаны подробно. При таком планировании можно учесть обрат­ную связь и оценки реализованной части системы. Обратная связь поступает от пользователей, специалистов по тестированию и позволяет "познать непознан­ное". То есть в процессе разработки системы очень быстро возникают вопросы, требующие немедленного решения.


Прецеденты начальной фазы

На начальной стадии не все прецеденты описываются детально. В этот пе­риод для описания прецедентов целесообразно организовать двухдневный семи­нар. В первой половине первого дня можно определить задачи и круг заинтере­сованных лиц, а также обсудить, какие задачи относятся к проекту, а какие вы­ходят за его рамки. С помощью компьютерного проектора можно составить и демонстрировать таблицу исполнителей и их задач. Можно приступить к по­строению диаграммы прецедентов. В течение нескольких часов вполне реально определить порядка 20 задач пользователей (и соответствующих им прецеден­тов), в том числе прецеденты Оформление продажи, Возврат товара и т.д. За это время большинство интересных, сложных прецедентов с высоким уровнем риска должны быть описаны в сжатом формате. На описание каждого такого прецедента понадобится около 2 минут. Разработчики могут приступить к со­ставлению высокоуровневой схемы функциональности системы.

После этого 10-20% прецедентов, представляющих сложные функции или высокую степень риска, нужно описать подробно. При этом разработчики лучше оценят сложность проекта, его рамки, выявят проблемы, возникающие в про­цессе разработки. Самыми важными прецедентами являются, пожалуй, Оформление продажи и Возврат товара.

Для описания прецедентов нужно использовать средства управления требова­ниями со встроенным текстовым процессором, а результаты работы желательно де­монстрировать участникам семинара с помощью проектора. Для этих прецедентов нужно составить список заинтересованных лиц и их интересов. Это поможет глубже понять неочевидные функциональные и основные нефункциональные требования, в частности к надежности и производительности системы.

Задачей такого анализа является не исчерпывающее описание прецедентов, а более глубокое понимание проблемы.

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