Методические указания к практическим занятиям по дисциплине разработка и эксплуатация экономических информационных систем

комитет образования и науки Курской области
Областное бюджетное образовательное учреждение
«Железногорский политехнический колледж»





Методические указания
к практическим занятиям
по дисциплине «Разработка и эксплуатация экономических информационных систем»


для групп на базе основного общего образования с получением среднего (полного) общего и среднего профессионального образования
по специальности 230401 «Информационные системы (по отраслям)»
















г. Железногорск 2014г.

Одобрено
Разработано в соответствии с рабочей программой по дисциплине «Разработка и эксплуатация экономических информационных систем»
для групп на базе основного общего образования с получение среднего (полного) общего и среднего профессионального образования
по специальности 230401 Информационные системы (по отраслям)

Предметно-цикловой комиссией

Протокол № ___________
от «___» __________20__г
Председатель ПЦК:
__________________


Методические рекомендации к практическим занятиям предназначены в качестве руководства к выполнению практических работ студентов. Данное издание призвано помочь студентам освоить практические навыки и умения материала курса.





Разработчик: преподаватель Васильева Е. А.


Содержание


стр.

13LINK \l "_Пояснительная_записка"14Пояснительная записка15
5

Введение
6

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

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

Практическая работа 3. Создание Кооперативной диаграммы. Добавление на диаграмму дополнительных объектов
23

Практическая работа 4. Диаграмма состояний для класса Заказ
31

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

Практическая работа 6. Пакеты и классы
45

Практическая работа 7. Уточнение методов и свойств классов. Добавление атрибутов
49

Практическая работа 8. Исключение кириллизованного текста в информации классов
54

Практическая работа 9. Построение диаграммы компонентов
57

Практическая работа 10. Кодогенерация проекта в Delphi
68

Практическая работа 11. Технология создания БД в Дельфи: BDE
75

Практическая работа 12. Компоненты баз данных
80

Практическая работа 13. Компоненты синхронного просмотра


Практическая работа 14. Редактор колонок: работа с сеткой DBGrid
89

Практическая работа 15. Перемещение по записям набора данных. Доступ к полям.
94

Практическая работа 16. Работа с записями: сортировка. Работа с записями: фильтрация.
99

Практическая работа 17. Графики и диаграммы: компонент DBChart. Модификация набора данных
102

Практическая работа 18. Добавление вычисляемого поля. Подсчет итогов по столбцу таблицы
105

Практическая работа 19. Выбор информации из базы данных: запросы. Анализ Delphi проекта, добавление визуальных объектов
108

Практическая работа 20. Кодогенерация модельных элементов. Построение диаграммы размещения
112

Заключение
125

Рекомендованная литература
125

Приложение А.
126

Приложение Б.
130

Приложение В.
134


13LINK \l "_Содержание"14Пояснительная записка15
Данная работа содержит методические указания к практическим занятиям по дисциплине «Разработка и эксплуатация экономических информационных систем», предназначена для обучающихся по специальности 230401 «Информационные системы (по отраслям)».
Цель разработки: оказание помощи обучающимся в выполнении практических работ по дисциплине: «Разработка и эксплуатация экономических информационных систем».
Содержание пособия соответствует требованиям к знаниям, умениям и навыкам дисциплины и разработано в соответствии с рабочей программой. Описание каждой практической работы содержит: тему, цели работы, порядок выполнения работы, а так же перечень контрольных вопросов, с целью выявить и устранить недочеты в освоении рассматриваемой темы.
Для получения дополнительной, более подробной информации по изучаемым вопросам, приведен список рекомендуемой литературы.
Данное пособие может быть использовано для освоения основных приемов работы.
Введение.
Целью настоящего методического руководства является оказание помощи студентам в освоении технологии проектирования информационных систем с позиции объектно-ориентированного проектирования (ООП) на основе языка UML.
Данное методическое руководство состоит из двух разделов. Первый раздел позволяет выполнить практические работы в среде программирования Delphi.
Второй раздел содержит описание для выполнения практических работ в Ratonal Rose.
Последовательность работ следующая: выполняя практические работы первого раздела, студенты приобретают навыки работы по созданию баз данных и их программированию в среде программирования Delphi. Выполняя практические работы второго раздела на первых этапах (пр. 1- 7) строятся диаграммы логического проектирования, не имеющие прямого отношения к языку программирования. Это диаграммы концептуального моделирования, они используются для общения с постановщиками задач. Для лучшего понимания диаграмм в работах используется кириллизованный текст. Затем (пр.8), для подготовки модели к кодогенерации, кириллица в именах классов, атрибутах и методах заменяется на латинский шрифт. После этого производится кодогенерация в Delphi. Далее предлагается загрузить сгенерированный проект в Delphi и добавить в него новые визуальные компоненты. Затем выполнить реинжениринг Delphi проекта в Rose, исследовать модель, описать законы кодогенерации.

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

Цель: научиться создавать диаграмму вариантов использования и действующих лиц
Окончательный вид диаграммы показан на рис. 1.

Рис. 1 Диаграмма вариантов использования задачи о заказе товара.
Этапы выполнения упражнения.
1. Дважды щелкнув мышью на Главной диаграмме Вариантов Использования (Main) в браузере, откройте ее.
2.С помощью кнопки Use Case (Вариант использования) панели инструментов поместите на диаграмму новый вариант использования. Назовите его "Ввести новый заказ".
3. Повторив этапы 2 и 3, поместите на диаграмму остальные варианты использования:
Изменить существующий заказ
Напечатать инвентарную опись
Обновить инвентарную опись
Оформить заказ
Отклонить заказ
Выполнить поставку заказа
4. С помощью кнопки Actor (Действующее лицо) панели инструментов поместите на диаграмму новое действующее лицо.
5. Назовите его "Продавец".
6. Повторив шаги 4 и 5, поместите на диаграмму остальных действующих лиц:
Управляющий магазином
Клерк магазина
Бухгалтерская система
7. Создание абстрактного варианта использования (не требующего дальнейшей декомпозиции).
Щелкните правой кнопкой мыши на варианте использования "Отклонить заказ" на диаграмме.
В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).
Установите флажок Abstract (Абстрактный), чтобы сделать этот вариант использования абстрактным.
Добавление ассоциаций
1. С помощью кнопки Unidirectional Association (Однонаправленная ассоциация) панели инструменте нарисуйте ассоциацию между действующим лицом Продавец и вариантом использования "Ввести заказ".
2. Повторив шаг 1, поместите на диаграмму остальные ассоциации, согласно рис. 1.
Добавление связи расширения
С помощью кнопки Generalization (Обобщение) панели инструментов нарисуйте связь между вариантом использования "Отклонить заказ" и вариантом использования "Оформить заказ". Стрелка должна быть направлена от первого варианта использования ко второму. Связь расширения означает, что вариант использования "Отклонить заказ" при необходимости дополняет функциональные возможности варианта использования "Оформить заказ".
Щелкните правой кнопкой мыши на новой связи между вариантами использования "Отклонить заказ" и "Оформить заказ".
В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).
В раскрывающемся списке стереотипов введите слово extends (расширение), затем нажмите ОК.
Надпись «extends» появится на линии данной связи.
Добавление описаний к вариантам использования
Выделите в браузере вариант использования "Ввести новый заказ".
В окне документации введите следующее описание: " Этот вариант использования дает клиенту возможность ввести новый заказ в систему".
С помощью окна документации добавьте описания ко всем остальным вариантам использования.
Добавление описаний к действующему лицу
Выделите в браузере действующее лицо Продавец.
В окне документации введите следующее описание: "Продавец это служащий, старающийся продать товар".
С помощью окна документации добавьте описания к остальным действующим лицам.

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

Согласовав основные бизнес процессы с Антоном, Павел приступил к построению модели бизнес- процессов, что бы ответить на вопрос- «как это должно делаться в системе». Для начала он выбрал наиболее важный Вариант использования - «Ввод нового заказа» и построил для него диаграммы взаимодействия.
Диаграммы взаимодействия включают в себя два типа диаграмм - Последовательности и Кооперативную.
Этапы выполнения упражнения
Настройка программной среды
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 (Сообщение объекта).
2. Проведите мышью от линии жизни действующего лица Продавец к линии жизни объекта Выбор варианта заказа.
3. Выделив сообщение, введите его имя Создать новый заказ.
4. Повторив шаги 2 и 3, поместите на диаграмму сообщения:
- Открыть форму между Выбор Варианта Заказа и Форма деталей Заказа
- Ввести номер заказа, заказчика и число заказываемых предметов между Продавец и Форма Деталей Заказа
- Сохранить заказ между Продавец и Форма Деталей Заказа
- Создать пустой заказ между Форма Деталей Заказа и Заказ N1234
- Ввести номер заказа, заказчика и число заказываемых предметов между Форма Деталей Заказа и Заказ N1234
- Сохранить заказ между Форма Деталей Заказа и Заказ N1234
Завершен первый этап работы. Готовая диаграмма Последовательности представлена на рис. 2.

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

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

