x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»q ÕªõÞ§; i½ 7¨´çÄg- wöì...

56
к.т.н.Омарбекова А.С. 1 Омарбекова Асель Сайлаубековна МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНЫМ РАБОТАМ по дисциплине «Проектирование программного обеспечения» 6М070300 - Информационные системы 6М070400 Вычислительная техника и программное обеспечение Астана 2011

Upload: others

Post on 16-Jul-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

1

Омарбекова Асель Сайлаубековна

МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНЫМ РАБОТАМ

по дисциплине «Проектирование программного обеспечения»

6М070300 - Информационные системы 6М070400 Вычислительная техника и программное обеспечение

Астана 2011

Page 2: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

2

Министерство образования и науки Республики Казахстан

Казахский агротехнический университет им. С.Сейфуллина

Рассмотрено и одобрено к изданию на заседании методического совета Казахского агротехнического университета им.С.Сейфуллина, протокол 3 от «18» ноября 2011г.

Утверждаю Председатель МС Казахского агротехнического университета им.С.Сейфуллина _______________Абдыров А.М, (подпись) (Ф.И.О)

«02» декабря 2011 г. Автор: Омарбекова А.С., к.т.н., и.о.доцента

Целью данных методических указаний является оказание помощи магистрантам в освоении технологии проектирования информационных систем с позиции объектно-ориентированного проектирования на основе языка UML. Предполагается, что магистрант владеет основными понятиями UML. Для выполнения лабораторных работ необходим пакет программ IBM Rational Rose . Для работ 11 и 12 должны быть также установлены пакет Rose Delphi Link и среда разработки Borland Delphi

Методические указания предназначены для магистрантов специальностей 6М070300 «Информационные системы» и 6М070400 «Вычислительная техника и программное обеспечение».

Рецензент: Жантлесов Ж.Х. – к.ф.-м.н., доцент Казахского агротехнического

университета им.С.Сейфуллина.

Рассмотрено и одобрено на заседании кафедры вычислительной

техники и информационных систем. Протокол №4 от «01»ноября 2011г. Рассмотрено и рекомендовано на заседании методической комиссии

факультета КСиПО. Протокол №3 от «14»ноября 2011г. © Казахский агротехнический университет им. С.Сейфуллина, 2011г.

Page 3: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

3

Оглавление

Введение ....................................................................................................... 4 Лабораторная работа 1. Создание диаграммы вариантов использования. 5 Лабораторная работа 2. Создание диаграммы Последовательности. ....... 8 Лабораторная работа 3. Создание Кооперативной диаграммы ............... 14 Лабораторная работа 4. Диаграмма Состояний для класса Заказ. .......... 21 Лабораторная работа 5. Построение диаграммы Деятельности для варианта использования «Выполнить поставку Заказа». ......................... 24 Лабораторная работа 6. Пакеты и классы ................................................. 27 Лабораторная работа 7. Уточнение методов и свойств классов ............. 30 Лабораторная работа 8. Описание связей между классами ..................... 33 Лабораторная работа 9. Исключение кириллизованного текста ............. 35 в информации классов. .............................................................................. 35 Лабораторная работа 10. Построение диаграммы компонентов. ............ 37 Лабораторная работа 11. Кодогенерация проекта в Delphi .................... 42 Лабораторная работа 12. Анализ Delphi проекта, добавление визуальных объектов, реинжениринг в Rose ................................................................ 45 Лабораторная работа 13. Построение диаграммы размещения ............... 48 Заключение ................................................................................................. 50 Приложение A. Результаты кодогенерации проекта в Delphi. ............... 51 Список использованной литературы ......................................................... 55

Page 4: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

4

Введение Целью данных методических указаний является оказание помощи

магистрантам в освоении технологии проектирования информационных систем с позиции объектно-ориентированного проектирования на основе языка UML.

Предполагается, что магистрант владеет основными понятиями UML.

Для выполнения лабораторных работ необходим пакет программ IBM Rational Rose (в данном учебном пособие для описания выполнения примеров использовалась версия IBM Rational Rose Enterprise Edition Release Version 7.0.0.0). Для работ 11 и 12 должны быть также установлены пакет Rose Delphi Link и среда разработки Borland Delphi.

Последовательность работ следующая. В лабораторных работах 1 - 8 строятся диаграммы логического представления, не имеющие прямого отношения к языку программирования. Это диаграммы концептуального моделирования, они используются для общения с постановщиками задач. Для лучшего понимания диаграмм в работах используется кириллизованный текст.

Затем, в лабораторной работе 9, для подготовки модели к кодогенерации, кириллица в именах классов, атрибутах и методах заменяется на латинский шрифт.

В лабораторной работе 10 строится диаграмма компонентов. После этого, в лабораторной работе 11, производится кодогенерация

в Delphi. Далее, в лабораторной работе 12, предлагается загрузить

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

Лабораторная работа 13 описывает создание диаграммы размещения разрабатываемой модели.

Магистрантам в начале изучения курса предлагается выбрать свою тему для моделирования, исследовать ее и на основании примеров, описанных в лабораторных работах, поэтапно разрабатывать собственную модель. В качестве моделируемых систем предлагается рассматривать: университет, кафедра ВУЗа, отдел кадров, бухгалтерия, библиотека, поликлиника, аптека, строительная фирма, коммунальное предприятие, станция АЗС, Интернет-магазин, Интернет-салон, автостоянка, ресторан, автосалон, транспортная фирма и т.д.

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

Page 5: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

5

Лабораторная работа 1. Создание диаграммы вариантов использования.

1.1 Пример построения диаграммы. Постановка задачи (описание предметной области). Магазин осуществляет продажу товаров клиенту путем оформления

документов «Заказ». Директор магазина Дамир, принял решение автоматизировать документооборот продаж товара и пригласил для выполнения работ программиста Алмаза. Поговорив с Дамиром, в соответствие с концепцией жизненного цикла (ЖЦ) программы Алмаз приступил к описанию бизнес процессов, сопровождающих продажу товара. Взяв за основу язык UML, он начал с построения контекстной диаграммы процессов Use Case diagram. Диаграмма должна ответить на вопрос: что должно делаться в системе и кто участник этих процессов.

Окончательный вид диаграммы показан на рисунке 1.

Рисунок 1. Диаграмма вариантов использования задачи о заказе товара.

Page 6: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

6

Этапы выполнения примера. 1. Дважды щелкнув мышью на Главной диаграмме Вариантов

Использования (Main) в браузере, откройте ее. 2. С помощью кнопки Use Case (Вариант использования) панели

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

3. Повторив этапы 2 и 3, поместите на диаграмму остальные варианты использования:

Изменить существующий заказ Напечатать инвентарную опись Обновить инвентарную опись Оформить заказ Отклонить заказ Выполнить поставку заказа 4. С помощью кнопки Actor (Действующее лицо) панели

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

действующих лиц: Управляющий магазином Клерк магазина Бухгалтерская система 7. Создание абстрактного варианта использования (не требующего

дальнейшей декомпозиции). 8. Щелкните правой кнопкой мыши на варианте использования

"Отклонить заказ" на диаграмме. 9. В открывшемся меню выберите пункт Open Specification (Открыть

спецификацию). 10. Установите флажок Abstract (Абстрактный), чтобы сделать этот

