- •Оглавление
- •Глава 1. Жизненный цикл программного обеспечения ……………………………………………43
- •Глава 2. Методические аспекты
- •Глава 3. Моделирование бизнес-процессов
- •Глава 4. Анализ и проектирование
- •Глава 5. Технологии создания программного
- •Глава 6. Оценка трудоемкости создания
- •Глава 7. Особенности современных проектов ........527
- •Предисловие
- •Введение
- •Глава 1 жизненный цикл программного обеспечения
- •Нормативно-методическое обеспечение создания по
- •Стандарт жизненного цикла по
- •Основные процессы жц по
- •Вспомогательные процессы жизненного цикла по
- •Организационные процессы жизненного цикла по
- •Взаимосвязь между процессами жц по
- •Модели жизненного цикла по
- •Каскадная модель жц
- •Итерационная модель жизненного цикла
- •Методика spmn
- •Пример процесса «управление требованиями»
- •Пример процесса «управление конфигурацией по»
- •Общие принципы проектирования систем
- •Визуальное моделирование
- •Структурные методы анализа и проектирования по
- •Метод функционального моделирования
- •Описание типов связей
- •Моделирования процессов idef3
- •Типы связей idef3
- •Типы соединений
- •Моделирование потоков данных
- •Количественный анализ диаграмм
- •Сравнительный анализ sadt-моделей и диаграмм потоков данных
- •Моделирование данных
- •Объектно-ориентированные методы анализа и проектирования по
- •Основные принципы построения объектной модели
- •Основные элементы объектной модели
- •Значения мощности
- •Унифицированный язык моделирования uml
- •Диаграммы вариантов использования
- •Диаграммы взаимодействия
- •Диаграммы классов
- •Диаграммы состояний
- •Диаграммы деятельности
- •Диаграммы компонентов
- •Диаграммы размещения
- •Механизмы расширения uml
- •Количественный анализ диаграмм uml
- •Основные элементы языка uml
- •Основные типы связей языка uml
- •Диапазоны оценок для диаграмм uml
- •Образцы
- •Сопоставление и взаимосвязь структурного и объектно-ориентированного подходов
- •Структурный (процессный) подход к моделированию бизнес-процессов
- •Принципы процессного подхода
- •Применение диаграмм потоков данных
- •Система моделирования aris
- •Метод ericsson-penker21
- •Пример использвания процессного подхода
- •История болезни пациента
- •Спецификация структур данных
- •Построение диаграмм потоков данных нулевого и последующих уровней
- •Объектно-ориентированный подход к моделированию бизнес-процессов
- •Методика моделирования
- •Пример использования объектно-ориентированного подхода
- •Пример спецификации требований к программному обеспечению
- •Пример структурного проектирования по
- •Построение диаграмм системных процессов и диаграмм последовательностей экранных форм
- •Объектно-ориентированный анализ
- •Архитектурный анализ
- •Анализ вариантов использования
- •Объектно-ориентированное проектирование
- •Проектирование архитектуры системы
- •Проектирование элементов системы
- •Глава 5 технологии создания программного обеспечения
- •Определение технологии
- •Общие требования, предъявляемые
- •Внедрение тс по в организации
- •Общие сведения
- •Определение потребностей в тс по
- •Оценка и выбор тс по
- •Критерии оценки и выбора тс по
- •Выполнение пилотного проекта
- •Практическое внедрение тс по
- •Примеры тс по
- •Технология rup (rational unified process)
- •Технология oracle
- •Технология borland
- •Технология computer associates
- •Глава 6 оценка трудоемкости создания программного обеспечения
- •Методы оценки и их классификация
- •Методика оценки трудоемкости разработки по на основе функциональных точек
- •Определение функциональных типов
- •Определение количества и сложности функциональных типов по данным
- •Сложность ilf и eif
- •Определение количества и сложности транзакционных функциональных типов
- •Подсчет количества функциональных точек
- •Зависимость количества fp от сложности функционального типа
- •Коммуникации данных
- •Распределенная обработка данных
- •Сложность ei
- •Сложность ео
- •Производительность
- •Эксплуатационные ограничения
- •Частота транзакций
- •Ввод данных в режиме «онлайн»
- •Эффективность работы конечных пользователей1
- •Онлайновое обновление
- •Сложная обработка31
- •Повторное использование
- •Простота установки
- •Простота эксплуатации
- •Количество возможных установок на различных платформах
- •Гибкость32
- •Оценка трудоемкости разработки
- •Размер программного обеспечения в fp и loc
- •Распределение временных затрат по стадиям для маленьких и больших проектов
- •Статистические данные
- •Статистические (регрессионные) модели
- •Группа процессов
- •Определение весовых показателей вариантов использования
- •Определение технической сложности проекта
- •Определение уровня квалификации разработчиков
- •Оценка трудоемкости проекта
- •Методы, основанные на экспертных оценках
- •Метод дельфи
- •Метод декомпозиции работ
- •Средства оценки трудоемкости
- •Планирование итерационного процесса создания по
- •Глава 7 особенности современных проектов
- •Категории «безнадежных» проектов
- •Причины, порождающие «безнадежные» проекты
- •Причины разногласий между участниками проекта
- •Переговоры в «безнадежном» проекте
- •Человеческий фактор в «безнадежных» проектах
- •Процессы в «безнадежных» проектах
- •Динамика процессов
- •Контроль над продвижением проекта
- •Технология и инструментальные средства «безнадежных» проектов
- •Дополнительная литература
- •Краткий словарь терминов
- •Список основных сокращений
Пример использования объектно-ориентированного подхода
В данном примере используется методика Rational Unified Process, описанная в предыдущем подразделе.
Постановка задачи
Перед руководителем информационной службы университета ставится задача разработки автоматизированной системы регистрации студентов на дополнительные платные курсы. Система должна позволять студентам регистрироваться на курсы и просматривать свои табели успеваемости с персональных компьютеров, подключенных к локальной сети университета. Профессора должны иметь доступ к системе, чтобы указать курсы, которые они будут читать, и проставить оценки за курсы.
В настоящее время в университете функционирует база данных, содержащая всю информацию о курсах (каталог курсов). Регистрация на курсы происходит следующим образом: в начале каждого семестра студенты могут запросить у регистратора каталог курсов, содержащий список курсов, предлагаемых в данном семестре. Информация о каждом курсе должна включать имя профессора, наименование кафедры и требования к предварительному уровню подготовки (прослушанным курсам).
Студент может выбрать 4 курса в предстоящем семестре. В дополнение к этому каждый студент может указать 2 альтернативных курса на тот случай, если какой-либо из выбранных им курсов окажется уже заполненным или отмененным. На каждый курс может записаться не более 10 и не менее 3 студентов (если менее 3, то курс будет отменен). В каждом семестре существует период времени, когда студенты могут изменить свои планы (добавить или отказаться от выбранных курсов). После того, как процесс регистрации некоторого студента завершен, регистратор направляет информацию в расчетную систему, чтобы студент мог внести плату за семестр. Если курс окажется заполненным в процессе регистрации, студент должен быть извещен об этом до окончательного формирования его личного учебного плана. В конце семестра студенты могут просмотреть свои табели успеваемости.
Создание модели бизнес-процессов
Действующие лица:
Студент — записывается на курсы и просматривает свой табель успеваемости.
Профессор — выбирает курсы для преподавания и ставит оценки за курсы.
Расчетная система - получает информацию по оплате за курсы.
Каталог курсов — база данных, содержащая информацию о курсах.
Варианты использования:
Исходя из потребностей действующих лиц, выделяются следующие варианты использования (Business Use Case):
Зарегистрироваться на курсы;
Просмотреть табель успеваемости;
Выбрать курсы для преподавания;
Проставить оценки.
Диаграмма вариантов использования для модели бизнес-процессов показана на рис. 3.17.
Пример спецификации Business Use Case: «Зарегистрироваться на курсы»:
Наименование:
Зарегистрироваться на курсы
Краткое описание
Рис. 3.17. Диаграмма вариантов использования для модели
бизнес-процессов
Данный Business Use Case позволяет студенту зарегистрироваться на предлагаемые курсы в текущем семестре. Студент может изменить свой выбор, если изменение выполняется в установленное время в начале семестра.
Основной сценарий:
Студент приходит к регистратору и просит зарегистрировать его на предлагаемые курсы или изменить свой график курсов.
В зависимости от запроса студента, выполняется один из подчиненных сценариев (создать график или изменить график).
Подчиненный сценарий «Создать график»:
Регистратор выполняет поиск в каталоге доступных в настоящий момент курсов и выдает студенту их список.
Студент выбирает из списка 4 основных и 2 альтернативных курса.
Регистратор формирует график студента.
Выполняется подчиненный сценарий «Принять график».
Подчиненный сценарий «Изменить график»:
Регистратор находит текущий график студента.
Регистратор выполняет поиск в каталоге доступных в настоящий момент курсов и выдает студенту их список.
Студент может изменить свой выбор курсов, удаляя или добавляя конкретные курсы.
После выбора регистратор обновляет график.
Выполняется подчиненный сценарий «Принять график».
Подчиненный сценарий «Принять график»:
Для каждого выбранного студентом курса регистратор подтверждает выполнение студентом предварительных требований (прохождение определенных курсов), факт открытия предлагаемого курса и отсутствие конфликтов графика.
Регистратор вносит студента в список каждого выбранного предлагаемого курса. Курс фиксируется в графике.
Альтернативные сценарии.
Не выполнены предварительные требования, курс заполнен или имеют место конфликты графика.
Если во время выполнения подчиненного сценария «Принять график» регистратор обнаружит, что студент не выполнил необходимые предварительные требования, или выбранный им предлагаемый курс заполнен (уже записалось 10 студентов), или имеют место конфликты графика (два или более курсов с совпадающим расписанием), то он предлагает студенту изменить свой выбор курсов либо отменить формирование графика и вернуться к нему позже.
Система каталога курсов недоступна:
Если во время поиска в каталоге курсов окажется, что невозможно установить связь с системой каталога курсов, то регистрацию придется прервать и дождаться восстановления связи.
Регистрация на курсы закончена:
Если в самом начале выполнения регистрации окажется, что регистрация на текущий семестр уже закончена, то процесс завершится.
Создание модели бизнес-анализа
Исполнители.
Регистратор — формирует учебный план и каталог курсов, записывает студентов на курсы, ведет все данные о курсах, профессорах, успеваемости и студентах.
Сущности.
Студент.
Профессор.
График студента (список курсов).
Курс (в программе обучения).
Конкретный курс (курс в расписании).
Диаграмма классов для модели бизнес-анализа, описывающей Business Use Case «Зарегистрироваться на курсы», приведена на рис. 3.18.
Рис. 3.18. Диаграмма классов модели бизнес-анализа
3.4.
СПЕЦИФИКАЦИЯ ТРЕБОВАНИЙ
К ПРОГРАММНОМУ ОБЕСПЕЧЕНИЮ23
3.4.1.
ОСНОВЫ СПЕЦИФИКАЦИИ ТРЕБОВАНИЙ
К ПРОГРАММНОМУ ОБЕСПЕЧЕНИЮ
Спецификация требований к ПО является составной частью процесса управления требованиями (см. подразд. 1.5). В качестве повторения отметим, что все требования к ПО делятся на функциональные и нефункциональные. Функциональные требования определяют действия, которые должна выполнять система, без учета ограничений, связанных с ее реализацией. Нефункциональные требования описывают атрибуты системы (технические характеристики) и ее окружения.
Для выявления требований используются (в различных сочетаниях) следующие методы:
собеседование (интервьюирование);
анкетирование;
моделирование и анализ бизнес-процессов (далее будет рассмотрена методика перехода от объектной бизнес-модели к системным требованиям);
сессии по выявлению требований (мозговой штурм);
создание и демонстрация пользователям работающих прототипов приложений (для выявления замечаний и дополнительных требований).
Собеседование — наиболее часто используемый и обычно наиболее полезный метод выявления требований. При использовании интервью может быть поставлено несколько целей, таких, как выяснение, проверка и толкование фактов, формирование заинтересованности, привлечение пользователей к работе, сбор предложений и мнений. Но метод собеседования требует для эффективного контакта хороших навыков общения с людьми, имеющими различные ценности, приоритеты, мнения, побуждения и индивидуальные особенности. Преимущества метода собеседования заключаются в следующем:
опрашиваемое лицо может свободно и открыто отвечать на вопросы и почувствовать себя участником проекта;
лицо, проводящее собеседование, может наблюдать за поведением опрашиваемого лица, изменять ход опроса, переформулировать или иначе строить вопросы во время собеседования.
Недостатки метода собеседования:
метод трудоемкий и дорогой, поэтому может оказаться непрактичным;
успех собеседования зависит от навыков общения лица, проводящего собеседование, и от желания опрашиваемых лиц участвовать в интервью.
Существуют два типа интервью: неструктурированное и структурированное. Неструктурированные интервью проводят с одной общей целью, которая явно не высказывается, и с помощью нескольких общих вопросов. Лицо, проводящее собеседование, рассчитывает на то, что опрашиваемое лицо должно само определять рамки и направление интервью. В таких интервью часто теряется нить рассуждений, и по этой причине они редко используются при проектировании систем.
В структурированных интервью лицо, проводящее собеседование, заранее подготавливает конкретный ряд вопросов к опрашиваемому лицу. В зависимости от ответов в процессе собеседования могут быть заданы дополнительные вопросы для уточнения или разъяснения некоторых тем. Вопросы без подразумеваемых ответов позволяют опрашиваемому лицу выбрать ответ, наиболее подходящий с его точки зрения. Вопросы, допускающие единственный ответ, ограничивают выбор возможного ответа или требуют коротких, прямых ответов.
Анкетирование позволяет с помощью анкет получать сведения от большого количества людей, контролируя правильность их ответов. При работе с большой аудиторией этот метод наиболее эффективен. Преимущества метода анкетирования заключаются в следующем:
люди могут заполнять и возвращать анкеты в удобное для них время;
люди склонны сообщать в ответах действительные факты, если анкетирование анонимное;
это относительно недорогой способ сбора данных с участием большого количества людей.
Недостатки метода анкетирования:
не все могут согласиться ответить на вопросы, анкеты могут возвращаться незаполненными;
нет возможности пояснить или переформулировать неправильно понятые вопросы, наблюдать и анализировать реакцию респондента на отдельные вопросы;
подготовка анкет может потребовать много времени.
Мозговой штурм особенно полезен в ситуациях, когда обсуждаются новые, нестандартные решения незнакомой проблемы. Большинство новаторских идей очень часто бывают результатом комбинации нескольких, на первый взгляд, не связанных друг с другом идей. Мозговой штурм включает в себя генерацию идей и расстановку приоритетов. Процесс генерации идей обычно подчиняется правилам, соблюдение которых преследует одну цель — выработку как можно большего числа идей. Критика и споры в этот период не поощряются; существующие пределы и ограничения снимаются, можно изменять и комбинировать идеи.
Основная идея создания прототипа состоит в быстрой постройке модели системы, которая, как предполагается, нужна пользователю. Обычно в прототипах многие детали опускаются, в том числе процедуры контроля входных данных, обработки ошибок, резервного копирования и восстановления данных. Не учитываются также производительность и масштабируемость. Создание прототипа никак не противоречит и не препятствует применению других методов получения требований от пользователя. Однако иногда только с помощью прототипа удается заставить клиента начать обсуждение требований, которые при другом подходе кажутся слишком абстрактными. Кроме того, работа с прототипом часто помогает получить требования, которые в противном случае так и остались бы неизвестными. Прототип хорош еще и тем, что он является неким осязаемым доказательством (или иллюзией) прогресса в разработке системы. А в некоторых случаях он может даже поддерживать какие-то ограниченные рабочие возможности системы. К сожалению, как отмечалось в главе 1, реальный опыт работы с прототипами свидетельствует, что их создание обычно препятствует любому официальному документированию требований, следовательно, требования формулируются только в виде кода. Детали работы системы, игнорируемые прототипом (обработка ошибок, резервное копирование и др.), могут так и не появиться в виде требований.
Выявленные в результате применения перечисленных методов требования к ПО оформляются в виде ряда документов и моделей. К основным документам, регламентируемым технологией Rational Unified Process, относятся:
Концепция — определяет глобальные цели проекта и основные особенности разрабатываемой системы. Существенной частью концепции является постановка задачи разработки, определяющая требования к выполняемым системой функциям.
Словарь предметной области (глоссарий) — определяет общую терминологию для всех моделей и описаний требований к системе. Глоссарий предназначен для описания терминологии предметной области и может быть использован как словарь данных системы.
Дополнительные спецификации (технические требования) - содержит описание нефункциональных требований к системе, таких, как надежность, удобство использования, производительность, сопровождаемость и др.
Примеры документов приведены в подразд. 3.4.2.
Функциональные требования к системе моделируются и документируются с помощью вариантов использования (use case), которые в контексте процесса управления требованиями трактуются следующим образом:
вариант использования фиксирует соглашение между участниками проекта относительно поведения системы;
вариант использования описывает поведение системы при различных условиях, когда система отвечает на запрос одного из участников, называемого основным действующим лицом;
основное действующее лицо инициирует взаимодействие с системой, чтобы добиться некоторой цели. Система отвечает, соблюдая интересы всех участников.
Варианты использования — это вид документации, применяемый, когда требуется сконцентрировать усилия на обсуждении принципиальных требований к разрабатываемой системе, а не на подробном их описании. Стиль их написания зависит от масштаба, количества участников и критичности проекта. Существуют четыре уровня точности24 при описании вариантов использования (расположенные по степени повышения точности):
Действующие лица и цели (перечисляются действующие лица и все их цели, которые будет обеспечивать система).
Краткое изложение варианта использования (в один абзац) или основной поток событий (без анализа возможных ошибок).
Условия отказа (анализ мест возникновения возможных ошибок в основном потоке событий).
Обработка отказа (написание альтернативных потоков событий).
Введение перечисленных уровней преследует своей целью грамотное планирование и экономию времени разработки. В итерационном цикле создания системы не следует пытаться за один прием подробно описать все требования, их нужно постепенно уточнять, повышая уровень точности. Выбор первоочередных вариантов использования для уточнения определяется их приоритетами (см. подразд. 1.5).
Методика моделирования вариантов использования в технологии Rational Unified Process предусматривает специальное соглашение, связанное с группировкой структурных элементов и диаграмм модели. Это соглашение включает следующие правила:
Все действующие лица, варианты использования и диаграммы вариантов использования помещаются в пакет с именем Use Case Model.
Если моделируется сложная многофункциональная система, то совокупность всех действующих лиц и вариантов использования может разделяться на пакеты. В качестве принципов разделения могут использоваться:
структуризации модели в соответствии с типами пользователей (действующих лиц);
функциональная декомпозиция;
разделение модели на пакеты между группами разработчиков (в качестве объектов управления конфигурацией).
Все рекомендации по написанию качественных вариантов использования, включая перечисленные в подразд. 2.5.1, можно изложить в виде набора образцов, которые перечислены в табл. 3.3.
Таблица 3.3
Образцы написания вариантов использования
Наименование образца |
Проблема |
Предлагаемое решение |
Формирование команды разработчиков |
||
Небольшая команда разработчиков |
Участие слишком многих людей в написании варианта использования неэффективно; компромисс между многими различными точками зрения может привести к неудовлетворительным результатам при создании системы |
Ограничьте число разработчиков, отрабатывающих детали варианта использования, двумя или тремя людьми. Для подключения дополнительных участников используйте образец Двухуровневое рецензирование |
Состав сторонних участников |
Невозможно удовлетворить потребности всех заинтересованных лиц, не обмениваясь информацией с ними |
Активно привлекайте заказчиков и заинтересованных лиц в вашей организации к разработке вариантов использования |
Сбалансированная команда |
Команда из близких по роду деятельности, одинаково мыслящих людей может создать небольшой набор ограниченных вариантов использования, не удовлетворяющий общим потребностям |
Формируйте команду из людей с различными специализациями, представляющими интересы различных заинтересованных лиц. Команда должна включать как разработчиков, так и пользователей |
Организация процесса разработки |
||
Глубина после общего представления |
Невозможно продвигаться вперед и создавать набор согласованных вариантов использования, если тратить впустую время на последовательное написание подробных вариантов использования |
Разрабатывайте сначала общее представление вариантов использования, затем постепенно добавляйте детали, работая с группой взаимосвязанных вариантов использования |
Итерационная разработка |
Разработка вариантов использования за один проход затруднительна, усложняет внесение дополнительной информации и затрудняет выявление факторов риска |
Разрабатывайте варианты использования итерационно, повышая на каждой итерации их точность и корректность |
Множество форм |
Различные проекты требуют различную степень формальности и различные шаблоны. Использовать один и тот же шаблон вариантов использования непродуктивно |
Выбирайте формат вариантов использования, основываясь на проектных рисках и предпочтениях участников |
Двухуровневое рецензирование |
Многие заинтересованные лица могут пожелать принять участие в рецензировании вариантов использования. Это слишком долгое и дорогостоящее занятие |
Используйте два вида рецензирования: первое, проводимое небольшой группой внутренних участников, может выполняться многократно; второе, проводимое полной группой, выполняется, как правило, один раз |
Своевременное завершение |
Разработка модели вариантов использования сверх потребностей заинтересованных лиц и разработчиков приводит к напрасным тратам ресурсов и затягивает проект |
Прекращайте разработку вариантов использования, как только они достигают необходимой полноты и удовлетворяют потребности участников проекта |
Свобода творчества |
Чрезмерное внимание к стилю написания вариантов использования тормозит работу |
Небольшие различия в стиле написания вариантов использования несущественны. Если вариант использования достиг необходимой полноты, его автор имеет право на стилистические отступления |
Организация набора вариантов использования |
||
Общепринятая четкая концепция |
Недостаточно четкое представление о системе может привести к неуверенности и противоположным мнениям среди заинтересованных лиц и быстро парализовать проект |
Необходимо подготовить и утвердить концепцию системы, в которой четко определены ее цели и роль в деятельности организации. Распространите концепцию среди всех участников проекта |
Видимые границы |
Если вы не определили границы системы, ее масштаб будет расти неконтролируемым образом |
Установите четкую и видимую границу между системой и внешней средой, перечислив людей и оборудование, взаимодействующих с данной системой |
Ясный состав действующих лиц |
Если выявлять только пользователей системы, игнорируя роли, которые они играют по отношению к системе, можно упустить существенную часть поведения системы или ввести избыточное поведение |
Идентифицируйте действующих лиц, с которыми должна взаимодействовать система, и роли, которые они играют по отношению к системе. Четко опишите каждую роль |
Транзакции, значимые для пользователей |
Система несовершенна, если она не может предоставить пользователям необходимые услуги и не выполняет цели и задачи,, определяемые ее концепцией
|
Идентифицируйте важные, значимые услуги, которые система предоставляет действующим лицам для удовлетворения их потребностей |
Разворачивающееся представление |
Количество шагов в описании поведения системы превышает возможности охвата и интересы различных типов читателей вариантов использования |
Создайте иерархическую организацию набора вариантов использования, которую можно развернуть для большей детализации, или свернуть, чтобы скрыть детали и показать контекст |
Отдельный вариант использования |
||
Законченная единственная цель |
Неправильно заданные цели не дают разработчикам четко определить, где заканчивается один вариант использования и начинается другой |
Каждый вариант использования должен иметь законченную и четко определенную цель, которая может находиться на любом уровне образца Разворачивающееся представление |
Имя в виде глагольной фразы |
Бессмысленные, слишком общие имена вариантов использования не дают читателям правильного представления, на них сложно ссылаться |
Именуйте каждый вариант использования активной глагольной фразой, отражающей цель основного действующего лица |
Сценарий и фрагменты |
Читатели должны иметь возможность легкого следования по интересующему их сценарию, в противном случае они могут утратить интерес или потерять важную информацию
|
Основной сценарий должен быть предельно простым, без анализа возможных ошибочных ситуаций. Фрагменты сценария, отражающие альтернативы, должны располагаться под ним |
Исчерпывающие альтернативы |
Вариант использования может иметь много альтернатив. Отсутствие некоторых из них означает, что разработчики неправильно понимают поведение системы, и система может получиться несовершенной |
Описывайте все альтернативы и ошибочные ситуации, которые могут иметь место в варианте использования |
Перегрузка информацией |
Включение нефункциональных требований в вариант использования может быстро привести его в неопределенное и беспорядочное состояние |
Включите дополнительные позиции в шаблон варианта использования за пределами текста сценария, чтобы отразить полезную дополнительную информацию |
Точность и читаемость |
Варианты использования,, слишком сложные для нетехнических специалистов или слишком неточные для разработчиков, несовершенны и могут привести к созданию неадекватной системы |
Сделайте вариант использования достаточно читаемым, чтобы заинтересованные лица могли в нем разобраться и оценить его, и достаточно точным, чтобы разработчики понимали, что им делать |
Сценарии и шаги |
||
Обнаруживаемые условия |
Разработчики вариантов использования всегда решают проблему, сколько и какие условия включить в их описание
|
Включайте только реально обнаруживаемые условия. Объединяйте условия, которые оказывают на систему одинаковое воздействие |
Уровни шагов |
Чрезмерно крупные или мелкие шаги сценария варианта использования делают вариант использования трудным для восприятия и понимания |
Оставляйте в сценарии от трех до девяти шагов. В идеальном случае все шаги должны быть на близких уровнях и на уровне абстракции, следующем за целью варианта использования |
Выполнение цели действующего лица |
У читателей и разработчиков возникают проблемы в понимании поведения системы, если неясно, какое действующее лицо отвечает за выполнение шага сценария, и что оно делает для его завершения |
При описании каждого четко указывайте, какое действующее лицо выполняет действие, и что оно получает по его завершении |
Продвижение вперед |
Разработчики должны решить, как много поведения включить в каждый шаг. Слишком много деталей делает вариант использования длинным и трудным для чтения |
Исключайте или объединяйте шаги, которые не означают никакого движения вперед для действующего лица. Упрощайте фрагменты, которые отвлекают внимание читателя от Движения вперед |
Нейтральность к технологии |
Включение технологических ограничений и деталей реализации в описание варианта использования увеличивает сложность и затрудняет понимание его цели
|
Описание варианта использования должно быть нейтральным по отношению к технологии |
Связи между вариантами использования |
||
Общее поведение |
Описание одинаковых шагов в различных вариантах использования занимает лишнее время и затрудняет понимание общих процессов в модели вариантов использования |
Выражайте общие действия в виде «включаемых» вариантов использования |
Перемещение альтернатив |
Длинные или сложные описания альтернатив могут занять доминирующее положение и показаться более важными, чем они заслуживают |
Рассмотрите возможность выделения сложных альтернатив в отдельный вариант использования |
Абстракция |
Попытка описать в одном варианте использования две или более различных альтернатив, ни одна из которых не является доминирующей, приводит к проблемам |
Создайте обобщенный абстрактный вариант использования. Поместите каждый отдельный вариант сценария, уточняющий абстракцию, в специализированный вариант использования |
Модификация существующих вариантов использования |
||
Удаление излишеств |
Чрезмерно длинный вариант использования громоздок и труден для работы, уводит в сторону внимание пользователей
|
Переместите длинный, громоздкий фрагмент или слишком сложное расширение в отдельный вариант использования |
Объединение фрагментов |
Варианты использования, описывающие очень маленькие или изолированные фрагменты поведения, не выражают достаточной для понимания информации относительно услуг, предоставляемых системой (Транзакции, значимые для пользователей) |
Объединяйте небольшие взаимосвязанные варианты использования или фрагменты вариантов использования в варианты использования, связанные общей целью |
Удаление лишних вариантов использования |
Варианты использования, результаты которых незначительны, отвлекают внимание и затрудняют понимание системы |
Удалите варианты использования, которые не дают ничего существенного для системы или выпали из текущего активного списка вариантов использования |
Варианты использования, безусловно, не единственный способ выражения функциональных требований. Это объясняется следующими причинами:
их описания слишком подробны. Заинтересованные лица зачастую желают видеть лишь краткий перечень основных функций;
некоторые важные функции системы легче выразить в краткой форме без привязки к именам вариантов использования.
Следовательно, помимо вариантов использования, функции системы можно выразить через ее свойства (system features), представляющие собой высокоуровневые, краткие утверждения. Более строго в контексте Rational Unified Process системное свойство определяется как «наблюдаемая извне и обеспечиваемая системой функция, которая непосредственно удовлетворяет потребности заинтересованного лица». Свойство можно облечь в следующую лингвистическую форму: система будет выполнять «свойство X».
Спецификация требований в технологии Rational Unified Process не требует обязательного моделирования бизнес-процессов организации, для которых создается ПО, однако наличие бизнес-моделей существенно упрощает построение системной модели вариантов использования. При переходе от бизнес-модели к начальной версии модели вариантов использования применяются следующие правила.
Для каждого исполнителя в модели бизнес-анализа, который в перспективе станет пользователем новой системы, в модели вариантов использования создается действующее лицо с таким же наименованием. В состав действующих лиц включаются также внешние системы, играющие в бизнес-процессах пассивную роль источников информации.
Варианты использования для данного действующего лица создаются на основе анализа обязанностей соответствующего исполнителя (в простейшем случае для каждой операции исполнителя создается вариант использования, реализующий данную операцию в системе).
Такая начальная версия модели описывает минимальный вариант системы, пользователями которой являются только исполнители бизнес-процессов. Если в дальнейшем в процессе развития системы ее непосредственными пользователями будут становиться действующие лица бизнес-процессов, то модель вариантов использования будет соответствующим образом модифицироваться.
Применение данных правил будет проиллюстрировано в следующем примере.
3.4.2.