Добавление на диаграмму дополнительных объектов
1. Нажмите кнопку Object панели инструментов.
2. Щелкните мышью между объектами Форма Деталей Заказа и Заказ №1234, чтобы поместить туда новый объект.
3. Введите имя объекта Управляющий заказами.
4. Нажмите кнопку Object панели инструментов.
5. Новый объект расположите справа от Заказ №1234.
6. Введите его имя- Управляющий транзакциями.
Назначение ответственностей объектам
1. Выделите сообщение 5: Создать пустой заказ.
2. Нажав комбинацию клавиш CTRL+D, удалите это сообщение.
3. Повторите шаги 1 и 2 для удаления двух последних сообщений:
- Вести номер заказа, заказчика и число заказываемых предметов
- Сохранить заказ
4. Нажмите кнопку Object Message панели инструментов.
5. Поместите на диаграмму новое сообщение, расположив его под сообщением 4 между Форма деталей заказа и Управляющий заказами.
6. Назовите его Сохранить заказ.
7. Повторите шаги 4 6, добавив сообщения с шестого по девятое и назвав их:
- Создать новый заказ между Управляющий заказами и Заказ №1234
- Ввести номер заказа, заказчика и число заказываемых предметов- между Управляющий заказами и Заказ №1234
- Сохранить заказ- между Управляющий заказами и Управляющий транзакциями
- Информация о заказе между Управляющий транзакциями и Заказ №1234
8. На панели инструментов нажмите кнопку Message to Self (Сообщение себе).
9. Щелкните на линии жизни объекта Управляющий транзакциями ниже сообщения 9, добавив туда рефлексивное сообщение.
10. Назовите его Сохранить информацию о заказе в базе данных.
Соотнесение объектов с классами
1. Щелкните правой кнопкой мыши на объекте Выбор варианта заказа.
2. В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).
В раскрывающемся списке классов выберите пункт (Создать). Появится окно спецификации классов.
4. В поле Name введите Выбор заказа.
5. Щелкните на кнопке ОК. Вы вернетесь в окно спецификации объекта.
6. В списке классов выберите класс Выбор Заказа.
7. Щелкните на кнопке ОК, чтобы вернуться к диаграмме. Теперь объект называется Выбор варианта заказа: Выбор Заказа
8. Для соотнесения остальных объектов с классами повторите шаги с 1 по 7:
- Класс Детали заказа соотнесите с объектом Форма деталей заказа
- Класс Упр_заказами с объектом Управляющий заказами
- Класс Заказ с объектом Заказ N 1234
- Класс Упр_ транзакциями с объектом Управляющий транзакциями
Соотнесение сообщений с операциями
1. Щелкните правой кнопкой мыши на сообщении 1: Создать новый заказ.
2. В открывшемся меню выберите пункт (создать операцию). Появится окно спецификации операции.
3. В поле Name введите имя операции Создать.
4. Нажмите на кнопку ОК, чтобы закрыть окно спецификации операции и вернуться к диаграмме.
5. Еще раз щелкните правой кнопкой мыши на сообщении 1.
6. В открывшемся меню выберите новую операцию Создать().
7. Повторите шаги с 1 по 6, чтобы соотнести с операциями все остальные сообщения:
- Сообщение 2: Открыть форму соотнесите с операцией Открыть()
- Сообщение 3: Ввести номер заказа, заказчика и число заказываемых предметов с операцией Ввести номер заказа, заказчика и число заказываемых предметов()
- Сообщение 4: Сохранить заказ с операцией Сохранить заказ()
- Сообщение 5: Сохранить заказ с операцией Сохранить заказ()
- Сообщение 6: Создать пустой заказ – с операцией Создать пустой заказ()
- Сообщение 7: Ввести номер заказа, заказчика и число заказоваемых предметов- с одноименной операцией.
- Сообщение 8 Сохранить заказ – с операцией Сохранить заказ()
- Сообщение 9 Информация о заказе – с одноименной операцией
- Сообщение 10 Сохранить информацию о заказе с одноименной операцией.
Диаграмма должна выглядеть, как на рис. 3.



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


Практическая работа 3. Создание Кооперативной диаграммы. Добавление на диаграмму дополнительных объектов.
Конечный вид диаграммы представлен на рис. 4.


Рис. 4. Окончательный вид кооперативной диаграммы.
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
- Ввести номер заказа, заказчика и число заказываемых предметов между Форма деталей Заказа и Заказ №1234
- Сохранить заказ между Форма деталей Заказа и Заказ №1234
Теперь нужно поместить на диаграмму дополнительные элементы, а также рассмотреть ответственности объектов.
Добавление на диаграмму дополнительных объектов
1. Нажмите кнопку Object панели инструментов.
2. Щелкните мышью где-нибудь на диаграмме, чтобы поместить туда новый объект.
3. Введите имя объекта Управляющий заказами.
4. На панели инструментов нажмите кнопку Object.
5. Поместите на диаграмму еще один объект.
6. Введите его имя Управляющий транзакциями.
Назначение ответственностей объектам
1. Выделите сообщение 5: Создать пустой заказ. Выделяйте слова, а не стрелку.
2. Нажав комбинацию клавиш CTRL+D, удалите это сообщение.
3. Повторите шаги 1 и 2 для удаления сообщений 6 и 7:
- Ввести номер заказа, заказчика и число заказываемых предметов
- Сохранить заказ
4. Выделите связь между объектами Форма деталей Заказа и Заказ №1234
5. Нажав комбинацию клавиш CTRL+D, удалите эту связь
6. На панели инструментов нажмите кнопку Object Link (Связь объекта).
7. Нарисуйте связь между Форма деталей Заказа и Управляющий Заказами.
8. На панели инструментов нажмите кнопку Object Link (Связь объекта).
9. Нарисуйте связь между Управляющий Заказами и Заказ №1234
10. На панели инструментов нажмите кнопку Object Link (Связь объекта).
11. Нарисуйте связь между Заказ №1234 и Управляющий Транзакцией.
12. На панели инструментов нажмите кнопку Object Link (Связь объекта).
13. Нарисуйте связь между Управляющий Заказами и Управляющий Транзакцией.
14. На панели инструментов нажмите кнопку Link Message (Сообщение связи).
15. Щелкните мышью на связи между объектами Форма деталей Заказа и Управляющий Заказами, чтобы ввести новое сообщение.
16. Назовите это сообщение Сохранить заказ.
17. Повторите шаги 14 16, добавив сообщения с шестого по девятое, и назвав их:
- Создать новый заказ между Управляющий Заказами и Заказ №1234
- Ввести номер заказа, заказчика и число заказываемых предметов между Управляющий Заказами и Заказ №1234
- Сохранить заказ между Управляющий Заказами и Управляющий Транзакцией
- Информация о заказе между Управляющий Транзакцией и Заказ №1234
18. На панели инструментов нажмите кнопку Link to Self (Связь с собой).
19. Щелкнув на объекте Управляющий Транзакцией, добавьте к нему рефлексивное сообщение.
20. На панели инструментов нажмите кнопку Link Message (Сообщение связи).
21. Щелкните мышью на рефлексивной связи Управляющий Транзакциями, чтобы ввести туда сообщение.
22. Назовите новое Сохранить информацию о заказе в базе данных.
Соотнесение объектов с классами (если классы были созданы при разработке описанной выше диаграммы Последовательности)
1. Найдите в браузере класс Выбор Заказа.
2. Перетащите его на объект Выбор варианта заказа на диаграмме.
3. Повторите шаги 1 и 2 соотнеся остальные объекты и соответствующие им классы:
- Класс заказ деталей соотнесите с объектом Форма деталей заказа
- Класс Упр_заказами с объектом Управляющий Заказами
- Класс Заказ с объектом Заказ №1234
- Класс Упр_транзакциями с объектом Управляющий транзакциями
Соотнесение объектов с классами (если вы не создавали описанную выше диаграмму Последовательности)
1. Щелкните правой кнопкой мыши на объекте Форма деталей Заказа.
2. В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).
3. В раскрывающемся списке классов выберите пункт (Создать). Появится окно спецификации классов.
4. В поле имени введите Выбор заказа.
5. Щелкните на кнопке ОК. Вы вернетесь в окно спецификации объекта.
6. В списке классов выберите класс Выбор заказа.
7. Щелкните на кнопке OK, чтобы вернуться к диаграмме. Теперь объект называется Выбор варианта заказа: Выбор Заказа
8. Для соотнесения остальных объектов с классами повторите шаги с 1 по 7:
- Класс Детали заказа соотнесите с объектом Форма деталей заказа
- Класс Упр_заказами с объектом Управляющий заказами
- Класс Заказ с объектом Заказ N 1234
- Класс Упр_ транзакциями с объектом Управляющий транзакциями
Соотнесение сообщений с операциями (если операции были созданы при разработке описанной выше диаграммы Последовательности)
1. Щелкните правой кнопкой мыши на сообщении 1: Создать новый заказ.
2. В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).
3. В раскрывающемся списке имен укажите имя операции Создать().
4. Нажмите на кнопку ОК.
5. Повторите шаги 14 для соотнесения с операциями остальных сообщений:
- Сообщение 2: Открыть форму соотнесите с операцией Открыть()
- Сообщение 3: Ввести номер заказа, заказчика и число заказываемых предметов с операцией Ввести номер заказа, заказчика и число заказываемых предметов()
- Сообщение 4: Сохранить заказ с операцией Сохранить заказ()
- Сообщение 5: Сохранить заказ с операцией Сохранить заказ()
Сообщение 6: Создать пустой заказ – с операцией Создать пустой заказ()
Сообщение 7: Ввести номер заказа, заказчика и число заказоваемых предметов- с одноименной операцией.
Сообщение 8 Сохранить заказ – с операцией Сохранить заказ()
Сообщение 9 Информация о заказе – с одноименной операцией
Сообщение 10 Сохранить информацию о заказе с одноименной операцией
Соотнесение сообщений с операциями (если вы не создавали описанную выше диаграмму Последовательности)
1. Щелкните правой кнопкой мыши на сообщении 1: Создать новый заказ().
2. В открывшемся меню выберите пункт (создать операцию). Появится окно спецификации операции.
3. В поле имени введите имя операции Создать().
4. Нажмите на кнопку ОК, чтобы закрыть окно спецификации операции и вернуться к диаграмме.
5. Еще раз щелкните правой кнопкой мыши на сообщении 1.
6. В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).
7. В раскрывающемся списке Name (Имя) укажите имя новой операции.
8. Нажмите на кнопку ОК.
9. Повторите шаги 18, чтобы создать новые операции и соотнести с ними остальные сообщения:
- Сообщение 2: Открыть форму соотнесите с операцией Открыть()
- Сообщение 3: Ввести номер заказа, заказчика и число заказываемых предметов с операцией Ввести номер заказа, заказчика и число заказываемых предметов()
- Сообщение 4: Сохранить заказ с операцией Сохранить заказ()
- Сообщение 5: Сохранить заказ с операцией Сохранить заказ()
Сообщение 6: Создать пустой заказ – с операцией Создать пустой заказ()
Сообщение 7: Ввести номер заказа, заказчика и число заказоваемых предметов- с одноименной операцией.
Сообщение 8 Сохранить заказ – с операцией Сохранить заказ()
Сообщение 9 Информация о заказе – с одноименной операцией
Сообщение 10 Сохранить информацию о заказе с одноименной операцией
Ваша диаграмма должна выглядеть, как показано на рис. 4