вариант использования абстрактным. Добавление ассоциаций 1. С помощью кнопки Unidirectional Association (Однонаправленная

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

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

Добавление связи расширения 1. С помощью кнопки Generalization (Обобщение) панели

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

Page 7: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

7

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

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

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

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

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

заказ". 2. В окне документации введите следующее описание: " Этот

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

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

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

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

действующим лицам. Диаграмма должна выглядеть, как на рисунке 1. 1.2 Порядок выполнения лабораторной работы 1. Выберите тему для моделирования. 2. Исследуйте систему: определите актеров, варианты

использования. 3. Постройте диаграмму вариантов использования или, если

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

Page 8: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

8

Лабораторная работа 2. Создание диаграммы Последовательности.

2.1 Пример построения диаграммы. Постановка задачи Согласовав основные бизнес процессы с директором магазина

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

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

Этапы выполнения примера Настройка программной среды 1. В меню модели выберите пункт Tools >- Options (Инструменты >-

Параметры). 2. Перейдите на вкладку Diagram (Диаграмма). 3. Установите флажки Sequence numbering, Collaboration numbering и

Focus of control. 4. Нажмите OK, чтобы выйти из окна параметров. Создание диаграммы Последовательности 1. Щелкните правой кнопкой мыши на Логическом представлении

браузера. 2. В открывшемся меню выберите пункт New > Sequence Diagram

(Создать >Диаграмма Последовательности). 3. Назовите новую диаграмму: Ввод заказа. 4. Дважды щелкнув на этой диаграмме, откройте ее. Добавление на диаграмму действующего лица и объектов 1. Перетащите действующее лицо Продавец из браузера на

диаграмму. 2. Нажмите кнопку Object (Объект) панели инструментов. 3. Щелкните мышью в верхней части диаграммы, чтобы поместить

туда новый объект. 4. Назовите объект Выбор варианта заказа. 5. Повторив шаги 3 и 4, поместите на диаграмму объекты: - Форма деталей заказа - Заказ №1234 Добавление сообщений на диаграмму 1. На панели инструментов нажмите кнопку Object Message

(Сообщение объекта).

Page 9: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

9

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

3. Выделив сообщение, введите его имя — Создать новый заказ. 4. Повторив шаги 2 и 3, поместите на диаграмму сообщения: - Открыть форму — между Выбор Варианта Заказа и Форма

деталей Заказа - Ввести номер заказа, заказчика и число заказываемых предметов

— между Продавец и Форма Деталей Заказа - Сохранить заказ — между Продавец и Форма Деталей Заказа - Создать новый заказ — между Форма Деталей Заказа и Заказ

N1234 - Ввести номер заказа, заказчика и число заказываемых предметов

— между Форма Деталей Заказа и Заказ N1234 - Сохранить заказ — между Форма Деталей Заказа и Заказ N1234 Завершен первый этап работы. Полученная диаграмма

Последовательности представлена на рисунке 2.

Рисунок 2. Диаграмма последовательности без управляющих элементов.

Теперь нужно позаботиться об управляющих объектах и о

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

Page 10: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

10

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

Добавление на диаграмму дополнительных объектов 1. Нажмите кнопку Object панели инструментов. 2. Щелкните мышью между объектами Форма Деталей Заказа и

Заказ №1234, чтобы поместить туда новый объект. 3. Введите имя объекта — Управляющий заказами. 4. Нажмите кнопку Object панели инструментов. 5. Новый объект расположите справа от Заказ №1234. 6. Введите его имя- Управляющий транзакциями. Назначение ответственностей объектам 1. Выделите сообщение 7: Сохранить заказ. 2. Нажав комбинацию клавиш CTRL+D, удалите это сообщение. 3. Повторите шаги 1 и 2 для удаления сообщений 5,3: - Создать новый заказ - Вести номер заказа, заказчика и число заказываемых предметов 4. Перетащите сообщение 4: Вести номер заказа, заказчика и число

заказываемых предметов между Форма деталей заказа и Заказ №1234 вверх под сообщение 2 Открыть форму.

5. Нажмите кнопку Object Message панели инструментов. 6. Поместите на диаграмму новое сообщение, расположив его под

сообщением 4 между Форма деталей заказа и Управляющий заказами. 7. Назовите его Сохранить заказ. 8. Повторите шаги 5 — 7, добавив сообщения с шестого по девятое и

назвав их: - Создать новый заказ — между Управляющий заказами и Заказ

№1234 - Ввести номер заказа, заказчика и число заказываемых предметов -

между Управляющий заказами и Заказ №1234 - Сохранить заказ - между Управляющий заказами и Управляющий

транзакциями - Информация о заказе —между Заказ №1234 и Управляющий

транзакциями. 8. На панели инструментов нажмите кнопку Message to Self

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

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

Последовательности представлена на рисунке 3.

Page 11: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

11

Соотнесение объектов с классами 1. Щелкните правой кнопкой мыши на объекте Выбор варианта

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

спецификацию). В раскрывающемся списке классов выберите пункт <New>

(Создать). Появится окно спецификации классов. 4. В поле Name введите Выбор заказа. 5. Щелкните на кнопке ОК. Вы вернетесь в окно спецификации

объекта. 6. В списке классов выберите класс Выбор Заказа. 7. Щелкните на кнопке ОК, чтобы вернуться к диаграмме. Теперь

объект называется Выбор варианта заказа: Выбор Заказа 8. Для соотнесения остальных объектов с классами повторите шаги с

1 по 7: - Класс Заказ деталей соотнесите с объектом Форма деталей заказа - Класс Упр_заказами — с объектом Управляющий заказами - Класс Заказ — с объектом Заказ N 1234 - Класс Упр_ транзакциями — с объектом Управляющий

транзакциями

Рисунок 3. Диаграмма последовательности без соотнесения сообщений с операциями.

Page 12: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

12

Соотнесение сообщений с операциями 1. Щелкните правой кнопкой мыши на сообщении 1: Создать новый

заказ. 2. В открывшемся меню выберите пункт <new operation> (создать

операцию). Появится окно спецификации операции. 3. В поле Name введите имя операции —Создать. 4. Нажмите на кнопку ОК, чтобы закрыть окно спецификации

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

операции Создать(). 7. Повторите шаги с 1 по 6, чтобы соотнести с операциями все

остальные сообщения: - Сообщение 2: Открыть форму соотнесите с операцией Открыть() - Сообщение 3: Ввести номер заказа, заказчика и число

заказываемых предметов — с операцией Ввести номер заказа, заказчика и число заказываемых предметов()

- Сообщение 4: Сохранить заказ — с операцией Сохранить заказ() - Сообщение 5: Сохранить заказ — с операцией Сохранить заказ() - Сообщение 6: Создать новый заказ – с операцией Создать новый

заказ() - Сообщение 7: Ввести номер заказа, заказчика и число

заказываемых предметов - с одноименной операцией. - Сообщение 8 Сохранить заказ – с операцией Сохранить заказ() - Сообщение 9 Информация о заказе – с одноименной операцией - Сообщение 10 Сохранить информацию о заказе в базе данных - с

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

рисунке 4.

Page 13: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

13

Рисунок 4. Окончательный вид диаграммы последовательности 2.2 Порядок выполнения лабораторной работы 1. Исследуйте систему: определите объекты, сообщения, операции. 2. Постройте диаграмму последовательности или, если требуется,

несколько диаграмм. 3. Подготовьте отчет о выполнении лабораторной работы.

Page 14: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

14

Лабораторная работа 3. Создание Кооперативной диаграммы 3.1 Пример построения диаграммы. Этапы выполнения примера Создание Кооперативной диаграммы 1. Щелкните правой кнопкой мыши на Логическом представлении в

браузере. 2. В открывшемся меню выберите пункт New > Collaboration Diagram

(Создать > Кооперативная диаграмма). 3. Назовите эту диаграмму Ввод заказа. 4. Дважды щелкнув мышью на диаграмме, откройте ее. Добавление действующего лица и объектов на диаграмму 1. Перетащите действующее лицо Продавец из браузера на

