WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!

Pages:     | 1 | 2 || 4 | 5 |   ...   | 9 |

«Разработка требований к программному обеспечению Практические приемы сбора требований и ими при разработке программного продукта Карл И. Вигерс Дважды лауреат Software Development Productivity Award ...»

-- [ Страница 3 ] --

Как услышать голос клиента «У пользователя должна быть возможность сортировать список проекта в прямом и обратном алфавитном порядке»;

1 «Когда кто-либо представляет на рассмотрение новую идею, систе ма отправляет сообщение по электронной почте Idea Coordinator».

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

Дополнительная информация Советы тем, кто хочет написать хорошие функциональные требования - в главе 10.

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

I «Должны распознавать сигналы от определенного устройства»;

1 «Должна отправлять сообщение такой-то системе»;

1 быть в состоянии читать (или записывать) файлы в опре деленном формате»;

такой-то элемент оборудования»;

I интерфейс должен соответствовать определен ному 124 Часть II. Разработка требований к ПО Ограничения. Ограничения, касающиеся дизайна и реализации, циально ограничивают доступные разработчику. Для устройств со встроенным ПО часто необходимо учитывать ограничения, такие, как размер, вес и сквозные соединения в плате, Записывайте разумное обоснование для каждого ограничения, чтобы все участники проекта знали его источник и понимали его обоснован ность. Действительно ли ограничением является требование тить в определенном пространстве? Или это желание, пример, просто получить портативный компьютер с минимальным сом?

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

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

I «Размер файлов, представленных в электронном виде, не должен превышать 10 Мб»;

I «В браузере для всех безопасных транзакций следует кодировку»;

i «В БД необходимо применять механизм периода выполнения Fra А это примеры других фраз, указывающих на то, что клиент описы вает дизайна или реализации:

«Должна быть написана на определенном языке вания»;

1 «Не может требовать более такого-то объема памяти»;

1 «Должна функционировать согласованно (или быть совместима) с такой-то системой»;

I «Должна использовать определенный элемент управления пользо вательского интерфейса».

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

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

Дополнительная Подробнее о словарях данных - в главе Определения данных иногда становятся источниками функциональ ных требований, которые пользователи не запросили напрямую. Что произойдет, когда номер заказа, состоящий из шести цифр, превысит Разработчикам необходимо как поведет себя система в таких случаях. Откладывая проблемы, касающиеся данных, вы только усложняете их решение в будущем. (Помните проблему 2000 г.?) Идеи, касающиеся решений. Большинство информации, которую пользователи представляют как требования, подпадает под определе ние идей о решении. Те, кто описывают определенный способ взаимо действия с системой для выполнения определенного действия, пред ставляют допустимое решение. Аналитику необходимо научиться пре одолевать формулировки и докапываться до сути идеи, которая и представляет собой требование. Например, функцио нальные требования, касающиеся — лишь одно из возмож ных решений требования к безопас-ности, Предположим, пользователь говорит: «Затем в раскрывающемся списке я выбираю штат, куда я хочу отправить посылку». Фрагмент «в раскрывающемся списке" тянет на решение. В этом случае благора зумный аналитик задаст вопрос: в раскрывающемся Если пользователь ответит: «Мне просто кажется, так удобно», то не посредственно требование можно сформулировать примерно так:

«Система позволит пользователю выбрать штат, куда он хочет отпра вить Однако пользователь может сказать: «Я предложил раскрывающийся список, потому что мы применяем этот элемент в других областях, и я хочу согласованности. Кроме того, так Часть II. Разработка требований к ПО тель не сможет ввести непроверенные данные, и я думаю, в этом случае удастся применить уже написанный код». Это отличные причи ны для выбора определенного решения. Однако следует помнить, что, записывая идею о решении в требование, вы тем самым налагаете ог раничение по дизайну на это самое требование. Таким образом, лизация требования становится возможной только в одном Это не обязательно плохо или неправильно, просто убедитесь, что для ограничения есть убедительная причина, Несколько советов о том, как собирать информацию Собрать воедино мнения нескольких дюжин пользователей трудно при отсутствии хорошо структурированной организационной схемы, кой, как вариант использования. Проблемы возникают и если вам ходится выслушивать нескольких пользователей, и если вы имеете де ло с наиболее громогласным и упрямым клиентом. Вы можете упус тить из виду требования, важные для определенных пользователей, или включить требования, которые не отражают по требности Чтобы соблюсти баланс, следует привлечь несколько горячих сторонников продукта, обладающих полномочиями для выступления от лица соответствующих классов причем каждого из них должны поддерживать несколько представите лей этого же класса пользователей.

В процессе сбора информации иногда выясняется, что границы проекта определены неправильно — они либо слишком широкие, либо слишком узкие и 1992). В первом случае вам придется собрать дополнительные данные, чтобы сформулировать адекватные коммерческие и клиентские понятия, при этом процесс неизбежно за тянется. Во втором случае высказанные пользователями важные по требности выходят за границы текущего проекта. Это означает, что оп ределенные границы, слишком малы для получения удов летворительных результатов. Таким образом, сбор информации иногда влечет за собой изменение образа или границ проекта.

Часто говорят, что суть требований заключается в том, что должны делать, то, как решение будет реализовано, относится к об ласти дизайна. Хотя эта формулировка заманчиво кратка, по сути она примитивна. Сбор информации должен быть сосредоточен на этом но области анализа и дизайна разделяет размытая линия, а не кая голос клиента граница. Гипотетические как помогают уточнить и детализировать нимание потребностей пользователей. Модели анализа, что видно на экране, и прототипы помогают в ходе сбора информации более осязаемо выразить потребности и избежать ошибок и упущений, Воспринимайте модели и решения, выработанные в про цессе формулирования требований, как концептуальные предложения, эффективное взаимодействие, а не как ограничение воз можностей, доступных разработчику. пользователям, что эти средства — только для иллюстрации идей и попадут в окончательные решения, Увлечение исследованиями иногда приводит к проблемам. Выска зана прекрасная идея или но для ее оценки необходима обстоятельная проверка. Выяснение ее осуществимости или ценности следует воспринимать как самостоятельную задачу внутри проекта, собственными целями и требованиями. И в случае неоценима роль прототипов. Если для вашего проекта необхо димо провести обширные исследования, выполняйте их небольшими, безопасными частями, Поиск упущенных требований Пропуск каких-либо важных данных — самый распространенный не достаток требований (Jones, 1997). Обнаружить их в процессе повтор ного просмотра требований очень трудно, поскольку они просто неви димы! Предлагаемые далее приемы позволяют выявить упущенные требования.

Ловушка Остерегайте паралича аналитического процесса: не тратьте слишком времени на требований, пытаясь не упустить ни одно из них. Вы никогда не их все сразу!

I Раскладывайте требования на простейшие составляющие — это позволит понять, чего же именно просят поль зователи. Из-за неясности требований высокого уровня, предос тавляющих клиентам свободу интерпретации, возможно несовпа дение представлений клиента о продукте и тем, что создает разра ботчик. Вот некоторые неточные и расплывчатые термины, которых следует избегать: обеспечивать поддержку, предоставлять возмож ность, разрешать, и управлять.

Часть II. Разработка требований к ПО 1 Убедитесь, что все классы пользователей предоставили вам ин формацию и для каждого варианта определена по крайней мере одна роль.

Подробно документируйте, на каких функциональных требованиях основаны требования к системе, варианты использования, списки откликов на события и бизнес-правила. Это позволит вам быть уве ренным, что аналитик описал всю необходимую функциональность Для выявления недостающих требований проверяйте значения. Предположим, в одном требовании указано: «Если стои мость заказа меньше $100, стоимость доставки будет равна а в другом — «Если стоимость заказа превышает $100, доставки составляет 5% от общей стоимости заказа». А как быть, ес ли стоимость заказа составляет ровно $100? Это не зна чит, отсутствует соответствующее требование.

I Используйте разнообразные формы представления информации о требованиях. Трудно прочитать большой объем текста и заметить, что чего-то не хватает. Модели анализа визуально представляют требования высокого уровня абстракции — лес, а не отдельные де ревья. Рассматривая модель, вы можете заметить, что от одною блока к другому должна идти стрелка;

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

Подробнее о моделях анализа — в главе Один из точных способов поиска недостающих требований — соз дать матрицу CRUD (Create, Read, Update, Delete — создание, чтение, обновление, удаление). Она позволяет соотнести действия системы с элементами данных (отдельными или их в результа те вы получаете представление о том, где и как каждый элемент ных создается, считывается, обновляется и удаляется. Некоторые до бавляют к названию матрицы букву указывая, что элемент данных является списком 2002). В зависимости от способов анализа которые вы используете, удается различные типы соответствий, том числе:

1 элементы данных и системные события (Robertson и Robertson, 1999);

элементы данных и задачи пользователей или варианты вания (Lauesen, 2002);

классы объектов и системные события 2002);