Практическая работа 4. Диаграмма Состояний для класса Заказ.
Постройте диаграмму Состояний для класса Заказ, показанную на рис. 5.


Рис 5. Диаграмма состояний для класса Заказ
Этапы выполнения упражнения
Создание диаграммы
1. Найдите в браузере класс Заказ.
2. Щелкните на классе правой кнопкой мыши и в открывшемся меню укажите пункт New > Statechart Diagram (Создать диаграмму состояний).
Добавление начального и конечного состояний
1. Нажмите кнопку Start State (Начальное состояние) панели инструментов.
2. Поместите это состояние на диаграмму.
3. Нажмите кнопку End State (Конечное состояние) панели инструментов.
4. Поместите это состояние на диаграмму.
Добавление суперсостояния
1. Нажмите кнопку State (Состояние) панели инструментов.
2. Поместите это состояние на диаграмму.
Добавление оставшихся состояний
1. На панели инструментов нажмите кнопку State (Состояние).
2. Поместите состояние на диаграмму.
3. Назовите состояние Отменен.
4. На панели инструментов нажмите кнопку State(Состояние).
5. Поместите состояние на диаграмму.
6. Назовите состояние Выполнен.
7. На панели инструментов нажмите кнопку State(Состояние).
8. Поместите состояние на диаграмму внутрь суперсостояния.
9. Назовите состояние Инициализация.
10. На панели инструментов нажмите кнопку State (Состояние).
11. Поместите состояние на диаграмму внутрь суперсостояния.
12. Назовите состояние Выполнение заказа приостановлено.
Описание состояний
1. Дважды щелкните мышью на состоянии Инициализация.
2. Перейдите на вкладку Detail (Подробно).
3. Щелкните правой кнопкой мыши в окне Actions(Действия).
4. В открывшемся меню выберите пункт Insert(Вставить).
5. Дважды щелкните мышью на новом действии.
6. Назовите его Сохранить дату заказа.
7. Убедитесь, что в окне When (Когда) указан пункт On Entry (На входе).
8. Повторив шаги 37, добавьте следующие действия:
- Собрать клиентскую информацию, в окне When укажите DO (Выполнять между входом и выходом)
- Добавить к заказу новые позиции, укажите DO
9. Нажмите два раза на ОК, чтобы закрыть спецификацию.
10. Дважды щелкните мышью на состоянии Отменен.
11. Повторив шаги 27, добавьте действия:
Сохранить дату отмены, укажите On Exit (На выходе)
12. Нажмите два раза на ОК, чтобы закрыть спецификацию.
13. Дважды щелкните мышью на состоянии Выполнен.
14. Повторив шаги 27, добавьте действие:
- Выписать счет, укажите On Exit
15. Нажмите два раза на ОК, чтобы закрыть спецификацию.
Добавление переходов
1. Нажмите кнопку Transition (Переход) панели инструментов.
2. Щелкните мышью на начальном состоянии.
3. Проведите линию перехода к состоянию Инициализация.
4. Повторив шаги с первого по третий, создайте следующие переходы:
- От состояния Инициализация к состоянию Выполнение заказа приостановлено
- От состояния Выполнение заказа приостановлено к состоянию Выполнен
- От суперсостояния к состоянию Отменен
- От состояния Отменен к конечному состоянию
- От состояния Выполнен к конечному состоянию
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. Щелкнув на кнопке ОК, закройте окно спецификации.