диаграмму. 2. Нажмите кнопку Object (Объект) панели инструментов. 3. Щелкните мышью где-нибудь внутри диаграммы, чтобы

поместить туда новый объект. 4. Назовите объект Выбор варианта заказа. 5. Повторив шаги 3 и 4, поместите на диаграмму объекты: - Форма деталей заказа - Заказ №1234 Добавление сообщений на диаграмму 1. На панели инструментов нажмите кнопку Object Link (Связь

объекта). 2. Проведите мышью от действующего лица Продавец к объекту

Выбор варианта заказа. 3. Повторите шаги 1 и 2, соединив связями следующие объекты: - Действующее лицо Продавец и объект Форма деталей Заказа - Объект Выбор Варианта Заказа и объект Форма деталей Заказа - Объект Форма деталей Заказа объект Заказ N1234 4. На панели инструментов нажмите кнопку Link Message

(Сообщение связи). 5. Щелкните мышью на связи между Продавец и Форма деталей

Заказа. 6. Выделив сообщение, введите его имя — Создать новый заказ; 7. Повторив шаги с 4 по 6, поместите на диаграмму сообщения: - Открыть форму — между Выбор Варианта Заказа и Форма

Деталей Заказа. - Ввести номер заказа, заказчика и число заказываемых предметов

— между Форма Деталей Заказа и Заказ №1234 - Сохранить заказ — между Продавец и Форма деталей Заказа

Page 15: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

15

Завершен первый этап работы. Полученная Кооперативная диаграмма представлена на рисунке 5.

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

также рассмотреть ответственности объектов.

Рисунок 5 Добавление на диаграмму дополнительных объектов 1. Нажмите кнопку Object панели инструментов. 2. Щелкните мышью где-нибудь на диаграмме, чтобы поместить

туда новый объект. 3. Введите имя объекта — Управляющий заказами. 4. На панели инструментов нажмите кнопку Object. 5. Поместите на диаграмму еще один объект. 6. Введите его имя — Управляющий транзакциями. Назначение ответственностей объектам 1. Нарисуйте связь между Форма деталей Заказа и Управляющий

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

объекта).

Page 16: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

16

3. Нарисуйте связь между Управляющий Заказами и Заказ №1234 4. На панели инструментов нажмите кнопку Object Link (Связь

объекта). 5. Нарисуйте связь между Заказ №1234 и Управляющий

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

объекта). 7. Нарисуйте связь между Управляющий Заказами и Управляющий

транзакциями. 8. На панели инструментов нажмите кнопку Link Message

(Сообщение связи). 9. Щелкните мышью на связи между объектами Форма деталей

Заказа и Управляющий Заказами, чтобы ввести новое сообщение. 10. Назовите это сообщение Сохранить заказ. 11. Повторите шаги 8 — 10, добавив сообщения с шестого по

девятое, и назвав их: - Создать новый заказ — между Управляющий Заказами и Заказ

№1234 - Ввести номер заказа, заказчика и число заказываемых предметов

— между Управляющий Заказами и Заказ №1234 - Сохранить заказ — между Управляющий Заказами и Управляющий

транзакциями - Информация о заказе — между Заказ №1234 и Управляющий

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

собой). 13. Щелкнув на объекте Управляющий транзакциями, добавьте к

нему рефлексивное сообщение. 14. На панели инструментов нажмите кнопку Link Message

(Сообщение связи). 15. Щелкните мышью на рефлексивной связи Управляющий

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

диаграмма представлена на рисунке 6.

Page 17: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

17

Рисунок 6 Соотнесение объектов с классами (если классы были созданы

при разработке диаграммы Последовательности в лабораторной 2) 1. Найдите в браузере класс Выбор Заказа. 2. Перетащите его на объект Выбор варианта заказа на диаграмме. 3. Повторите шаги 1 и 2 соотнеся остальные объекты и

соответствующие им классы: - Класс Заказ деталей соотнесите с объектом Форма деталей заказа - Класс Упр_заказами — с объектом Управляющий Заказами - Класс Заказ — с объектом Заказ №1234 - Класс Упр_транзакциями — с объектом Управляющий

транзакциями Соотнесение объектов с классами (если классы не были созданы

при разработке диаграммы Последовательности в лабораторной 2) 1. Щелкните правой кнопкой мыши на объекте Форма деталей

Заказа.

Page 18: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

18

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

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

4. В поле имени введите Выбор заказа. 5. Щелкните на кнопке ОК. Вы вернетесь в окно спецификации

объекта. 6. В списке классов выберите класс Выбор заказа. 7. Щелкните на кнопке OK, чтобы вернуться к диаграмме. Теперь

объект называется Выбор варианта заказа: Выбор Заказа 8. Для соотнесения остальных объектов с классами повторите шаги с

1 по 7: - Класс Детали заказа соотнесите с объектом Форма деталей заказа - Класс Упр_заказами — с объектом Управляющий заказами - Класс Заказ — с объектом Заказ N 1234 - Класс Упр_ транзакциями — с объектом Управляющий

транзакциями Соотнесение сообщений с операциями (если операции были

созданы при разработке диаграммы Последовательности в лабораторной 2)

1. Щелкните правой кнопкой мыши на сообщении 1: Создать новый заказ.

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

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

4. Нажмите на кнопку ОК. 5. Повторите шаги 1—4 для соотнесения с операциями остальных

сообщений: - Сообщение 2: Открыть форму соотнесите с операцией

Открыть(). - Сообщение 3: Ввести номер заказа, заказчика и число

заказываемых предметов — с операцией Ввести номер заказа, заказчика и число заказываемых предметов().

- Сообщение 4: Сохранить заказ — с операцией Сохранить заказ(). - Сообщение 5: Сохранить заказ — с операцией Сохранить заказ(). Сообщение 6: Создать пустой заказ – с операцией Создать пустой

заказ(). Сообщение 7: Ввести номер заказа, заказчика и число заказоваемых

предметов- с одноименной операцией. Сообщение 8 Сохранить заказ – с операцией Сохранить заказ(). Сообщение 9 Информация о заказе – с одноименной операцией. Сообщение 10 Сохранить информацию о заказе с одноименной

операцией.

Page 19: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

19

Соотнесение сообщений с операциями (если операции не были созданы при разработке диаграммы Последовательности в лабораторной 2)

1. Щелкните правой кнопкой мыши на сообщении 1: Создать новый заказ().

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

3. В поле имени введите имя операции —Создать(). 4. Нажмите на кнопку ОК, чтобы закрыть окно спецификации

