Материал: u_lectures

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

Как определить целесообразность использования тех или иных приёмов, методик, языков моделирования при анализе требований? Здесь можно предложить три практические рекомендации.

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

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

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

Модели UML, поясняющие функциональность системы

Диаграмма вариантов использования

Диаграмма вариантов использования UML, Use Case Diagram – одно из самых простых представлений системы. Её базовые «строительные элементы» – акторы и варианты использования. Диаграмма задумана так, чтобы дать наиболее общее представление о функциональности системы (её компоненты), не вдаваясь в детали взаимосвязей функций. Поэтому основной вид отношения, используемый в диаграмме – ассоциация между актором и вариантом использования.

Другие виды отношений – отношение включения (include), расширения (extend) и обобщения/генерализации.

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

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

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

Диаграмма действий

Если диаграмма вариантов использования даёт «вид сверху» на функциональность системы, диаграмма действий UML, напротив, позволяет подробно иллюстрировать отдельный вариант использования и его сценарии.

Основные компоненты описания системы:

Функции (действия),

Символы «старт» и «стоп»,

Потоки управления,

Разветвители,

Линейки синхронизации.

 

 

Принять заказ

[Товар есть

 

 

 

[Товар

 

 

 

 

 

 

отсутствует

на складе]

 

 

 

 

 

 

на складе]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Оформить накладную

Инициировать поставку

Выдать товар

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

Помимо стандартного формата описания, UML предлагает вариант с «плавательными дорожками». Этот формат удобен для описания случая, когда в варианте использования участвуют несколько акторов.

Диаграмма состояний

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

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

Основные компоненты описания системы:

Простые состояния,

Составные состояния,

Символы «старт» и «стоп»,

Переходы,

Линейки синхронизации.

В языке UML под состоянием понимается абстрактный метакласс, используемый для моделирования отдельной ситуации, в течение которой имеет место выполнение некоторого условия [15]. Состояние может быть задано в виде набора конкретных значений атрибутов класса или объекта, при этом изменение их отдельных значений будет отражать изменение состояния моделируемого класса или объекта.

Заказ поступил

Заказ обеспечен материалами

Ожидание материалов

 

Заказ в производстве

 

Заказ отгружен

 

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

Событие [сторожевое условие] / выражение действия Иногда бывает полезным объединить часть состояний в одно мета-состояние.

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

Диаграммы UML, поясняющие внутреннее устройство системы

Некоторые авторы [16] рекомендуют использовать при описании требований диаграммы UML, описывающие создаваемую систему через её компоненты (классы, объекты), отношения и взаимодействия между ними. Данный подход имеет свои ограничения (см. Принцип 2).

Диаграмма классов. Для создания диаграммы классов необходимо:

1.Осуществить поиск классов (ключевых компонент проблемной области).

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

3.Исследовать отношения найденных классов.

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

Принято выделять [14] 3 уровня абстракции классов: концептуальный уровень, уровень спецификации, уровень реализации. Анализ требований разумно сопровождать диаграммами, отражающими концептуальный уровень. На данном уровне при описании классов целесообразно указать их наименования и ответственности. Атрибуты и операции можно не указывать, либо ввести только самые основные, отложив их исследование на более поздние стадии детализации.

Отношения, подлежащие анализу на концептуальном уровне – это:

 

 

 

 

 

 

ассоциация (именованная связь),

 

 

*

*

 

зависимость (изменения в одном классе приводят к изменениям в

 

 

 

 

 

 

другом),

 

 

 

 

 

 

 

 

 

обобщение / генерализация (родовидовое отношение),

 

 

 

 

 

 

 

агрегация (отношение «часть-целое»),

 

 

 

 

 

 

 

композиция

(отношение

«часть-целое»,

однозначно

 

 

 

 

 

 

регламентирующее количество и состав частей целого).

 

 

 

 

 

 

 

 

1

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

*

 

 

 

 

 

Диаграмма классов показывает статическую структуру проблемной области. Для анализа взаимодействия объектов – экземпляров класса в ходе реализации варианта использования в UML предусмотрены две диаграммы взаимодействия: диаграмма кооперации и диаграмма последовательности.

По мнению автора, если диаграмма классов в ряде случаев и может рассматриваться, как артефакт, поясняющий структуру проблемной области, то диаграммы взаимодействия вряд ли стоит рассматривать в качестве выразительного языкового средства, иллюстрирующего требования к системе в диалоге «ЗаказчикИсполнитель». Тем не менее, в соответствие с Принципом 3 свободы выбора языковых средств, аналитик, решивший использовать данные диаграммы, может ознакомиться с ними в специальной литературе [14-15].

Альтернативные языки моделирования

Диаграмма потоков данных

Диаграмма потоков данных (data flow diagram, DFD) – один из основных инструментов структурного анализа и проектирования информационных систем, существовавших в «доюмээльную» эпоху. Несмотря на имеющее место в современных условиях смещение акцентов от структурного к объектно-ориентированному подходу к анализу и проектированию систем, «старинные» структурные нотации по-прежнему широко и эффективно используются как в бизнес-анализе, так и в анализе информационных систем.

Исторически сложилось так, что для описания диаграмм DFD используются две нотации – Йодана (Yourdon) и Гейна-Сарсона (Gane-Sarson), отличающиеся синтаксисом. На приведённой ниже иллюстрации использована нотация Гейна-Сарсона.