WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Pages:     || 2 |

«Кафедра Информационные технологии Мельников П.П. ПРОЕКТНЫЙ ПРАКТИКУМ Учебное пособие Москва 2012 1 УДК 004(073) ББК 32.81 М-48 Рецензент: Поляков В.П., д.п.н., проф. зав. кафедрой Информатика и программирование ...»

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

Федеральное государственное образовательное бюджетное

учреждение высшего профессионального образования

«ФИНАНСОВЫЙ УНИВЕРСИТЕТ

ПРИ ПРАВИТЕЛЬСТВЕ РОССИЙСКОЙ ФЕДЕРАЦИИ»

(Финансовый университет)

Кафедра

«Информационные технологии»

Мельников П.П.

ПРОЕКТНЫЙ ПРАКТИКУМ

Учебное пособие Москва 2012 1 УДК 004(073) ББК 32.81 М-48 Рецензент: Поляков В.П., д.п.н., проф. зав. кафедрой «Информатика и программирование» Финансового университета при Правительстве РФ.

М-48 Мельников П.П.. «Проектный практикум». Учебное пособие для студентов, обучающихся по направлению 230700.62 «Прикладная информатика». – М.: Финуниверситет, 2012.

В пособии рассматриваются вопросы проектирования информационных систем с использованием универсального языка моделирования UML в инструментальной среде Rational Rose.

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

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

Пособие является продолжением учебного пособия «Применение UML для проектирования программных систем».

УДК 004(073) ББК 32. Учебное издание Мельников Петр Петрович Проектный практикум Учебное пособие Содержание Введение

Разработка учебного проекта ИС «СИСТЕМА УЧЕТА ЗАКАЗОВ»

1.

Спецификация требований к программному обеспечению...... 1.1.

1.1.1. Постановка задачи

Создание диаграммы Варианты использования

1.2.

Создание диаграмм Взаимодействия

1.3.

Создание кооперативной диаграммы

1.4.

Диаграммы классов

1.5.

1.5.1. Атрибуты и операции

1.5.2. Работа с операциями

1.5.3. Вспомогательные операции

1.5.4. Спецификации операции

1.5.5. Изображение атрибутов и операций на диаграммах Классов Диаграммы компонентов

1.6.

Диаграмма размещения

1.7.

Генерация программного кода

1.8.

Проектирование базы данных

1.9.

1.10. Публикация разработанного проекта

1.11. Количественная оценка UML диаграмм

Создание базы требований к проекту

2.

Инструментальное средство IBM Rational Requisitepro........ 2.1.

2.1.1. Общие сведения

2.1.2. Создание проекта RequisitePro

2.1.3. Создание типов требований в проекте RequisitePro......... 2.1.4. Определение атрибутов требований

2.1.5. Создание типов документов

2.1.6. Связывание модели Rose и проекта RequisitePro.............. 2.1.7. Экспорт вариантов использования из модели Rose в проект RequisitePro 2.1.8. Создание представлений в проекте RequisitePro.............. Задания для самостоятельной работы

Задание 1.

Задание 2.

Задание 3.

Групповой проект

3.4.1. Цель проведения группового проекта

3.4.2. Результаты выполнения проекта

3.4.3. Темы группового проекта

3.4.4. Этапы выполнения проекта

Заключение

Приложения: документация проекта

Приложение 1. КОНЦЕПЦИЯ

Приложение 2. Описание вариантов использования

проектированию

Тематика курсового проекта и задания по его выполнению Примерная тематика курсовых работ

Литература

ВВЕДЕНИЕ

В учебном пособии «Применение UML для разработки прикладных систем» рассмотрены общие вопросы моделирования ИС, основанные на объектно – ориентированном подходе, который реализуется специальным языком моделирования UML (Unified Modeling Language - Унифицированный Язык Моделирования). Его основная задача – познакомить с основами синтаксиса UML и его применения для описания моделей ИС, а также ознакомить с инструментальным CASE-средством IBM Rational Rose, реализующем объектно-ориентированный подход к разработке проектов ИС с использованием языка UML.

Настоящее пособие является логическим продолжением указанного учебного пособия. Его цель – на основе сквозного примера показать последовательность и технологию разработки проектов в среде Rational Rose.

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

Пособие содержит три части. В первой части приведен пример разработки проекта в среде Rational Rose. Во второй части рассматриваются вопросы создания базы требований к проекту и инструментальное средство IBM Rational RequisitePro. В третьей части приведены задания для самостоятельной работы.

Составитель учебного пособия Мельников П.П., кандидат технических наук, доцент, проф. кафедры «Информационные технологии».

При подготовке пособия были использованы материалы учебных разработок и публикаций таких известных авторов, как У. Боггс, А.М. Вендров, Х. Гома, Джим Арлоу, Айла Нештадт.

1. РАЗРАБОТКА УЧЕБНОГО ПРОЕКТА ИС «СИСТЕМА УЧЕТА

ЗАКАЗОВ»

1.1. Спецификация требований к программному обеспечению Требования к ПО документируются в виде ряда документов и моделей.



К основным документам относятся:

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

словарь предметной области (глоссарий) — устанавливает общую терминологию для всех моделей и описаний требований к системе. Глоссарий предназначен для описания терминологии предметной области и может быть использован как словарь данных системы;

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

1.1.1. Постановка задачи Фирма занимается информационными технологиями. Для нее поступил заказ на разработку системы отслеживания различных заказов от фирмы посредника (продавца) предприятию изготовителю на выпускаемые им изделия.

Для создания такой системы необходимо разработать проект ПО и схему базы данных.

Описание бизнес-процессов Процесс обработки заказа включает:

заполнение формы заказа и передачу ее заказчику;

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

Копия формы заказа передается в бухгалтерию;

Данные из формы вводятся в бухгалтерскую систему;

Составление глоссария проекта Глоссарий предназначен для описания терминологии предметной области. Он может быть использован как неформальный словарь данных системы.

Ниже приведены термины проекта и их значения.

Клерк магазина Служащий магазина, выполняющий операции по Управляющий магазином Лицо, выполняющее операции по актуализации Продавец Служащий магазина, формирующий по требованию покупателя заказ.

Бухгалтерская система Автоматизированная система бухгалтерского Функциональные требования Информационная система должна обеспечивать:

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

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

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

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

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

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

Удобство использования Пользовательский интерфейс должен быть Windows-совместимым.

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

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

Надежность Система должна быть в работоспособном состоянии 24 ч в день 7 дней в неделю, время простоя - не более 10%. Среднее время безотказной работы должно превышать 300 ч.

Производительность Система должна поддерживать до 10 пользователей, одновременно работающих с базой данных.

Система должна быть способна завершать 80% всех транзакций не более чем через 1 мин.

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

Проектные ограничения Система должна быть интегрирована с существующей системой бухгалтерского учета.

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

продавец – вводит новый заказ и изменяет заказ;

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

бухгалтерская система – выполняет учет операции и их документирование.

Готовая диаграмма Вариантов Использования должна выглядеть, как показано на рис.1.

Рис. 1 Диаграмма Вариантов использования Упражнение 1. Создание начальной версии модели вариантов использования Создание диаграммы Вариантов Использования Дважды щелкнув мышью на Главной диаграмме Вариантов Использования (Main) в браузере, откройте ее.

С помощью кнопки Use Case (Вариант использования) панели инструментов поместите на диаграмму новый вариант использования.

Назовите его "Ввести новый заказ".

Повторив этапы 2 и 3, поместите на диаграмму остальные варианты использования Изменить существующий заказ Напечатать инвентарную опись Обновить инвентарную опись С помощью кнопки Actor (Действующее лицо) панели инструментов поместите на диаграмму новое действующее лицо.

Повторив шаги 5 и 6, поместите на диаграмму остальных действующих лиц:

Создание абстрактного варианта использования Щелкните правой кнопкой мыши на варианте использования "Отклонить заказ" на диаграмме.

В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).

Установите Флажок

Abstract

(Абстрактный), чтобы сделать этот вариант использования абстрактным.

Добавление ассоциаций 1. С помощью кнопки Unidirectional Association (Однонаправленная ассоциация) панели инструментов нарисуйте ассоциацию между действующим лицом Продавец и вариантом использования "Ввести Повторив шаг 1, поместите на диаграмму остальные ассоциации.

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

Щелкните правой кнопкой мыши на новой связи между вариантами использования "Отклонить заказ" и "Оформить заказ".

В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).

В раскрывающемся списке стереотипов введите слово extends (расширение), затем нажмите ОК.

Надпись появится на линии данной связи.

Добавление описаний к вариантам использования Выделите в браузере вариант использования "Ввести новый заказ.

В окне документации введите следующее описание: "Этот вариант использования дает клиенту возможность ввести новый заказ в систему.

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

Добавление описаний к действующему лицу Выделите в браузере действующее лицо Продавец.

В окне документации введите следующее описание: "Продавец — это служащий, старающийся продать товар".

С помощью окна документации добавьте описания к остальным действующим лицам.

Прикрепление файла к варианту использования «Ввести новый заказ»

Создайте документ MS Word введя в него поток событий, как показано на рис.2. Сохраните файл документа с именем Щелкните правой кнопкой мыши на варианте использования В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).

Перейдите на вкладку Files (Файлы).

Щелкните правой кнопкой мыши в белой области и в открывшемся меню выберите пункт Insert File (Вставить файл).

Укажите файл OpenFlow. doc и нажмите на кнопку Open (Открыть), чтобы прикрепить файл к варианту использования.

Рис. 2. Документ Описание потока событий для варианта использования «Ввести новый заказ»

Создайте на диске папку с именем «Регистрация заказов» и сохраните проект под именем «zakaz».

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

Подготовьте документы MS Word:

описание бизнес-процессов.

Свяжите подготовленные документы с диаграммой Main, находящейся в ассоциации Use Case View.

После добавления документов структура проекта в браузере должна выглядеть как на рис. 3.

Рис. 3. Отображение структуры проекта в браузере 1.3. Создание диаграмм Взаимодействия Продолжаем проектирование нашей системы. Теперь наступило время анализа составных частей нашего проекта. Высший приоритет среди пользователей имеет вариант использования "Ввести новый заказ", он же связан с наибольшим риском.

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

Продавец пытается ввести заказ, но товара нет на складе.

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

Упражнение 2. Создание диаграмм Взаимодействия системы регистрации заказов В меню модели выберите пункт Tools > Options (Инструменты >Параметры).

Перейдите на вкладку Diagram (Диаграмма).

Установите флажки Sequence numbering, Collaboration numbering и Focus of control.

Нажмите OK, чтобы выйти из окна параметров.

Создание диаграммы Последовательности Щелкните правой кнопкой мыши на Логическом представлении браузера.