операции и вернуться к диаграмме. 5. Еще раз щелкните правой кнопкой мыши на сообщении 1. 6. В открывшемся меню выберите пункт Open Specification (Открыть

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

операции. 8. Нажмите на кнопку ОК. 9. Повторите шаги 1—8, чтобы создать новые операции и соотнести

с ними остальные сообщения: - Сообщение 2: Открыть форму соотнесите с операцией Открыть() - Сообщение 3: Ввести номер заказа, заказчика и число

заказываемых предметов — с операцией Ввести номер заказа, заказчика и число заказываемых предметов()

- Сообщение 4: Сохранить заказ — с операцией Сохранить заказ() - Сообщение 5: Сохранить заказ — с операцией Сохранить заказ() Сообщение 6: Создать пустой заказ – с операцией Создать пустой

заказ() Сообщение 7: Ввести номер заказа, заказчика и число заказоваемых

предметов- с одноименной операцией. Сообщение 8 Сохранить заказ – с операцией Сохранить заказ() Сообщение 9 Информация о заказе – с одноименной операцией Сообщение 10 Сохранить информацию о заказе в базе данных с

одноименной операцией Окончательный вид Кооперативной диаграммы показан на рисунке

7. 3.2 Порядок выполнения лабораторной работы 1. Исследуйте систему: определите объекты, сообщения, операции. 2. Постройте Кооперативную диаграмму или, если требуется,

несколько диаграмм. 3. Подготовьте отчет о выполнении лабораторной работы.

Page 20: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

20

Рисунок 7. Окончательный вид кооперативной диаграммы.

Page 21: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

21

Лабораторная работа 4. Диаграмма Состояний для класса Заказ. 4.1 Пример построения диаграммы. Этапы выполнения примера Создание диаграммы Состояний 1. Найдите в браузере класс Заказ. 2. Щелкните на классе правой кнопкой мыши и в открывшемся меню

укажите пункт New > Statechart Diagram (Создать диаграмму состояний). 3. Назовите диаграмму Состояние объекта Заказ. Добавление начального и конечного состояний 1. Нажмите кнопку Start State (Начальное состояние) панели

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

инструментов. 4. Поместите это состояние на диаграмму. Добавление суперсостояния 1. Нажмите кнопку State (Состояние) панели инструментов. 2. Поместите это состояние на диаграмму. 3. Назовите Суперсостояние объекта Заказ Добавление оставшихся состояний 1. На панели инструментов нажмите кнопку State (Состояние). 2. Поместите состояние на диаграмму. 3. Назовите состояние Отменен. 4. На панели инструментов нажмите кнопку State(Состояние). 5. Поместите состояние на диаграмму. 6. Назовите состояние Выполнен. 7. На панели инструментов нажмите кнопку State(Состояние). 8. Поместите состояние на диаграмму внутрь суперсостояния. 9. Назовите состояние Инициализация. 10. На панели инструментов нажмите кнопку State (Состояние). 11. Поместите состояние на диаграмму внутрь суперсостояния. 12. Назовите состояние Выполнение заказа приостановлено. Добавление переходов 1. Нажмите кнопку State Transition (Переход) панели инструментов. 2. Щелкните мышью на начальном состоянии. 3. Проведите линию перехода к состоянию Инициализация. 4. Повторив шаги с первого по третий, создайте следующие

переходы:

Page 22: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

22

- От состояния Инициализация к состоянию Выполнение заказа приостановлено

- От состояния Выполнение заказа приостановлено к состоянию Выполнен

- От суперсостояния к состоянию Отменен - От состояния Отменен к конечному состоянию - От состояния Выполнен к конечному состоянию 5. На панели инструментов нажмите кнопку Transition to Self

(Переход к себе). 6. Щелкните мышью на состоянии Выполнение заказа

приостановлено Описание переходов 1. Дважды щелкнув мышью на переходе от состояния Инициализация

к состоянию Выполнение заказа приостановлено, откройте окно спецификации перехода.

2. В поле Event (Событие) введите фразу Выполнить заказ. 3. Щелкнув на кнопке ОК, закройте окно спецификации. 4. Повторив шаги с первого по третий, добавьте событие Отменить

заказ к переходу между суперсостоянием и состоянием Отменен. 5. Дважды щелкнув мышью на переходе от состояния Выполнение

заказа приостановлено к состоянию Выполнен, откройте окно его спецификации.

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

7. Перейдите на вкладку Detail (Подробно). 8. В поле Guard Condition (Сторожевое Условие) введите Не

осталось незаполненных позиций. 9. Щелкнув на кнопке ОК, закройте окно спецификации. 10. Дважды щелкните мышью на рефлексивном переходе (Transition

to Self) состояния Выполнение заказа приостановлено. 11. В поле Event (Событие) введите фразу Добавить к заказу новую

позицию. 12. Перейдите на вкладку Detail (Подробно). 13. В поле Guard Condition (Сторожевое Условие) введите Остаются

незаполненные позиции. 14. Щелкнув на кнопке ОК, закройте окно спецификации. Окончательный вид диаграммы Состояний показан на рисунке 8.

Page 23: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

23

Рисунок 8 4.2 Порядок выполнения лабораторной работы 1. Исследуйте систему: определите состояния, переходы. 2. Постройте диаграмму Состояний или, если требуется, несколько

диаграмм. 3. Подготовьте отчет о выполнении лабораторной работы.

Page 24: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

24

Лабораторная работа 5. Построение диаграммы Деятельности для варианта использования «Выполнить поставку Заказа».

5.1 Пример построения диаграммы. Постановка задачи Побеседовав с программистом Алмазом, директор магазина Дамир

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

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

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

Этапы выполнения упражнения 1. Найдите в браузере вариант использования «Выполнить поставку

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

укажите пункт New > Activity Diagram (Создать диаграмму деятельности).

3. Назовите диаграмму «Выполнить поставку» и откройте ее двукратным щелчком мыши

4. На панели инструментов щелкните мышкой на элементе Swimline, затем на поле диаграммы. На диаграмме появится разделительная линия («водная дорожка»).

5. Установите курсор на заголовок NewSwimlane и нажмите правую клавишу мыши. В выпадающем списке нажмите Select In Browser. В браузере выделится этот объект. Нажав правую клавишу мыши в выпадающем списке выберете Open Specification и откройте спецификацию. Измените поле Name на Клерк. Выберите в поле Class Клерк магазина.

6. Выполните заново пункты 5-6 и присвойте полю Name Система, Class- Бухгалтерская система.

7. Найдите в браузере сплошной черный кружок (начальное состояние). Перенесите его на дорожку Клерк.

8. Выберите из панели инструментов объект Activity и поместите его на диаграмму в дорожку Клерк. Измените имя объекта на ”Получить заказ”.

Page 25: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

25

9. Повторите предыдущий этап, создайте на дорожке Клерк 4 новых Activity и присвойте им имена Проверить позицию заказа, закрепить позицию за заказом, Поставить заказ в ожидание, Скомплектовать заказ

10. Поместите на дорожку Клерк 2 объекта End State (конечное состояние). Одному из них измените поле Name на «Выполнить поставку»

11. На дорожку Система поместите новый объект Activity и присвойте полю Name “Проверить платеж”. На эту же дорожку поместите новый объект End State и измените в его спецификации поле Name на «Отменить заказ».

12. Поместить на дорожку Клерк 2 объекта Horisontal Sinhronization (горизонтальная синхронизация). Присвойте полю Name спецификации одного объекта «1», другого- «2».

13. Поместить на дорожку Клерк объект Decision (выбор). Через спецификацию присвойте полю Name «Позиция имеется?».

14. Поместить на дорожку Система объект Decision. Присвойте полю Name «Деньги поступили?».

15. Щелкните мышкой на панели инструментов объекте - стрелке State Transition (состояние перехода). Затем щелкните мышкой на диаграмме объекта начальное состояние. Удерживая кнопку мыши перенесите курсор на активность ”Получить заказ” и лишь затем отпустить курсор. В результате два объекта будут соединены стрелкой.

16. Выполните этап 15, соединив стрелкой объект Активность «Получить заказ» с объектом Horisontal Sinhronization 1.

17. Соедините этими же стрелками объекты 1 и «Проверить платеж», 1 и «Проверить позицию заказа», «Проверить заказ» и «Деньги подступили?», «Деньги поступили?» и «Отменить заказ», «Проверить позицию заказа» и «Позиция имеется», «Позиция имеется» и «Закрепить позицию за заказом», «Деньги получены?» и 2, «Закрепить позицию за заказом» и 2, «Позиция имеется?» и «Поставить заказ в ожидание», 2 и «Скомплектовать заказ», «Скомплектовать заказ» и «Выполнить поставку», «Поставить заказ в ожидание» и объект Конечное состояние (без имени).

18. Присвоим некоторым стрелкам наименование полю Event (условие перехода). Для этого, установим курсор на стрелке, соединяющей «Деньги получены?» и «Отменить заказ». Двукратным щелчком мыши откроем окно спецификации. В поле Event введем «Нет».

19. Выполним пункт 18 для стрелки, соединяющей «Деньги получены?» и 2 и присвойте Event «Да». Аналогично для стрелки соединяющей «Позиция имеется?» и «Закрепить позицию за заказом» присвоить Event «Да». Стрелке, соединяющей «Позиция имеется?» и «Поставить заказ в ожидание» - «Нет».

20. Добавим элементарные действия (Actions) к активности

Page 26: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

26

“Проверить позицию заказа». Установим курсор на «Проверить позицию заказа» и двукратным щелчком мыши откроем окно спецификации. Откроем закладку Actions. Установим курсор на свободное поле и нажмем правую клавиши мыши. В выпадающем меню нажмем Insert. Появится строка «Entry/». Нажмем на ней мышкой дважды. В появившемся окне в поле When выберем «ON Entry» (на входе в активность), В поле Name введем «Просмотреть спецификацию к заказу». Нажать Ok. Вновь нажмем курсор правой мыши и введем новое действие. Полю When присвоим «Do» (промежуток между входом и выходом), а полю Name «Найти новую позицию». При вводе третьей активности полю When присвойте «ON Exit» (выход), а полю Name «Передать результаты поиска».

Окончательный вид диаграммы деятельности показан на рисунке 9.

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

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

решения для альтернативных переходов. 2. Постройте диаграмму деятельности или, если требуется,

несколько диаграмм. 3. Подготовьте отчет о выполнении лабораторной работы.

Page 27: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

27

Лабораторная работа 6. Пакеты и классы 6.1 Пример построения диаграммы Постановка задачи В данной лабораторной работе необходимо сгруппировать в пакеты

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

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

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

>Пакет). 3. Назовите новый пакет Сущности. 4. Повторив шаги 1—3, создайте пакеты Границы и Управление. Создание Главной диаграммы Классов 1. Дважды щелкнув мышью на Главной диаграмме Классов,