Практическая работа 5. Построение диаграммы Активности для варианта использования «Выполнить поставку Заказа».
Побеседовав с Павлом, Антон понял, что необходимо согласовать логику реализации еще одного варианта использования «Выполнить поставку заказа». Стало ясно, что здесь возможны несколько альтернативных потоков управления. Для таких ситуаций более удобно использовать не диаграммы взаимодействия, приспособленные для единственного потока, а диаграмму активности.
Описание варианта использования.
При оформлении заказа проверяют каждую содержащуюся в нем позицию, чтобы убедиться в наличии соответствующих товаров на складе. После этого выписываются товары для реализации заказа. Во время выполнения этих процедур одновременно проверяется прохождение платежа. Если платеж прошел, и товары имеются на складе, то осуществляется их поставка. Если платеж прошел, но товары на складе отсутствуют, то заказ ставится в ожидание. Если платеж не прошел, то заказ аннулируется.
Этапы выполнения упражнения.
1. Найдите в браузере вариант использования «Выполнить поставку заказа»
2. Щелкните на классе правой кнопкой мыши и в открывшемся меню укажите пункт New > Activity Diagram (Создать диаграмму активности).
3. Назвите диаграмму «Выполнить поставку» и откройте ее двукратным щелчком мыши
4. На панели инструментов щелкните мышкой на элементе Swimline, затем на поле диаграммы. На диаграмме появится разделительная линия («водная дорожка»).
5. Установите курсор на заголовок NewSwinlane и нажмите правую клавишу мыши. В выпадающем списке нажмите Select in brousere. В браузере выделится этот объект. Нажав правую клавишу мыши в выпадающем списке выберете Open Specefication и откройте спецификацию. Измените поле Name на Клерк. Выберите в поле Class Клерк в магазине.
6. Выполните заново пункты 5-6 и присвойте полю Name Система, Class- Бухгалтерская система.
7. Найдите в браузере сплошной черный кружок (начальное состояние). Перенесите его на дорожку Клерк.
8. Выберете из панели инструментов объект Activity и помемтите его на диаграмму в “дорожку” Клерк. Измените имя объекта на ”Получить заказ”.
9. Повторите предыдущий этап, создайте на «дорожке» Клерк 4 новых Activity и присвойте им имена Проверить позицию заказа, закрепить позицию за заказом, Поставить заказ в ожидание, Скомплектовать заказ
10. Поместите на «дорожку» 2 новых объекта End State (конечное состояние). Одному из них измените поле Name на «Выполнить поставку»
11. На дорожку Система поместите новый объект Activity и присвойте полю Name “Проверить платеж”. На эту же дорожку поместите новый объект End State и измените в его спецификации поле Name на «Отменить заказ».
12. Поместить на «дорожку» Клерк 2 объекта Horisontal Sinhronization (горизонтальная синхронизация). Присвойте полю Name спецификации одного объекта «1», другого- «2».
13. Поместить на «дорожку» Клерк объект Dicision (выбор). Через спецификацию присвойте полю Name «Позиция имеется?».
14. Поместить на «дорожку» Система объект Dicision. Присвойте полю Name «Деньги поступили?».
15. Щелкните мышкой на панели инструментов объекте- стрелке State Transition (состояние перехода). Затем щелкните мышкой на диаграмме объекта начальное состояние. Удерживая кнопку мыши перенесите курсор на активность ”Получить заказ” и лишь затем отпустить курсор. В результате два объекта будут соединены стрелкой.
16. Выполните этап 14, соединив стрелкой объект Активность «Получить заказ» с объектом Horisontal Sinhronization 1.
17. Соедините этими же стрелками объекты 1 и «Проверить платеж», 1 и «Проверить позицию заказа», «Проверить заказ» и «Деньги подступили?», «Деньги поступили?» и «Отменить заказ», «Проверить позицию заказа» и «Позиция имеется», «Позиция имеется» и «Закрепить позицию за заказом», «Деньги получены?» и 2, «Закрепить позицию за заказом» и 2, «Позиция имеется?» и «Поставить заказ в ожидание», 2 и «Скомплектовать заказ», «Скомплектовать заказ» и «Выполнить поставку», «Поставить заказ в ожидание» и объект Конечное состояние (без имени).
18. Присвоим некоторым стрелкам наименование полю Event (условие перехода).Для этого, установим курсор на стрелке, соединяющей «Деньги получены?» и «Отменить заказ». Двукратным щелчком мыши откроем окно спецификации. В поле Event введем «Нет».
19. Выполним пункт 18 для стрелки, соединяющей «Деньги получены?» и 2 и присвойте Event «Да». Аналогично для стрелки соединяющей «Позиция имеется?» и «Закрепить позицию за заказом» присвоить Event «Да». Стрелке, соединяющей «Позиция имеется?» и «Поставить заказ в ожидание» - «Нет».
20. Добавим элементарные действия (Actions) к активности “Проверить позицию заказа». Установим курсор на «Проверить позицию заказа» и двукратным щелчком мыши откроем окно спецификации. Откроем закладку Actions. Установим курсор на свободное поле и нажмем правую клавиши мыши. В выпадающем меню нажмем Insert. В появившейся заставке в поле When выберем Entry(на входе в активность), В поле Name введем «Просмотреть спецификацию к заказу». Нажать Ok. Вновь нажмем курсор правой мыши и введем новое действие. Полю When прсвоим Do(промежуток между входом и выходом), а полю Name «Найти новую позицию». При вводе третьей активности полю When присвойте Exit (выход), а полю Name «Передать результаты поиска».
21. Путем перемещения объектов (установить курсор мыши- нажать- тащить- отпустить) привести диаграмму к виду, показанному на рис. 6.

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


Практическая работа 6. Пакеты и классы
В этом упражнении необходимо сгруппировать в пакеты классы, созданные при выполнении предыдущих работ. Затем нужно будет построить несколько диаграмм Классов и показать на них классы и пакеты системы.
Создание диаграммы Классов
Объедините обнаруженные классы в пакеты. Создайте диаграмму Классов для отображения пакетов, диаграммы Классов, для представления классов в каждом пакете и диаграмму Классов для представления всех классов варианта использования "Ввести новый заказ".
Этапы выполнения упражнения
Создание пакетов
1. Щелкните правой кнопкой мыши на Логическом представлении браузера.
2. В открывшемся меню выберите пункт New > Package (Создать >Пакет).
3. Назовите новый пакет Сущности.
4. Повторив шаги 13, создайте пакеты Границы и Управление.
Создание Главной диаграммы Классов
1. Дважды щелкнув мышью на Главной диаграмме Классов, находящейся под Логическим представлением браузера, откройте ее.
2. Перетащите пакет Сущности из браузера на диаграмму.
3. Перетащите пакеты Границы и Управление из браузера на диаграмму.
Главная диаграмма Классов должна выглядеть, как показано на рис. 7