В открывшемся меню выберите пункт New > Sequence Diagram (Создать > Диаграмма Последовательности).

Назовите новую диаграмму Add order (Ввод заказа).

Дважды щелкнув на этой диаграмме, откройте ее.

Добавление на диаграмму действующего лица и объектов Перетащите действующее лицо Salesperson (Продавец) из браузера на диаграмму.

Нажмите кнопку Object (Объект) панели инструментов.

Щелкните мышью в верхней части диаграммы, чтобы поместить туда новый объект.

Назовите объект Order Options Form (Выбор варианта заказа).

Повторив шаги 3 и 4, поместите на диаграмму объекты:

Соотнесение объектов с классами Щелкните правой кнопкой мыши на объекте Order Options Form (Выбор варианта заказа).

В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).

В раскрывающемся списке классов выберите пункт (Создать). Появится окно спецификации классов.

В поле Name введите OrderOptions (Выбор заказа).

Щелкните на кнопке ОК. Вы вернетесь в окно спецификации объекта.

В списке классов выберите класс OrderOptions.

Щелкните на кнопке ОК, чтобы вернуться к диаграмме. Теперь объект называется Order Options Form OrderOptions.

Для соотнесения остальных объектов с классами повторите шаги Класс OrderDetail соотнесите с объектом Order Detail Form После выполнения перечисленных действий диаграмма Последовательности примет вид, приведенный на рис.4.

Рис. 4. Диаграмма Последовательности с объектами, отнесенными к классам Добавление сообщений на диаграмму На панели инструментов нажмите кнопку Object Message (Сообщение объекта).

Проведите мышью от линии жизни действующего лица Salesperson (Продавец) к линии жизни объекта Order Options Form (Выбор варианта заказа).

Выделив сообщение, введите его имя — Create new order (Создать новый заказ).

Повторив шаги 2 и 3, поместите на диаграмму сообщения:

Open form (Открыть форму) — между Order Options Form и Order Enter order number, customer, order items (Ввести номер заказа, заказчика и число заказываемых предметов) — между Salesperson и Save the order (Сохранить заказ) — между Salesperson и Order Detail Form Create new, blank order (Создать пустой заказ) — между Order Detail Form и Order N Set the order number, customer, order items (Ввести номер заказа, заказчика и число заказываемых предметов) — между Order Detail Form и Order N Save the order (Сохранить заказ) — между Order Detail Form и Order N Завершен первый этап работы. Вариант Диаграммы Последовательности представлен на рис.5.

Рис. 5. Вариант Диаграммы Последовательности с сообщениями Теперь нужно позаботиться об управляющих объектах и о взаимодействии с базой данных. Как видно из диаграммы, объект Order Detail Form имеет множество ответственностей, с которыми лучше всего мог бы справиться управляющий объект. Кроме того, новый заказ должен сохранять себя в базе данных сам. Вероятно, эту обязанность лучше было бы переложить на другой объект.

Добавление на диаграмму дополнительных объектов Нажмите кнопку Object панели инструментов.

Щелкните мышью между объектами Order Detail Form и Order N1234, чтобы поместить туда новый объект.

Введите имя объекта — Order Manager (Управляющий заказами).

Нажмите кнопку Object панели инструментов.

Новый объект расположите справа от Order N1234.

Введите его имя — Transaction Manager (Управляющий транзакциями).

7. Соотнесите с классами вновь созданные объекты:

Класс TransactionMrg — с объектом Transaction Manager/ Диаграмма примет вид, как на рис.6.

Рис. 6. Вариант Диаграммы Последовательности с дополнительными объектами Назначение ответственностей объектам Выделите сообщение 5: Create new, blank order (Создать пустой заказ).

Нажав комбинацию клавиш CTRL+ D, удалите это сообщение.

Повторите шаги 1 и 2 для удаления двух последних сообщений:

Set the order number, customer, order items (Вести номер заказа, заказчика и число заказываемых предметов) Save the order (Сохранить заказ) Нажмите кнопку Object Message панели инструментов.

Поместите на диаграмму новое сообщение, расположив его под сообщением 4 между Order Detail Form и Order Manager.

Назовите его Save the order (Сохранить заказ).

Повторите шаги 4 — 6, добавив сообщения с шестого по девятое и назвав их:

• Create new, blank order (Создать новый заказ) — между Order Manager и Order N • Set the order number, customer, order items (Вести номер заказа, заказчика и число заказываемых предметов) — между Order Manager и Order N • Save the order (Сохранить заказ) — между Order Manager и Transaction Manager • Collect order information (Информация о заказе) — между Transaction Manager и Order N Ha панели инструментов нажмите кнопку Message to Self (Сообщение себе).

Щелкните на линии жизни объекта Transaction Manager (Управляющий транзакциями) ниже сообщения 9, добавив туда рефлексивное сообщение.

10. Назовите его Save the order information to the database (Сохранить информацию о заказе в базе данных).

Теперь диаграмма Последовательности должна выглядеть, как показано на рис. 7.

Рис. 7. Диаграмма Последовательности Соотнесение сообщений с операциями Щелкните правой кнопкой мыши на сообщении 1: Create new order (Создать новый заказ).

В открывшемся меню выберите пункт (создать операцию). Появится окно спецификации операции.

В поле Name введите имя операции — Create (Создать).

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

Еще раз щелкните правой кнопкой мыши на сообщении 1.

В открывшемся меню выберите новую операцию Create() Повторите шаги с 1 по 6, чтобы соотнести с операциями все остальные сообщения:

Сообщение 2: Open form (Открыть форму) соотнесите с операцией Сообщение 3: Enter order number, customer, order items (Ввести номер заказа, заказчика и число заказываемых предметов) — с операцией SubmitInfo() Сообщение 4: Save the order (Сохранить заказ) — с операцией Save() Сообщение 5: Save the order (Сохранить заказ) — с операцией SaveOrder() Сообщение 6: Create new, blank order (Создать пустой заказ) — с операцией Created() Сообщение 7: Set the order number, customer, order items (Ввести номер заказа, заказчика и числа заказываемых предметов) — с операцией SetInfo() Сообщение 8: Save the order (Сохранить заказ) — с операцией SaveOrder() Сообщение 9: Collect order information (Информация о заказе) -- с операцией GetInfo() Сообщение 10: Save the order information to the database (Сохранить информацию о заказе в базе данных) — с операцией Commit() После выполнения перечисленных операций ваша диаграмма должна выглядеть, как показано на рис. 8.

Рис. 8. Диаграмма Последовательности с операциями 1.4. Создание кооперативной диаграммы Упражнение 3. Создание кооперативной диаграммы проекта Для создания Кооперативной диаграммы достаточно нажать клавишу F5. Если же вы хотите сами проделать все требуемые операции, выполните следующие действия:

Щелкните правой кнопкой мыши на Логическом представлении в браузере.

В открывшемся меню выберите пункт New > Collaboration Diagram (Создать > Кооперативная диаграмма).

Назовите эту диаграмму Add order (Ввод заказа).

Дважды щелкнув мышью на диаграмме, откройте ее.

Добавление действующего лица и объектов на диаграмму Перетащите действующее лицо Salesperson (Продавец) из браузера на диаграмму.

Нажмите кнопку Object (Объект) панели инструментов.

Щелкните мышью где-нибудь внутри диаграммы, чтобы поместить туда новый объект.

Назовите объект Order Options Form (Выбор варианта заказа).

Повторив шаги 3 и 4, поместите на диаграмму объекты:

Order Detail Form (Форма деталей заказа) Добавление сообщений на диаграмму На панели инструментов нажмите кнопку Object Link (Связь объекта).

Проведите мышью от действующего лица Salesperson (Продавец) к объекту Order Options Form (Выбор варианта заказа).

Повторите шаги 1 и 2, соединив связями следующие объекты:

Действующее лицо Salesperson и объект Order Detail Form Объект Order Options Form и объект Order Detail Form На панели инструментов нажмите кнопку Link Message (Сообщение связи).

Щелкните мышью на связи между Salesperson и Order Options Form.

Выделив сообщение, введите его имя — Create new order (Создать новый заказ).

Повторив шаги с 4 по 6, поместите на диаграмму сообщения:

Open form (Открыть форму) — между Order Options Form и Order Enter order number, customer, order items (Ввести номер заказа, заказчика и число заказываемых предметов) — между Salesperson и Order Detail Form Save the order (Сохранить заказ) — между Salesperson и Order Detail Create new, blank order (Создать пустой заказ) — между Order Detail Form и Order N Set the order number, customer, order items (Ввести номер заказа, заказчика и число заказываемых предметов) — между Order Detail Form и Order N Save the order (Сохранить заказ) — между Order Detail Form и Order N Рис. 9. Кооперативная диаграмма, описывающая ввод нового заказа После завершения первого этапа работы Кооперативная диаграмма, описывающая ввод нового заказа, будет иметь вид, показанный на рис. 9.

Теперь нужно поместить на диаграмму дополнительные элементы, а также рассмотреть ответственности объектов.

Добавление на диаграмму дополнительных объектов Нажмите кнопку Object панели инструментов.

Щелкните мышью где-нибудь на диаграмме, чтобы поместить туда новый объект.

Введите имя объекта — Order Manager (Управляющий заказами).

На панели инструментов нажмите кнопку Object.

Поместите на диаграмму еще один объект.

6. Введите его имя — Transaction Manager (Управляющий транзакциями).

Назначение ответственностей объектам Выделите сообщение 5: Create new. blank order (Создать пустой заказ). Выделяйте слова, а не стрелку.

Нажав комбинацию клавиш CTRL+D, удалите это сообщение.

Set the order number, customer, order items;

Выделите связь между объектами Order Detail Form и Order N1234.

Нажав комбинацию клавиш CTRL+D, удалите эту связь.

На панели инструментов нажмите кнопку Object Link (Связь объекта).

Нарисуйте связь между Order Detail Form и Order Manager.

На панели инструментов нажмите кнопку Object Link (Связь объекта).

Нарисуйте связь между Order Manager и Order N1234.

На панели инструментов нажмите кнопку Object Link (Связь объекта).

Нарисуйте связь между Order N1234 и Transaction Manager.

На панели инструментов нажмите кнопку Object Link (Связь объекта).

Нарисуйте связь между Order Manager и Transaction Manager.

На панели инструментов нажмите кнопку Link Message (Сообщение связи).

Щелкните мышью на связи между объектами Order Detail Form и Order Manager, чтобы ввести новое сообщение.

Назовите это сообщение Save the order (Сохранить заказ).

Повторите шаги 14 — 16, добавив сообщения с шестого по девятое и назвав их:

Create new, blank order (Создать новый заказ) — между Order Set the order number, customer, order items (Ввести номер заказа, заказчика и число заказываемых предметов) — между Order Save the order (Сохранить заказ) — между Order Manager и Transaction Manager;

