- •Технология программирования
- •Режим доступа к электронному аналогу печатного издания: http://www.Libdb.Sssu.Ru
- •Оглавление
- •Введение
- •1. Основные понятия объектно-ориентированного подхода
- •1.1. Объектно-ориентированная разработка программ
- •1.2. Объектно-ориентированные языки программирования
- •1.3. Сквозной пример
- •Контрольные вопросы
- •2. Первая фаза жизненного цикла – анализ требований и предварительное проектирование системы. Объектно-ориентированное моделирование
- •2.1. Объектная модель системы
- •2.1.1. Объекты и классы
- •2.1.2. Атрибуты объектов
- •2.1.3. Операции и методы
- •2.1.4. Зависимости между классами (объектами)
- •2.1.5. Атрибуты зависимостей
- •Зарегистрирован
- •2.1.6. Имена ролей, квалификаторы
- •2.1.7. Агрегация
- •2.1.8. Обобщение и наследование
- •2.1.9. Абстрактные классы
- •2.1.10. Множественное наследование
- •2.1.11. Связь объектов с базой данных
- •2.2. Построение объектной модели
- •2.2.1. Определение классов
- •2.2.2. Подготовка словаря данных
- •2.2.3. Определение зависимостей
- •2.2.4. Уточнение атрибутов
- •2.2.5. Организация системы классов с использованием наследования
- •2.2.6. Дальнейшее исследование и усовершенствование модели
- •2.3. Пример объектной модели
- •2.3.1. Определение объектов и классов
- •2.3.2. Подготовка словаря данных
- •2.3.3. Определение зависимостей
- •2.3.4. Уточнение атрибутов
- •2.3.5. Организация системы классов с использованием наследования
- •2.3.6. Дальнейшее усовершенствование модели
- •2.4. Выделение подсистем
- •2.4.1. Понятие подсистемы
- •2.4.2. Интерфейсы и окружения
- •2.5. Динамическая модель системы или подсистемы
- •2.5.1. События, состояния объектов и диаграммы состояний
- •2.5.2. Условия
- •2.5.3. Активности и действия
- •2.5.4. Одновременные события. Синхронизация
- •2.5.5. Вложенные диаграммы состояний
- •2.5.6. Динамическая модель банковской сети
- •2.6. Функциональная модель подсистемы
- •2.6.1. Диаграммы потоков данных
- •2.6.2. Описание операций
- •2.6.3. Ограничения
- •2.6.4. Функциональная модель банковской сети
- •2.7. Заключительные замечания к разделу
- •Контрольные вопросы
- •3. Вторая фаза жизненного цикла – конструирование системы
- •3.1. Разработка архитектуры системы
- •3.1.1. Разбиение системы на модули
- •3.1.2. Выявление асинхронного параллелизма
- •3.1.3. Распределение модулей и подсистем по процессорам и задачам
- •3.1.4. Управление хранилищами данных
- •3.1.5. Управление глобальными ресурсами
- •3.1.7. Пограничные ситуации
- •3.1.8. Обзор архитектур прикладных систем
- •3.2. Архитектура системы управления банковской сетью
- •3.3. Разработка объектов
- •3.3.1. Совместное рассмотрение трёх моделей
- •3.3.2. Разработка алгоритмов, реализующих полученные операции
- •3.3.3. Оптимизация разработки
- •3.3.4. Реализация управления
- •3.3.5. Уточнение наследования классов
- •3.3.6. Разработка зависимостей
- •Контрольные вопросы
- •4. Сравнительный анализ объектно-ориентированных методологий разработки программных систем
- •4.1. Методология omt
- •4.2. Методология sa/sd
- •4.3. Методология jsd
- •4.4. Методология osa
- •Аналитические возможности сравниваемых методологий объектно-ориентированного анализа
- •Возможности сравниваемых методов объектно-ориентированного анализа, используемые на этапе разработки системы
- •5. Третья фаза жизненного цикла – реализация объектно-ориентированного проекта
- •5.1. Объектно-ориентированный стиль программирования
- •5.2. Объектно-ориентированные системы программирования
- •5.3.1. Реализация классов
- •5.3.2. Порождение объектов
- •5.3.3. Вызов операций
- •5.3.4. Использование наследования
- •5.3.5. Реализация зависимостей
- •5.4. Другие объектно-ориентированные системы программирования
- •5.4.1. Реализация классов
- •5.4.2. Порождение объектов
- •5.4.3. Вызов операций
- •5.4.4. Реализация наследования
- •5.4.5. Реализация зависимостей
- •5.5. Не объектно-ориентированные системы программирования
- •5.5.1. Преобразование классов в структуры данных
- •5.5.2. Передача параметров методам
- •5.5.3. Размещение объектов в памяти
- •5.5.4. Реализация наследования
- •5.5.5. Выбор методов для операций
- •5.5.6. Реализация зависимостей
- •5.5.7. Объектно-ориентированное программирование на Фортране
- •5.5.8. Чем неудобны не объектно-ориентированные системы программирования
- •Контрольные вопросы
- •Библиографический список
- •Учебное издание
МИНистерство ОБРазования и НАУКИ РОССИйской федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Южно-Российский государственный университет экономики и сервиса»
(ФГБОУ ВПО «ЮРГУЭС»)
Технология программирования
Учебное пособие
Рекомендовано к внутривузовскому изданию
редакционно-издательским советом ЮРГУЭС
в качестве учебного пособия для студентов 2-3 курсов специальностей
080801 «Прикладная информатика (в сфере сервиса)»,
230201 «Информационные системы и технологии»
и направлений подготовки бакалавров
230400 «Информационные системы и технологии»
и 230700 «Прикладная информатика» всех форм обучения
Шахты
ФГБОУ ВПО «ЮРГУЭС»
2012
УДК 004.42(075.8)
ББК 32.973.26-018я73
Т384
Составитель:
к.т.н., доцент кафедры «Информационные системы и радиотехника» ФГБОУ ВПО «ЮРГУЭС»
Д.В. Медведев
Рецензенты:
д.т.н., профессор, заведующий кафедрой «МО» ФГБОУ ВПО «ЮРГУЭС»
С.П. Петросов
к.т.н., доцент кафедры «Информационные системы и радиотехника»
ФГБОУ ВПО «ЮРГУЭС»
В.Г. Манжула
директор ООО «Дайком»
М.В. Кулиниченко
Т384 Технология программирования : учеб. пособие / составитель Д.В. Медведев. – Шахты : ФГБОУ ВПО «ЮРГУЭС», 2012. – 158 с.
ISBN 978-5-93834-774-8
В пособии отражены основные принципы объектно-ориентирован-ного программирования – от проектирования до реализации современных программных продуктов.
Цель данного учебного пособия – введение в объектно-ориентиро-ванный подход к разработке и реализации прикладных программных систем с использованием современного инструментария.
Предназначено для студентов 2-3 курсов специальностей 080801 «Прикладная информатика (в сфере сервиса)», 230201 «Информационные системы и технологии» и направлений подготовки бакалавров 230400 «Информационные системы и технологии» и 230700 «Прикладная информатика» всех форм обучения.
УДК 004.42(075.8)
ББК 32.973.26-018я73
Режим доступа к электронному аналогу печатного издания: http://www.Libdb.Sssu.Ru
ISBN 978-5-93834-774-8 © ФГБОУ ВПО «Южно-Российский государственный
университет экономики и сервиса», 2012
Оглавление
Введение 6
1. Основные понятия объектно-ориентированного подхода 7
1.1. Объектно-ориентированная разработка программ 9
1.2. Объектно-ориентированные языки программирования 10
1.3. Сквозной пример 11
Контрольные вопросы 14
2. Первая фаза жизненного цикла – анализ требований и предварительное проектирование системы. Объектно-ориентированное моделирование 15
2.1. Объектная модель системы 16
2.1.1. Объекты и классы 16
2.1.2. Атрибуты объектов 18
2.1.3. Операции и методы 18
2.1.4. Зависимости между классами (объектами) 22
2.1.5. Атрибуты зависимостей 25
2.1.6. Имена ролей, квалификаторы 27
2.1.7. Агрегация 28
2.1.8. Обобщение и наследование 30
2.1.9. Абстрактные классы 33
2.1.10. Множественное наследование 34
2.1.11. Связь объектов с базой данных 38
2.2. Построение объектной модели 46
2.2.1. Определение классов 46
2.2.2. Подготовка словаря данных 47
2.2.3. Определение зависимостей 48
2.2.4. Уточнение атрибутов 49
2.2.5. Организация системы классов
с использованием наследования 50
2.2.6. Дальнейшее исследование и усовершенствование модели 51
2.3. Пример объектной модели 52
2.3.1. Определение объектов и классов 52
2.3.2. Подготовка словаря данных 53
2.3.3. Определение зависимостей 55
2.3.4. Уточнение атрибутов 57
2.3.5. Организация системы классов с использованием наследования 58
2.3.6. Дальнейшее усовершенствование модели 59
2.4. Выделение подсистем 60
2.4.1. Понятие подсистемы 60
2.4.2. Интерфейсы и окружения 63
2.5. Динамическая модель системы или подсистемы 64
2.5.1. События, состояния объектов и диаграммы состояний 65
2.5.2. Условия 68
2.5.3. Активности и действия 69
2.5.4. Одновременные события. Синхронизация 71
2.5.5. Вложенные диаграммы состояний 73
2.5.6. Динамическая модель банковской сети 73
2.6. Функциональная модель подсистемы 79
2.6.1. Диаграммы потоков данных 79
2.6.2. Описание операций 82
2.6.3. Ограничения 84
2.6.4. Функциональная модель банковской сети 84
2.7. Заключительные замечания к разделу 88
Контрольные вопросы 89
3. Вторая фаза жизненного цикла – конструирование системы 91
3.1. Разработка архитектуры системы 91
3.1.1. Разбиение системы на модули 92
3.1.2. Выявление асинхронного параллелизма 96
3.1.3. Распределение модулей и подсистем по процессорам и задачам 96
3.1.4. Управление хранилищами данных 97
3.1.5. Управление глобальными ресурсами 98
3.1.6. Реализация управления программным обеспечением 98
3.1.7. Пограничные ситуации 99
3.1.8. Обзор архитектур прикладных систем 99
3.2. Архитектура системы управления банковской сетью 102
3.3. Разработка объектов 103
3.3.1. Совместное рассмотрение трёх моделей 104
3.3.2. Разработка алгоритмов, реализующих полученные операции 105
3.3.3. Оптимизация разработки 106
3.3.4. Реализация управления 108
3.3.5. Уточнение наследования классов 109
3.3.6. Разработка зависимостей 111
Контрольные вопросы 113
4. Сравнительный анализ объектно-ориентированных методологий разработки программных систем 114
4.1. Методология OMT 115
4.2. Методология SA/SD 115
4.3. Методология JSD 116
4.4. Методология OSA 118
Контрольные вопросы 124
5. Третья фаза жизненного цикла – реализация
объектно-ориентированного проекта 125
5.1. Объектно-ориентированный стиль программирования 125
5.2. Объектно-ориентированные системы программирования 126
5.3. Реализация на языке C++ 127
5.3.1. Реализация классов 127
5.3.2. Порождение объектов 128
5.3.3. Вызов операций 130
5.3.4. Использование наследования 131
5.3.5. Реализация зависимостей 132
5.3.6. Шаблоны в языке C++ 134
5.4. Другие объектно-ориентированные системы программирования 135
5.4.1. Реализация классов 135
5.4.2. Порождение объектов 137
5.4.3. Вызов операций 138
5.4.4. Реализация наследования 140
5.4.5. Реализация зависимостей 142
5.5. Не объектно-ориентированные системы программирования 144
5.5.1. Преобразование классов в структуры данных 145
5.5.2. Передача параметров методам 146
5.5.3. Размещение объектов в памяти 147
5.5.4. Реализация наследования 148
5.5.5. Выбор методов для операций 149
5.5.6. Реализация зависимостей 151
5.5.7. Объектно-ориентированное программирование на Фортране 152
5.5.8. Чем неудобны не объектно-ориентированные системы программирования 156
Контрольные вопросы 156
Библиографический список 157