Рис. 7 Главная диаграмма классов в логическом представлении браузера.
Создание диаграммы Классов для сценария "Ввести новый заказ" с отображением всех классов
1. Щелкните правой кнопкой мыши на Логическом представлении браузера.
2. В открывшемся меню выберите пункт New > Class Diagram (Создать > Диаграмма Классов).
3. Назовите новую диаграмму Классов: Ввод нового заказа.
4. Дважды щелкнув мышью на этой диаграмме в браузере, откройте ее.
5. Перетащите из браузера все классы (Выбор_заказа, Заказ_деталей, упр_заказами, Заказ, Упр_транзакциями.
Объединение классов в пакеты
1. В браузере перетащите класс выбор_заказа на пакет Границы.
2. Перетащите класс заказ_деталей на пакет Границы.
3. Перетащите классы Упр_заказами и Упр-транзакциями на пакет Управление.
4. Перетащите класс Заказ на пакет Сущности.
Классы и пакеты в браузере показаны на рис. 9

Рис. 8 Представление пакетов и классов
Добавление диаграмм Классов к каждому пакету
1. В браузере щелкните правой кнопкой мыши на пакете Границы.
2. В открывшемся меню выберите пункт New > Class Diagram (Создать > Диаграмма Классов).
3. Введите имя новой диаграммы Main (Главная).
4. Дважды щелкнув мышью на этой диаграмме, откройте ее.
5. Перетащите на нее из браузера классы выбор_заказа и заказ_деталей.
6. Закройте диаграмму.
В браузере щелкните правой кнопкой мыши на пакете Сущности.
8. В открывшемся меню выберите пункт New > Class Diagram (Создать > Диаграмма Классов).
9. Введите имя новой диаграммы Main (Главная).
10. Дважды щелкнув мышью на этой диаграмме, откройте ее.
11. Перетащите на нее из браузера класс Заказ.
12. Закройте диаграмму
13. В браузере щелкните правой кнопкой мыши на пакете Управление
14. В открывшемся меню выберите пункт New > Class Diagram (Создать > Диаграмма Классов).
15. Введите имя новой диаграммы Main (Главная).
16. Дважды щелкнув мышью на этой диаграмме, откройте ее.
17. Перетащите на нее из браузера классы Упр_заказами и Упр_транзакциями
18. Закройте диаграмму


Практическая работа 7. Уточнение методов и свойств классов. Добавление атрибутов
В этом упражнении к описаниям операций будут добавлены детали, включая параметры и типы возвращаемых значений, и определены атрибуты классов
Постановка проблемы
Для определения атрибутов классов был проанализирован поток событий. В результате к классу Заказ диаграммы Классов были добавлены атрибуты Номер заказа и Имя клиента. Так как в одном заказе можно указать большое количество товаров и у каждого из них имеются свои собственные данные и поведение, было решено моделировать товары как самостоятельные классы, а не как атрибуты класса Заказ.
Добавление атрибутов и операций
Добавим атрибуты и операции к классам диаграммы Классов "Ввод нового заказа". При этом используем специфические для языка особенности. Установим параметры так, чтобы показывать все атрибуты, все операции и их сигнатуры. Применим нотацию 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. Щелкните мышью внутри диаграммы, чтобы поместить туда новый класс.
5. Назовите его Позиц_заказа.
6. Назначьте этому классу стереотип 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 Opration (Создать операцию).
3. Введите новую операцию:
Создать()
4. Нажмите клавишу Enter.
5. Введите следующую операцию:
Взять_информацию()
6. Нажмите клавишу Enter.
7. Введите операцию:
Дать_информацию()
Подробное описание операций с помощью диаграммы Классов
1. Щелкнув мышью на классе Заказ, выделите его.
2. Щелкните на этом классе еще раз, чтобы переместить курсор внутрь.
3. Отредактируйте операцию Создать(), чтобы она выглядела следующим образом:
Создать() : Воо1еаn
4. Отредактируйте операцию Взять_информацию:
Взять_информацию (OrderNum : Integer, Customer : String, OrderDate : Date, FillDate : Date) : Boolean
5. Отредактируйте операцию Дать_информацию;
Дать_информацию(): String
Подробное описание операций с помощью браузера
1. Найдите в браузере класс Позиц_заказа.
2. Раскройте этот класс, щелкнув на значке "+" рядом с ним. В браузере появятся атрибуты и операции класса.
3. Дважды щелкнув мышью на операции Дать_информацию() , откройте окно ее спецификации:
4. В раскрывающемся списке Return class (Возвращаемый класс) укажите 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 укажите Воо1еаn.
17. Нажав на кнопку ОК, закройте окно спецификации операции.
Подробное описание операций
1. Используя браузер или диаграмму Классов, введите следующие сигнатуры операций класса Заказ_деталей:
Открыть() : Boolean
Сохранить заказ() : Boolean
2. Используя браузер или диаграмму Классов, введите сигнатуру операций класса Выбор_заказа:
Создать() : Воо1еаn
3. Используя браузер или диаграмму Классов, введите сигнатуру операций класса Упр_заказами:
Сохранить заказ(OrderID : Integer) : Воо1еаn
4. Используя браузер или диаграмму Классов, введите сигнатуры операций класса Упр_транзакциями:
Сохранить заказ(OrderID : Integer) : Boolean
Сохранить информацию() : Integer

Практическая работа 8. Исключение кириллизованного текста в информации классов.
Разработанные ранее модели, предназначенные для описания предметной области используют кириллизованную символику, недопустимую для большинства языков программирования. Выполните замену русского текста на латинский шрифт. Для этой цели сохраните предыдущую модель под другим именем и далее работайте с новым файлом (что бы при необходимости можно было бы вернуться к бизнес- процессам, описанным русским шрифтом).
Этапы выполнения упражнения.
Этап 1. Используя меню (Файл-> Сохранить как) сохраните данную модель под другим именем (например Заказ1) в той же папке, что и исходная модель.
Работайте далее с копией модели (то есть Заказ1).
Этап 2. Переименуйте классы и их спецификации таким образом, чтобы использовался только латинский шрифт. Замените имя класса
Заказ_деталей на OrderDetail
Выбор_заказа на OrderОptions
Заказ на Order
Упр_заказами на OrderMgr
Позиц_заказа на OrderItem
Упр_транзакциями на TransactionMgr

Измените имена операций таким образом, чтобы рис.10 преобразовался в рис. 11. Для этого, измените операцию класса OrderОptions
Открыть() на Open()
Класса OrderDetail
Открыть() на Open()
Сохранить заказ() на Save()
Класса Order
Ввести номер заказа, заказчика и число заказываемых предметов() на SetInfo()
Сохранить_заказ() на Save()
Класса OrderMgr
Сохранить заказ() на SaveOrder()
Класса TransactionMgr
Сохранить заказ() на SaveOrder()
Сохранить информацию о заказе() на Commit()
Создать_заказ() на SubmitInfo()
Класса OrderItem
Создать() на Create()
Взять_информацию() на GetInfo()
Дать_информацию на SetInfo()
Переименуйте имена пакетов
Границы на Boundaries
Сущности на Entity
Контроль на Control
Добавление стереотипов к классам
1. Щелкните правой кнопкой мыши на классе OrderOptions диаграммы.
2. В открывшемся меню выберите пункт Open Specification (Открыть спецификацию).
3. В поле стереотипа выберите из выпадающего списка слово Boundary (если его нет, то введите).
4. Нажмите на кнопку ОК.
5. Повторив шаги 14, свяжите классы OrderDetail со стереотипом Boundary, OrderMgr и TransactionMgr со стереотипом Control, а класс Order и OderItem со стереотипом Entity.

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


Рис. 11 Основная диаграмма классов
Замечание. На диаграмме рис. 11 возможно визуальное представление классов не в виде иконок, а в виде дополнительной строки текста с именем стереотипа. За этот вид отвечает метка установленная либо на icon либо на label (Class> Open Specefication> Options> Label) Практическая работа 9. Построение диаграммы компонентов.
В настоящем разделе начинается построение физической модели системы (то есть программной системы).
Этапы выполнения упражнения
Так как эта модель связана с конкретным языком программирования, то в настройках это необходимо отметить. Выполнить Tools>Options>Notations>Default Language и из выпадающего списка языков программирования выбрать Delphi.
Создание пакетов компонентов
1. Щелкните правой кнопкой мыши на представлении компонентов в браузере.
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

Рис. 12 Зависимости между пакетами
Добавление компонентов к пакетам и отображение зависимостей
1. Дважды щелкнув мышью на пакете Entities Главной диаграммы Компонентов, откройте Главную диаграмму Компонентов этого пакета.
2. Нажмите кнопку Package Specification (Спецификация пакета) панели инструментов.
3. Поместите спецификацию пакета на диаграмму.
4. Введите имя спецификации пакета OrderItem_.
5. Повторив шаги 24, добавьте спецификацию пакета Order_.
6. Нажмите кнопку Dependency (Зависимость) панели инструментов.
7. Щелкните мышью на спецификации пакета OrderItem_.
8. Проведите линию зависимости к спецификации пакета OrderItem_.
9. С помощью описанного метода создайте следующие компоненты и зависимости:
Для пакета Boundaries:
Спецификацию пакета Orderоptions_
Спецификацию пакета OrderDetail_
Зависимости в пакете Boundaries:
От спецификации пакета Orderоptions_
к спецификации пакета OrderDetai_l
Для пакета Control:
Спецификацию пакета OrderMgr_
Спецификацию пакета TransactionMgr_
Зависимости в пакете Control:
От спецификации пакета OrderMgr_
к спецификации пакета TransactionMg_
Создание диаграммы Компонентов системы
1. Щелкните правой кнопкой мыши на представлении Компонентов в браузере.
2. В открывшемся меню выберите пункт New > Component Diagram (Создать > Диаграмма Компонентов).
3. Назовите новую диаграмму System.
4. Дважды щелкните на этой диаграмме мышью.
Размещение компонентов на диаграмме Компонентов системы
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. Проведите линию зависимости к спецификации пакета OrderDetail_
4. Повторив шаги 1 3, создайте следующие зависимости:
От спецификации пакета OrderMgr_
к спецификации пакета Order_
От спецификации пакета TransactionMgr_
к спецификации пакета OrderItem_
От спецификации пакета TransactionMgr_
к спецификации пакета Order_
От спецификации задачи OrderClientExe к спецификации пакета Orderоptions_
От спецификации задачи OrderServerExe к спецификации пакета OrderMg_r
Соотнесение классов с компонентами
1. В Логическом представлении браузера найдите класс Order пакета Entities.
2. Перетащите этот класс на спецификацию пакета компонента Order_ в представлении Компонентов браузера, В результате класс Order будет соотнесен со спецификацией пакета компонента Order_.
3. Повторив шаги 1 2, соотнесите классы со следующими компонентами:
Класс OrderItem со спецификацией пакета OrderItem_
Класс Orderоptions со спецификацией пакета Orderоptions_
Класс OrderDetail со спецификацией пакета OrderDetai_l
Класс OrderMgr со спецификацией пакета OrderMgr_
Класс TransactionMgr со спецификацией пакета TransactionMgr_
В результате в браузере после имени класса, в скобках появятся имена компонентов, с которыми этот класс связан (рис. 13)


Рис. 13 Представление компонентов и классов в браузере


Практическая работа 10. Кодогенерация проекта в Delphi.
Теперь вся информация подготовлена к тому, чтобы запрограммировать классы с их методами и операциями.
Для выполнения кодогенерации в среде Delphi необходимо выполнить следующую последовательность действий:
- протестировать модель на логические непротиворечия;
- настроить (или проверить настройки) среду на законы кодогенерации (соответствие элемента модели Rose элементу кода Delphi);
- создать имя проекта Delphi и выполнить кодогенерацию.
Этапы выполнения упражнения.
1) Протестируйте модель Tools->Ceck Model. Просмотрите log файл на наличие ошибок. Если файл не виден- выполните команду file->Save Log As и введите имя файла (по умолчанию error.log). Затем его просмотрите и, при необходимости, исправьте ошибки. К наиболее распространенным ошибкам относятся такие, как неотображение сообщений на операции или несоотнесение объектов с классами на диаграммах взаимодействия. С помощью пункта меню Check Model можно выявить большую часть неточностей и ошибок в модели.
2) Пункт меню Access Violations позволяет обнаружить нарушения правил доступа, возникающие тогда, когда существует связь между двумя классами разных пакетов. При этом связи между самими пакетами нет. Например, если существует связь между классами Order пакета Entities и OrderManager пакета Control, то обязательно должна существовать и связь между пакетами Entities и Control. Если последняя связь не установлена, Rose выявит нарушение правил доступа. Чтобы обнаружить нарушение правил доступа:
Выберите в меню Report > Show Access Violations.
Проанализируйте все нарушения правил доступа.
3) Выполните Tools>Options>Notation>Default Language и из выпадающего списка выберите язык программирования Delphi.
4) Проверьте правильность установок кодогенерации по умолчанию (default). Для этого выполните Tools->Options->Delphi и последовательно переберите из выпадающего списка поля Type все элементы. Сравните установки в поле Model Propities с данными (default) из таблицы Приложения A. В случае несоответствия- исправьте.
5) Выполните Tools> Ensemble Tools>Rose Delphi Link (рис.14)


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

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



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