находящейся под Логическим представлением браузера, откройте ее. 2. Перетащите пакет Сущности из браузера на диаграмму. 3. Перетащите пакеты Границы и Управление из браузера на

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

рисунке 10.

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

Page 28: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

28

Создание диаграммы Классов для сценария "Ввести новый заказ" с отображением всех классов

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

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

3. Назовите новую диаграмму Классов: Ввод нового заказа. 4. Дважды щелкнув мышью на этой диаграмме в браузере, откройте

ее. 5. Перетащите из браузера все классы (Выбор_заказа,

Заказ_деталей, Упр_заказами, Заказ, Упр_транзакциями. Объединение классов в пакеты 1. В браузере перетащите класс Выбор_заказа на пакет Границы. 2. Перетащите класс Заказ_деталей на пакет Границы. 3. Перетащите классы Упр_заказами и Упр-транзакциями на пакет

Управление. 4. Перетащите класс Заказ на пакет Сущности. Классы и пакеты в браузере показаны на рисунке 11.

Рисунок 11. Представление пакетов и классов Добавление диаграмм Классов к каждому пакету 1. В браузере щелкните правой кнопкой мыши на пакете Границы. 2. В открывшемся меню выберите пункт New > Class Diagram

(Создать > Диаграмма Классов).

Page 29: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

29

3. Введите имя новой диаграммы — Main (Главная). 4. Дважды щелкнув мышью на этой диаграмме, откройте ее. 5. Перетащите на нее из браузера классы Выбор_заказа и

Заказ_деталей. 6. Закройте диаграмму. 7. В браузере щелкните правой кнопкой мыши на пакете Сущности. 8. В открывшемся меню выберите пункт New > Class Diagram

(Создать > Диаграмма Классов). 9. Введите имя новой диаграммы — Main (Главная). 10. Дважды щелкнув мышью на этой диаграмме, откройте ее. 11. Перетащите на нее из браузера класс Заказ. 12. Закройте диаграмму 13. В браузере щелкните правой кнопкой мыши на пакете

Управление 14. В открывшемся меню выберите пункт New > Class Diagram

(Создать > Диаграмма Классов). 15. Введите имя новой диаграммы — Main (Главная). 16. Дважды щелкнув мышью на этой диаграмме, откройте ее. 17. Перетащите на нее из браузера классы Упр_заказами и

Упр_транзакциями. Данная диаграмма представлена на рисунке 12. 18. Закройте диаграмму

Рисунок 12 6.2 Порядок выполнения лабораторной работы 1. Сформируйте пакеты, сгруппируйте классы в пакеты. 2. Постройте диаграмму классов или, если требуется, несколько

диаграмм. 3. Подготовьте отчет о выполнении лабораторной работы.

Page 30: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

30

Лабораторная работа 7. Уточнение методов и свойств классов 7.1 Пример В данной лабораторной работе к описаниям операций будут

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

Постановка задачи Для определения атрибутов классов был проанализирован поток

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

Добавление атрибутов и операций Добавим атрибуты и операции к классам диаграммы Классов "Ввод

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

Этапы выполнения примера Настройка 1. В меню модели выберите пункт Тооls > Options (Инструменты

>Параметры). 2. Перейдите на вкладку Diagram. 3. Убедитесь, что флажок Show visibility (Показать видимость)

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

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

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

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

Suppress operations (Подавить операции) сброшены. 8. Перейдите на вкладку Notation (Нотация). 9. Убедитесь, что флажок Visibility as Icons (Отображать

пиктограммы) сброшен. Добавление нового класса 1. Найдите в браузере диаграмму Классов варианта использования

"Ввести новый заказ". 2. Дважды щелкнув мышью на диаграмме, откройте ее. 3. Нажмите кнопку С1аss панели инструментов. 4. Щелкните мышью внутри диаграммы, чтобы поместить туда

новый класс.

Page 31: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

31

5. Назовите его Позиц_заказа. 6. Дважды нажмите на классе Позиц_заказа. Откроется окно со

свойствами. В поле StereoType назначьте этому классу стереотип Entity. Нажмите кнопку ОК.

7. В браузере перетащите класс в пакет Сущности. Добавление атрибутов 1. Щелкните правой кнопкой мыши на классе Заказ. 2. В открывшемся меню выберите пункт New > Attribute (Создать

атрибут), 3. Введите новый атрибут: OrderNumber : Integer 4. Нажмите клавишу Enter 5. Введите следующий атрибут: CustomerName : String. 6. Повторив шаги 4 и 5, добавьте атрибуты: OrderDate : Date OrderFillDate : Date Если тип атрибута не появляется в выпадающем списке, то введите

его от руки и он далее будет появляться. 7. Щелкните правой кнопкой мыши на классе Позиц_заказа. 8. В открывшемся меню выберите пункт New > Attribute (Создать

атрибут). 9. Введите новый атрибут: ItemID : Integer. 10. Нажмите клавишу Enter. 11. Введите следующий атрибут: ItemDescription : String. Добавление операций к классу Позиц_заказа 1. Щелкните правой кнопкой мыши на классе Позиц_заказа. 2. В открывшемся меню выберите пункт New > Operation (Создать

операцию). 3. Введите новую операцию: Создать() 4. Нажмите клавишу Enter. 5. Введите следующую операцию: Взять_информацию() 6. Нажмите клавишу Enter. 7. Введите операцию: Дать_информацию() Подробное описание операций с помощью браузера 1. Найдите в браузере класс Позиц_заказа. 2. Раскройте этот класс, щелкнув на значке "+" рядом с ним. В

браузере появятся атрибуты и операции класса. 3. Дважды щелкнув мышью на операции Взять_информацию() ,

откройте окно ее спецификации: 4. В раскрывающемся списке Return class (Возвращаемый класс)

Page 32: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

32

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

операции. 6. Дважды щелкните в браузере на операции Дать_информацию ()

класса Позиц_заказа, чтобы открыть окно ее спецификации. 7. В раскрывающемся списке Return class укажите Воо1еаn. 8. Перейдите на вкладку Detail(Подробно). 9. Щелкните правой кнопкой мыши в области аргументов, чтобы

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

добавит аргумент под названием argname. 11. Щелкнув один раз на этом слове, выделите его и измените имя

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

типов выберите Integer (Если этого либо иного необходимого типа не будет- введите его вручную).

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

14. Нажав на кнопку ОК, закройте окно спецификации операции. 15. Дважды щелкните на операции Создать() класса Позиц_заказа,

чтобы открыть окно ее спецификации. 16. В раскрывающемся списке Return class укажите Вооlеаn. 17. Нажав на кнопку ОК, закройте окно спецификации операции. Подробное описание операций 1. Используя браузер или диаграмму Классов, введите следующие

сигнатуры операций класса Заказ_деталей: Открыть() : Boolean Сохранить заказ() : Boolean 2. Используя браузер или диаграмму Классов, введите сигнатуру

операций класса Выбор_заказа: Создать() : Вооlеаn 3. Используя браузер или диаграмму Классов, введите сигнатуру

операций класса Упр_заказами: Сохранить заказ(OrderID : Integer) : Вооlеаn 4. Используя браузер или диаграмму Классов, введите сигнатуры

операций класса Упр_транзакциями: Сохранить заказ(OrderID : Integer) : Boolean Сохранить информацию() : Integer 7.2 Порядок выполнения лабораторной работы 1. К описаниям операций добавьте детали, включая параметры и

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

Page 33: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

33

Лабораторная работа 8. Описание связей между классами 8.1 Пример построения диаграммы В данной лабораторной работе определяются связи между классами,

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

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

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

использования "Ввести новый заказ". Этапы выполнения примера Настройка 1. Найдите в браузере диаграмму Классов "Ввод нового заказа", 2. Дважды щелкнув на диаграмме, откройте ее. 3. Проверьте, имеется ли в панели инструментов диаграммы кнопка

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

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

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

Добавление ассоциаций 1. Нажмите кнопку Unidirectional Association панели инструментов. 2. Проведите ассоциацию от класса выбор_заказа к классу

заказ_деталей. 3. Повторите шаги 1 и 2, создав ассоциации:

От класса заказ_деталей к классу упр_заказами От класса упр_заказами к классу Заказ От класса упр_заказами к классу упр_транзакциями От класса упр_транзакциями к классу Заказ От класса упр_транзакциями к классу Позиц_заказа От класса Заказ к классу Позиц_заказа

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

Page 34: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

34

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

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

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

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

Рисунок 10. Ассоциации сценария "Ввести новый заказ" 8.2 Порядок выполнения лабораторной работы 1. Опишите связи между классами. 2. Постройте ассоциации сценария. 3. Подготовьте отчет о выполнении лабораторной работы.

Page 35: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

35

Лабораторная работа 9. Исключение кириллизованного текста в информации классов. 9.1 Пример построения диаграммы Постановка задачи Разработанные ранее модели, предназначенные для описания

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

Этапы выполнения примера Этап 1. Используя меню (Файл-> Сохранить как) сохраните данную

модель под другим именем (например Заказ1) в той же папке, что и исходная модель.

Работайте далее с копией модели (то есть Заказ1). Этап 2. Переименуйте классы и их спецификации таким образом,

чтобы использовался только латинский шрифт. Замените имя класса Заказ_деталей на OrderDetail Выбор_заказа на OrderОptions Заказ на Order Упр_заказами на OrderMgr Позиц_заказа на OrderItem Упр_транзакциями на TransactionMgr Измените имена операций таким образом, чтобы рисунок 10

преобразовался в рисунок 11. Для этого, измените операцию класса OrderОptions

Создать() на Create() Класса OrderDetail Открыть() на Open() Сохранить заказ() на Save() Класса Order Ввести номер заказа, заказчика и число заказываемых предметов()

на SetInfo() Создать новый заказ() на CreateNew() Класса OrderMgr Сохранить заказ() на SaveOrder() Класса TransactionMgr Сохранить заказ() на SaveOrder() Сохранить информацию() на Commit() Информация о заказе() на Info() Класса OrderItem Создать() на Create() Взять_информацию() на GetInfo()

Page 36: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

36

Дать_информацию на SetInfo() Переименуйте имена пакетов Границы на Boundaries Сущности на Entity Контроль на Control Добавление стереотипов к классам 1. Щелкните правой кнопкой мыши на классе OrderOptions

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

спецификацию). 3. В поле стереотипа выберите из выпадающего списка слово