Collect order information (Информация о заказе) — между Transaction Manager и Order N1234;

На панели инструментов нажмите кнопку Link to Self (Связь с собой).

Щелкнув на объекте Transaction Manager, добавьте к нему рефлексивное сообщение.

На панели инструментов нажмите кнопку Link Message (Сообщение связи).

Щелкните мышью на рефлексивной связи Transaction Manager, чтобы ввести туда сообщение.

Назовите новое сообщение Save the order information to the database (Сохранить информацию о заказе в базе данных).

Кооперативная диаграмма должна иметь вид, представленный на рис.10.

Рис. 10. Кооперативная диаграмма с дополнительными объектами Соотнесение объектов с классами (для случая, если классы созданы ранее при разработке приведенной выше диаграммы Последовательности).

Найдите в браузере класс Order Options.

Перетащите его на объект Order Options Form (Выбор варианта заказа) на диаграмме.

Повторите шаги 1 и 2, соотнеся остальные объекты и соответствующие им классы:

• Класс OrderDetail соотнесите с объектом Order Detail Form • Класс OrderMgr — с объектом Order Manager • Класс Order — с объектом Order N • Класс TransactionMgr — с объектом Transaction Manager Соотнесение объектов с классами (для случая, если диаграмма Последовательности ранее не создавалась или не создавались классы) Щелкните правой кнопкой мыши на объекте Order Options Form.

В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).

В раскрывающемся списке классов выберите пункт (Создать). Появится окно спецификации классов.

В поле имени введите OrderOptions (Выбор заказа).

Щелкните на кнопке ОК. Вы вернетесь в окно спецификации объекта.

В списке классов выберите класс OrderOptions.

Щелкните на кнопке ОК, чтобы вернуться к диаграмме. Теперь объект называется Order Options Form : OrderOptions.

Для соотнесения остальных объектов с классами повторите шаги с 1 по 7.

Класс OrderDetail соотнесите с объектом Order Detail Form Класс OrderMgr — с объектом Order Manager Класс TransactionMgr — с объектом Transaction Manager Полученная к этому моменту Кооперативная диаграмма должна выглядеть, как показано на рис.11.

Рис. 11. Кооперативная диаграмма с именами классов Соотнесение сообщений с операциями (для случая, когда операции были созданы при разработке описанной выше диаграммы Последовательности) Щелкните правой кнопкой мыши на сообщении 1: Create new order (Создать новый заказ).

В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).

В раскрывающемся списке имен укажите имя операции — Create() (Создать).

Повторите шаги 1 — 4 для соотнесения с операциями остальных сообщений:

Сообщение 2: Open form (Открыть форму) соотнесите с операцией Ореn() Сообщение 3: Enter order number, customer, order items (Ввести номер заказа, заказчика и число заказываемых предметов) — с операцией SubmitInfo() Сообщение 4: Save the order (Сохранить заказ) — с операцией Сообщение 5: Save the order (Сохранить заказ) — с операцией SaveOrder() Сообщение 6: Create new, blank order (Создать пустой заказ) - с Сообщение 7: Set the order number, customer, order items (Ввести номер заказа, заказчика и число заказываемых предметов) — с Сообщение 8: Save the order (Сохранить заказ) — с операцией SaveOrder() Сообщение 9: Collect order information (Информация о заказе) - с Сообщение 10: Save the order information to the database (Сохранить информацию о заказе в базе данных) — с операцией Соотнесение сообщений с операциями (для случая, когда диаграмма Последовательности не создавалась) Щелкните правой кнопкой мыши на сообщении 1: Create new order (Создать новый заказ).

В открывшемся меню выберите пункт (создать операцию). Появится окно спецификации операции.

В поле имени введите имя операции — Create() (Создать).

Нажмите на кнопку OK, чтобы закрыть окно спецификации операции и вернуться к диаграмме.

Еще раз щелкните правой кнопкой мыши на сообщении 1.

В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).

В раскрывающемся списке Name (Имя) выберите имя новой операции.

Повторите шаги 1 — 8, чтобы создать новые операции и соотнести с ними остальные сообщения:

Сообщение 2: Open form (Открыть форму) соотнесите с операцией Ореn() Сообщение 3: Enter order number, customer, order items (Ввести номер заказа, заказчика и число заказываемых предметов) — с операцией Submitlnfo() Сообщение 4: Save the order (Сохранить заказ) — с операцией Сообщение 5: Save the order (Сохранить заказ) — с операцией SaveOrder() Сообщение 6: Create new, blank order (Создать пустой заказ) - с Сообщение 7: Set the order number, customer, order items (Ввести номер заказа, заказчика и число заказываемых предметов) — с Сообщение 8: Save the order (Сохранить заказ) — с операцией SaveOrder() Сообщение 9: Collect order information (Информация о заказе) - с Сообщение 10: Save the order information to the database (Сохранить информацию о заказе в базе данных) — с операцией После выполнения всех действий диаграмма должна выглядеть, как показано на рис.12.

Рис. 12. Кооперативная диаграмма с назначенными операциями 1.5. Диаграммы классов Упражнение 4. Создание диаграммы классов В этом упражнении необходимо сгруппировать в пакеты классы, созданные при выполнении предыдущего упражнения. Затем нужно будет построить несколько диаграмм Классов и показать на них классы и пакеты системы.

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

Классы модели Rose целесообразно объединить их в пакеты, с группировкой по стереотипу. Необходимо создать пакеты Entities (Сущности), Boundaries (Границы) и Control (Управление), поместив в них соответствующие классы. Затем для каждого пакета построить диаграммы Классов. Кроме того, на Главной диаграмме показать пакеты, а на диаграмме "Ввод нового заказа" — все классы этого варианта использования.

Создание диаграммы Классов Объедините обнаруженные нами классы в пакеты. Создайте диаграмму Классов для отображения пакетов, диаграммы Классов для представления классов в каждом пакете и диаграмму Классов для представления всех классов варианта использования "Ввести новый заказ".

Настройка В меню модели выберите пункт Tools Options (Инструменты > Параметры).

Перейдите на вкладку Diagram (Диаграмма).

Убедитесь, что установлен флажок Show stereotypes (Показать стереотипы).

Убедитесь, что установлены флажки Show All Attributes (Показать все атрибуты) и Show All Operations (Показать все операции).

Убедитесь, что сброшены флажки Suppress Attributes (Подавить вывод атрибутов) и Suppress Operations (Подавить вывод операций).

Создание пакетов Щелкните правой кнопкой мыши на Логическом представлении браузера.

В открывшемся меню выберите пункт New > Package (Создать Пакет).

Назовите новый пакет Entities (Сущности).

Повторив шаги 1 — 3, создайте пакеты Boundaries (Границы) и Control (Управление).

Браузер должен теперь иметь вид, показанный на рис.13.

Рис. 13. Пакеты разрабатываемой системы Обработка заказов Создание Главной диаграммы Классов Дважды щелкнув мышью на Главной диаграмме Классов, находящейся под Логическим представлением браузера, откройте ее.

Перетащите пакеты Entities Boundaries и Control из браузера на диаграмму. Главная диаграмма Классов должна выглядеть, как показано на рис.14.

Создание диаграммы Классов для сценария "Ввести новый заказ" с отображением всех классов Щелкните правой кнопкой мыши на Логическом представлении браузера.

В открывшемся меню выберите пункт New > Class Diagram (Создать > Диаграмма Классов).

Назовите новую диаграмму Классов Add New Order (Ввод нового заказа).

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

Перетащите из браузера все классы (OrderOptions, OrderDetail, Order, OrderMgr и TransactionMgr). Полученная диаграмма Классов представлена на рис.15.

Добавление стереотипов к классам Щелкните правой кнопкой мыши на классе OrderOptions диаграммы.

В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).

В поле стереотипа введите слово Boundary.

Щелкните правой кнопкой мыши на классе OrderDetail диаграммы.

В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).

В раскрывающемся списке поля стереотипов выделите Boundary.

Повторив шаги 1 — 4, свяжите классы OrderMrg и TransactionMrg со стереотипом Control, а класс Order — со стереотипом Entity.

Диаграмма примет вид, как на рис.16.

Объединение классов в пакеты В браузере перетащите класс OrderOptions на пакет Boundaries.

Перетащите класс OrderDetail на пакет Boundaries.

Перетащите классы OrderMgr и TransactionMgr на пакет Control.

Перетащите класс Order на пакет Entities.

Классы и пакеты в браузере показаны на рис.17.

Добавление диаграмм Классов к пакетам В браузере щелкните правой кнопкой мыши на пакете Boundaries.

В открывшемся меню выберите пункт New > Class Diagram (Создать > Диаграмма Классов).

Введите имя новой диаграммы — Main (Главная).

Дважды щелкнув мышью на этой диаграмме, откройте ее.

Перетащите на нее из браузера классы OrderOptions и OrderDetail.

Главная диаграмма Классов пакета: Boundaries должна теперь выглядеть, как показано на рис.18.

Рис. 17. Классы и пакеты варианта использования «Ввести новый заказ»

Рис. 18.Главная диаграмма классов пакета Boundaries 1. Закройте диаграмму.

Выполняя аналогичные действия, создайте диаграммы для пакетов Entities и Control, присваивая им имена Main (Главная) и поместите на них соответствующие классы. После создания диаграммы будут иметь вид, как на рис.19.

Рис. 19. Диаграммы классов пакетов Entities (а) и Control (в) 1.5.1. Атрибуты и операции Работа с атрибутами Атрибут — это фрагмент информации, связанный с классом. Например, у класса Company (Компания) могут быть атрибуты Name (Название), Address (Адрес) и NumberOfEmployees (Число служащих).

Rose дает возможность добавлять атрибуты (один или несколько) к классам модели.

Выявление атрибутов Существует множество источников, где можно найти атрибуты. В первую очередь следует обратиться к описанию варианта использования. В потоке событий следует искать имена существительные. Некоторые из них будут классами или объектами, другие — действующими лицами, и, наконец, последняя группа — атрибутами. Например, в потоке событий может быть написано: "Пользователь вводит имя сотрудника, его адрес, номер социальной страховки и номер телефона". Это означает, что у класса Сотрудник имеются атрибуты Имя, Адрес, Номер страховки и Номер телефона.

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

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

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

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

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

Добавление атрибута выполняется непосредственно на диаграмме Классов, в браузере или в окне спецификации класса.

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

Для добавления атрибута к классу:

Щелкните правой кнопкой мыши на классе диаграммы Классов.

В открывшемся меню выберите пункт New > Attribute (Создать >Атрибут).

Введите имя атрибута в формате Имя : Тип данных = Начальное значение. Например:

Address : String IDNumber : Integer = Чтобы еще добавить атрибуты, нажмите клавишу Enter и введите новые атрибуты непосредственно на диаграмму Классов.

Щелкните правой кнопкой мыши на классе в браузере.

В открывшемся меню выберите пункт New > Attribute (Создать >Атрибут).

Под классом в браузере появится новый атрибут Name (имя).

Введите имя этого атрибута. Тип данных и значение атрибута по умолчанию не могут быть назначены в браузере, их можно ввести на диаграмме Классов.

Откройте окно спецификации класса данного атрибута.

Перейдите на вкладку Attributes (Атрибуты). Если у класса уже имеются атрибуты, они будут перечислены на этой вкладке.

Щелкните правой кнопкой мыши где-нибудь внутри области атрибутов.

В открывшемся меню выберите пункт Insert (Вставить).

Введите имя нового атрибута.

6. Выполните двойной щелчок на имени атрибута в списке – откроется окно спецификации атрибута (рис. 20).

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

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

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

Для назначения стереотипа атрибуту:

Щелкните правой кнопкой мыши на атрибуте в браузере.

В открывшемся меню выберите пункт Open Specification (Открыть спецификацию). Вы увидите окно спецификации атрибута класса.

Укажите стереотип в раскрывающемся списке или введите новый стереотип.

Для того чтобы отредактировать имя атрибута, щелкните на нем один раз. Перед именем появятся символы "« »".

3. Введите внутри угловых скобок имя стереотипа.

После выполнения всех операций на диаграмме в нотации класса отобразится стереотип (рис. 21).

Рис. 21. Отображение атрибутов и стереотипа класса Видимость атрибутов Так как атрибуты содержатся внутри класса, они скрыты от других классов. В связи с этим нужно указать, какие классы имеют право читать и изменять атрибуты. Это свойство называется видимостью атрибута (attribute visibility).

Допустимы четыре значения этого параметра:

Public (Общий, открытый). Атрибут виден всем остальным классам.

Любой класс может просмотреть или изменить значение атрибута. В соответствии с нотацией UML общему атрибуту на диаграмме предшествует знак "+".

Private (Закрытый, секретный). Атрибут не виден никаким другим классам. В соответствии с нотацией UML закрытый атрибут обозначается знаком -.

Protected (Защищенный). Атрибут доступен только самому классу и его потомкам. Нотация UML для защищенного атрибута — знак #.

Package or Implementation (Пакетный). Атрибут является общим, но только в пределах своего пакета. Данный тип видимости не обозначается никаким специальным значком.

В среде Rose поддерживаются два набора нотаций видимости. Первый — это нотация UML (+, -, #) для общих, закрытых и защищенных атрибутов соответственно. Вторая включает в себя четыре значка Rose, показанных в таблице 6.

Таблица 1. Пиктограммы видимости Для задания значения видимости атрибута:

Щелкните правой кнопкой мыши на атрибуте в браузере.

В открывшемся меню выберите пункт Open Specification (Открыть спецификацию). Появится окно спецификации атрибута класса.

В поле Export Control (Контроль экспорта) выберите видимость атрибута: Public, Protected, Private или Implementation. IIo умолчанию видимость всех атрибутов установлена в Private.

Выделите атрибут па диаграмме Классов.

Если для обозначения видимости вы используете нотацию UML, щелкните мышью на значке "+", или "#" рядом с атрибутом. В появившемся списке выберите значение видимости.

Если для обозначения видимости используется нотация Rose, щелкните мышью на пиктограмме видимости слева от имени атрибута- появится окно с пиктограммами видимости (рис. 22) В списке значков выберите требуемую видимость.

Изменить нотацию для обозначения видимости можно следующим образом:

В меню модели выберите пункт Tools > Options (Инструменты > Параметры).

Перейдите на вкладку Notation (Нотация).

Установите флажок Visibility as icons (Отображать пиктограммы) для использования нотации Rose или сбросьте его для применения нотации UML. На рис. 23 приведен пример изображения видимости в нотации UML (a) и в нотации Rose (в).

Задание метода локализации атрибута Метод локализации атрибута (containment) показывает, каким образом атрибут хранится в классе. Возможны три значения этого параметра:

By value (По значению). Предполагается, что атрибут содержится внутри класса. Например, если атрибут относится к типу string, эта строка будет содержаться внутри определения класса.

By reference (По ссылке). Предполагается, что атрибут локализован вне класса, но класс содержит указатель на него.

Unspecified (Не определен). Метод локализации атрибута еще не определен. В этом случае при генерации кода по умолчанию применяется значение By value этого параметра.

Задать метод локализации атрибута можно следующим образом:

Щелкните правой кнопкой мыши на атрибуте в браузере.

В открывшемся меню выберите пункт Open Specification (Открыть спецификацию) или ОреnStandard Specification (Открыть стандартную спецификацию. Появится окно спецификации атрибута класса.

Перейдите на вкладку Detail (Подробно).

Укажите значение метода локализации атрибута (containment): By value, By reference или Unspecified. Значение этого параметра по умолчанию — Unspecified.

Определение статичного атрибута Статичный атрибут (static) — это такой атрибут, который используется всеми экземплярами класса. На языке UML статичный атрибут помечают символом $.

Сделать атрибут статичным можно следующим образом:

Щелкните правой кнопкой мыши на атрибуте в браузере.

В открывшемся меню выберите пункт Open Specification (Открыть спецификацию) или Open Standard Specification (Открыть стандартную спецификацию).Появится окно спецификации атрибута класса.

Перейдите на вкладку Detail (Подробно).

Установите флажок Static, чтобы сделать атрибут статичным. Перед именем атрибута на диаграмме Классов появится символ "$".

Определение производного атрибута Производным (derived) называется атрибут, созданный из одного или нескольких других атрибутов класса. Например, класс Treangl (Прямоугольный треугольник) может иметь атрибуты Width (Ширина) и Height (Высота).

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

В UML производные атрибуты помечают символом "/".

Указать, что атрибут является производным можно следующим образом:

Щелкните правой кнопкой мыши на атрибуте в браузере.

В открывшемся меню выберите пункт Open Specification (Открыть спецификацию) или Open Standard Specification (Открыть стандартную спецификацию). Появится окно спецификации атрибута класса.

Перейдите на вкладку Detail (Подробно).

Установите флажок Derived (Производный). Перед именем атрибута на диаграмме Классов появится символ "/" (рис. 24).

Рис. 24. Нотация класса с производным атрибутом Area 1.5.2. Работа с операциями Операцией называется связанное с классом поведение. Операция состоит из трех частей: имени, параметров и типа возвращаемого значения. Параметры — это аргументы, получаемые операцией "на входе". Тип возвращаемого значения относится к результату действия операции. На диаграмме Классов можно показывать как имена операций, так и их параметры и типы возвращаемого значения.

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

В языке UML операции имеют следующую нотацию:

Имя операции (аргумент1 : тип данных аргумента, аргумент2 : тип данных аргумента2,...): тип возвращаемого значения.

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

Если у класса есть только одна или две операции, то его следует объединить с каким-нибудь другим классом.

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

Операции реализации Операции реализации (implementor operations) реализуют некоторую бизнес-функциональность. Такие операции можно найти, исследуя диаграммы Взаимодействия. Диаграммы этого типа фокусируются на бизнес- функциональности, и каждое сообщение диаграммы скорее всего можно соотнести с операцией реализации.

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

Операции управления Операции управления (manager operations) управляют созданием и разрушением объектов. В эту категорию попадают конструкторы и деструкторы классов.

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

Операции доступа Атрибуты обычно бывают закрытыми или защищенными. Тем не менее другие классы иногда должны просматривать или изменять их значения. Для этого предназначены операции доступа (access operations).

Пусть, например, у нас имеется атрибут Salary класса Employee. Нам бы не хотелось, чтобы другие классы могли изменять этот атрибут.

Но мы добавляем к классу Employee две операции доступа: GetSalary и SetSalary. К первой из них, являющейся общей, могут обращаться остальные классы. Она получает значение атрибута Salary и возвращает его вызвавшему ее классу. Операция SetSalary также является общей, она помогает вызвавшему ее классу установить новое значение атрибута Salary. Эта операция может содержать любые правила и условия проверки, которые необходимо выполнить, прежде чем изменить атрибут.

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

Создание операций Get и Set (получения и изменения значения) для каждого атрибута класса является стандартом.

Как и в случае операций управления, операции доступа не нужно вводить вручную. При генерации кода Rose автоматически создаст операции Get и Set для каждого атрибута класса.

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

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

Часто такие операции являются рефлексивными сообщениями.

Для идентификации операций выполните следующие действия:

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

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

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

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

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

Для добавления операции к классу:

Щелкните правой кнопкой мыши на классе диаграммы Классов.

В открывшемся меню выберите пункт New > Operation (Создать > Операция).

Имя(Аргумент1 : Тип данных аргумента) : Тип возвращаемого значения.

Например:

Add(X : Integer, Y : Integer) : Integer Print(EmployeeID : Long) : Boolean Delete() : Long Если вы хотите еще добавить операции, нажмите клавишу Enter и введите новые операции непосредственно на диаграмму Классов.

Щелкните правой кнопкой мыши на классе в браузере.

В открывшемся меню выберите пункт New > Operation (Создать > Операция).

Под названием этого класса в браузере появится новая операция орname. Введите ее имя. В браузере нельзя указывать аргументы операции и тип возвращаемого значения, как и в случае атрибутов, это делается на диаграмме Классов.

Откройте окно спецификации класса данной операции (или стандартное окно спецификации в Rose).

Перейдите на вкладку Operations (Операции). Здесь будут перечислены уже имеющиеся операции класса.

Щелкните правой кнопкой мыши где-нибудь внутри области операций.

В открывшемся меню выберите пункт Insert (Вставить).

Введите имя новой операции в колонке Operation.

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

Для добавления к операции текстового описания:

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

Введите текстовое описание в окне документации.

Щелкните правой кнопкой мыши на операции в браузере.

В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).

В области DocComment окна спецификации операции введите комментарии к операции.

Откройте окно спецификации класса данной операции (или стандартное окно спецификации в Rose).

Перейдите на вкладку Operations (Операции).

Введите описание в окне документации.

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

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

Если требуется определить, какие диаграммы используют операцию:

Откройте окно спецификации класса этой операции (или стандартное окно спецификации в Rose).

В нижней части окна нажмите кнопку Browse (Обзор) и выберите Show Usage (Показать использование).

Для удаления операции класса:

Щелкните правой кнопкой мыши на операции в браузере.

В открывшемся меню выберите пункт Delete (Удалить).

Выделите операцию на диаграмме Классов.

С помощью клавиши Backspace сотрите имя операции и ее сигнатуру.

Щелкните мышью где-нибудь в другом месте диаграммы.

Rose подтвердит удаление перед завершением этой процедуры.

Откройте окно спецификации класса данной операции (или стандартное окно спецификации в Rose).

Перейдите на вкладку Operations (Операции).

Щелкните правой кнопкой на удаляемой операции.

В открывшемся меню выберите пункт Delete (Удалить). Подтвердите удаление перед завершением этой процедуры.

1.5.4. Спецификации операции В спецификациях операции можно задать ее параметры, тип возвращаемого значения и видимость.

Все спецификации операции можно просмотреть и изменить в окне спецификации операции, показанном на рис. 25.

Открыть спецификацию операции можно следующим образом:

Щелкните правой кнопкой мыши на операции в браузере.

В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).