5. Через проводник Windows найдите папку проекта Delphi. С помощью программы Блокнот просмотрите содержимое всех файлов. В приложении B к руководству приведено содержимое всех файлов проекта.

Практическая работа 11. Тема: Технология создания БД в Дельфи: BDE.

Цели:

Изучить технологию создания БД в Дельфи: BDE.
Изучить алгоритм создания БД в Delphi.
На практическом примере изучить работу утилит BDE Administrator

и Database Desktop.
Развивать внимание и навыки самостоятельной работы.
Ход работы:
Выполнения задания по инструкции
Понятие БД (база данных). Типы БД.
точки зрения пользователя, база данных – это программа, которая обеспечивает работу с информацией. При запуске такой программы на экране, как правило, появляется таблица, просматривая которую пользователь может найти интересующие его сведения. Если система позволяет, то он может внести изменения в базу данных: добавить новую информацию или удалить ненужную.
точки зрения программиста, база данных – это набор файлов, содержащих информацию. Разрабатывая базу данных для пользователя, программист создаёт программу, которая обеспечивает работу с файлами данных.

В зависимости от расположения программы, использующей данные,

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

Для обеспечения разделения (доступа к данным) между несколькими пользователями, в качестве которых выступают программы, работающие на одном или нескольких компьютерах, в локальных базах данных применяется метод, получивший название блокировка файлов. Суть этого метода заключается в том, что пока данные используются одним пользователем, другой пользователь не может работать с этими данными, т.е. данные для него закрыты, заблокированы.
Paradox, dBase, FoxPro и Access – это локальные базы данных.2

Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 507)
Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 508)
Данные (файлы) удалённой базы данных находятся на удалённом компьютере. (Следует обратить внимание, что каталоги удалённого компьютера не могут рассматриваться как сетевые диски).

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

Серверная часть программы, работающая на удалённом компьютере, принимает запросы, выполняет их и пересылает данные клиентской программе. Запросы представляют собой команды, представленные на языке SQL (Structured Query Language) – языке структурированных запросов.

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

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

Interbase, Oracle, Sysbase, Infomix, Microsoft SQL Server – это удалённые базы данных.4

Разработка программы работы с удалённой базы данных – сложная и трудоёмкая задача. Её решение предполагает наличие у разработчика глубоких знаний и большого опыта разработки программного обеспечения. Поэтому в данном курсе задача разработки удалённых баз данных не рассматривается.
2. Алгоритм создания БД

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

Создание псевдонима.
Создание таблиц.
Разработка приложения, работающего с БД.


Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 508)
Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 507)
1. Создание каталога
Каталог (папка) для файлов базы данных создаётся обычным образом, например, при помощи Проводника. Обычно файлы локальной базы данных помещаются в отдельном каталоге программы работы с базой данных.5
На диске D создайте папку со своей фамилией. Это будет ваша рабочая папка в течение всего этого курса. В этой папке создайте ещё одну папку с именем PR1 (что значит – Практическая работа №1).
2. Создание псевдонима
Разрабатывая программу работы с базой данных, программист не может знать, на каком диске и в каком каталоге будут находиться файлы базы данных во время её исполнения. Например, пользователь может поместить в один из каталогов дисков C:, D: или сетевой диск. Поэтому возникает проблема передачи в программу информации о месте нахождения файлов базы данных.

В Delphi проблема передачи в программу информации о месте нахождения файлов базы данных решается путём использования псевдонима базы данных. Псевдоним (Alias) – это короткое имя, поставленное в соответствие реальному, полному имени каталога базы данных. Например, псевдонимом каталога C:\data\SРeterburg может быть имя Рeterburg. Программа работы с базой данных для доступа к данным использует не реальное имя, а псевдоним.6

Характерной особенностью программ, создаваемых с помощью Delphi и предназначенных для работы с базами данных, является их зависимость от специальной библиотеки программ, которая называется
BDE (Borland Database Engine – машина баз данных корпорации Borland). BDE представляет собой набор библиотек DLL, предназначенных для низкоуровнего доступа к данным самых различных форматов. BDE автоматически устанавливается в процессе установки Delphi и регистрируется в реестре 32-разрядной версии Windows. В BDE имеется собственный интерпретатор языка SQL, что позволяет создавать запросы не только к серверам БД, но и таблицам файл-сервера. Без установки и регистрации BDE на компьютере не может работать ни одна программа БД, созданная в Delphi и использующая механизм BDE.7

Для доступа к информации программа, обеспечивающая работу с базой данных, подключает библиотеку Borland Database Engine (BDE),

Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 511)
Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 510)
Фаронов В.В. Программирование баз данных в Delphi 7. Учебный курс. СПб.: Питер, 2006. – 459 с.: ил. (стр. 20)
которая в свою очередь, использует конфигурационный файл, содержащий информацию о всех зарегистрированных в системе псевдонимов.8

Псевдоним базы данных создаётся при помощи входящей в Delphi утилиты BDE Administrator, которая запускается из Windows выбором из меню Пуск
· Программы
· Borland Delphi 7
· BDE Administrator.9

Запустите её. Вид диалогового окна BDE Administrator после запуска приведён на рисунке 1.





















Рис. 1. Окно BDE Administrator.

В левой части окна, на вкладке Database, перечислены псевдонимы, зарегистрированные на данном компьютере. Создадим новый псевдоним. Для этого из меню Object выберем команду New. В результате откроется диалоговое окно New Database Alias (Новый псевдоним базы данных), где будет предложен список Database Driver Name в котором перечислены зарегистрированные в системе драйверы доступа к базам данных, иными словами тип создаваемой базы данных.

При создании псевдонима по умолчанию предлагается драйвер STANDARD (default driver), который обеспечивает доступ к таблицам в формате Paradox. Мы ничего менять не будем и просто нажмём кнопку

ОК. (рис. 2)









Рис. 2. Диалоговое окно New Database Alias

Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 511)
Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 512)
После выбора драйвера и щелчка на кнопке ОК в список псевдонимов будет добавлен новый элемент (рис. 3).



















Рис. 3. Регистрация нового псевдонима
Изменим автоматически созданное администратором имя STANDARD1 на PR1, а во вкладке Definition укажем путь к папке, где будут храниться файлы нашей БД. Для этого в конце поля PATH щелкаем левой кнопкой мыши по пиктограмме с трёмя точечками – откроется диалоговое окно. Находим на компьютере папку PR1 и щёлкаем по кнопке

ОК (рис. 4).



















Рис. 4. Результат создания псевдонима
Теперь, чтобы вновь созданный псевдоним был зарегистрирован на нашем компьютере, сохраним его. Для этого из меню Object выберем команду Apply. В открывшемся диалоговом окне Confirm следует подтвердить необходимость сохранения изменений в файле конфигурации (кнопка ОК).
3. Создание таблицы
Теперь, когда создан каталог и зарегистрирован псевдоним, приступим непосредственно к созданию таблицы. Таблицы создаются при помощи входящей в состав Delphi утилиты Database Desktop.