Boundary (если его нет, то введите). 4. Нажмите на кнопку ОК. 5. Повторив шаги 1—4, свяжите классы OrderDetail со стереотипом

Boundary, OrderMgr и TransactionMgr со стереотипом Control, а класс Order и OderItem— со стереотипом Entity.

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

Рисунок 11. Основная диаграмма классов 9.2 Порядок выполнения лабораторной работы 1. Исключите кириллизованный текст в информации классов. 2. Постройте диаграмму классов. 3. Подготовьте отчет о выполнении лабораторной работы.

Page 37: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

37

Лабораторная работа 10. Построение диаграммы компонентов. 10.1 Пример построения диаграммы В настоящем разделе начинается построение физической модели

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

то в настройках это необходимо отметить. Выполнить Tools>Options>Notations>Default Language и из выпадающего списка языков программирования выбрать Delphi.

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

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

Пакет}. 3. Назовите пакет Entities (Сущности). 4. Повторив шаги с первого по третий, создайте пакеты Boundaries

(Границы) и Control (Управление). Добавление пакетов на Главную диаграмму Компонентов 1. Откройте Главную диаграмму Компонентов, дважды щелкнув на

ней мышью, 2. Перетащите пакеты Entities, Boundary и Control из браузера на

Главную диаграмму. Отображение зависимостей между пакетами 1. Нажмите кнопку Dependency (Зависимость) панели инструментов. 2. Щелкните мышью на пакете Boundary Главной диаграммы

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

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

Компонентов, откройте Главную диаграмму Компонентов этого пакета. 2. Нажмите кнопку Package Specification (Спецификация пакета)

панели инструментов. 3. Поместите спецификацию пакета на диаграмму. 4. Введите имя спецификации пакета — OrderItem_.

Page 38: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

38

Рисунок 12. Зависимости между пакетами 5. Повторив шаги 2—4, добавьте спецификацию пакета Order_. 6. Нажмите кнопку Dependency (Зависимость) панели инструментов. 7. Щелкните мышью на спецификации пакета OrderItem_. 8. Проведите линию зависимости к спецификации пакета Order_. 9. С помощью описанного метода создайте следующие компоненты

и зависимости: Для пакета Boundaries: • Спецификацию пакета Orderоptions_ • Спецификацию пакета OrderDetail_ Зависимости в пакете Boundaries: • От спецификации пакета Orderоptions_ к спецификации пакета