Откройте окно спецификации класса операции.

Перейдите на вкладку Operations (Операции).

Дважды щелкните мышью на соответствующей операции.

Задание возвращаемого класса операции Возвращаемым классом (return class) операции называется тип данных ее результата. Допустим, что есть операция Add, принимающая два параметра — строки X и Y. Операция преобразует строки X и Y в значения типа integer, складывает их и возвращает целочисленный результат. Возвращаемым классом операции Add будет integer.

При определении возвращаемого класса можно использовать либо встроенные типы языка программирования (такие, как string, char или integer) либо определенные в вашей модели классы. Для задания возвращаемого класса операции:

Щелкните правой кнопкой мыши на операции в браузере.

Откройте окно спецификации класса этой операции (или стандартное окно спецификации в Rose).

Укажите возвращаемый класс в раскрывающемся списке или введите свой тип.

Выделите операцию на диаграмме Классов.

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

26.

Рис. 26. Нотация класса с возвращаемым значением Назначение стереотипа для операции Как и в случае других элементов модели, для классификации операций создаются их стереотипы. Существуют четыре наиболее распространенных стереотипа операций:

Implementor (Реализация). Операции, реализующие некоторую бизнеслогику.

Manager (Управляющая). Конструкторы, деструкторы и операции управления памятью.

Access (Доступ). Операции, позволяющие другим классам просматривать или редактировать атрибуты данного класса. Как правило, такие операции называют Get или Set.

Helper (Вспомогательная). Закрытые или защищенные операции, которые используются классом, но не видны другим классам.

Назначение операциям стереотипов не требуется для генерации кода.

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

Для назначения стереотипа операции:

Щелкните правой кнопкой мыши на операции в браузере.

Откройте окно спецификации класса этой операции (или стандартное окно спецификации в Rose).

3. В соответствующем раскрывающемся списке укажите стереотип или введите новый.

Выделите операцию в браузере.

Чтобы отредактировать имя операции, один раз щелкните на ней мышью. Перед именем появятся символы "« »".

3. Внутри этих скобок введите стереотип.

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

Public (Общая). Операция доступна всем остальным классам.

Любой класс может запросить ее выполнение.

Private (Закрытая). Операция не доступна ни одному другому Protected (Защищенная). Доступ к операции разрешен только для Package or Implementation (Пакетная). Операция доступна только Операции могут быть общими, закрытыми, защищенными или пакетными.

Назначить операции видимость можно следующим образом:

Щелкните правой кнопкой мыши на операции в браузере.

В открывшемся меню выберите пункт Open Specification (Открыть спецификацию) или Open Standard Specification (Открыть стандартную спецификацию) в Rose. Появится окно спецификации операции.

Установите переключатель Export Control в нужное значение:

Public, Protected, Private или Implementation. По умолчанию видимость всех операций установлена в Public.

Выделите операцию на диаграмме классов.

Если вы работаете с нотацией UML, щелкните один раз на символе"+",или "#" рядом с операцией. В появившемся списке значков Rose выберите нужную видимость.

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

Добавление и удаление аргументов к операции Аргументы, или параметры, операции — это получаемые ею входные данные. Например, операция Add может принимать два аргумента, X и Y, и складывать их.

Для каждого аргумента должны быть заданы имя и тип данных.

На диаграмме Классов аргументы и их типы указываются в скобках после имени операции (рис. 27).

Рис. 27. Изображение аргументов операций класса на диаграмме Для аргументов можно задавать также их значения по умолчанию. В таком случае нотация UML будет иметь вид:

Имя операции (аргумент1 : тип данных аргумента1 = значение по умолчанию аргумента1) : тип возвращаемого значения операции При генерации кода Rose будет генерировать имя операции, ее аргументы, их типы данных и значения по умолчанию, а также тип возвращаемого значения. Если к операции было добавлено текстовое описание, Rose создаст комментарии.

Для добавления аргумента к операции:

Откройте окно спецификации операции (или стандартное окно спецификации в Rose).

Перейдите на вкладку Detail (Подробно).

Щелкните правой кнопкой мыши в области аргументов. В открывшемся меню выберите Insert (Вставить).

Щелкните мышью на колонке Туре (Тип) и введите тип данных аргумента.

При необходимости щелкните на колонке Default (По умолчанию) и введите значение аргумента по умолчанию.

Для удаления аргумента операции:

1. Откройте окно спецификации операции (или стандартное окно спецификации в Rose).

2. Перейдите на вкладку Detail (Подробно).

В списке аргументов щелкните правой кнопкой мыши на удаляемом аргументе. В открывшемся меню выберите пункт Delete (Удалить).

Определение протокола операции Протокол операции описывает, какие операции и в каком порядке может выполнять клиент над объектом. Например, если операцию А нельзя запускать до завершения операции Б, это можно отметить в поле протокола операции А.

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

Для задания протокола операции:

Откройте окно спецификации операции (или стандартное окно спецификации в Rose).

Перейдите на вкладку Detail (Подробно).

Введите протокол в поле Protocol.

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

Для ввода уточнения операции:

Откройте окно спецификации операции (или стандартное окно спецификации в Rose).

Перейдите на вкладку Detail (Подробно).

Введите уточнения в поле Qualification.

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

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

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

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

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

Synchronous (Синхронная). Предполагается, что операция будет правильно выполняться при наличии нескольких потоков. После обращения операция будет выполняться в одном потоке управления вплоть до своего завершения.

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

Сведения о параллелизме операции появятся в сгенерированном коде в качестве комментариев. Для задания параллелизма операции:

Откройте окно спецификации операции (или стандартное окно спецификации в Rose).

Перейдите на вкладку Detail (Подробно) (рис. 28).

Установите переключатель Concurrency (Параллелизм) в требуемое значение.

Задание предусловий, постусловий и семантики операции Предусловия — это такие условия, которые должны быть выполнены перед запуском операции. Любые предусловия операции можно ввести на вкладке Preconditions (Предусловия) окна спецификации операции.

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

Для задания предусловий операции:

Откройте окно спецификации операции (или стандартное окно спецификации в Rose).

Перейдите на вкладку Preconditions.

Введите предусловия в поле Preconditions.

Постусловиями называются такие условия, которые должны всегда выполняться после завершения работы операции. Постусловия задаются на вкладке Postconditions (Постусловия) окна спецификации операции.

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

Для описания семантики операции:

Откройте окно спецификации операции (или стандартное окно спецификации в Rose).

Перейдите на вкладку Semantics (Семантика).

В поле Semantics введите семантику операции.

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

Прикрепить к операции файл можно следующим образом:

Откройте окно спецификации операции (или стандартное окно спецификации в Rose).

Щелкните правой кнопкой мыши где-нибудь внутри белого поля вкладки Files (Файлы).

В открывшемся меню выберите пункт Insert File (Вставить файл).

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

Для завершения процедуры нажмите на кнопку' Open (Открыть).

Щелкните правой кнопкой мыши на операции в браузере.

В открывшемся меню выберите пункт New > File (Создать > Файл).

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

Для завершения процедуры нажмите на кнопку Open (Открыть).

Для прикрепления к операции ссылки Интернета:

Откройте окно спецификации операции (или стандартное окно спецификации в Rose).

Щелкните правой кнопкой мыши где-нибудь внутри белого поля вкладки Files (Файлы).

В открывшемся меню выберите пункт Insert URL (Вставить ссылку).

Щелкните правой кнопкой мыши на операции в браузере.

В открывшемся меню выберите пункт New URL (Создать > Ссылка).

Если нужно открыть прикрепленный файл:

1. Откройте окно спецификации операции (или стандартное окно спецификации в Rose).

2. Дважды щелкните мышью на имени файла во вкладке Files (Файлы).

ИЛИ Найдите в браузере файл (он находится под именем соответствующей операции).

Дважды щелкните мышью на имени файла. ИЛИ Откройте окно спецификации операции (или стандартное окно спецификации в Rose).

Щелкните правой кнопкой мыши на файле во вкладке Files (Файлы).

В открывшемся меню выберите пункт Open File/URL (Открыть файл/ссылку).

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

Щелкните правой кнопкой мыши на имени файла.

В открывшемся меню выберите пункт Open (Открыть).

Открыть прикрепленную ссылку на Web-страницу можно следующим образом:

Откройте окно спецификации операции (или стандартное окно спецификации в Rose).

Дважды щелкните мышью на ссылке во вкладке Files (Файлы).

ИЛИ Найдите ссылку в браузере. Она располагается под именем соответствующей операции.

Дважды щелкните мышью на имени ссылки.

Откройте окно спецификации операции (или стандартное окно спецификации в Rose).

Щелкните правой кнопкой мыши на ссылке во вкладке Files (Файлы).

В открывшемся меню выберите пункт Open File/URL (Открыть файл/ссылку).

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

Щелкните правой кнопкой мыши на ссылке.

В открывшемся меню выберите пункт Open (Открыть).

1.5.5. Изображение атрибутов и операций на диаграммах Классов Язык UML позволяет изображать на диаграммах Классов как все детали, так и только те, которые нужны. В Rose можно настроить диаграммы Классов так, чтобы:

Показать все атрибуты и операции;

Показать некоторые атрибуты или операции;

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

Показать или скрыть стереотипы атрибутов и операций.

В типичном проекте создается большое количество диаграмм Классов.

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

Значения параметров по умолчанию задаются в окне, открываемом при выборе пункта меню Tools > Options (Инструменты > Параметры).

Изображение атрибутов Для класса на диаграмме можно:

Показать только выбранные вами атрибуты;

Подавить вывод атрибутов;

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

Рис. 29. Скрытие и подавление атрибутов класса Существует два способа изменения параметров представления атрибутов на диаграмме. Можно установить нужные вам значения для каждого класса индивидуально либо изменить значения требуемых параметров по умолчанию до начала создания диаграммы Классов. Внесенные таким образом изменения влияют только на вновь создаваемые диаграммы.

Для вывода всех атрибутов класса:

Щелкните правой кнопкой мыши. Откроется контекстнозависимое меню.