Утилита Database Desktop позволяет выполнять все необходимые при работе с базами данных действия. Она обеспечивает создание, просмотр и модификацию таблиц баз данных различных форматов (Paradox, dBASE, Microsoft Access). Кроме того, утилита позволяет выполнять выборку информации путем создания запросов.10
Запускается данная утилита из Windows выбором из меню Пуск
· Программы
· Borland Delphi 7
· Database Desktop. Запустим её.
Затем в появившемся окне утилиты Database Desktop надо из меню File выбрать команду New и в появившемся списке выбрать тип создаваемого файла – Table (рис. 5). Затем в открывшемся диалоговом окне Create Table (рис. 6) следует выбрать тип создаваемой таблицы (значением по умолчанию является тип Paradox 711 – его мы и оставим, нажав кнопку
ОК).




















Рис. 5. Диалоговое окно Database Desktop










Рис. 6. Выбор типа таблицы


Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 515)
Культин Н.Б. Основы программирования в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.: ил. (стр. 516)
В результате открывается диалоговое окно Create Paradox 7 Table (рис. 7), в котором можно определить структуру записей таблицы.





















Рис. 7. Диалоговое окно Create Paradox 7 Table
Сегодня мы создадим с вами однотабличную БД «Записная книжка», таблица которой будет содержать следующие поля:
Таблица 1. Поля записей базы данных «Записная книжка»














Для каждого поля создаваемой таблицы, прежде всего указывается имя (FieldName) – идентификатор поля. Идентификатор может включать до 25 символов и не может начинаться с пробела (формально для таблицы Paradox внутри пробелы допускаются, но я не советую их использовать – это вызовет немало проблем). Затем надо выбрать тип (Type) данных этого поля. Для этого перейдите в раздел Type поля и щёлкните правой кнопкоймыши (или нажмите пробел). Появится список доступных типов, из которого вы можете выбрать необходимый вам.12
В диалоговом окно Create Paradox 7 Table создадим необходимые поля в соответствии с таблицей 1 (см. рис. 8).
























Рис. 8. Создание полей таблицы

Теперь нам необходимо сохранить нашу таблицу. Нажимаем кнопку Save As в открывшемся диалоговом окне Save Table As в поле Имя файла пишем имя таблицы записная_книжка, в поле Тип файла всё оставляем без изменения, а в поле Alias из выпадающего списка выбираем псевдоним PR1, ставим галочку в пункте Display table и нажимаем кнопку

Сохранить. (см. рис. 9).
























Рис. 9. Окно сохранения таблицы

12 А.Я Архангельский. Программирование в Delphi для Windows. Версии 2006, 2007, Turbo Delphi. – М.:

ООО «Бином-Пресс», 2007 г. – 1248 с.: ил. (стр. 710).
Таблица создана! Теперь мы можем вносить в неё данные. Для этого щёлкните по пиктограмме и внесите в таблицу 5 записей (рис. 10).

























Рис. 10. Записи таблицы БД «Записная книжка»

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

4. Разработка приложения, работающего с БД.

Теперь создадим непосредственно приложение, которое будет работать с нашей БД. Запускаем Delphi. Размещаем на форме следующие компоненты (см. Таблица 2) и настраиваем их свойства

Имя компонента
Вкладка
Свойства компонента


Table
BDE
DatabaseName – PR1




TableName




записная_книжка.db




Active – True


DataSource
Data Access
DataSet – Table1


DBGrid
Data Controls
DataSource – DataSource1



Сохраняем проект и запускаем приложение на исполнение. Если вы всё правильно сделали, то должны получить вот такое окно (рис. 11):

















Рис. 11. Готовое приложение БД «Записная книжка»

Контрольные вопросы

Какие бывают БД? Охарактеризуйте каждый вид. Приведите примеры.
Что такое транзакция?
Для чего предназначен BDE?
Для чего предназначены утилиты BDE Administrator и Database Desktop?

Как загрузить утилиты BDE Administrator и Database Desktop?
Что такое псевдоним БД?
Как создать псевдоним БД?
Перечислите основные пункты алгоритма создания БД в Delphi.
III. Самостоятельная работа

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

Таблица 2. Поля записей базы данных «Ежедневник»








Практическая работа 12. Тема: Компоненты баз данных.
Цели:

1.Изучить основные компоненты баз данных в Delphi;
2.На практическом примере научиться создавать приложение, которое позволяет просматривать содержимое БД в режиме формы;
3.Развивать навыки работы со справочной литературой и умение находить необходимую информацию.
Ход работы:
Теоретическая часть
Система Delphi содержит богатую библиотеку компонентов, значительно упрощающих разработку приложений для баз данных. Компоненты освобождают программиста от работы на нижнем уровне, позволяют быстро создавать надёжные приложения.

На прошлом занятии вы при создании приложения, работающего с БД, использовали три компонента Table (вкладка BDE), DataSource (Data Access), DBGrid (Data Controls). Давайте же сегодня изучим, для чего они нужны.
Сначала, поговорим о вкладках, на которых они располагаются:
BDE – содержит компоненты для создания приложений, использующих BDE;

Data Access – это вкладка, содержащая невизуальные компоненты, предназначенные для организации доступа к данным;

Data Controls – на ней располагаются визуальные компоненты для отображения данных.
Компоненты для работы с базами данных можно разделить на три группы:

множества данных (data sets);

визуальные компоненты баз данных (dataaware controls)

источники данных (data sources).
Множества данных – это невизуальные компоненты, которые взаимодействуют с BDE и обеспечивают доступ к данным в таблицах. Наиболее важные из них – компоненты Table и Query.
Визуальные компоненты баз данных – это управляющие элементы пользовательского интерфейса для просмотра и редактирования данных. Многие из них дублируют обычные управляющие компоненты: DBGrid, DBEdit, DBCheckBox, DBRadioGroup, DBImage и др.
Источники данных – это невизуальные компоненты, исполняющие роль трубопроводов между множествами данных и визуальными компонентами баз данных. Используя введённые понятия, можно уточнить структуру приложения, осуществляющего доступ к данным через BDE (DataSource) (рис. 1).


Компонент Table

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




















































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

Компонент DataSource (табл. 2) обеспечивает взаимодействие набора данных с компонентами для отображения данных. С каждым компонентом доступа к данным должен быть связан как минимум один компонент DataSource. С одним компонентом DataSource может быть связано несколько визуальных компонентов.5























Компонент DBGrid

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

Для перемещения по записям используются полосы прокрутки и клавиши управления курсором. Для изменения данных достаточно установить курсор в нужную ячейку и ввести другое значение. Новая пустая строка создаётся в позиции указателя нажатием на клавишу Insert. Чтобы изменения, сделанные при редактировании и добавлении записи, были внесены в таблицу, необходимо на жать на клавишу Enter или перейти на другую строку. До того как данные были переданы в таблицу, можно клавишей Esc отменить изменения. Для удаления записи используется комбинация клавиш Ctrl+Delete.7

Шейкер, Т.Д. Разработка приложений баз данных в системе DELPHI: учеб. пособие / Т.Д. Шейкер. – Владивосток:

Изд-во ДВГТУ, 2009. – 138 с. (стр. 13)
Шейкер, Т.Д. Разработка приложений баз данных в системе DELPHI: учеб. пособие / Т.Д. Шейкер. – Владивосток:

Изд-во ДВГТУ, 2009. – 138 с. (стр. 13)
Шейкер, Т.Д. Разработка приложений баз данных в системе DELPHI: учеб. пособие / Т.Д. Шейкер. – Владивосток:

Изд-во ДВГТУ, 2009. – 138 с. (стр. 21)
Шейкер, Т.Д. Разработка приложений баз данных в системе DELPHI: учеб. пособие / Т.Д. Шейкер. – Владивосток:

Изд-во ДВГТУ, 2009. – 138 с. (стр. 22)


Таблица 3
























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

II. Выполнение задания по инструкции

Создадим однотабличную БД «Семья».

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

2Откройте утилиту BDE Administrator, создайте псевдоним Familiy, укажите путь к только что созданной папке «Семья».
Создание таблицы.
Откройте утилиту Database Desktop.
Создайте таблицу со следующими полями.


Field Name
Type
Size
Key

1
Семья
Alpha (A)
15


2
Фамилия
Alpha (A)
15


3
Имя
Alpha (A)
15


4
Отчество
Alpha (A)
15


5
Возраст
Long Integer



6
Фотография
Graphic (G)




3. Сохраните таблицу под именем Familiy.db в папку «Семья».
4. Заполните таблицу следующими данными.





