OrderDetail_ Для пакета Control: • Спецификацию пакета OrderMgr_ • Спецификацию пакета TransactionMgr_ Зависимости в пакете Control: • От спецификации пакета OrderMgr_ к спецификации пакета

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

браузере. 2. В открывшемся меню выберите пункт New > Component Diagram

(Создать > Диаграмма Компонентов). 3. Назовите новую диаграмму System. 4. Дважды щелкните на этой диаграмме мышью.

Page 39: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

39

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

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

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

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

компоненты: Из пакета компонентов Boundaries: • Спецификацию пакета Orderоptions_ • Спецификацию пакета OrderDetail_ Из пакета компонентов Control: • Спецификацию пакета OrderMgr_ • Спецификацию пакета TransactionMgr_ 6. Нажмите кнопку Task Specification (Спецификация задачи) панели

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

OrderClientExe. 8. Повторите шаги 6 и 7 для спецификации задачи OrderServerExe. Добавление оставшихся зависимостей на диаграмму

Компонентов системы Уже существующие зависимости будут автоматически показаны на

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

1. Нажмите кнопку Dependency (Зависимость) панели инструментов. 2. Щелкните мышью на спецификации пакета OrderDetail_ 3. Проведите линию зависимости к спецификации пакета OrderMgr_ 4. Повторив шаги 1 — 3, создайте следующие зависимости: • От спецификации пакета OrderMgr_ к спецификации пакета Order_ • От спецификации пакета TransactionMgr_ к спецификации пакета

OrderItem_ • От спецификации пакета TransactionMgr_ к спецификации пакета

Order_ • От спецификации задачи OrderClientExe к спецификации пакета

Orderоptions_ • От спецификации задачи OrderServerExe к спецификации пакета

OrderMgr_ Диаграмма компонентов показана на рисунке 13.

Page 40: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

40

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

Entity. 2. Перетащите этот класс на спецификацию пакета компонента

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

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

• Класс OrderItem со спецификацией пакета OrderItem_ • Класс Orderоptions со спецификацией пакета Orderоptions_ • Класс OrderDetail со спецификацией пакета OrderDetail_ • Класс OrderMgr со спецификацией пакета OrderMgr_ • Класс TransactionMgr со спецификацией пакета TransactionMgr_ В результате в браузере после имени класса, в скобках появятся

имена компонентов, с которыми этот класс связан (рисунок 14)

Page 41: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

41

Рисунок 14. Представление компонентов и классов в браузере 10.2 Порядок выполнения лабораторной работы 1. Исключите кириллизованный текст в информации классов. 2. Постройте диаграмму компонентов. 3. Подготовьте отчет о выполнении лабораторной работы.

Page 42: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

42

Лабораторная работа 11. Кодогенерация проекта в Delphi 11.1 Пример Теперь вся информация подготовлена к тому, чтобы

запрограммировать классы с их методами и операциями. Для выполнения кодогенерации в среде Delphi необходимо

выполнить следующую последовательность действий: - протестировать модель на логические непротиворечия; - настроить (или проверить настройки) среду на законы

кодогенерации (соответствие элемента модели Rose элементу кода Delphi);

- создать имя проекта Delphi и выполнить кодогенерацию. Этапы выполнения примера 1) Протестируйте модель Tools->Check Model. Просмотрите log файл

на наличие ошибок. Если файл не виден- выполните команду file->Save Log As и введите имя файла (по умолчанию error.log). Затем его просмотрите и, при необходимости, исправьте ошибки. К наиболее распространенным ошибкам относятся такие, как неотображение сообщений на операции или несоотнесение объектов с классами на диаграммах взаимодействия. С помощью пункта меню Check Model можно выявить большую часть неточностей и ошибок в модели.

2) Пункт меню Report > Show Access Violations позволяет обнаружить нарушения правил доступа, возникающие тогда, когда существует связь между двумя классами разных пакетов. При этом связи между самими пакетами нет. Например, если существует связь между классами Order пакета Entities и OrderManager пакета Control, то обязательно должна существовать и связь между пакетами Entities и Control. Если последняя связь не установлена, Rose выявит нарушение правил доступа.

Проанализируйте все нарушения правил доступа. 3) Выполните Tools>Options>Notation>Default Language и из

выпадающего списка выберите язык программирования Delphi. 4) Выполните Tools> Ensemble Tools>Rose Delphi Link (рисунок 15). В результате появится соответствующая экранная форма. Выполните

на этой форме File>New Proect. Появится форма с браузером. Введите имя файла и место на диске, куда будет сохранено имя сгенерированного проекта в Delphi. Например, NewProect.dpr и нажмите Открыть.

В результате форма примет вид, показанный на рисунке 16.

Page 43: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

43

Рисунок 15. Меню для выбора процесса кодогенерации

Рисунок 16. Представление результатов кодогенерации в окне Rose Delphi Link

Page 44: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

44

5) Нажмите кнопку . 6) Через проводник Windows найдите папку проекта Delphi. С

помощью программы Borland Delphi или Блокнот просмотрите содержимое всех файлов. В приложении А к руководству приведено содержимое всех файлов проекта.

11.2 Порядок выполнения лабораторной работы 1. Установите программу RoseDelphiLink3Lite. 2. Выполните кодогенерацию проекта в Delphi. 3. Подготовьте отчет о выполнении лабораторной работы.

Page 45: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

45

Лабораторная работа 12. Анализ Delphi проекта, добавление визуальных объектов, реинжениринг в Rose

12.1 Пример Этапы выполнения примера Изменение проекта в Borland Delphi 1)Запустите на выполнение программу Borland Delphi и загрузите

сгенерированный проект (Proect1.dpr). Проверьте, что проект содержит все модули и присмотрите их содержимое через редактор Delphi.

2) Создайте в проекте Delphi новую форму с наименованием Form1. Поместите на форму компонент MainMenu (главное меню)

3) С помощью Menu Disigner введите две позиции горизонтального меню с названиями (полями Caption) Oder и OderItem.

4) Для Oder введите две строки вертикального меню с названиями Create и SubmitInfo. Для OderItem введите одну строку вертикального меню с названием GetInfo. Результат показан на русунке 17.

Рисунок 17 5) Сохраните проект в Delphi. Реинжениринг Delphi проекта в модель Rose 1) Вернитесь в проект Rose и откройте окно проектов Rose Delphi

Link. Проверьте, что открыт именно тот проект, для которого выполнялась кодогенерация.

2) Курсором мыши нажмите клавишу (обновление модели Rose на основе изменений проекта Delphi). В результате в модели Rose должны произойти определенные изменения (рисунок 18):

Page 46: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

46

Рисунок 18. Окно Rose Delphi Link после кодогенерации - в представление Logic View создался новый пакет Unit1 и External

References (Внешние ссылки). Внутри второго пакета созданы три класса TForm, TMainMenu и TMenuItem, которые использовались при развитии проекта Delphi. Отметим, что эта папка не создалась бы, если бы мы при первоначальном создании проекта включили в него пакет классов Delphi FreimWork.

- в этом же представлении в пакете Unit1 создан класс TForm1 и Unit1 оба соотнесенные с вновь созданным компонентом Unit1. Кроме того, в этом же пакете создалась диаграмма классов Overview, содержимое которой показано на рисунке 19.

Page 47: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

47

Рисунок 19. Результаты реинжениринга проекта Delphi в Rose 12.2 Порядок выполнения лабораторной работы 1. Внесите изменения проекта в Delphi. 2. Выполните реинжениринг проекта Delphi в Rose. 3. Подготовьте отчет о выполнении лабораторной работы.

Page 48: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

48

