Объектно-ориентированные технологии проектирования прикладных программных систем

Объектно-ориентированные технологии проектирования прикладных программных систем
Основные понятия объектно-ориентированного подхода
Семантика (смысл программы с точки...
Жизненный цикл программной системы
Объектно-ориентированная разработка программ

Объектно-ориентированные языки программирования
Сквозной пример
Схема банковской сети
Схема банкомата (ATM)
Первая фаза жизненного цикла...
Объектная модель системы
Построение объектной модели

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

Динамическая модель системы или подсистемы
Функциональная модель подсистемы
Заключительные замечания к разделу
Объекты и классы
Пример класса и объекта этого класса


Множественное наследование
Множественное наследование

Множественное наследование от непересекающихся классов
Реализация множественного наследования с помощью вложенного простого наследования
Реализация множественного наследования путем делегирования с использованием агрегации ролей
Реализация множественного наследования с использованием простого наследования и делегирования
Связь объектов с базой данных
Объектная модель, определяющая абстрактный и конкретный классы

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

Производный объект и производная зависимость
Пример гомоморфизма
Общий случай гомоморфизма
Атрибуты объектов
Операции и методы
Другие примеры классов

Полное представление объекта в OMT
Возможные классы для системы AMT (банковское обслуживание)
Зависимости между классами (объектами)
Зависимости между классами
Дальнейшие примеры зависимостей. Обозначения
Зависимости между объектами

Более сложные зависимости между объектами
Атрибуты зависимостей
Пример атрибута зависимости
Атрибуты двух зависимостей между одним и многими
Представление зависимости в виде класса
Имена ролей, квалификаторы
Имена ролей
Использование квалификаторов

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

Пример системы с уровневой архитектурой
Типичная структура системы
Топология звезды
Выявление асинхронного параллелизма
Распределение модулей и подсистем по процессорам и задачам
Управление хранилищами данных
Управление глобальными ресурсами

Реализация управления программным обеспечением
Пограничные ситуации
Обзор архитектур прикладных систем
Система непрерывной обработки: машинная графика
Система с интерактивным интерфейсом: ATM
Совместное рассмотрение трех моделей
Сравнительный анализ объектно-ориентированных методологий разработки программных систем
Методология OMT

Методология SA/SD
Методология JSD
Методология OSA
Модель зависимостей между объектами для системы управления топкой в теплоцентрали
Поведение объекта "термостат"
Различные представления модели топки
Формальная модель топки, разработанная с помощью методологии OSA

Третья фаза жизненного цикла - реализация объектно-ориентированного проекта
Объектно-ориентированный стиль программирования
Объектно-ориентированные системы программирования
Часть объектной модели графического редактора
Реализация на языке C++
Другие объектно-ориентированные системы программирования

Не объектно-ориентированные системы программирования
Реализация классов
Порождение объектов
Вызов операций
Использование наследования
Реализация зависимостей

Шаблоны в языке C++
Реализация классов
Порождение объектов
Вызов операций
Обобщение и наследование

Обобщение (выделение суперклассов)
Другие примеры обобщения (наследования)
Абстрактные классы
Абстрактный класс
Определение классов
Подготовка словаря данных

Определение зависимостей
Неизбыточные зависимости
Уточнение атрибутов
Организация системы классов, используя наследование
Дальнейшее исследование и усовершенствование модели
Определение объектов и классов

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

Объектная диаграмма для банковской сети после уточнения атрибутов и добавления квалификаторов
Объектная диаграмма для банковской с учетом наследования
Дальнейшее усовершенствование модели
Окончательный вид объектной диаграммы для банковской сети
Интерфейсы и окружения

Объектная диаграмма банковской сети после выделения подсистемы банк
События, состояния объектов и диаграммы состояний
Пример сценария: разговор по телефону
Трасса событий для разговора по телефону
Диаграмма состояний телефонной линии
Условия
Диаграмма состояний, на которой указаны условия

Активности и действия
Указание активностей и действий на диаграмме состояний
Диаграмма состояний телефонной линии, на которой указаны активности и действия
Одновременные события. Синхронизация
Диаграмма состояний составного объекта (подсистемы)

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

Нормальный сценарий для банковской сети
Сценарий для банковской сети, содержащий исключительные ситуации
Трасса событий в банковской сети
Привязка событий к объектам банковской сети
Диаграмма состояний объектов класса ATM (банкомат)

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

Потоки данных
Активные объекты (экторы)
Хранилища данных
Поток управления
Описание операций
Спецификация операции изменить_счет...

Ограничения
Функциональная модель банковской сети
Входные и выходные значения банковской сети
Процессы верхнего уровня в системе обслуживания банковской сети
ДПД процесса выполнить проводку в системе обслуживания банковской сети
Разработка алгоритмов, реализующих полученные операции
Сравнение рекурсивного и нерекурсивного алгоритмов вычисления n!

Оптимизация разработки
Ускорение поиска с помощью производной зависимости
Использование производных атрибутов для исключения повторных вычислений
Использование производной зависимости
Реализация управления
Псевдокод, соответствующий динамической модели ATM

Уточнение наследования классов
Реализация стека с использованием наследования(а) и делегирования(б)
Разработка зависимостей
Реализация односторонней зависимости
Реализация двусторонней зависимости

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

Размещение объектов в памяти
Реализация наследования
Выбор методов для операций
Реализация зависимостей

Объектно-ориентированное программирование на Фортране
Чем неудобны не объектно-ориентированные системы программирования

Теория систем автоматического управления

Мир технических систем разнообразен. Однако математика и физика выявили простые параллели в этом сложном мире. Можно выделить ряд энергетических доменов, которым принадлежат те или другие системы или их модули. Это электрический, магнитный, термальный, гидравлический, акустический, механический и ротационный домены. Так же существуют два фундаментальных постулата. Первый постулат гласит, что материя не может появиться ни откуда и не может исчезнуть в никуда. Второй постулат утверждает то же самое в отношении энергетического потенциала. Эти постулаты имеют частные формулировки для каждого энергетического домена. Например, для электрического домена это первый и второй законы Кирхгофа. Каждый из энергетических доменов характеризуется двумя физическими величинами первого и второго рода. В случае электрического домена - это электрические ток и напряжение соответственно. Эти парные физические величины, в каждом энергетическом домене, связаны между собой законом Ома в соответствующей формулировке (существуют: электрическое, магнитное, термальное, гидравлическое, акустическое, механическое и ротационное сопротивления). Так же следует отметить, что произведение физических величин первого и второго рода всегда есть мощность.
Представленная система параллелей позволяет понять, что математическое описание процессов движения координат систем принадлежащих разным энергетическим доменам подобно, и может быть предметом изучения одной науки, которая называется "Теория систем автоматического регулирования". Более того, в последние годы, приобретен успешный опыт применения методов этой теории при решении задач управления в экономических, финансовых и других нетехнических системах.

Система управления
Методические указания к моделированию и рекомендации к содержанию отчета

Методы оптимизации выполнения запросов в реляционных СУБД

Можно рассматривать оптимизацию и в более широком смысле. Оптимизатор запросов выбирает наиболее оптимальный способ выполнения запроса на основе известных в оптимизаторе стратегий выполнения элементарных составляющих запроса и способов композиции более сложных стратегий на основе элементарных. Тем самым, пространство поиска оптимального плана выполнения запроса ограничено заранее фиксированными элементарными стратегиями. Поэтому существенным направлением исследований, непосредственно примыкающим к вопросам оптимизации, является поиск новых, более эффективных элементарных стратегий [28-49]. В контексте реляционных СУБД это более всего относится к разработке эффективных алгоритмов выполнения реляционной операции соединения наиболее накладной реляционной операции. При этом исследуются и возможности выбора более адекватных для эффективного выполнения этой операции управляющих структур базы данных, и возможности повышения эффективности за счет распараллеливания выполнения операции на специализированной аппаратуре (здесь направления исследований примыкают к тематике машин баз данных).

Оптимизация запросов
Развитие идей и приложений реляционной СУБД System R
Транзакционные параллельные СУБД новая волна
OLTP в Зазеркалье

Альтернативные архитектуры СУБД
Тенденции в области OLTP
Архитектура Shore
Исследование производительности

Следствия для будущих серверов баз данных OLTP
Литература
Конец архитектурной эпохи

Базы данных - ЛИНТЕР - статьи

С развитием информационных технологий возрастают требования, предъявляемые к прикладным системам, а, следовательно, и к инструментам разработки. Основой любой современной прикладной программы является система управления базами данных (СУБД). Именно от СУБД во многом зависят наиболее важные параметры системы, такие как скорость, надежность, отказоустойчивость и многие другие.
В принципе основные функции СУБД (хранение данных и доступ к ним) могло бы взять на себя приложение. Однако это, как правило, не выгодно, так как усложняет процесс разработки, отладки, сопровождения и пр. В общем, как ни крути, а без системы управления базами данных современному приложению просто не обойтись.
С другой стороны возникает еще одна проблема, связанная с тем, что конечному пользователю приложения абсолютно неинтересно как и с помощью чего построена система. Следовательно, перед программистом, разрабатывающим приложение, стоит задача «сокрытия» от конечного пользователя присутствия в прикладной системе достаточно больших и сложных подсистем (порой даже более сложных, чем использующие их приложения). Эту проблему можно условно разделить на несколько подзадач.

Зачем нужна встроенная СУБД
Быстрый старт ЛИНТЕР (Windows)
Новое в СУБД ЛИНТЕР 6.1
СУБД ЛИНТЕР. Технический обзор