1 классы объектов и варианты использования (Armour и Наборы требований со сложной булевой логикой (несколько опе раторов «И», «ИЛИ» и «НЕ») часто оказываются неполными, Если для Глава 7. Как услышать голос клиента комбинации логических условий не определено соответствующее функ циональное требование, разработчику приходится догадываться, как же должна действовать система, или искать ответ на этот вопрос. Что бы убедиться, что вы рассмотрели все возможные ситуации, пред сложную логику с помощью таблиц и деревьев решений (подробнее — в главе Элемент данных на Рис. 7-2. Пример матрицы Chemical Tracking System На рис. 7-2 показана матрица CRUDL для элементов данных и вари антов использования определенной области Chemical Tracking System.

Каждая ячейка указывает, как вариант определенный в крайнем левом столбце, взаимодействует с каждым элементом дан ных. Вариант использования может Создать (Create), Читать (Read), Обновить Удалить (Delete) или Указать в виде списка (List) элемент данных. После создания матрицы посмотрите, не появилась ли одна из этих букв в какой-либо ячейке столбца. Если коммерческий объект обновлен, но до этого его не создали, откуда он взялся? Обра тите внимание, что ни одна в колонке с именем «Сотрудник, разместивший заказ на не содержит «Уд». То есть, ни в од ном из случаев использования на рис. 7-2 нельзя удалить сотрудника из списка заказывавших химикаты. Интерпретировать это мож тремя способами:

I удаление сотрудника, разместившего заказ на химикат, не является ожидаемой функцией Chemical Tracking System;

мы пропустили вариант использования, который удаляет сотрудни ка, разместившего заказ на химикат;

1 вариант использования «Редактировать данные колонки «Сотруд ник, разместивший заказ на некорректный. Предполага Часть II. Разработка требований к ПО ется, что пользователь может удалить из списка сотрудника, заказ на химикат, но в настоящее время эта нальность не указана в вариантах использования.

Мы не какая интерпретация правильна, но CRUDL — это способ для обнаружения требований.

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

1 пользователи предлагают новые варианты использования, вы уже вывели соответствующие функциональные требования из других вариантов Эти «новые" предложения могут оказаться случаями других вариантов которые вы уже рассмотрели;

пользователи повторно описывают уже обсуждавшиеся проблемы;

I предлагаемые новые функции, пользовательские или функциональ ные требования выходят за рамки проекта;

вновь предлагаемые требования имеют низкий приоритет;

I пользователи предлагают которые имеет смысл реа лизовать «когда-то позже», не включить «в конкретный продукт, ко торый мы сейчас обсуждаем».

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

Глава 7. Как услышать голос клиента Невзирая на все ваши усилия, выявить все вы не жете, так что готовьтесь вносить изменения по мере работы над проек том. Помните: ваша цель — сформулировать требования, достаточные для того, чтобы обеспечить при разработке приемлемый уровень риска.

Что теперь?

1 Вспомните недостающие требования, которые были выявлены поздних стади ях проекта. Почему они были упущены из в процессе сбора информации?

Как вы могли бы выявить их раньше?

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

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

Часть II, Разработка требований к ПО 8 Как понять требования пользователей Участники проекта Chemical Tracking System проводили свой первый семинар, посвященный требованиям, чтобы выяснить.

как химики будут использовать систему. На него приглашены аналитик требований Лори, которая также няла функции ответственного за сторонник от химиков Тим, еще два представителей химиков Сэнди и Пи • а также ведущий разработчик Элен. Лори открыла нар, поблагодарив присутствующих за участие, и ступила к делу.

"Тим, Сэнди и Питер определили приблизительно тов использования Chemical Tracking System, — сообщила она группе. — На семинарах мы рассмотрим их, чтобы нить, какую функциональность необходимо встроить в систе му. Вы высший варианту «Запрос химиката", и Тим уже составил его краткое поэтому с него и начнем. Тим, как ты представляешь себе прос химиката с помощью всего, — сказал Тим, — вам следует знать, что только те люди, у которых есть разрешение руководителей лаборато рий, могут запрашивать химикаты».

"Ладно, это похоже на бизнес-правило, — ответила Лори. Я начну составлять список бизнес-правил, но, будут и другие. Видимо, нам придется включен ли пользователь в утвержденный список лиц». Она также сала «пользователь идентифицирован» и «пользователю пре доставлено право запрашивать химикаты» в разделе рительные условия» списка, который она уже подготовила использования «Запрос химиката». еще какие • нибудь предварительные условия, которые должны быть вы полнены до как пользователь получит возможность дать запрос?" "Прежде чем запрашивать химикат у поставщика, я должна проверить, ли его на складке, — сказала Сэнди. — Когда я начну запрос, текущая БД складских запасов долж на быть подключена в онлайновом чтобы я не теряла времени попусту».

Лори добавила этот элемент в список предварительных усло вий. В течение следующих 30 минут она управляла обсуждени ем того, как участники семинара представляют себе процесс запроса нового химиката. Ей понадобилось сколько чтобы свести вместе информацию о предва рительных условиях, выходных а также этапах взаи модействия пользователя и Chemical Tracking System. Лори поинтересовалась, чем будет отличаться вариант использова ния, когда пользователь запрашивает химикат у продавца, от того, когда он запрашивается на складе. А кроме того, какие проблемы при этом могут возникнуть и как система должна обрабатывать каждую ошибку? По истечении получаса уда лось выработать четкое о том, как пользова тель будет запрашивать химикат. Участники семинара были товы обсуждать следующий вариант использования.

Люди системы ПО для выполнения необходимых задач, и в индустрии ПО наблюдается устойчивая тенденция к разработке ПО с повышенной практичностью (Constantine и 1999;

2000). При этом существует обязательное предварительное условие — необходимо знать, как клиенты планируют продукт, В течение многих лет аналитики извлекали информацию о требова ниях пользователей из сценариев использования и Harbisont, Сценарием (scenario) называется описание одного варианта ис пользования системы. Jacobson с коллегами Larry Constan tine и Lucy Lockwood Alistair и многие другие преобразовали этот подход в методику, где для сбора информации и требований применяются варианты использования.

Последние прекрасно себя зарекомендовали при разработке требова ний для бизнес-приложений, Web-сайтов, служб, предоставляемых одной системой другой, и систем, позволяющим пользователям управлять определенным оборудованием. У таких продуктов, как Часть II. Разработка требований к ПО пакетной обработки, системы для интенсивных вычислений и приложения для хранения данных, может оказаться всего простых вариантов использования. Сложность их работы в выполняемых вычислениях или генерировании отчетов, а не во взаи пользователя и системы. Работа с требованиями, часто применяемая для систем реального времени, заключается в лении внешних событий, на которые система должны реагировать соответствующих реакций системы. В этой главе описано, как с щью вариантов использования и таблиц «событие — реакция» сировать пользовательские требования.

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

Подход с применением варианта использования продукта Вариант использования (use продукта описывает тельность взаимодействия системы и внешнего действующего лица.

Действующим лицом (actor) может быть человек, другая система ПО или аппаратное устройство, взаимодействующее с системой для тижения некой цели (Cockburn, Еще одно название действую щего лица — роль пользователя, поскольку это роль, которую члены одного или нескольких классов пользователей могут выполнять по от ношению к системе и Например, в вари анте использования Chemical Tracking System «Запрос химиката» уча ствует действующее лицо — Сотрудник, разместивший заказ на хими кат. Класса пользователей Chemical Tracking System с таким именем не существует. И химики, и специалисты, работающие на складе химика тов, могут запрашивать химикаты, поэтому члены любого из этих клас могут играть роль Сотрудника, разместившего заказ на химикат.

Понятие использования» пришло из мира объектно ориентированного программирования. Тем не менее они годятся и проектов, где применяются любые приемы разработки, поскольку пользователям безразлично, как именно создается ПО. Варианты ис пользования лежат в основе широко применяемого Унифицированно го процесса разработки ПО (Jacobson, и Rumbaugh, 1999).

Глава 8. Как понять пользователей Варианты использования меняют традиционный подход к сбору ин формации;

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

Получить по безопасному материала База для обучения Выполнить поиск ft ~ заказ склада на химикат Отдел охраны труда и техники безопасности Рис. Фрагмент диаграммы варианта использования Chemical Tracking System Диаграммы вариантов использования (use-case позволя ют получить отличное визуальное представление о требованиях поль зователей. На рис. показан фрагмент диаграммы варианта исполь зования Chemical Tracking System, где применяются нотации Часть II. Разработка требований к ПО Modeling Language — унифицированный язык (Booch, и Jacobson, 1999;

Armour и Miller, 2001).

угольник показывает границы системы. Линии соединяют каждое ствующее лицо человечек) с вариантами использова' ния (эллипсами), с которыми это лицо взаимодействует. Обратите внимание на сходство этой диаграммы варианта использования с текстной диаграммой на рис. 5-3. Здесь прямоугольник отделяет которые внутренние элементы высокого уровня системы — варианты использования — от внешних действующих лиц. Контекстная ма также отображает объекты, расположенные вне системы, но на ней не видны внутренние части системы, Варианты использования и сценарии использования Вариант использования case) — это отдельное, независимое дей ствие, которое действующее лицо может для получения ределенного значимого результата. Один вариант использования мо жет охватывать несколько схожих задач с одинаковыми целями. Сле довательно, он представляет собой набор связанных между собой сценариев где сценарий — это отдельный пример рианта Вы можете начать разработку требований с аб страктных вариантов использования, а затем на их основе создать конкретные сценарии использования или, наоборот, перейти от го сценария к более широкому варианту использования. Далее в главе показан подробный шаблон для документирования использования. К важным элементам описания варианта использова ния относятся:

уникальный идентификатор;

имя, кратко описывающее задачи пользователи в формате «глагол + например «разместить заказ»;

краткое текстовое описание на естественном языке;

список предварительных условий, которые должны быть удовлетво рены до начала разработки варианта использования;

выходные описывающие состояние системы после успеш ного завершения разработки варианта использования;

I пронумерованный список действий, иллюстрирующий последова тельность этапов взаимодействия лица и системы от ных условий до выходных условий.

Один сценарий считается нормальным направлением (normal варианта использования, его также называют основ ным направлением, базовым направлением, нормальным Глава 8. Как понять пользователей основным сценарием, главным успешным сценарием и благоприят ным путем. Нормальное направление для варианта использования «Запрос химиката» — запрос который есть на складе.

Нормальное направление Альтернативное направление (предварительные условия варианта использования) (условие (условие (выходные условия варианта использования] Рис. 8-2. UML-диаграмма, иллюстрирующая диалоговый поток при нормальном и альтернативном развитии варианта использования Другие допустимые сценарии из варианта использования, называ ются направлениями (alternative courses) или (secondary scenarios) (Schneider и Winters, 1998).

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

Альтернативное направление для варианта использования зать химикат» — это «Заказать химикат у поставщика». В обеих циях конечная цель действующего лица одна и та же — запрос химика та, поэтому оба сценария входят в один вариант использования.

этапы альтернативного направления аналогичны этапам нормального направления, но для завершения альтернативного правления необходимо выполнить особые действия. В нашем пользователь может искать необходимый химикат по каталогам ставщиков. Если альтернативное направление само по себе является автономным вариантом использования, вы можете расширить нор мальное направление, включив этот отдельный вариант использования в нормальный поток (Armour и Miller, 2001). Диаграмма на рис. 8- люстрирует подобную расширенную взаимосвязь. Вариант использс вания «Запросить химикат» был расширен вариантом использования «Выполнить поиск по каталогам поставщика». Кроме того, сотрудники склада химикатов используют «Поиск по каталогам поставщиков» как отдельный вариант.

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

В качестве примера рассмотрим работу ПО для бухгалтерии.

можны два варианта использования — «Оплатить счет» и кредитную карту", причем в обоих, чтобы выполнить платеж, тель должен подписать чек. Вы можете создать отдельный вариант ис пользования «Подписать чек», который содержит набор действий, не обходимых для подписи чека. Этот вариант будет включен в обе тран закции, как показано на рис. 8-3.

Ловушка Не затягивайте обсуждение того, когда, как и стоит ли исполь зовать взаимоотношения типа расширить и включить. Чаще всего применяется сле прием - указать общие действия во включенном варианте использования.

Глава 8. Как понять требования пользователей карту «включить» «включить» Подписать чек Рис. 8-3. Пример как вариант использования связан с бухгалтерским Условия, препятствующие успешному завершению задания, назы ваются исключениями (exceptions). Для варианта использования «За просить химикат» существует одно исключение — «Химиката нет в про даже». Если в процессе сбора информации вы не укажете, как обраба тывать исключение, то возможны два пути:

разработчики предложат лучший по их мнению способ обработки исключений;

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

Бьюсь об заклад, что сбои системы не входят в список требований пользователей.

Иногда исключения рассматриваются как тип альтернативного на правления однако эти понятия следует разделять. Не обязательно реализовывать каждое альтернативное направление, ко торое вы определили для варианта использования;

кроме того, вы мо жете отложить его реализацию до следующего выпуска. Однако вы обязаны реализовать исключения, из-за которых завершение сцена риев может оказаться неуспешным. Любой, кто когда-либо занимался программированием, знает, что часто именно на работу над исключе приходится большая часть программирования. Многие недос татки конечного продукта присущи именно обработчикам исключений (или происходят из-за их Указать условия исключений в ходе сбора информации по требованиям — верный способ создать ус тойчивые к сбоям продукты!

Для многих систем пользователь может связать последователь ность вариантов в «макровариант описывающий задачу. Для коммерческого Web-сайта пред лагаются, например, такие варианты использования;

«Поиск по ката логу», «Добавить товар в корзину» и «Оплатить товары в корзине». Если вы можете выполнить все эти действия по отдельности, то все они 140 Часть II. Разработка требований к ПО считаются независимыми вариантами использования. Кроме того, вы вправе выполнить все три указанные операции подряд, назвав этот один большой вариант использования «Приобрести товар», как пока зано на рис. 8-4. Причем после каждого варианта использования сис тема должна быть в таком чтобы пользователь мог при ступить к следующему варианту использования То есть выходные условия одного варианта использования должны рять предварительным условиям следующего за ним варианта. Подоб ным же образом в приложении обработки транзакций, например ATM, каждый вариант должен оставлять систему в состоянии готовности к следующей транзакции. Предварительные условия и вы ходные условия каждой транзакции варианта использования должны вставать в один ряд.

Приобрести товар Выполнить поиск Добавить товар Оплатить по каталогам в корзину товары в корзине предварительные выходные условия условия Рис. 8-4. Предварительные условия и выходные условия определяют границы отдельных вариантов которые можно связать в цепочку для выполнения объемной задачи Определение вариантов использования Вы можете определить варианты использования несколькими бами 1998;

Larman, 1998):

i сначала определить действующие а затем в которых каждое лицо участвует;

I выразить бизнес-процессы в терминах определенных обобщить сценарии в варианты использования и определить дейст вующие лица для каждого варианта;

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

Глава 8. Как понять требования пользователей I определить вероятные варианты использования на основе циональных требований, Если какие-либо требования проследить до какого-либо варианта использования, подумайте нужны ли они.

В Chemical Tracking System применен первый подход. Аналитик про вел несколько семинаров по вариантам использования, примерно два раза в неделю, по два-три часа каждый. Члены различных классов пользователей в параллельных семинарах, так как лишь несколько вариантов использования были общими для нескольких классов пользователей. На каждом семинаре присутствовали сторон ник продукта от класса другие выбранные представи тели пользователей, а также разработчик. Участие в семинарах позво лило разработчикам еще на ранней стадии получить представление о создаваемом продукте. Кроме того, они возвращали собравшихся к реальности, когда те предлагали невыполнимые До начала семинаров аналитики попросили пользователей проду какие задачи те выполнять с помощью новой систе мы. Каждая такая задача становилась потенциальным вариантом ис пользования. Несколько предложенных вариантов, как выяснилось, выходят за границы проекта, поэтому далее они не обсуждались. По мере изучения вариантов использования стало ясно, что некоторые варианты связаны между собой сценариями, которые можно объеди нить в один абстрактный вариант использования. Также удалось вы явить дополнительные варианты использования, не входившие в пер воначальный набор.

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

Что клиент хочет: напечатать, заказать, отправить по электронной почте, исправить, удалить или создать данные по безо пасному хранению материала? Иногда предложенный вариант исполь зования — это всего лишь одно действие, которое выполняется как часть варианта использования, например «сканировать Аналитик должен выяснить, какую цель подразумевал когда предлагал это. Он может задать такой вопрос: «Сканируя штрих код на контейнере с химикатами, что вы пытаетесь сделать?» Предпо ложим, в ответ он услышит: «Это необходимо для того, чтобы я мог от править этот химикат в свою лабораторию». Следовательно, настоя щий вариант использования выглядит как-то так — «Отправить хими кат в лабораторию». Сканирование штрих-кода -- только один из Часть II. Разработка требований к ПО этапов взаимодействия действующего лица и системы, передающей химикат в лабораторию.

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

Документирование вариантов использования На этой стадии обсуждения участники должны обдумать варианты использования. и Lockwood дают щее определение важнейших использования (essential «... упрощенное, обобщенное, абстрактное, не зависящее от технологии и реализации описание одной задачи или взаимодейсТ' вия... в котором воплощена цель или намерения, лежащие в основе!

То есть следует сосредоточиться на задаче, которую пользователю необходимо выполнить, и возможностях системы для выполнения этой задачи. Важнейшие варианты использования харак более высоким уровнем абстракции, чем конкретные вари анты использования (concrete use cases), которые описывают ленные действия, предпринимаемые пользователем для взаимодейст вия с системой. Чтобы проиллюстрировать различие, рассмотрим способа начала реализации пользователем варианта использования «Запросить химикат».

Конкретный вариант использования. Введите номер ID Важнейший вариант использования. Укажите необходимый химика г.

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

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

Глава 8. Как понять требования пользователей Участники семинара, посвященного Chemical Tracking System, начи нали каждое обсуждение с определения действующего лица, которое получит преимущество варианта использования, и краткого описания этого варианта. Затем они указывали предварительные ус ловия и выходные условия, ограничивающие вариант использования, а также все этапы внутри этих границ. Выяснив частоту вы на ранних стадиях получите представление о необходимости и важ ности Далее аналитики спрашивали как те се бе представляют взаимодействие с системой для выполнения Установленная последовательность действий лиц и реакции системы как нормальное направление. Нумерация этапов по следовательности окончательно проясняла ситуацию. Хотя у каждого участника было свое представление об интерфейсе и специальных ме ханизмах взаимодействия, группа смогла выработать общее понима ние важнейших этапов диалога системы и пользователя, Придерживаясь границ вариант использования из восьми этапов, я понял, что выходные удовлетворены уже после пятого этапа. Следовательно, этапы 6, 7 и 8 были излиш ними, так как выходили за границы варианта использования. Точно так же предвари тельные условия варианта использования должны удовлетворены до начала этапа. Изучая описание варианта использования, убедитесь, что предвари тельные и выходные условия ограничивают его соответствующим образом.

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

Команда, занимающаяся сбором информации, разработала гичные диалоги для определения альтернативных направлений и ис ключений. Если пользователь говорит: «По умолчание это должно значит, он описывает нормальное направление развития ва рианта использования. Такая фраза, как: «Необходимо, чтобы пользо ватель также предполагает обсуждение альтернативное на правление. Многие условия исключений удавалось выяснились, когда аналитик задавал примерно такие вопросы: «Что должно произойти, если в текущий момент БД отключена?» или «Что, если этого химиката нет в На семинаре также удобно обсудить ожидания поль зователей, касающиеся качества продукта, например времени реак Часть II. Разработка требований к ПО доступности и надежности системы, ограничений дизайна интерфейса и требований по безопасности.

После того как участники семинара описали каждый вариант ис пользования, и никто не предлагал уже никаких дополнительных исключений или специальных требований, приступали к дующему варианту использования. Участники не пытались рассмот реть все варианты использования за одно марафонское обсуждение или точно определить все детали каждого варианта Они запланировали изучение вариантов использования по щей и их последующее многократное рассмотрение и уточнение, На рис. 8-5 показана последовательность этапов разработки антов использования. После семинара аналитик детально фиксирова каждый вариант использования, как на рис. 8-6, Существует два спо соба представить этапы взаимодействия пользователя и системы, торые и составляют основу варианта использования. На рис. 8-6 диа лог представлен в виде пронумерованного списка этапов с указанием того, какой элемент (система или определенное действующее лицо) выполняет каждый шаг. Так же описываются и альтернативные направ ления и исключения, для которых показан этап нормального направле ния развития, на котором появляется ответвление, или этап, где можно исключение. Существует еще один прием — описать процесс средствами таблицы из двух столбцов, как показано на рис. 8- Brock, Действия лица показаны в левом столбце, а реакция темы — в правом. Цифры указывают на последовательность этапов диалога. Эта схема отлично работает, когда с системой взаимодейст вует только один пользователь. Чтобы сделать эту таблицу более по нятной, вы можете записать каждое действие или реакцию системы в отдельной строке, чтобы альтернативная последовательность очевидной, как показано на рис, 8-8.

Часто варианты использования содержат дополнительную или требования, которые не годятся ни для одного из разделов шаблона. Для таких данных предусмотрен раздел «Специальные тре бования»: сюда записывают атрибуты качества, тре бования к производительности и др. Также зафиксируйте любую ин формацию, которая может пользователям, например необходимое для завершения варианта использования неявное модействие одной системы с другой.

Глава 8. Как понять требования пользователей Рис. 8-5. Сбор информации для варианта использования Идентификатор вари- Вариант ис- Название варианта использования Запросить ИИ Автор последнего обновления Дата 04.12.02 Дата обновления 27.12. Действующее Сотрудник, разместивший заказ на химикат Сотрудник, разместивший заказ на химикат, в необходимый химикат, вводя его название или номер химиката или импорти руя его структуру из соответствующего графического средства. Система выполня ет запрос, предлагая новый или контейнер с химикатом со скла да или позволяя создать запрос на заказ у стороннего Предварительные Личность пользователя 2. Пользователь имеет право запрашивать условия 3. База данных запасам химикатов в данный момент подключена.

Выходные Запрос сохраняется в Chemical Tracking System.

2. Запрос был отправлен по электронной почте на химикатов или поставщику, Рис. 8-6. Фрагмент описание варианта использования 146 Часть II. Разработка требований к ПО Нормальное 1.0 химикат со склада ление вари- указывает требуемый химикат.

2. Система что такой доступен, анта 3. Система перечисляет контейнеры с необходимым химикатом, имеющиеся на складе.

4. Сотрудник может просмотреть историю любого контейнера.

5. Сотрудник выбирает определенный контейнер или просит отправить запрос поставщику (альтернативное направление Б. Сотрудник вводит остальную информацию, чтобы завершить запрос.

7. Система сохраняет запрос и отправляет его по электронной почте на склад химикатов.

на- химикат у поставщика (ответвление после этапа 5) правление Сотрудник ищет химикат по каталогам поставщика.

2. Система отображает список поставщиков, где также указаны размеры, класс варианта использо и цена контейнеров.

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

4. Сотрудник вводит остальную информацию, чтобы запрос.

5. Система сохраняет запрос и его по электронной почте поставщику, Химикат доступен (на этапе 2).

Система отображает сообщение «Химикат не существует".

2. Система спрашивает сотрудника, хочет ли он запросить другой химикат или выйти из программы.

За. Сотрудник просит запросить другой химикат.

4а. Система начинает нормальное направление развития варианта Сотрудник решает выйти из системы.

Система завершает вариант использования.

Химиката нет в продаже (на этапе 5).

Система отображает сообщение поставщика этого химиката».

2. Система спрашивает сотрудника, хочет ли он запросить другой химикат или выйти из программы.

За. Сотрудник запрашивает другой химикат.

4а. Система заново начинает нормальное направление развития варианта ис пользования, Сотрудник решает выйти из системы.

завершает использования.

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

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

Рис. 8-6. Фрагмент описание варианта использования «Запросить химикат» Глава 8. Как понять требования пользователей Специальные Система должна химические структуры форме из любых средств, рисование химических Импортированные химические структуры должны достоверными, и вопросы Тим выяснит, нужно ли руководства для запроса относя к уровню 1 списка опасных Дата выполнения: 04.01.03.

Рис. 8-6. Фрагмент описание варианта использования «Запросить химикат» (продолжение) Укажите 2. Убедится, что химикат существует.

4. запросите 3- Отобразит список с 5. Выберите в на складе.

отправить заказ направление Рис. 8-7. Описание этапов варианта использования в двухстолбцовом формате Действия лица Укажите химикат.

1. что такой химикат существует, 4. нужно, с необходимым химикатом, в данный момент на складе.

5. Выберите контейнер или попросите заказ поставщику Рис. Альтернативный макет для описания этапов варианта в двухстолбцовом формате Вам не необходимо полное описание варианта использова ния. Alistair Cockburn описывает и (fully шаблоны вариантов использования (последний показан на рис. 8-6). Рабочий вариант использования — это просто текстовое из ложение целей пользователя и взаимодействий с системой;

что-то вроде раздела «Описание» на рис. 8-6. Рассказы кото рые рассматриваются как требования в экстремальном программиро вании, представляют собой, по существу, рабочие версии варианта ис пользования, как правило, написанные на учетных карточках (Jeffries, Anderson и Hendrickson, Полные описания вариантов использо вания необходимы, если:

Часть II. Разработка требований к ПО I в работе над проектом представители пользователей действуют не в тесной связи с I приложение сложное, и высок риск сбоев системы;

описания вариантов использования — это самый низкий уровень детализации предназначенный для разработчиков;

i вы планируете разработать подробные варианты тестирования на основании пользовательских требований;

I для совместной работы территориально удаленных друг от друга команд необходимо детальные общие данные.

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

На рис. 8-5 показано, что после каждого семинара аналитики Chem ical Tracking System выявляли функциональные требования к ПО на нове описаний вариантов использования об этих темах — в следующем разделе главы). Они также создали модели анализа некоторых сложных вариантов использования, например диаграмму перехода состояний, показывающую все возможные состояния запро са химиката и все допустимые изменения состояний.

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

между семинарами хотя бы один день. Умственное расслабление, торое наступает, когда минует день или два после мозгового штурма, позволяет людям взглянуть на проделанную работу с новой точки зре ния. Один аналитик, проводивший семинары каждый день, заметил, что участникам стало трудно находить ошибки в просматриваемых до кументах, потому что информация была еще свежа в Они прокручивали в уме дискуссии, которые только что и не замечали ошибок, Глава 8. Как понять пользователей информация В главе описано несколько анали за для Chemical Tracking Ловушка Не ждите окончания сбора информации по чтобы про сить пользователей заняться просмотром собранного материала.

На ранних стадиях разработки Chemical Tracking System руководи тель тестирования создал концептуальные варианты тестирования, не зависящие от специфики реализации, на основе вариантов использо вания (Collard, Эти варианты тестирования помогли прийти ко манде к общему четкому пониманию как система должна функ ционировать при реализации определенных сценариев использова ния. Эти варианты тестирования позволили аналитикам проверить, действительно ли выявлены все функциональные требования, необхо димые для выполнения пользователями каждого варианта использо вания. На заключительном семинаре, участники вместе провели кри тический анализ вариантов тестирования, чтобы убедиться, что одина ково понимают, как должны работать варианты использования. Как и при любом контроле качества, они нашли ошибки и в требованиях, и в вариантах тестирования.

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

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

Некоторые практики считают, что варианты использования это и есть функциональные требования. Однако мне случалось видеть, как возникали проблемы из-за того, что варианты использования просто Часть II. требований к ПО передавались разработчикам для реализации. Варианты использова ния описывают точку зрения пользователя, его взгляд на внешнее, видимое поведение системы. В них не содержится всей которая необходима для написания ПО, Так, использующему банковский не важно, какие действия этот автомат должен выполнить, например взаимодейство вать с компьютером банка. Эти детали невидимы для пользователя, однако разработчик должен о них знать. Естественно, в описания использования могут такие детали подобных неоче видных однако, как в ходе дискуссий с телями такие вопросы не поднимаются. Даже у разработчиков, кото рым передали полные варианты использования, часто возникает много вопросов. Чтобы уменьшить эту неопределенность, я рекомен дую аналитикам требований ясно расписывать детали функциональ ных требований, необходимых для реализации каждого варианта ис пользования 1998).

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

В Chemical Tracking System варианты использования в применялись в качестве механизма для определения необходимых функциональных требований. Аналитики составляли только рабочие описания наименее сложных вариантов использования. Затем они вы являли все функциональные требования, которые после реализации позволяли выполнять все варианты использования, в том числе тернативные направления и обработчики исключений. И далее доку ментировали эти функциональные требования в спецификации требо ваний к ПО, сформированной с учетом особенностей продукта.

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

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

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

информация Подробнее о средствах управления требова ниями - в главе Только спецификация требований к ПО Третий способ — упорядочить спецификацию требований к ПО по ва риантам использования или функциям и включить последние в специ фикацию. Именно его и применяли специалисты, работавшие над Chemical Tracking System. В этой схеме нет отдельных документов для вариантов использования. Вы определяете повторяющиеся функцио нальные требования или указываете каждое функциональное требова Часть II. Разработка требований к ПО только один раз и ссылаетесь на него при каждом появлении его в другом варианте использования.

Преимущества способа с применением вариантов использования Преимущества применения вариантов использования в том, что каждый вариант на поставленной задаче и ле. Пользователи будут более четко представлять, что же им даст вая система, если вы выберете способ, который на функциях системы. При разработке нескольких представители клиентов что варианты использования им более четко представить, какие возможности должны чить посетители их Web-сайтов. А аналитики и разработчики смогли разобраться и в пользователей, и в предметной области. Тщательное изучение этапов взаимодействия лица и мы помогает еще на ранних стадиях разработки выявить неясности и а также позволяет составить варианты тестирования на основе вариантов использования.

Очень расточительно и болезненно для разработчиков писать код, которым никогда не удастся воспользоваться. Если вы будете временно определять требования и включать в них все мыслимые функции, то рискуете создать избыточные требования. Способ с при менением вариантов использования позволяет выявить функциональ ные требования, с помощью которых пользователи будут конкретные задачи. Так вы предотвратите появление «функций-си рот», тех, что в ходе сбора информации казались весьма полезными, однако которыми никто че будет пользоваться из-за того, что они не связаны напрямую с решением рабочих задач, Способ с применением вариантов использования облегчает расста новку приоритетов требований. Высшим приоритетом обладают те функциональные требования, которые созданы на основе вариантов использования с высшим приоритетом. Высший приоритет ся по следующим причинам:

§ варианты импользования описывают один из основных бизнес-про цессов, активизируемых системой;

многие пользователи часто обращаются к ним;

их запросил привилегированный класс пользователей;

i они предоставляют необходимые для соответствия требованиям;

$ функции других систем зависят от их наличия.

Глава 8. Как понять требования пользователей Ловушка Не тратьте много времени на обсуждение деталей вариантов исполь зования, которые не будут реализованы в ближайшие месяцы или годы.

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

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

Каких ловушек следует опасаться при способе с применением вариантов использования Как и любой другой способ разработки ПО, применение вариантов ис пользования чревато возникновением множества проблем (Kulak и Guiney, 2000;

Lilly, 2000).

i Слишком много вариантов использования. Если вас захлестнул вал вариантов использования, вам, возможно, не удастся записать каждый из них на соответствующем уровне абстракции. Не созда отдельный вариант использования для каждого возможного сценария. Лучше включите нормальное направление развития, аль тернативные направления и исключения в виде сценариев в один вариант использования, Как правило, количество вариантов ис пользования превышает количество бизнес-требований и функций, однако функциональных требований обычно бывает намного боль ше, чем вариантов использования.

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

Вам дано контролировать сложность бизнес-задач, но вы можете выбрать способ их представления в вариантах использования.

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

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

i Включения определения данных в варианты Мне приходилось видеть варианты использования, которые ли в себя определения элементов данных и структур, которыми мани пулируют в варианте использования. Участникам проекта было труд но отыскать в них необходимые определения, поскольку неясно, в ка ком именно варианте использования оно содержится. В случаях возможен повтор определений, а значит, и их зация, когда один экземпляр изменяется, а остальные нет. Вместо то го чтобы «разбрызгивать» определения по вариантам использования, соберите их данных в словарь данных, для всего проекта, как описано в главе i Варианты использования, которые непонятны Если пользователи не видят связи описания вариантов вания со своими бизнес-процессами или задачами, то вариант ис пользования следует подкорректировать. Составляйте использования с точки зрения клиентов, а не системы и клиентов проверить их. Возможно, вам не нужны излишне полные варианты использования.

Глава 8. Как понять требования пользователей 1 Новые будет трудно придумы вать новые варианты использования, если ПО создается для под держки процесса, которого еще нет. В этом случае сбор информа ции по требованиям может оказаться не моделированием бизнес процесса, а изобретением такового. Рискованно ожидать, что с по мощью новой информационной системы будет создан эффектив ный бизнес-процесс. Выполните модернизацию бизнес-процесса, прежде чем браться за полное описание информационной системы.

i Слишком частое упоминание слов расширить и включить. На чиная работу с вариантами использования, необходимо изменить отношение аналитиков, пользователей и разработчиков к требова ниям. Тонкости определяемых словами расши рить и включить, могут запутать кого угодно. Лучше избегать их, по ка вы не освоите способ с применением вариантов использования.

Таблицы «событие - реакция» Есть еще один способ систематизации и документации пользователь ских требований: определить внешние на которые система должна реагировать. Событием (event) называется измене ние или действие в среде пользователя, вызывающее реакцию систе мы ПО и Palmer, 1984;

Wiley, 2000). В таблице «событие — реакция» [ее также называют таблицей событий (event table) или списком событий (event перечислены все такие события и ожидаемое поведение системы, которое должно последо вать, как реакция на каждое событие. Существует несколько типов сис событий, они показаны на рис. 8-9 и описаны далее:

взаимодействие пользователя с ПО, как когда он, например, вызы вает вариант использования [иногда называется (business Последовательность событий и реакций соответ ствует этапам взаимодействия для этого варианта использования, В отличие от вариантов использования, в таблице «событие — реак ция» не описываются цели пользователя при работе с системой и не приводятся причины, по которым эта последовательность событий и реакций имеет значение для пользователя;

I контрольный сигнал, чтение данных или прерывание, полученное от внешнего аппаратного например при изменении поло жения изменении напряжения или перемещении мы ши пользователем;

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

определенное время Рис, 8-9. Примеры системных событий и реакций Таблицы «событие — реакция» особенно хороши для управления системами, работающими в режиме реального времени. Табл.

представляет собой простую таблицу «событие — реакция», в частично описано поведение очистителей ветрового стекла ля. Обратите внимание, что ожидаемая реакция зависит не только от события, но и от состояния, в котором находится система во время со бытия. Например, результаты событий 4 и 5.1 в табл. 8- из-за того, были ли включены «дворники» в момент, когда пользова тель настроил управление на периодический режим. Ре акция может просто изменить некоторую внутреннюю системную ин формацию (события 4 и 7.1 в таблице) или привести к за метному извне (большинство других событий).

Информация в таблице «событие — реакция» фиксируется на уровне пользовательских требований. Если в таблице определены и названы все возможные комбинации событий, состояний и реакций (включая условия таблица также может служить частью нальных требований для этого фрагмента системы. Однако должен добавить дополнительные функциональные и нефункциональ ные требования в спецификацию требований к ПО. Например, сколько Глава 8. Как понять пользователей в минуту делают «дворники» в быстром и режиме очищения? В быстром или медленном режиме выполняется периоди ческая очистка? Является ли периодический режим непрерывно изме няющимся или он работает дискретно? Каковы максимальный и мини мальный интервал времени при работе в периодическом режиме? Если вы закончите работу на уровне пользовательских требований, разра ботчику самому придется выяснять эту информацию. Помните, ваша цель — сформулировать требования настолько точно, чтобы чик знал, что строить.

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

дворники», дворники», «быстрая очистка», «очи стить один раз» и т.д. Записывая пользовательские требования на важ нейшем уровне, вы избежите введения ненужных ограничений дизай на. Однако следует фиксировать все известные ограничения по дизай чтобы заставить разработчика думать.

Таблица Таблица «событие - для автомобильных «дворников» ID Событие Состояние системы системы 1.1 установка системы улравле- «дворники» отключены установка механизма ния «дворниками» в режим «дворников» в режим мед медленной очистки ленной очистки установка системы быстрая очистка установка механизма ния «дворниками» в режим в режим мед медленной очистки ленной очистки установка системы управле- периодическая очистка установка механизма ния «дворниками» в режим «дворников» в режим мед медленной очистки ленной очистки установка системы управле- «дворники» отключены установка механизма кия в режим «дворников» г режим быстрой очистки рой очистки Часть II. Разработка требований к ПО Таблица Таблица «событие - реакция» для автомобильных «дворников» (продолжение) ID Событие Состояние системы системы 2.2 установка системы управле- медленная очистка установка механизма ния в режим «дворников» в быстрой очистки быстрой очистки 2.3 установка системы периодическая очистка установка механизма ния «дворниками» в режим «дворников» в быстрой очистки быстрой очистки 3.1 отключение системы управ- быстрая очистка 1. завершение текущего чикла очистки ления 2. выключение механиз ма «дворников» 3.2 системы управ- медленная очистка 1. завершение текущего чикла очистки ления 2. выключение механиз ма «дворников» 3.3 системы управ- периодическая очистка 1. завершение текущего чикла очистки ления «дворниками» 2. выключение механиз ма «дворников» 4 установка системы отключены 1. считывание временного интервала очистки ния «дворниками» в режим 2, инициализация периодической очистки ра очистки 1.

5.1 установка системы очистка интервала очистки ния «дворниками» в режим 2. завершение периодической чикла очистки 3.

ра очистки 5.2 установка системы управле- медленная очистка 1.

интервала очистки ния «дворниками» в режим 2. завершение периодической очистки чикла очистки 3. инициализация тай мера очистки со времени периодическая очистка выполнение одного цикла очистки прошел установ- медленной очистки ленный интервал времени Глава 8, Как понять требования пользователей Таблица Таблица - реакция» для автомобильных «дворников» (продолжение) ID Событие Состояние системы Реакция системы 7.1 интервала периодическая очистка 1. считывание временного интервала очистки дической 2. тайме ра очистки 7.2 измение интервала перио- отключены реакция дической очистки 7,3 измение интервала перио- быстрая очистка реакция отсугсвует дической очистки 7.4 интервала перио- медленная очистка дической очистки 8 получение сигнала на вы- «дворники» выполнение цикла полнение периодической медленной очистки Что теперь?

Составьте несколько вариантов использования для вашего текущего проекта на основании шаблона иа рис. 8-6. Включите в них все альтернативные направле ния развития и исключения. Определите функциональные требования, которые позволят пользователю успешно завершить каждый вариант использования.

Проверьте, не включены уже все эти функциональные требования в специфи требований к ПО.

1 Перечислите все внешние события, которые могут вызвать определенное поведе ние системы. Создайте таблицу «событие - в которой показано состоя ние системы в момент воздействия каждого события и реакция системы на него.

160 Часть II. Разработка требований к ПО Игра по правилам «Привет, Тим, У меня проблема с запросом ката при помощи системы контроля Мой менеджер посоветовал обратиться к тебе. Он сказал, что ты был ником продукта и занимался требованиями к этой системе».

это так, — ответил в чем проблема?» нужно еще немного фосгена для которыми я час занимаюсь, — сказала — но система не принимает мой запрос и сообщает, что я уже больше года не посещала занятий по работе с опасными химикатами. О чем это она? Я годами работала с фосгеном и еще более страшными тами — и никаких проблем. Почему же мне нельзя еще немного фосгена?» возможно, знаешь, что Pharmaceuticals требует от сотрудников ежегодно прослушивать курс по безопасной работе с химикатами, — заметил Тим. — Такова корпоративная политика;

система контроля химикатов лишь проводит ее в жизнь. Я знаю, что раньше кладовщики давали тебе все, что требовалось, но теперь из-за страховки это невозможно. Из вини за но мы должны подчиняться правилам. Те бе придется пройти обучение, чтобы система выполнила твой запрос».

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

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

Большинство бизнес-правил берут начало вне контекста какой-либо конкретной программной системы. Такие правила, как корпоративная политика, обязывающая ежегодно прослушивать курс по работе с опасными химикатами, действуют, даже если приобретение и распро странение химикатов осуществляется исключительно вручную. Стан дартные правила отчетности существовали даже в дни зеленых наглаз ных повязок для сна и чернильных авторучек. Тем не менее бизнес правила — один из основных источников функциональных требований к ПО, поскольку они определяют которыми должна обла дать система для выполнения правил. Даже бизнес-требования высо кого уровня могут определяться так, например, система контроля химикатов должна генерировать отчеты о выполне нии федеральных и государственных постановлений о хранении и ис пользовании химикатов.

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

Если вам известно, где и как каждое приложение реализует относя щиеся к нему бизнес-правила, модифицировать приложения в случае изменения правил станет гораздо легче.

Ловушка Недокументированные известны только специалистам, а посему они теряются, когда последние или переходят на другую работу.

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

Часть II. Разработка требований к ПО Правила бизнеса Согласно определению Business Rules Group «бизнес-правило — это положение, определяющее или ограничивающее какие-либо роны бизнеса;

его назначение — защитить структуру лировать или влиять на его операции». Целые методологии разработа ны специально для и документирования бизнес-правил и их применения в автоматизированных системах (Ross, von 2002). Если вы не создаете систему, которая в значительной степени управляется бизнес-правилами, тщательно разработанная методоло гия вам не нужна. Достаточно выявить и задокументировать относя щиеся к вашей системе правила и связать их с конкретными нальными требованиями, Для организации бизнес-правил предлагается множество разных таксономии (схем Morgan, 2002;

von Halle, 2002). Простейшая из них (рис. 9-1), из пяти типов бизнес-правил, го дится в большинстве случаев. Шестая категория — термины: важные для бизнеса слова, фразы и аббревиатуры. Их удобно хранить в ре. Вести согласованный свод бизнес-правил гораздо важнее при раз работке продукта, чем горячо дискутировать о том, как их классифици ровать. Давайте рассмотрим различные типы бизнес-правил, с которы ми вам придется столкнуться.

Факты Активаторы Рис. Простая таксономия бизнес-правил Факты Факты (facts) — это всего лишь верные утверждения о бизнесе. За частую они описывают связи и отношения между важными бизнес терминами. Факты также называют инвариантами — неизменными истинами о сущности данных и их атрибутах. Бизнес-правила во гих случаях могут ссылаться на определенные факты, однако послед ние обычно не преобразуются напрямую в функциональные ния к ПО. Сведения о сущности данных, важных для системы, иногда Глава 9. Игра по правилам применяют в моделях данных, аналитиком или архитек тором БД (подробнее о моделировании данных — в главе Вот примеры фактов:

1 на каждый химический контейнер нанесен уникальный штрих-код;

оплачивается доставка каждого заказа;

i каждый элемент заказа содержит данные о химикате, его размере контейнера и числе контейнеров;

1 стоимость билетов не возвращается, если покупатель изменяет маршрут;

1 со стоимости доставки налог с продаж не берется.

Ограничения Ограничения (constraints) — определяют, какие операции может выпол нять система и ее пользователи. Вот некоторые слова и фразы, которые часто применяются при описании ограничивающего бизнес-правила:

должен, не должен, не может и только. Например, в таких комбинациях:

I договор о займе человека младше лет должен подписывать один из его родителей или законный опекун;

I постоянный посетитель библиотеки может отложить для себя до книг;

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

1 все программы должны соответствовать правительственным поста новлениям, касающимся использования их людьми с ослабленным зрением;

I в корреспонденции не может отображаться больше 4 цифр номера социального страхования гражданина;

I экипажи коммерческих авиарейсов должны каждые 24 часа отды хать не менее 8 часов.

Так много ограничений У проектов по разработке ПО множество разных ограничений. Менеджеры проекта должны соблюдать расписание, а также лимиты по персоналу и бюджету. Эти огра ничения уровня проекта фиксируются в плане проектом по разработке ПО. Ограничения уровня продукта на проектирование и реализацию, уменьшающие доступные разработчику возможности, записаны в спецификации требований к ПО или спецификации архитектуры. Многие бизнес-правила налагают ограничения на Часть II. Разработка требований к ПО операции. Когда бы эти ограничения ни были отражены в функциональных требованиях к ПО, следует указать соответствующие правила в качестве обоснова ния всех производных требований.

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

Как мне отказали Недавно я хотел заказать, используя часть моих постоянного клиента» авиа компании Airlines, билет для моей жены Крис. Когда я сде лать это, сервер FlyByNight.com мне, что из-за возникшей ошибки выдача билета невозможна, и предложил немедленно позвонить по номеру 800-FLY-NITE.

Менеджер по бронированию, который поднял трубку, сообщил, что авиакомпания не может оформить премиальный билет за налетанные мной мили по обычной или почте, поскольку у меня и Крис разные фамилии. Для получения билета мне пришлось ехать в кассу аэропорта и предъявлять удостоверение личности.

Данный инцидент вызван следующим ограничивающим бизнес-правилом: «Если фа милия пассажира отличается от фамилии лица, оформляющего премиальный билет за налетанные лицо, оформляющее билет, должно получить его лично». По видимому, основание для этого бизнес-правила - предотвращение мошенничества.

Web-узла Ry-By-Night исправно реализует данное но создает неудобст ва клиентам. Вместо того, чтобы сообщить мне о правиле, касающемся разных фа милий и действиях, которые мне следует выполнить, система просто вывела преду преждение об ошибке. В результате мы с менеджером компании по бронированию потратили время на ненужный телефонный разговор. Плохо проду манные реализации бизнес-правил могут вызвать неприятие клиентов следова тельно, отрицательно скажутся на вашем бизнесе.

Активаторы операций Правило, при определенных условиях приводящее к выполнению ка ких-либо действий, активатором операции (action en abler). Человек может выполнять эти действия вручную. Как вариант, Глава 9. Игра по правилам правило может управлять некоторыми программными благодаря которым приложение при выполнении определенных усло вий реализует нужную модель поведения. Условия, определяющие вы полнение операции, иногда представляют собой сложную комбина цию значений и выполняющихся для нескольких от дельных условий. Таблица решений, такая, как в главе — это выразительный способ документирования активирующих бизнес-правил расширенной логики. Выражение вида «Если рое условие верно или наступило определенное то — это ключ, который описывает активатор операции.

Вот несколько примеров таких бизнес-правил:

если на складе имеются контейнеры с запрошенным химикатом, их следует предложить запросившему химикат лицу;

I если срок хранения контейнера с химикатом истек, об этом необхо димо уведомить лицо, у которого в данный момент находится кон тейнер;

1 в последний день квартала должны генерироваться отчеты для Управления по безопасности труда и Агентства по защите окружаю щей среды и использовании химикатов в этом квартале;

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

тем не менее, раздел «то» вывода за ключает в себе факт или предположение, а не действие. Вот несколько примеров выводов:

i если платеж не поступил в течение 30 календарных дней с момента отправки счета, счет считается просроченным;

если поставщик не может поставить заказанный товар в течение пя ти дней с момента получения заказа, заказ считается невыполнен ным;

Часть Разработка требований к ПО I считается, что срок хранения контейнеров с химикатами, щимися на взрывоопасные составляющие, истекает через один год даты изготовления;

химикаты с токсичностью агента LD50 ниже 5 мг на килограмм сы мыши считаются опасными.

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

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

цена единицы товара снижается на 10% при заказе от 6 до ниц, на 20% — при заказе от до 20 единиц и на 30% — при свыше 20 единиц;

i плата за доставку по суше в пределах страны для заказов весом свыше 2 фунтов составляет плюс центов на унцию или часть;

1 комиссия за операции с ценными бумагами, осуществлявшиеся в интерактивном режиме, составляет $12 при числе акций от 1 до 5000. Комиссия за операции, осуществлявшиеся через специали ста по торговле ценными бумагами, составляет $45 при числе от 1 до 5000. При числе акций свыше 5000 комиссия составляет по ловину указанной суммы;

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

Глава 9. Игра по правилам Таблица Использование таблицы для вычислений, необходимых для представления бизнес-правил Идентификатор Количество приобретаемых единиц товара % 1-5 DISC-2 6- 20 Отдельное может включать множество элементов.

В последних примерах общая стоимость учитывает скидку на количе ство, налог с продаж, стоимость доставки и страховой сбор. Это пра вило запутанно и сложно для понимания. Чтобы избавиться от данного недостатка, пишите свои бизнес-правила на элементарном уровне, а не множество деталей в одно правило. Сложное правило может ссылаться на используемые в нем отдельные правила. Это сде лает их краткими и простыми. Кроме того, так вы сможете повторно использовать их и комбинировать различными способами. Чтобы пи сать вычисления и активирующие операции бизнес-правила на эле ментарном уровне, не используйте в левой части конструкции «если — то» логику «или», а в правой части этой же конструкции — логику «и» (von Halle, К элементарным бизнес-правилам, влияющим на вы числение общей стоимости из примера выше, относятся правила вы числения скидки из табл. а также следующие правила:

1 если адрес доставки находится в штате, где действует налог на про дажи, то он вычисляется исходя из общей стоимости заказанных то варов с учетом скидки;

1 если адрес доставки относится к округу, где действует налог на про дажи, то он вычисляется исходя из общей стоимости заказанных то варов с учетом скидки;

1 страховой сбор составляет 1 % от общей стоимости то варов с учетом скидки;

i налог на продажи не взимается со стоимости доставки;

1 налог на продажи не взимается со страхового сбора.

Эти бизнес-правила называются элементарными потому, что даль нейшая их детализация невозможна. В конечном итоге вы, скорее все го, создадите множество элементарных бизнес-правил, от комбина ций которых будут зависеть все вычисления и функциональные требо Часть II. Разработка требований к ПО Документирование бизнес-правил Поскольку бизнес-правила зачастую влияют на множество приложе ний, организациям следует управлять этими правилами на корпора тивном уровне, а не на уровне проектов. Для начала достаточно про стого каталога бизнес-правил. Большим организациям, а также ком паниям, деловые операции и информационные системы которых в значительной степени регулируются и управляются ми, следует создать БД таких правил. Если ваш каталог правил уже не помещается в файле текстового процессора или редактора электрон ных таблиц или если вы хотите автоматизировать отдельные стороны правил в ваших приложениях, вам наверняка коммерческие средства управления правилами. Группа Business Group публикует список продуктов для управления бизнес-правилами на странице http://www.businessrulesgroup.org/brglink.htm. По мере того, как вы при работе над приложением определяете новые добавляйте их в каталог, а не вписывайте в документацию конкретною приложения или, что еще хуже, только в его код. При управлении и выполнении правила, относящиеся к безопасности, за щите, финансам и соответствию различным постановлениям, стано вятся опасными для вас.

Ловушка Не пытайтесь сделать свой каталог бизнес-правил более сложным, чем необходимо. простейшую форму документирования правил;

это гарантирует, что команда разработчиков сможет эффективно использовать их.

По мере приобретения опыта выявления и документирования биз нес-правил стоит подумать о применении структурированных шабло нов для определения правил разных типов von Halle, 2002). В этих шаблонах описываются образцы ключевых слов и разде лов, позволяющих согласованно структурировать правила. Кроме го, они упрощают хранение правил в БД, коммерческих для управления бизнес-правилами или в ядре правил. Для начала по пробуйте использовать простой формат документирования правил, показанный в табл. 9-2 (Kulak и Guiney, 2000).

Как видно из этой таблицы, присвоив каждому правилу катор, вы сможете отслеживать, от какого правила происходит то или иное функциональное требование. Поле «Тип правила» является правило: фактом, ограничением, активатором операции, дом или вычислением, Поле «Статичное или динамическое» Глава 9. Игра по правилам насколько вероятно изменение правила с течением времени. Источни ками правил могут быть корпоративные политики, политики менедж мента, профильные специалисты и прочие лица, документы, например правительственные постановления, а также имеющийся код ПО и оп ределения БД.

Таблица 9-2. Пример каталога бизнес-правил Иденти- Определение Статичное или Источник правила динамическое фикатор правила может Ограничение Статичное Корпоратив запросить вещество из ная политика списка первого опасности, только если за последние 12 ме сяцев он прошел обучаю щий курс по работе с опас ными соединениями Размер скидки вычисляет- Вычисление Динамическое Корпоратив ся на основе размера зака- ная политика за согласно табл.

и требования Просто задавая пользователем вопрос: «Что представляют собой ва ши практически невозможно получить нужную ин формацию, точно так же, как не удается собрать нужные сведения о требованиях, задавая при сборе требований вопрос пользователям:

«Чего вы хотите?» В зависимости от приложения бизнес-правила ино гда создаются по ходу работы, а иногда — в процессе обсуждения тре бований, Зачастую заинтересованные в проекте лица уже знают, какие бизнес-правила влияют на создаваемое приложение, и команда раз работчиков будет работать в рамках, определяемых этими правилами, Комплексный процесс выявления бизнес-правил описан Barbara von Halle (2002).

На семинарах для выявления требований аналитик может поинте ресоваться обоснованием требований и ограничений, выдвигаемых пользователями. Нередко выясняется, что они определяются бизнес правилами. Иногда аналитику удается также выявить бизнес-правила, Часть II. Разработка требований к ПО которые определяют прочие артефакты и модели требований 2002). На рис, 9-2 показано несколько возможных правил (и в некоторых случаях — вариантов использования и Кроме того, здесь перечислены некоторые которые может аналитик участникам семинара обсуждении различных проблем и объектов. Следует вать выявленные бизнес-правила, попросить компетентных подтвердить их правильность и предоставить недостающие данные.

Политики необходимо именно в такой форме?

Чего требует Как взаимосвязаны элементы Решения Бизнес-правила дальше?

ч в результате чего Что может изменяется состояние объекта? а что - нет?

Как дальше?

Решения системы Рис. 9-2. Выявление бизнес-правил с помощью разнообразных вопросов Идентифицировав и задокументировав определи те, какие из них необходимо реализовать в программном продукте.

Некоторые правила определяют варианты использования и функцио нальные требования, которые их реализуют. Рассмотрим три правила.

% Правило № 1 (активатор срок хранения контей нера с химикатом истек, об этом необходимо уведомить у ко торого в данный момент находится контейнер».

1 Правило № 2 «Считается, что срок хранения контейнеров с химикатами, разлагающимися на взрывоопасные составляющие, истекает через один год с даты изготовления».

Глава 9. Игра по правилам Правило № 3 «Эфир может спонтанно образовывать взры перекись».

Эти правила вариант известный, как «Известить владельца химиката об истечении срока хранения». Одно из функциональных требований для данного варианта таково: «Система должна по электронной почте уведомить об владель ца контейнера с химикатом об истечении срока хранения Связи между функциональным требованием и породившими его бизнес-правилами определяют двумя способами;

используя атрибут «Источник», указывают правила в качестве источ ников функционального требования (подробнее — в главе I определяют связи между функциональным требованием и ствующими бизнес-правилами в матрице (подробнее — в главе 20).

Правила ссылочной целостности данных зачастую реализуют в виде триггеров и хранимых процедур БД. Такие правила описывают опера ции по обновлению, вставке и удалению данных, которые должна вы полнять система в результате наличия отношений между сущностями данных (von Halle, 2002). Например, если клиент отменил заказ, систе ма должна удалить все пункты, касающиеся неотправленных товаров, входящих в этот заказ.

Иногда бизнес-правила и соответствующие им функциональные требования весьма похожи. Тем не менее правила — это внешние по ложения политики, которые требуется реализовать в ПО;

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

Вспомним ограничивающее правило для системы контроля химика тов, согласно которому запрос пользователя о выделении опасных хи микатов удовлетворяется, только если за последние 12 месяцев поль зователь прослушал курс по работе с ними. Аналитику придется опре делить соответствующие этому правилу функциональные требования в зависимости от того, доступна ли БД записей об обучении в интерактив ном режиме или нет. Если да, система может просто просмотреть за пись об обучении пользователя и решить, принять или отклонить его за прос. Если записи в интерактивном режиме недоступны, система может временно сохранить запрос на химикат и по электронной почте обра титься к руководителю курса, который, в свою очередь, подтвердит или не подтвердит запрос. Правило одинаково для обеих ситуаций, однако функциональные требования к ПО — действия, предпринимаемые сис Часть II. Разработка требований к ПО если бизнес-правило встречается в ходе работы — различаются в зависимости от рабочей среды системы.

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

1 исчезает необходимость модифицировать и бизнес-правило, и ответствующие функциональные требования при изменении ла;

I в спецификации требований к ПО последние измене ния правил, поскольку спецификация требований к ПО просто ссы лается на основную копию правила;

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

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

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

Глава 9. Игра по правилам Что теперь?

Перечислите все бизнес-правила, которые, по вашему мнению, имеют отноше ние к вашему текущему проекту. Начните заполнять каталог классифицируя правила в соответствии со схемой на рис. 9-1 и особое внимание на источник каждого из них, Выясните обоснование каждого из ваших функциональных требований, чтобы выявить дополнительные бизнес-правила, 1 Создайте матрицу связей, указывающую, какие функциональные требования и элементы БД реализуют каждое из выявленных вами бизнес-правил.

Часть II. Разработка требований к ПО Документирование требований Итог требований -- задокументированное между клиентами и разработчиками о создаваемом продукте. Как говорилось в предыдущих в документе об образе и границах проекта содержатся а пожелания часто фиксируются в виде вариантов использования продукта.

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

Способов представления требований несколько:

I документация, в которой используется четко структурированный и аккуратно используемый естественный язык;

1 графические модели, иллюстрирующие процессы состояния системы и их изменения, взаимодействия а же логические потоки, классы объектов и отношения между ними;

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

Последний метод обеспечивает наивысшую степень точности, нако немногие разработчики — и еще меньше клиентов — знакомы :;

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

7- Даже самая лучшая спецификация к требованиям не заменит лич ное обсуждение в ходе проекта. Невозможно заранее выяснить каж дый используемый при разработке ПО. Старайтесь не пре рывать взаимодействие команды разработчиков, представителей кли ентов, и других заинтересованных лиц— только так удастся оперативно решать мириады вопросов, которые непременно возникнут.

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

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

Спецификация требований к ПО необходима различным участникам проекта:

I клиенты, отдел маркетинга и специалисты по продажам хотят иметь представление о конечном продукте;

менеджеры проекта по данным спецификации рассчитывают гра фики, затраты и ресурсы;

I команда разработчиков ПО получает представление о создаваемом продукте;

176 Часть II. Разработка требований к ПО 1 группа тестирования составляет планы тестирования, варианты пользования и процедуры;

i специалисты по обслуживанию и получают ние о функциональности каждой составной части продукта;

I составители документации создают руководства для лей и окна справки на основании спецификации требований к ПО и дизайна пользовательского интерфейса;

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

1 персонал, занимающийся юридической стороной проекта, ряет, соответствуют ли требования к продукту нам и постановлениям;

I субподрядчики строят свою работу и несут юридическую венность также согласно спецификации требований к ПО.

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

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

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

Ниже приведены советы, как сделать требования ясными и понятными:

разделы, подразделы и отдельные требования должны быть назва ны согласованно;

Глава 10. Документирование требований i оставьте текст невыровненным по правому краю, не выравнивайте его по ширине;

1 оставляйте достаточно свободного 1 используйте средства визуального выделения (такие, как ное начертание, курсив и различные шрифты) по следовательно и в разумных пределах;

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

пронумеруйте все рисунки и таблицы, озаглавьте их и, ссылаясь на них, используйте присвоенные номера;

I если вы ссылаетесь в документе на другие его части, используйте возможности работы с перекрестными ссылками в вашем редакто ре, а не сложную кодировку страниц;

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

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

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

Нумерация по порядку Это способ, при котором каждому требованию присваивается уникаль ный порядковый номер, например UR-9 или SRS-43. Коммерческие средства управления требованиями присваивают такой идентифика тор, когда пользователь добавляет новое требование в БД. (Эти сред ства также поддерживают функцию иерархического именования.) Пре фикс обозначает тип требования, например UR означает «user require ment» («пользовательское При удалении требования номер повторно не используется. Такой простой поход нумерации не обеспечивает логического или иерархического группирования связан ных требований, а названия не раскрывают содержания требования.

178 Часть II. Разработка требований к ПО Иерархическая нумерация Это наиболее распространенный способ. Если функциональные бования приводятся в разделе 3.2 спецификации, то все их номера будут начинаться с 3.2 (например, 3.2.4.3). Чем больше цифр, тем больше уровень детализации требования. Это способ отличается стотой и компактностью. Ваш текстовый редактор может назначить номера Однако даже в спецификации среднего ра нумерация может быть весьма длинной. Вдобавок стоящие только из ничего не говорят о назначении требований Когда же вы начнете применять этот метод на практике, то те, что присваиваемые не являются неизменными. Если вы вставите новое положение, то номера всех последующих фрагментов увеличатся. А после удаления или перемещения требования — шатся. При этом нарушаются все ссылки на эти фрагменты.

Ловушка Однажды один аналитик заметил: «Мы не разрешаем людям встав лять требования - сбивается нумерация». Не позволяйте применять неэффектив ные приемы, которые могут эффективной и разумной работе.

Вы можете усовершенствовать этот способ. Пронумеруйте шие разделы требований иерархически, а затем выделите функциональные требования в каждом разделе с помощью короткого текстового кода, после которого проставьте порядковый номер. На пример, если в спецификации требований к ПО есть «Раздел 3.5 — Функции редактора», то требования в нем будут названы ФР-2 и т.д. При этом соблюдается определенная иерархия и структурирован ность документа, названия достаточно короткие, осмысленные и ме нее зависят от местоположения в документе.

Иерархические текстовые тэги Консультант Tom предложил текстовую схему иерархических тэгов именования отдельных требований (Gilb, 1988). Рассмотрим такое бование: «Система должна запрашивать у пользователя подтвержде запроса, когда тот хочет печатать более 10 копий».

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

Глава 10. Документирование требований Когда информации недостаточно Иногда вы вдруг понимаете, что вам не хватает определенной ин формации о конкретном требовании. Ничего не поделаешь, придется проконсультироваться с клиентом, проверить описание внешнего ин терфейса или создать прототип. Для того чтобы пометить пробелы в данных, используйте пометку (to be determined — необходимо определить).

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

Ловушка Неясности не решаются сами собой. Запишите, отвечает за каж дый вопрос, как и когда. Пронумеруйте все пометки это упростит контроль.

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

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

Макет экрана не заменит пользовательских и функциональных тре бований. Не следует ожидать, что разработчики смогут сделать вывод о базовой функциональности и взаимосвязи данных по моментальным снимкам экрана. У одной компании, создающей ПО для Интернета, по стоянно возникали одни и те же проблемы из-за того, что разработчи Часть II. требований к ПО непосредственно переходили к работе над визуальным дизайном сразу же после подписания контракта. У них не было ясного ления о том, как пользователи будут работать с Web-сайтом, им приходилось тратить массу времени на последующие Из положительных сторон следует отметить, что изучение возмож ных пользовательских интерфейсов (таких, как рабочий де лает требования более осязаемыми и для пользователей, и для разра ботчиков. Изображения пользовательского интерфейса помогают планировании и оценке проекта. Подсчет элементов графического ин терфейса пользователя user interface, GUI) или числа циональных точек* points), связанных с каждым по зволяет оценить размер проекта и, следовательно, затраты на реали зацию.

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

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

Шаблон спецификации требований к ПО Каждая организация, специализирующаяся на разработке ПО, принять один или несколько стандартных шаблонов спецификации требований к ПО для использования в проектах. Доступны различные шаблоны спецификации (Davis, 1993;

Robertson и Robertson, 1999;

fingwell и Widrig, Многие применяют шаблоны, созданные на нове того, что описан в IEEE Standard 830-1998, Recommended Practice for Software Requirements Specifications» (IEEE, 1998b). Он го дится для самых разных проектов, однако в нем встречаются чения и неясные места. Если вы беретесь за проекты различных типов * точкой называется количество обнаруженных пользователем функций приложения независимо от того, как они сконструированы. Вы можете оценить функциональны •?, точки, исходя из требований по числу внешних логических файлов и элементов вводимых данных, выводимых данных и запросов (IFPUG, Глава 10. Документирование требований и размеров, от конструирования новой объемной системы до неболь ших улучшений уже работающих систем, заведите для проектов каж дого крупного класса отдельный шаблон спецификации.

Введение Назначение 1.2 Соглашения, принятые документах Предполагаемая аудитория и рекомендации по чтению Границы проекта Ссылки 2. Общее Общий на продукт 2.2 Особенности продукта 2.3 и характеристики 2.4 Операционная среда 2.5 Ограничения дизайна и реализации 2.6 Документация для пользователей 2.7 Предположения и зависимости 3. Функции системы 3.x Функция системы X 3.x. 1 Описание и приоритеты З.х.2 Последовательности «воздействие - реакция» З.х.3 Функциональные требования 4. Требования к внешнему интерфейсу 4.1 Интерфейсы пользователя 4.2 Интерфейсы оборудования 4.3 Интерфейсы ПО 4.4 Интерфейсы передачи информации 5. Другие нефункциональные требования Требования к производительности 5.2 к охране труда 5.3 Требования к безопасности 5.4 Атрибуты качества 6. Остальные требования Приложение А. Словарь терминов Приложение Б. Модели анализа Приложение Г. Список вопросов Рис. Шаблон для спецификации требований к ПО Часть II. Разработка требований к ПО На рис. 10-1 показан шаблон спецификации требований к ПО, соз данный на основе стандарта IEEE 830;

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

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

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

Введение Введение представляет собой обзор, помогающий читателям разо браться в структуре и принципе использования спецификации требо ваний к ПО.

Глава 10. Документирование требований 1.1 Назначение Определите продукт или приложение, требования для которого указа ны в этом документе, в том числе редакцию или номер выпуска. Если эта спецификация требований к ПО относится только к части идентифицируйте эту часть или подсистему.

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

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

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

ССЫЛКИ Перечислите все документы или другие ресурсы, на которые вы ссы лаетесь в этой спецификации, в том числе гиперссылки на них. Это могут быть руководства по стилям пользовательского интерфейса, контракты, стандарты, спецификации к системным требованиям, до кументы о вариантах использования, спецификации интерфейса, кон цептуальные документы и спецификация требований к ПО для продук тов, на которые вы ссылаетесь. Объем информации должен быть дос таточным для того, чтобы пользователь сумел при необходимости получить доступ к каждому указанному материалу, а именно: название, Часть II. Разработка требований к ПО имя автора, номер версии, дата и источник или расположение мер, сетевая папка или URL), 2. Общее описание В этом разделе представлен общий обзор продукта и среды, в которой он будет применяться, предполагаемая пользовательская аудитория а также известные ограничения, предположения и зависимости.

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

2.2 Особенности продукта Перечислите основные особенности продукта или его главные Детали будут изложены в разделе 3 спецификации требований к ПО, здесь же следует их только указать. Также здесь уместно ровать основные группы требований и их взаимоотношения, показать диаграмму потоков данных высшего уровня, диаграмму анта использования или диаграмму классов, 2.3 Классы и характеристики пользователей Определите различные классы пользователей, которые, как предпо лагается, будут работать с вашим продуктом, и опишите их соответст вующие характеристики (см. главу 6). Некоторые требования могут от носиться только к определенным классам пользователей. Определите привилегированные классы пользователей. Классы пользователей представляют подмножество заинтересованных в проекте лиц, их опи сание приводится в документе об образе и границах проекта.

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

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

ничения могут быть такого рода:

определенные технологии, средства, языки программирования и базы данных, которые следует использовать или избегать;

1 ограничения, налагаемые операционной средой продукта, мер типы и версии установленных Web-браузеров;

1 обязательные соглашения или стандарты разработки (например, если обслуживать ПО будут клиенты, они должны указать особен ности дизайна и стандарты программирования, которые субпод рядчик обязан соблюдать);

1 обратная совместимость с продуктами, выпущенными ранее;

I ограничения, налагаемые бизнес-правилами (они должны быть за фиксированы в других как рассказано в главе 9);

1 ограничения, связанные с оборудованием, например требования к ограничения памяти или процессора, вес, мате риалы или затраты;

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

I стандартный формат обмена данными, например 2.6 Документация для пользователей Перечислите все компоненты пользовательской документации, по ставляемые с исполняемым ПО. В них могут входить руководства для пользователя, и обучающие программы. Определите все необходимые форматы, стандарты и средства поставки докумен тации.

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

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

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

3. Функции системы Шаблон на рис. 10-1 структурирован с помощью особенностей это еще один способ систематизации функциональных требований. Другие методы классификации: по вариантам использо вания, режиму работы, классам пользователей, классам или функциональной иерархии (IEEE, 1998b). Воз можны также комбинации этих элементов, например варианты ис пользования внутри классов пользователей. Не существует венно правильного метода организации;

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

З.х Функция системы X Укажите название особенности несколькими словами, например «3. Проверка правописания». назовите подразделы с по З.х.З для каждой особенности системы.

Описание и приоритеты Кратко опишите особенность системы и укажите, обладает ли она соким, средним или низким приоритетом (см. главу 14.) являются динамической характеристикой, они могут изменяться в де проекта. Если вы используете средство управления требованиями, определите атрибут требований для приоритета. Атрибуты требова ний обсуждаются в главе а средства управления требованиями — а главе З.х.2 Последовательности «воздействие - реакция» Перечислите последовательность воздействий, оказываемых на сис тему (действия пользователей, сигналы внешних устройств и др.), и отклики системы, определяющие реакцию конкретной функции. Эти Глава 10, Документирование требований воздействия соответствуют первоначальным шагам для вариантов ис пользования или внешним системным событиям.

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

4. Требования к внешнему интерфейсу По мнению Richard к внешнему интерфейсу определяют оборудование, ПО или элементы баз с которыми система или компонент должны взаимодействовать...» Информация этого раздела позволяет вам быть уверенным, что система будет должным образом взаимодействовать с внешними компонентами. Ес ли у разных частей продукта разные внешние интерфейсы, вставьте подобный раздел в детализированные требования для каждой такой части.

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

Войны интерфейсов Две команды разработчиков ПО объединились для создания флагманского продукта Datum Corporation. Команда, отвечающая за базу знаний, создала ядро сложного ин терфейса на C++, а команда, отвечающая за приложения, реализовала пользова тельский интерфейс на Microsoft Visual Basic. Обе подсистемы взаимодействовали между собой посредством API. К сожалению, команда, отвечающая за базу знаний, Часть II. Разработка требований к ПО периодически модифицировала API, в результате систему не удавалось собрать и запустить на выполнение должным образом. Команде, отвечающей за приложения, потребовалось несколько чтобы распознать каждую проблему и определить основную причину - изменение API. Эти изменения не согласовывались, не доводи лись до всех заинтересованных в проекте лиц и не были координированы с соответствующими модификациями в коде, написанном на Visual Basic. Интерфейс скрепляет компоненты вашей системы - включая пользователей, поэтому необхо димо документировать детали интерфейса и синхронизировать модификации в про цессе контроля за изменениями вашего проекта.

Интерфейсы пользователя Опишите логические характеристики каждого пользовательского ин терфейса, который необходим системе. Некоторые из них ны здесь:

ссылки на стандарты графического интерфейса пользователей или стилевые рекомендации для семейства которые необхо димо соблюдать;

I стандарты шрифтов, значков, названий кнопок, изображений, цве товых схем, последовательностей полей вкладок, часто используе мых элементов управления и т.п.;

конфигурация экрана или ограничения разрешения;

1 стандартные кнопки, функции или ссылки перемещения, одинако вые для всех например кнопка справки;

быстрые клавиши;

стандарты отображения сообщений;

стандарты конфигурации для упрощения локализации ПО;

1 специальные возможности для пользователей с проблемами со зрением.

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

Глава 10. Документирование требований 4.2 Интерфейсы оборудования Опишите характеристики каждого интерфейса между компонентами ПО и оборудования системы. В описание могут входить типы поддер живаемых устройств, взаимодействия данных и элементов ний между ПО и оборудованием, а также протоколы взаимодействия которые будут использоваться, Интерфейсы ПО Опишите соединения продукта и других компонентов ПО цированные по имени и в том числе базы данных, операцион ные системы, библиотеки и интегрированные коммерческие компоненты. Укажите назначение элементов сообщений, данных и элементов управления, обмен которыми происходит между компонен тами ПО. Опишите службы, необходимые внешним компонентам ПО, и природу взаимодействия между компонентами. Определите данные, к которым будут иметь доступ компоненты ПО. Если механизм предос тавления общего доступа к данным должен быть реализован опреде ленным способом, например в качестве глобальной области данных, то укажите его как ограничение.

4.4 Интерфейсы передачи информации Укажите требования для любых функций взаимодействия, которые бу дут использоваться продуктом, включая электронную почту, Web-брау зер, протоколы сетевого соединения и электронные формы. Опреде лите соответствующие форматы сообщений. Опишите особенности безопасности взаимодействия или шифрования, частоты передачи данных и механизмов синхронизации.

5. Другие нефункциональные требования В этом разделе описываются остальные нефункциональные требова ния, не относящиеся к требованиям к интерфейсу, которые представ лены в разделе 4, и к ограничениям, описываемым в разделе 2.5.

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

Часть II. Разработка требований к ПО вашего проекта. Пропустите этот раздел, если все необходимые тре бования уже расписаны в других разделах.

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

Pages:     | 1 | 2 || 4 | 5 |   ...   | 9 |



© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.