Лабораторная работа 13. Построение диаграммы размещения 13.1 Пример построения диаграммы В данной лабораторной работе создается диаграмма Размещения для

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

браузере (Deployment View), откройте диаграмму Размещения. 2. Нажмите кнопку Processor (Процессор) панели инструментов. 3. Щелкнув мышью на диаграмме, поместите туда процессор. 4. Введите имя процессора Сервер базы данных. 5. Повторив шаги 2—4, добавьте следующие процессоры: - Сервер приложения - Клиентская рабочая станция №1 - Клиентская рабочая станция №2 6. На панели инструментов нажмите кнопку Devices (Устройство). 7. Щелкнув мышью на диаграмме, поместите туда устройство. 8. Назовите его Принтер. Добавление связей 1. Нажмите кнопку Connection (Связь) панели инструментов. 2. Щелкните мышью на процессоре Сервер базы данных. 3. Проведите линию связи к процессору Сервер приложения. 4. Повторив шаги 1 — 3, добавьте следующие связи; - От процессора Сервер приложения к процессору Клиентская

рабочая станция №1. - От процессора Сервер приложения к процессору Клиентская

рабочая станция №2. - От процессора Сервер приложения к устройству Принтер Добавление процессов 1. Щелкните правой кнопкой мыши на процессоре Сервер

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

Процесс), 3. Введите имя процесса — OrderServerExe. 4. Повторив шаги 1 —- 3, добавьте процессы: - Процесс OrderclientExe на процессоре Клиентская рабочая

станция №1 - Процесс ATMClientExe на процессоре Клиентская рабочая

станция №2 Показ процессов на диаграмме 1. Щелкните правой кнопкой мыши на процессоре Сервер

приложения.

Page 49: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

49

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

3. Повторив шаги 1 и 2, покажите процессы на следующих процессорах:

- Клиентская рабочая станция №1 - Клиентская рабочая станция №2 Диаграмма Размещения показана на рисунке 20.

Рисунок 20. Диаграмма размещения для модельной задачи 13.2 Порядок выполнения лабораторной работы 1. Постройте диаграмму размещения. 2. Подготовьте отчет о выполнении лабораторной работы.

Page 50: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

50

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

понять последовательность работ при проектировании информационной системы и освоить программную среду Rational Rose. Начинать надо с Use Case диаграммы, остальные диаграммы должны служить декомпозицией вариантов использования первой диаграммы. Логические и физические разделы модели Rose с помощью кодогенерации преобразуются в программный код Delphi. Изменения в модели Rose, путем нажатия нескольких кнопок, сразу соответствующим образом изменяют программный код. Тем самым проиллюстрировано основная идея CASE технологий - автоматизированная поддержка информационной системы на всех этапах ее жизненного цикла.

Page 51: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

51

Приложение A. Результаты кодогенерации проекта в Delphi. Модуль NewProect.dpr (Корневая папка) program NewProject; uses OrderClientExe in 'OrderClientExe.pas', OrderServerExe in 'OrderServerExe.pas', OrderDetail_ in 'Baundary\OrderDetail_.pas', OrderOptions_ in 'Baundary\OrderOptions_.pas', TransactionMgr_ in 'Control\TransactionMgr_.pas', OrderMgr_ in 'Control\OrderMgr_.pas', Order_ in 'Entity\Order_.pas', OrderItem_ in 'Entity\OrderItem_.pas'; begin end. Модуль OrderDetail_.pas (Папка Baundary) unit OrderDetail_; interface uses OrderMgr_; type OrderDetail = class public theOrderMgr : OrderMgr; procedure Open (X : Aiilaan(); procedure Save (X : Aiilaan(); end; implementation procedure OrderDetail.Open (X : Aiilaan(); begin end; procedure OrderDetail.Save (X : Aiilaan(); begin end; end. Модуль OrderOptions_.pas (Папка Baundary) unit Orderiptions_; interface uses OrderDetail_; type OrderIptions = class

Page 52: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

52

public theOrderDetail : OrderDetail; procedure Create (X : Aiilaan(); end; implementation procedure OrderIptions.Create (X : Aiilaan(); begin end; end. Модуль OrderMgr_.pas (Папка Control) unit OrderMgr; interface uses Order, TransactionMgr; type OderMgr = class; OderMgr = class public theOrderCollection : array of Order; theTransactionMgr : TransactionMgr; procedure SaveOrder; end; implementation procedure OderMgr.SaveOrder; begin end; end. Модуль TransactionMgr _.pas (Папка Control) unit TransactionMgr; interface uses Order, OrderItem; var theOrderCollection : array of Order; var theOrderItemCollection : array of OrderItem; procedure SaveOrder; procedure CommitXX; implementation procedure SaveOrder; begin

Page 53: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

53

end; procedure CommitXX; begin end; end. Модуль Order_.pas (Папка Entity) unit Order_; interface uses OrderItem_; type Order = class public theOrderItemCollection : array of OrderItem; procedure SetInfo; procedure CreateNew; private OrderNumber : Integer; CustomerName : String; OrderDate : Date; OrderFillDate : Date; end; implementation procedure Order.SetInfo; begin end; procedure Order.CreateNew; begin end; end. Модуль OrderItem_.pas (Папка Entity) unit OrderItem_; interface type OrderItem = class public function Create : Boolean; function GetInfo : String; function SetInfo (ID : integer = 0) : Boolean; private ItemID : Integer; ItemDescription : String; end;

Page 54: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

54

implementation function OrderItem.Create : Boolean; begin end; function OrderItem.GetInfo : String; begin end; function OrderItem.SetInfo (ID : integer) : Boolean; begin end; end. Модуль OrderClientExe.pas (Корневая папка) unit OrderClientExe; interface implementation end. Модуль OrderServerExe.pas (Корневая папка) unit OrderServerExe; interface implementation end.

Page 55: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

55

Список использованной литературы

1 У.Боггс, М. Богс UML и Rational Rose. Издательство «ЛОРИ», 2000 г., 580 с 2 М. Фаулер, К. Скотт UML в кратком изложении. Применение стандартного языка объектного моделирования: Пер. с англ. – М.: Мир, 1999.- 191 с.,с ил. 3 К.Ларман. Применение UML и шаблонов проектирования.-М.:Вильямс, 2004 г., 620 с. 4 Квантари Т. Rational Rose 2000 и UML. Визуальное моделирование. – М: ДМК., 2001 г., 176 с. 5 Введение в теорию информационных систем /Под редакцией Е.В.Юркевича – М. ИД Технологии, 2004г. 6 Мамиконов А.Г. Основы построения АСУ: Учебник для ВУЗов.- М: Высшая школа, 1981. 7 Ханенко В.Н. Информационные системы. –Л.: 2001. 8 Информационные управляющие системы /Сборник научных трудов – Пермь: Изд-во Перм.гос.техун-т, 2001. 9 Петров В.Н. Информационные системы. – СПб.:Питер, 2002.

Page 56: x s îÆå ÂÁ° á ´¸?Ëø Ö¡sÈ9d iÕ Ã»Q ÕªõÞ§; i½ 7¨´çÄg- Wöì ...repository.enu.kz/bitstream/handle/123456789/4542/UML.pdf · 2013-01-08 · Построение

к.т.н.Омарбекова А.С.

56

Омарбекова Асель Сайлаубековна Сдано в набор 10.12.2011 г. Подписано к печати 12.12.2011г. Формат 60х84 1/16 Заказ № 9200 Печатный лист 3,5 уч.изд.л. Тираж 25 экз. ___________________________________________________________

(Типография КазАТУ, г.Астана, пр.Победы 62а)