Выберите пункт Options >- Show All Attributes (Параметры > Показать все атрибуты).

В меню модели выберите пункт Edit > Diagram Object Properties > Show All Attributes (Правка > Свойства объектов диаграммы > Показать все атрибуты).

Если нужно показать только избранные атрибуты класса:

1. Выделите класс на диаграмме.

Щелкните правой кнопкой мыши на классе. Откроется контекстнозависимое меню.

Выберите пункт Options Select Compartment Item.

В окне Edit Compartment укажите нужные вам атрибуты.

R меню модели выберите пункт Edit Compartment.

В окне Edit Compartment укажите нужные вам атрибуты.

Для подавления вывода всех атрибутов класса диаграммы:

Щелкните правой кнопкой мыши на классе.

В контекстно-зависимом меню выберите пункт Options > Suppress Attributes (Параметры > Подавить атрибуты).

В меню модели выберите пункт Edit > Diagram Object Properties > Suppress Attributes (Правка > Свойства объектов диаграммы > Подавить атрибуты).

Для изменения принятого по умолчанию вида атрибута:

В меню модели выберите пункт Tools >> Options (Инструменты > Параметры).

Перейдите на вкладку Diagram (Диаграмма).

Для установки значений параметров отображения атрибутов по умолчанию воспользуйтесь флажками Suppress attributes (Подавить атрибуты) и Show all attributes (Показать все атрибуты).

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

Постановка задачи Заполнить созданную ранее Диаграмму Классов для варианта использования "Ввести новый заказ. В качестве языка программирования необходимо выбрать C++, что позволит добавить к классам параметры операций, типы данных и типы возвращаемых значений.

Для определения атрибутов следует обратиться к потоку событий. К классу Order диаграммы Классов нужно добавить атрибуты Order Number (Номер заказа) и Customer Name (Имя клиента). Так как в одном заказе можно указать большое количество товаров и у каждого из них имеются свои собственные данные и поведение, целесообразно моделировать товары как самостоятельные классы, а не как атрибуты класса Order.

Добавление атрибутов и операций Добавим атрибуты и операции к классам диаграммы Классов "Ввод нового заказа". При этом используем специфические для языка особенности.

Установим параметры так, чтобы показывать все атрибуты, все операции и их сигнатуры. Применим нотацию UML.

Последовательность выполнения упражнения Настройка В меню модели выберите пункт Tools > Options (Инструменты > Параметры).

Убедитесь, что флажок Show visibility (Показать видимость) установлен.

Убедитесь, что флажок Show stereotypes (Показать стереотипы) установлен.

Убедитесь, что флажок Show operation signatures (Показать сигнатуры операций) установлен.

Убедитесь, что флажки Show all attributes (Показать все атрибуты) и Show all operations (Показать все операции) установлены.

Убедитесь, что флажки Suppress attributes (Подавить атрибуты) и Suppress operations (Подавить операции) сброшены.

Перейдите на вкладку Notation (Нотация).

Убедитесь, что флажок Visibility as icons (Отображать пиктограммы) сброшен.

Добавление нового класса Найдите в браузере диаграмму Классов варианта использования "Ввести новый заказ" (Add New Order).

Дважды щелкнув мышью на диаграмме, откройте ее.

Нажмите кнопку Class панели инструментов.

Щелкните мышью внутри диаграммы, чтобы поместить туда новый класс.

Назначьте этому классу стереотип Entity.

В браузере перетащите класс в пакет Entities.

Добавление атрибутов Щелкните правой кнопкой мыши на классе Order.

В открывшемся меню выберите пункт New Attribute (Создать атрибут).

Введите новый атрибут: OrderNumber : Integer Введите следующий атрибут: CustomerName : String.

OrderDate : Date OrderFillDate : Date Щелкните правой кнопкой мыши на классе OrderItem.

В открывшемся меню выберите пункт New Attribute (Создать атрибут).

Введите новый атрибут: ItemID : Integer.

Введите следующий атрибут: ItemDescription : String.

Добавление операций к классу OrderItem Щелкните правой кнопкой мыши на классе OrderItem.

В открывшемся меню выберите пункт New Operation (Создать операцию).

Введите новую операцию: Create.

Введите следующую операцию: SetInfo Подробное описание операций с помощью диаграммы Классов Щелкнув мышью на классе Order, выделите его.

Щелкните на этом классе еще раз, чтобы переместить курсор внутрь.

Отредактируйте операцию Create() чтобы она выглядела следующим образом: Create() : Boolean Отредактируйте операцию SetInfo():

Setlnfo(OrderNum) : Integer, Customer : String, OrderDate : Date, FillDate :

(Date) : Boolean Отредактируйте операцию GetInfo() - GetInfo() : String Подробное описание операций с помощью браузера Найдите в браузере класс OrderItem.

Раскройте этот класс, щелкнув на значке "+" рядом с ним. В браузере появятся атрибуты и операции класса.

Дважды щелкнув мышью на операции GetInfo() откройте окно ее спецификации (рис. 30).

В раскрывающемся списке Return class (Возвращаемый класс) укажите String.

Щелкнув мышью на кнопке ОК, закройте окно спецификации операции.

Дважды щелкните в браузере на операции SetInfo() класса OrderItem, чтобы открыть окно ее спецификации.

В раскрывающемся списке Return class укажите Boolean.

Перейдите на вкладку Detail (Подробно).

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

В открывшемся меню выберите пункт Insert (Вставить). Rose добавит аргумент под названием argname.

Щелкнув один раз на этом слове, выделите его и измените имя аргумента на ID (рис. 31).

Щелкните на колонке Туре (Тип). В раскрывающемся списке типов выберите Integer.

Щелкните на колонке Default (По умолчанию), чтобы добавить значение аргумента по умолчанию. Введите число 0.

Нажав на кнопку ОК, закройте окно спецификации операции.

Дважды щелкните на операции Create() класса Orderltem, чтобы открыть окно ее спецификации.

В раскрывающемся списке Return class укажите Boolean.

Нажав на кнопку ОК, закройте окно спецификации операции.

Подробное описание операций Используя браузер или диаграмму Классов, введите следующие сигнатуры операций класса OrderDetail:

Open() : Boolean Submitlnfo(): Boolean Save() : Boolean Используя браузер или диаграмму Классов, введите сигнатуру операций класса OrderOptions:

Create() : Boolean Используя браузер или диаграмму Классов, введите сигнатуру операций класса OrderMgr:

SaveOrder(OrderID : Integer) : Boolean Используя браузер или диаграмму Классов, введите сигнатуры операций класса TransactionMgr:

SaveOrder(OrderlD : Integer) : Boolean Упражнение 6. Создание связей Продолжим выполнение нашего учебного проекта. Создадим связи между классами. Добавим связи к классам, принимающим участие в варианте использования "Ввести новый заказ".

Этапы выполнения упражнения Найдите в браузере диаграмму Классов "Ввод нового заказа".

Дважды щелкнув на диаграмме, откройте ее.

Проверьте, имеется ли в панели инструментов диаграммы кнопка Unidirectional Association (Однонаправленная ассоциация). Если ее нет, продолжите настройку, выполнив шаги 4 и 5. Если есть, приступайте к выполнению самого упражнения.

Щелкните правой кнопкой мыши на панели инструментов диаграммы и в открывшемся меню выберите пункт Customize (Настроить).

Добавьте на панель кнопку Creates A Unidirectional Association (Создать однонаправленную ассоциацию).

Добавление ассоциаций Нажмите кнопку Unidirectional Association панели инструментов.

Проведите ассоциацию от класса OrderOptions к классу OrderDetail.

От класса OrderDetail к классу OrderMrg От класса OrderMrg к классу TransactionMrg От класса TransactionMrg к классу Order От класса TransactionMgr к классу OrderItem Щелкните правой кнопкой мыши на однонаправленной ассоциации между классами OrderOptions и OrderDetail со стороны класса OrderOptions.

В открывшемся меню выберите пункт Multiplicity > Zero or One (Множественность Нуль или один) (рис.131).

Щелкните правой кнопкой мыши на другом конце однонаправленной ассоциации.

В открывшемся меню выберите пункт Multiplicity > Zero or One (Множественность Нуль или один).

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

Рис. 33. Ассоциации сценария «Ввести новый заказ»

Упражнение 7. Создание диаграммы состояний для класса В этом упражнении создается диаграмма Состояний для класса Order создаваемого проекта.

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

Для того чтобы понять, как писать код для класса Order необходимо создать диаграмму Состояний для этого класса.

Создание диаграммы Состояний Постройте диаграмму Состояний для класса Order, подобную приведенной на рис. 34.

Последовательность выполнения упражнения Создание диаграммы Щелкните на классе правой кнопкой мыши и в открывшемся меню укажите пункт Open State Diagram (Открыть диаграмму состояний).

3. Присвойте созданной диаграмме имя State DiagramOrder Добавление начального и конечного состояний Нажмите кнопку Start State (Начальное состояние) панели инструментов.

Поместите это состояние на диаграмму.

Нажмите кнопку End State (Конечное состояние) панели инструментов.

4. Поместите это состояние на диаграмму.

Добавление суперсостояния Нажмите кнопку State (Состояние) панели инструментов.

Поместите это состояние на диаграмму.

Добавление оставшихся состояний На панели инструментов нажмите кнопку State (Состояние).

Поместите состояние на диаграмму.

Назовите состояние Cancelled (Отменен).

На панели инструментов нажмите кнопку State (Состояние).

Поместите состояние на диаграмму.

Назовите состояние Filled (Выполнен).

На панели инструментов нажмите кнопку State (Состояние).

Поместите состояние на диаграмму внутрь суперсостояния.

Назовите состояние Initialization (Инициализация).

На панели инструментов нажмите кнопку State (Состояние).

Поместите состояние на диаграмму внутрь суперсостояния.

Назовите состояние Pending (Выполнение заказа приостановлено).

Описание состояний Дважды щелкните мышью на состоянии Initialization (Инициализация).

Перейдите на вкладку Detail (Подробно).

Щелкните правой кнопкой мыши в окне Actions (Действия).

В открывшемся меню выберите пункт Insert (Вставить).

Дважды щелкните мышью на новом действии.

Назовите его Store order date (Сохранить дату заказа).

Убедитесь, что в окне When (Когда) указан пункт On Entry (На входе).

Повторив шаги 3 — 7, добавьте следующие действия:

Collect customer info (Собрать клиентскую информацию), в окне When укажите Entry until Exit (Выполнять до завершения) Add order items (Добавить к заказу новые позиции), укажите Entry until Exit (Выполнять до завершения) Нажмите два раза на ОК, чтобы закрыть спецификацию.

Дважды щелкните мышью на состоянии Cancelled (Отменен).

Повторив шаги 2 — 7, добавьте действие:

Store cancellation data (Сохранить дату отмены), укажите On Exit Нажмите два раза на ОК, чтобы закрыть спецификацию.

Дважды щелкните мышью на состоянии Filled (Выполнен).

Повторив шаги 2 — 7, добавьте действие:

Bill customer (Выписать счет), укажите Entry until Exit Нажмите два раза на ОК, чтобы закрыть спецификацию.

Добавление переходов Нажмите кнопку Transition (Переход) панели инструментов.

Щелкните мышью на начальном состоянии.

Проведите линию перехода к состоянию Initialization (Инициализация).

Повторив шаги с первого по третий, создайте следующие переходы:

От состояния Initialization (Инициализация) к состоянию Pending (Выполнение заказа приостановлено) От состояния Pending (Выполнение заказа приостановлено) к состоянию Filled (Выполнен) От суперсостояния к состоянию Cancelled (Отменен) От состояния Cancelled (Отменен) к конечному состоянию От состояния Filled (Выполнен) к конечному состоянию На панели инструментов нажмите кнопку Transition to Self (Переход к себе).

Щелкните мышью на состоянии Pending (Выполнение заказа приостановлено).

Описание переходов Дважды щелкнув мышью на переходе от состояния Initialization (Инициализация) к состоянию Pending (Выполнение заказа приостановлено), откройте окно спецификации перехода.

В поле Event (Событие) введите фразу Finalize order (Выполнить заказ).

Щелкнув на кнопке ОК, закройте окно спецификации.

Повторив шаги с первого по третий, добавьте событие Cancel Order (Отменить заказ) к переходу между суперсостоянием и состоянием Cancelled (Отменен).

Дважды щелкнув мышью на переходе от состояния Pending (Выполнение заказа приостановлено) к со стоянию Filled (Выполнен), откройте окно его спецификации.

В поле Event (Событие) введите фразу Add order item (Добавить к заказу новую позицию).

Перейдите на вкладку Detail (Подробно).

В поле Condition (Условие) введите No unfilled items remaining (He осталось незаполненных позиций).

Щелкнув на кнопке ОК, закройте окно спецификации.

Дважды щелкните мышью на рефлексивном переходе (Transition to Self) состояния Pending (Выполнение заказа приостановлено).

В поле Event (Событие) введите фразу Add order item (Добавить к заказу новую позицию).

Перейдите на вкладку Detail (Подробно).

В поле Condition (Условие) введите Unfilled items remaining (Остаются незаполненные позиции).

Щелкнув на кнопке ОК, закройте окно спецификации.

1.6. Диаграммы компонентов Продолжим разработку проекта системы обработки заказов. На данный момент уже определены все классы, требуемые для варианта использования "Ввести новый заказ". По мере реализации других вариантов использования на диаграмму следует добавлять новые компоненты.

Упражнение 8. Создание диаграммы компонентов Постановка задачи Построить диаграммы Компонентов. В качестве языка программирования выбрать C++.

Этапы выполнения упражнения Создание пакетов компонентов Щелкните правой кнопкой мыши на представлении компонентов в браузере.

В открывшемся меню выберите пункт New > Package (Создать > Пакет).

Назовите пакет Entities (Сущности).

Повторив шаги с первого по третий, создайте пакеты Boundaries (Границы) и Control (Управление).

Добавление пакетов на Главную диаграмму Компонентов Откройте Главную диаграмму Компонентов, дважды щелкнув на ней мышью.

Перетащите пакеты Entities, Boundary и Control из браузера на Главную диаграмму.

Отображение зависимостей между пакетами Нажмите кнопку Dependency (Зависимость) панели инструментов.

Щелкните мышью на пакете Boundaries Главной диаграммы Компонентов.

Проведите линию зависимости к пакету Control.

Повторив шаги 1 — 3, проведите зависимость от пакета Control к пакету Entities.

В окончательном виде Главная диаграмма Компонентов представлена на рис. 35.

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

Нажмите кнопку Package Specification (Спецификация пакета) панели инструментов.

Поместите спецификацию пакета на диаграмму.

Введите имя спецификации пакета — OrderItem.

Повторив шаги 2—4, добавьте спецификацию пакета Order.

Нажмите кнопку Package Body (Тело пакета) панели инструментов.

Повторив шаги 6 — 8, добавьте тело пакета Order.

Нажмите кнопку Dependency (Зависимость) панели инструментов.

Щелкните мышью на теле пакета OrderItem.

Проводите линию зависимости к спецификации пакета OrderItem.

Повторив шаги 10 — 12, добавьте линию зависимости между телом пакета Order и спецификацией пакета Order.

Повторив шаги 10 — 12. добавьте линию зависимости от спецификации пакета Order к спецификации пакета Orderltem (рис. 36).

С помощью описанного метода создайте следующие компоненты и зависимости:

Для пакета Boundaries (рис. 37):

Спецификацию пакета OrderOptions Спецификацию пакета OrderDetail Зависимости в пакете Boundaries:

От тела пакета OrderOptions к спецификации пакета OrderOptions От тела пакета OrderDetail к спецификации пакета OrderDetail От спецификации пакета OrderOptions к спецификации пакета Для пакета Control:

Спецификацию пакета OrderMrg Тело пакета OrderMrg Спецификацию пакета TransactionMrg Тело пакета TransactionMrg Зависимости в пакете Control:

От тела пакета OrderMrg к спецификации пакета OrderMrg От тела пакета TransactionMrg к спецификации пакета TransactionMrg От спецификации пакета OrderMrg к спецификации пакета TransactionMrg (рис. 38).

Рис. 36. Диаграмма компонентов пакета Entities Рис. 37. Диаграмма компонентов пакета Boundaries Создание диаграммы Компонентов системы Щелкните правой кнопкой мыши на представлении Компонентов в браузере.

В открывшемся меню выберите пункт New > Component Diagram (Создать > Диаграмма Компонентов).

Назовите новую диаграмму System.

Дважды щелкните на этой диаграмме мышью.

Размещение компонентов на диаграмме Компонентов системы Разверните в браузере пакет компонентов Entities, чтобы открыть его.

Щелкните мышью на спецификации пакета Order в пакете компонентов Entities.

Перетащите эту спецификацию на диаграмму.

Повторив шаги 2 и 3, поместите на диаграмму спецификацию пакета OrderItem.

С помощью этого метода поместите на диаграмму следующие компоненты:

Из пакета компонентов Boundaries:

Спецификацию пакета OrderOptions Спецификацию пакета OrderDetail Из пакета компонентов Control:

Спецификацию пакета OrderMgr Спецификацию пакета TransactionMgr Спецификацию задачи OrderClientExe Спецификацию задачи OrderServerExe Нажмите кнопку Task Specification (Спецификация задачи) панели инструментов.

Поместите на диаграмму спецификацию задачи и назовите ее OrderClientExe.

Повторите шаги 6 и 7 для спецификации задачи OrderServerExe.

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

Нажмите кнопку Dependency (Зависимость) панели инструментов.

Щелкните мышью на спецификации пакета OrderDetail.

3. Проведите линию зависимости к спецификации пакета OrderMgr.

4. Повторив шаги 1 — 3, создайте следующие зависимости:

От спецификации пакета OrderMrg к спецификации пакета Order От спецификации пакета TransactionMrg к спецификации пакета От спецификации пакета TransactionMrg к спецификации пакета От спецификации задачи OrderClientExe к спецификации пакета От спецификации задачи OrderServerExe к спецификации пакета Окончательный вид диаграммы компонентов системы приведен на рис.39.

Соотнесение классов с компонентами В Логическом представлении браузера найдите класс Order пакета Entities.

Перетащите этот класс на спецификацию пакета компонента Order в представлении Компонентов браузера. В результате класс Order будет соотнесен со спецификацией пакета компонента Order.

Перетащите класс Order на тело пакета компонента Order в представлении Компонентов браузера. В результате класс Order будет соотнесен с телом пакета компонента Order.

Повторив шаги 1 — 3, соотнесите классы со следующими компонентами:

• Класс OrderItem со спецификацией пакета OrderItem • Класс OrderItem с телом пакета OrderItem • Класс OrderOptions со спецификацией пакета OrderOptions • Класс OrderOptions с телом пакета OrderOptions • Класс OrderDetail со спецификацией пакета OrderDetail • Класс OrderDetail с телом пакета OrderDetail • Класс OrderMrg со спецификацией пакета OrderMrg • Класс OrderMrg с телом пакета OrderMrg • Класс TransactionMrg со спецификацией пакета TransactionMrg • Класс TransactionMrg с телом пакета TransactionMrg.

Рис. 39. Диаграмма компонентов системы 1.7. Диаграмма размещения Упражнение 9. Создание диаграммы Размещения для системы обработки заказов.

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

Создание диаграммы Размещения Разработайте диаграмму Размещения для системы обработки заказов.

Готовая диаграмма Размещения показана на рис. 40.

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

Нажмите кнопку Processor (Процессор) панели инструментов.

Щелкнув мышью на диаграмме, поместите туда процессор.

Введите имя процессора "Сервер базы данных".

Повторив шаги 2 — 4, добавьте следующие процессоры:

Клиентская рабочая станция № Клиентская рабочая станция № На панели инструментов нажмите кнопку Device (Устройство).

Щелкнув мышью на диаграмме, поместите туда устройство.

Добавление связей Нажмите кнопку Connection (Связь) панели инструментов.

Щелкните мышью на процессоре "Сервер базы данных".

Проведите линию связи к процессору "Сервер приложения".

Повторив шаги 1 — 3, добавьте следующие связи:

От процессора "Сервер приложения к процессору "Клиентская рабочая станция № От процессора "Сервер приложения" к процессору "Клиентская рабочая станция №2" От процессора "Сервер приложения" к устройству "Принтер" Добавление процессов Щелкните правой кнопкой мыши на процессоре "Сервер приложения" в браузере.

В открывшемся меню выберите пункт New > Process (Создать > Процесс).

Введите имя процесса — OrderServerExe.

Повторив шаги 1 — 3, добавьте процессы:



Pages:     || 2 |


Похожие работы:

«Учреждение образования Белорусский государственный технологический университет Ученые Республики Беларусь Колесников Виталий Леонидович к 75-летию со дня рождения Минск 2011 Учреждение образования Белорусский государственный технологический университет Библиотека Отдел справочно-библиографической и информационной работы Ученые Республики Беларусь Колесников Виталий Леонидович к 75-летию со дня рождения Библиографический указатель Минск 2011 Колесников Виталий Леонидович родился 21 июня 1936 г....»

«Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Оренбургский государственный университет Е.В. Дырдина, В.В. Запорожко, А.В. Кирьякова ИНФОРМАЦИОННО-КОММУНИКАЦИОННЫЕ ТЕХНОЛОГИИ В КОМПЕТЕНТНОСТНО-ОРИЕНТИРОВАННОМ ОБРАЗОВАНИИ Учебно-методическое пособие Рекомендовано Ученым советом федерального государственного бюджетного образовательного учреждения высшего профессионального образования...»

«Министерство образования Республики Беларусь Учреждение образования Полоцкий государственный университет И. Н. Андреева ПСИХОЛОГИЯ УПРАВЛЕНИЯ УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС для студентов специальности 1-26 02 02 Менеджмент Новополоцк 2007 УДК 159.9:65.01(075.8) ББК 88.4я73 А 65 Рекомендован к изданию кафедрой социально-гуманитарных дисциплин РЕЦЕНЗЕНТЫ: кафедра социальной психологии БГПУ им. М. Танка; Л. В. ФИНЬКЕВИЧ, канд. психол. наук, доцент; Л. В. ЯНКОВСКАЯ, канд. филос. наук, доцент...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ САМАРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ЭЛЕКТРОТЕХНИКИ Методические указания и задания к контрольным работам для студентов дистанционной и заочной форм обучения Самара 2013 УДК 621.3 (075.8) М-991 Теоретические основы электротехники: метод. указ. / В.М. Мякишев, М.С.Жеваев. – Самара: Самар. гос. техн. ун-т,...»

«Государственное казенное образовательное учреждение высшего профессионального образования РОССИЙСКАЯ ТАМОЖЕННАЯ АКАДЕМИЯ БЮЛЛЕТЕНЬ реферативной информации о научно-исследовательских и диссертационных работах Выпуск 8 2013 г. Бюллетень знакомит с научно-исследовательскими разработками, выполненными в Российской таможенной академии в 2012 году. Он содержит реферативную информацию о научно-исследовательских и диссертационных работах. Выпуск подготовлен коллективом научно-исследовательского центра...»

«Любовь к мудрости Учебники и учебные пособия в помощь изучению курса философии из фонда научно-технической библиотеки, отдел ОПЛ (ауд. 1-309). на вопрос: что делает философия?-мы имеем право ответить: она делает человека человеком. Владимир Соловьев Автором понятия философия, что с греческого переводится как любовь к мудрости, считают Пифагора, жившего между 6 и началом 5 в. до н.э. Такое определение означало способность к умению мыслить сознательно( рефлексии) Платон определял философию как...»

«Н.А.Чумаков БЕЗОПАСНОСТЬ ЖИЗНЕДЕЯТЕЛЬНОСТИ. МЕДИЦИНА КАТАСТРОФ. Рекомендовано УМО по университетскому политехническому образованию в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлениям подготовки 220100 – системный анализ и управление и 280100 Безопасность жизнедеятельности. Санкт-Петербург 2006 г. УДК 378.147: 614.88 ББК 51.1(2)2 Ч-90 Рецензенты: Начальник отдела медицинской защиты Главного управления МЧС России по г.Санкт-Петербургу полковник м/с...»

«Введение в нефтегазовое буровое дело: [учебное пособие для вузов по направлению бакалавров 131000 Нефтегазовое дело], 2011, 116 страниц, Валерий Михайлович Подгорнов, 5919610506, 9785919610502, РГУ нефти, 2011. Рассмотрено современное состояние бурового дела в нефтегазовом производстве. Показаны перспективные направления его развития в ближайшем будущем. Для читателей, интересующихся особенностями разработки месторождений нефти и газа, студентов и бакалавров Опубликовано: 13th September...»

«Негосударственное образовательное учреждение высшего профессионального образования Западно-Уральский институт экономики и права (НОУ ВПО ЗУИЭП) Кафедра экономической теории Л. К. Останина ЭКОНОМИКА ОРГАНИЗАЦИЙ (ПРЕДПРИЯТИЙ) Учебно-методический комплекс Специальность 080107.65 Налоги и налогообложение Рекомендовано кафедрой Протокол № 3 от 18 марта 2009 г. Зав. кафедрой к. э. н., доцент Т. Г. Баяндина УМК с изменениями одобрен на заседании кафедры от 27.08.2013 г. протокол № 1 Пермь 2009 ББК...»

«МиниСтерСтво здравоохранения и Социального развития роССийСкой Федерации Санкт-ПетербургСкая МедицинСкая акадеМия ПоСледиПлоМного образования Г. С. Баласанянц, Д. С. Суханов, Д. Л. Айзиков ПОБОЧНЫЕ ДЕЙСТВИЯ ПРОТИВОТУБЕРКУЛЕЗНЫХ ПРЕПАРАТОВ И МЕТОДЫ ИХ УСТРАНЕНИЯ Учебное пособие Издание второе, дополненное Санкт-Петербург 2011 УДК 616.24-002.5:615.2 ББК 52.81 Б 20 Баласанянц Г. С., Суханов Д. С., Айзиков Д. Л. Побочные действия противотуберкулезных препаратов и методы их устранения: Учебное...»

«Негосударственное образовательное учреждение высшего профессионального образования Юридический институт Кафедра конституционного и административного права ПАРЛАМЕНТАРИЗМ В РОССИИ учебно-методическое пособие Направление 030900 Юриспруденция квалификация Бакалавр юриспруденции Разработчики: кандидат юридических наук, доцент Романов И.Е. Санкт-Петербург 2013 Учебно-методическое пособие по дисциплине Парламентаризм в России составлено в соответствии с требованиями федеральных государственных...»

«Издания на электронных носителях, поступившие в справочноинформационный фонд в 3 квартале 2013 года БОРЬБА С ПРЕСТУПНОСТЬЮ Авдеев В.Н. 1 Реализация органами дознания процессуальных мер, направленных на устранение причин и условий, способствующих совершению преступлений [Электронный ресурс]: Методические рекомендации / d\Винчестер\сиф ЦИиНМОКП\Авдеев. - Калининград: Калининградский филиал СПбу МВД России, 2012. Алтуфьев Д.Ю. 2. Ксенофобия в современном российском обществе [Электронный ресурс]:...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ МОСКОВСКОЙ ОБЛАСТИ АКАДЕМИЯ СОЦИАЛЬНОГО УПРАВЛЕНИЯ Кафедра экономики и финансов Учебно-методический комплекс по дисциплине ФИНАНСОВЫЙ МЕНЕДЖМЕНТ Для специальности 080507 МЕНЕДЖМЕНТ ОРГАНИЗАЦИИ АСОУ 2010 УДК 371 Автор-составитель: Дыхова А.Л., канд. экон. наук, доцент, доцент кафедры экономики и финансов. Учебно-методический комплекс по дисциплине Финансовый менеджмент / Авт.-сост. А.Л. Дыхова. – АСОУ, 2010. – 44 с. Дисциплина входит в региональный (вузовский) компонент...»

«БИОЛОГИЯ · Естествознание БИОЛОГИЯ ЛИНИЯ УЧЕБНО МЕТОДИЧЕСКИХ КОМПЛЕКТОВ СФЕРЫ ПОД РЕДАКЦИЕЙ Т.В. ИВАНОВОЙ Программы 6–11 Учебник Электронное приложение к учебнику (CD/DVD ROM) 6 класс Тетрадь тренажер Тетрадь практикум КЛАССЫ Тетрадь экзаменатор Методические рекомендации Сухорукова Л.Н. и др. Биология: Живой организм: Учебник для общеобразовательных учреждений: Научные руководители проекта: Особенностями нового комплек 6 класс. 4 член корр. РАО, доктор пед. наук та являются: — 128 с.: ил. —...»

«СРЕДНЕЕ ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАНИЕ Н.В. Косолапова, Н.А. Прокопенко безопасность жизнедеятельности практикум Рекомендовано ФГАУ ФИРО в качестве учебного пособия для использования в учебном процессе образовательных учреждений, реализующих программы среднего профессионального образования по всем специальностям Регистрационный номер рецензии № 544 от 20.12.2013 ФГАУ ФИРО КНОРУС • МОСКВА • 2015 УДК 614.8(075.32) ББК 68.9я723 К71 Рецензенты: Е.Л. Побежимова, инженер отдела качества образования...»

«Министерство образования Российской Федерации Самарский государственный университет Кафедра государственного и административного права СБОРНИК методических материалов по курсу ГОСУДАРСТВЕННОЕ (КОНСТИТУЦИОННОЕ) ПРАВО ЗАРУБЕЖНЫХ СТРАН для студентов дневного и заочного отделений САМАРА 2003 Методические указания к изучению курса В соответствии с образовательным стандартом и учебным планом СамГУ студенты всех форм обучения (дневной, заочной, специальной при получении второго высшего образования)...»

«ФГУ ГНИИ ИТТ Информика Система аттестации и регистрации специалистов в области ИКТ Правила аттестации и сертификации специалистов в области ИКТ гармонизированные с требованиями Европейской организации по качеству Москва 2011 г. Этот документ является контролируемым и действителен только в оригинале или подписанная копия. Любая другая копия может быть использована лишь для получения информации. Последнее издание можно получить у менеджера по качеству. ФГУ ГНИИ ИТТ Информика Система аттестации и...»

«Учреждение образования Мозырский государственный педагогический университет имени И.П. Шамякина УТВЕРЖДАЮ И.о. Проректора по учебной работе Н.А. Лебедев _22__06_ 2010 г Регистрационный № УД-_407_ / баз. Дирижирование Учебная программа для студентов высших учебных заведений по специальности 1-01 02 02-03 Начальное образование. Музыкальное искусство 2010 Составитель: Чернецкая Галина Викторовна, преподаватель кафедры музыки и методики преподавания музыки Рецензенты: Судас С.В., директор...»

«Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Воронежский государственный университет инженерных технологий УТВЕРЖДАЮ Ректор Е.Д. Чертов __2014 г. ОТЧЕТ о результатах самообследования основной образовательной программы по специальности 260501.65 Технология продуктов общественного питания код наименование программы Рассмотрен и одобрен на заседании ученого совета факультета экономики и управления Декан_ (Н. С. Родионова) Протокол № от 24...»

«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ КУЛЬТУРЫ И ИСКУССТВ ВЫСШАЯ ШКОЛА КУЛЬТУРОЛОГИИ А.Я.ФЛИЕР КУЛЬТУРОЛОГИЯ ДЛЯ КУЛЬТУРОЛОГОВ Учебное пособие для магистрантов, аспирантов и соискателей 2 издание, исправленное и дополненное Москва 2009 2 УДК ББК Ф Научный редактор: доктор философских наук, проф. И.В.Малыгина Рецензенты: доктор философских наук, проф. О.Н.Астафьева, доктор философских наук, проф. Н.Г.Багдасарьян Флиер А.Я. Культурология для культурологов: Учебное пособие для магистрантов,...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

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