Автор работы: Пользователь скрыл имя, 24 Ноября 2011 в 12:23, контрольная работа
Элемент Use Case описывает, что должна делать система, но не определяет, как она должна это делать. При моделировании это позволяет отделять внешнее представление системы от ее внутреннего представления.
Поведение элемента Use Case описывается потоком событий. Начальное описание выполняется в текстовой форме, прозрачной для пользователя системы. В потоке событий выделяют:
Работа с элементами Use Case 3
Спецификация элементов Use Case 3
Главный поток 3
Подпотоки 4
Альтернативные потоки 4
Пример диаграммы Use Case 5
Построение модели требований 7
Определение элементов Use Case 8
Расширение функциональных возможностей 10
Уточнение модели требований 11
Выводы 12
Кооперации и паттерны 12
Обозначение паттерна Наблюдатель приведено на рис. 15, где показано, что у него два параметра настройки — субъект и наблюдатель.
Рис. 15. Обозначение паттерна Наблюдатель
Эти параметры обозначают роли, которые будут играть конкретные классы, используемые при настройке паттерна на конкретное применение. Например, настройку паттерна на отображение текущего фильма кинофестиваля иллюстрирует рис. 16.
Рис. 16. Настройка паттерна Наблюдатель
Видим, что подключаемые конкретные классы (Кинопрограмма, Текущий фильм) соединяются с символом паттерна пунктирными линиями. Каждая пунктирная линия подписана ролью (именем параметра), которую играет конкретный класс в формируемой кооперации. Таким образом, в данном случае класс Кинопрограмма становится подклассом абстрактного класса Субъект в паттерне, а класс Текущий фильм — подклассом абстрактного класса Наблюдатель в паттерне.
Паттерн Компоновщик
Паттерн Компоновщик (Composite) обеспечивает представление иерархий часть-целое, объединяя объекты в древовидные структуры.
Проблема.
Очень часто возникает
Решение. Ключевым элементом решения является абстрактный класс Компонент, который является одновременно и примитивом, и контейнером. В нем объявлены:
Структурная составляющая паттерна Компоновщик представлена на рис. 17.
Рис. 17. Структурная составляющая паттерна Компоновщик
Из рисунка видно, что с помощью паттерна организуется рекурсивная композиция.
Класс Компонент служит простым элементом дерева, класс Компоновщик является рекурсивным элементом, а класс Лист — конечным элементом дерева. Класс Компонент служит родителем классов Лист и Компоновщик. Отметим, что класс Компоновщик является агрегатом составных частей — экземпляров класса Компонент (таким образом задается рекурсия).
Клиенты используют интерфейс класса Компонент для взаимодействия с объектами дерева. Если получателем запроса клиента является объект-лист, то он и обрабатывает запрос. Если же получателем является составной объект-компоновщик, то он перенаправляет запрос своим потомкам, возможно выполняя дополнительные действия до или после перенаправления.
Результаты.
Паттерн определяет иерархии, состоящие
из классов-примитивов и классов-контейнеров,
облегчает добавление новых разновидностей
компонентов. Он упрощает организацию
клиентов (клиент не должен учитывать
специфику адресуемого объекта)
Обозначение паттерна Компоновщик приведено на рис. 18, где показано, что у него три параметра настройки — компонент, компоновщик и лист.
Настройку паттерна на графическое приложение иллюстрирует рис. 19.
Рис.
18. Обозначение паттерна
Компоновщик
Рис. 19. Настройка паттерна Компоновщик
В этом случае основной операцией приложения становится операция Рисовать(). Подразумевается, что такая операция входит в состав каждого из подключаемых классов, то есть классов Рисунок, Прямоугольник и Графический элемент. Операции Рисовать() должны заместить операции Работать() в классах паттерна.
Паттерн Команда
Паттерн Команда (Command) выполняет преобразование запроса в объект, обеспечивая:
Проблема. Достаточно часто нужно посылать запрос, не зная, выполнение какой конкретной операции запрошено и кто является получателем запроса. В этих случаях следует отделить объект, инициирующий запрос, от объекта, способного выполнить запрос. В результате обеспечивается высокая гибкость разработки пользовательского интерфейса — можно связывать различные пункты меню с определенной функцией, динамически подменять команды и т. д. Паттерн Команда применяется в следующих случаях:
Решение. Основным элементом решения является абстрактный класс Команда, обеспечивающий одну абстрактную операцию Выполнять(). Конкретные подклассы этого класса реализуют операцию Выполнять(). Они задают пару получатель-действие. Получатель запоминается в экземплярной переменной подкласса. Запрос получателю посылается в ходе исполнения конкретной операции Выполнять().
Структурная составляющая паттерна Команда показана на рис. 20. Классы этой структуры имеют следующие обязанности:
Рис. 20. Структурная составляющая паттерна Команда
В качестве конкретной команды могут выступать команда Открыть, команда Вставить. Инициатором может быть Пункт Меню, а получателем — Документ.
Объекты этого паттерна осуществляют следующие взаимодействия:
Обозначение паттерна Команда приведено на рис. 21, где показано, что у него четыре параметра настройки — клиент, команда, инициатор и получатель.
Рис. 21. Обозначение паттерна Команда
Настройку паттерна на приложение с графическим меню иллюстрирует рис. 22.
Рис. 22. Настройка паттерна Команда
Очевидно, что в получаемой кооперации конкретный класс Редактор играет роль клиента, классы КомандаОткрыть и КомандаВставить становятся классами Конкретных Команд (и подклассами абстрактного класса Команда), класс ПунктМеню замещает класс Инициатор паттерна, а конкретный класс Документ замещает класс Получатель паттерна.
Бизнес-модели
Достаточно часто перед тем, как решиться на заказ ПО, организация проводит бизнес-моделирование. Цели бизнес-моделирования:
Для достижения этих целей разрабатываются две модели: Q бизнес-модель Use Case; а бизнес-объектная модель.
Бизнес-модель Use Case задает внешнее представление бизнес-процессов организации (с точки зрения внешней среды — клиентов и партнеров).
Как показано на рис. 23, бизнес-модель Use Case строится с помощью бизнес-актеров и бизнес-элементов Use Case — простого расширения средств, используемых в обычных диаграммах Use Case.
Рис. 23. Фрагмент бизнес-модели Use Case для аэропорта
Бизнес-актеры определяют внешние сущности и людей, с которыми взаимодействует бизнес. Бизнес-актер представляет собой человека, но информационная система, взаимодействующая с бизнесом, также может играть роль такого актера.
Бизнес-элементы Use Case изображают различные рабочие потоки бизнеса. Последовательности действий в бизнес-элементах Use Case обычно описываются диаграммами деятельности.
Бизнес-объектная модель отражает внутреннее представление бизнес-процессов организации (с точки зрения ее сотрудников).
Как показано на рис. 24, бизнес-объектная модель строится с помощью бизнес-работников и бизнес-сущностей — классов со специальными стереотипами. Эти классы имеют специальные графические обозначения.
Рис. 24. Фрагмент бизнес-объектной модели аэропорта
Бизнес-работник
— абстракция человека, действующего
в бизнесе. Бизнес-сущности являются
«предметами», обрабатываемыми или
используемыми бизнес-
Контрольные
вопросы