Семья
Фамилия
Имя
Отчество
Возраст
Фотография












Папа
Пупкин
Фёдор
Вениаминович
45













Мама
Пупкина
Федора
Поликарповна
42













Сын
Пупкин
Василий
Фёдорович
16













Старшая дочь
Пупкина
Дульсинея
Фёдоровна
20













Младшая дочь
Пупкина
Дарья
Фёдоровна
1














Создание формы.

1Запустите Delphi 7.

2На форме разместите компоненты, как показано на рисунке.

















3Настройте компоненты формы согласно следующим указаниям
Компонент Table1
DataField – Имя


DatabaseName – Familiy
Компонент DBText4


TableName – Familiy.db



Active – True
DataSource - DataSource1


Компонент DataSource1
DataField – Отчество



Компонент DBText5


DataSet - Table1



Компонент DBText1
DataSource - DataSource1



DataField – Возраст


DataSource - DataSource1
Компонент DBImage1


DataField – Семья



Компонент DBText2
DataSource - DataSource1



DataField – Фотография


DataSource - DataSource1
Stretch – True


DataField – Фамилия
Компонент DBNavigator1


Компонент DBText3




DataSource - DataSource1


DataSource - DataSource1




4. Сохраните проект. Запустите программу на исполнение.

Все данные отобразились, кроме фотографий членов семьи.
Вставка изображений в БД.
Запустите программу на исполнение.
Откройте изображение Папа.gif в графическом редакторе Paint (см. в папке «Приложение к ПР_2»).
Выберите пункт в меню Правка --> Выделить всё.
Далее нажмите сочетание клавиш Ctr+С.
Теперь перейдите на окно работающего приложения и щёлкните в компоненте

DBImage1 мышкой.
Далее нажмите сочетание клавиш Ctr+V. Теперь картинка вставилась в поле для изображения.
Аналогично добавьте остальные изображения в БД.

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


Практическая работа 13. Тема: Компоненты синхронного просмотра.
Цели:

1Изучить компоненты синхронного просмотра;
2На практическом примере научиться создавать многотабличные БД;
3Развивать навыки самостоятельной работы.

Ход работы:
I. Теоретическая часть
Специально для отображения связанной информации в БД, имеются 2 компонента, предназначенных именно для этих целей. Это компоненты DBLookupComboBox и DBLookupListBox. Оба они, хотя визуально и похожи на комбинированный и обычный списки, на самом деле, не являются потомками ни стандартных, ни БД-ориентированных компонентов, а происходят от общего для них класса TDBLookupControl, инкапсулирующего как список значений для просмотра, так и его механизм.

Фактически, здесь следует запомнить лишь следующее: то, что отображается в самом компоненте синхронного просмотра (в обычном или в ниспадающем списке), задается парой значений для ListSource и ListField, а то, на основании чего происходит выборка текущего значения – в DataSource и DataField.
II. Выполнение задания по инструкции
Связывание данных в таблицах
Важной особенностью работы с БД является связывание данных в таблицах. И хотя такое связывание осуществляется невизуальным компонентом Table, наглядно продемонстрировать связывание можно лишь с использованием компонентов, отображающих данные таблиц, т.е. с использованием, например, компонента DBGrid.
Очевидно, что для связывания данных между таблицами нам нужно иметь более одной таблицы. Рассмотрим технологию создания многотабличной БД на примере базы данных «Знаки Зодиака».
На диске D: в своей рабочей папке создайте новую папку с именем Знаки Зодиака.
Откройте утилиту BDE Administrator и создайте псеводим к этой папке под названием

Goroskop.
Откройте утилиту Database Desktop и создайте две таблицы:



Обратите внимание, что при создании таблиц, в обоих случаях поле Data должно быть ключевым.
Первую таблицу назвать 1.db






















Второй талице дать имя 2.db

Информацию для заполнения таблиц смотрите в папке

Приложение к ПР_3

в документе Знаки_Зодиака.doc


































4. Теперь откройте Delphi и разместите на форме следующие компоненты:

Для таблицы 1.db

Table1

DataSource1

DBLookupComboBox1 (находится на вкладке Data Controls)

Для таблицы 2.db

Table2

DataSource2
DBEdit1

DBMemo1
DBImage1

5. Настройте свойства компонентов в указанном порядке

Table1.DatabaseMame – Goroskop

Table1.TableName – 1.db
DataSource1.DataSet - Table1

Table2.DatabaseMame – Goroskop
Table2.TableName – 2.db

DataSource2.DataSet – Table2
Table2.MasterSourse – DataSource1

(!) Table2.MasterFields – Data – чтобы установить данное свойство нужно напротив свойства MasterFields для компонента Table2 щёлкнуть по кнопке.


























В появившемся окне выбрать во вкладке Available Index значение Primary. В полях DetailFields и Master Fields выбрать Data и нажать кнопку Add. Далее Ок. Так вы свяжите две таблицы 1.db и 2.db.





Data Data

Znaki












Настраиваем оставшиеся компоненты: DBEdit1.DataSource – DataSource2 DBEdit1.DataField – Znak DBMemo1. DataSource –DataSource2 DBMemo1.DataField – Harakterist DBImage1. DataSource – DataSource2 DBImage1.DataField – Image

Новый компонент, с которым вы сегодня познакомитесь DBLookupComboBox1. Установим для него свойства:

DBLookupComboBox1.ListSource – DataSource1
DBLookupComboBox1.ListFields – Data
DBLookupComboBox1.KeyFields – Data

ListField – что именно необходимо отображать в списке;

KeyField – ключевое поле.
















Рис. 1. Окно рабочего приложения «Знаки Зодиака»

III. Самостоятельная работа
Задание: Напишите программу работы с локальной базой данных «Архитектурные памятники Курска» (рис. 2). Для создания базы данных используйте утилиту Database Desktop, для создания псевдонима – BDE Administrator. Характеристики полей записей базы данных приведены в таблице 1, сами записи в таблице 2, форма программы

– на рис. 3.1 Иллюстрации для БД смотрите в папке Приложение для ПР_3 в папке «Архитектурные памятники Курска».




Таблица 1. Поля записей базы данных




«Архитектурные памятники Курска»








Поле
Тип
Размер

Информация


Monument
Alpha (A)
60

Название памятника


Architect
Alpha (A)
40

Архитектор


Note
Alpha (A)
255

Краткая историческая справка


Photo
Graphik (G)


Иллюстрация




















Рис. 2. Окно программы работы с базой данных «Архитектурные памятники Курска»

















Рис. 3. Форма программы работы с базой данных «Архитектурные памятники Курска»

1 Культин Н.Б. Delphi в задачах и примерах. – СПб.: БХВ-Петербург, 2003. – 288 с.: ил. (стр. 216)

Таблица 2. Записи базы данных «Архитектурные памятники Курска»

Памятник
Архитектор
Историческая справка

Иллюстрация

мемориал Курская дуга

Музей под открытым небом растянулся практически на километр вдоль бульвара Победы. Не заметить комплекс невозможно. В его состав входят Триумфальная арка, памятник Жукову, храм Георгия Победоносца.








Антоновка
Огюст Монферран
Памятник победы Росси над войсками
aleks.jpg



Наполеона в отечественной войне 1812




года. Открыта 30 августа 1834 года.




Высота: 47, 5 метра; вес гранитного




ствола: 600 тонн.



Зимний дворец
Ф.Б. Растрелли
Зимний дворец много раз менял свой
herm.jpg



облик. Последний раз он перестраивался




по проекту Растрелли. Строительство




дворца продолжалось более семи лет




(1754-1762 годы).



Исаакиевский собор
Огюст Монферран
Исаакиевский собор, четвёртый по счёту,
isaak.jpg



стали возводить в 1818 году. Строился




собор 40 лет и был окончен в 1858 году.




Автор проекта – Огюст Монферран.


Ростральные колонны
Тома де Томон
32-метровые
ростральные
колонны,
rostr.jpg



органично вошедшие в архитектурный




ансамбль Стрелки Васильевского острова,




были сооружены в 1810 году. Они




напоминают о древнем Риме: обычае




украшать
триумфальные
колонны




рострами захваченных кораблей.





Практическая работа 14. Тема: Редактор колонок: работа с сеткой DBGrid.
Цели:

1.изучить различные способы работы с сеткой DBGrid;

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

ХОД РАБОТЫ

I. Изучение теоретической части и выполнение задания по инструкции

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

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

Столбцы DBGrid

Столбцы содержат значения