Текущая ситуация на рынке разработки программного обеспечения
Факторы, тормозящие создание и внедрение новых IT-решений
Классические проблемы IT-инфраструктуры предприятий, которые развивали ее по историческим соображениям
Тенденции развития методов разработки программного обеспечения
Что такое программная архитектура
Методики формирования программной архитектуры
Использование архитектуры для достижения стратегических преимуществ
Общее описание программной архитектуры
Отличие архитектуры программного обеспечения от детального проектирования программного обеспечения
Примеры архитектурных стилей и моделей
Клиент-серверная архитектура.
Многоуровневая архитектура.
Прямой обмен данными.
Технологии COM и CORBA.
Проблемы поддержки и масштабирования клиент-серверных программ
Понятие системы. Определение системы
Распределенная система
Типы распределенных систем
Примеры распределенных систем
Требования к распределенным системам
Архитектуры распределенных систем
Распределенные базы данных
Концепция событийно-управляемой архитектуры. Предпосылки создания событийно-управляемой архитектуры
Основные элементы программ, построенных согласно событийно-управляемой архитектуре
Задачи системной шины
Преимущества событийно-управляемой архитектуры
Архитектура системы передачи сообщений
Обзор основных моментов сервис-ориентированной архитектуры. Сервис. Сервисная ориентация. Композитные приложения.
Жизненный цикл SOA.
Проектирование бизнес-логики в IBM WebSphere Business Modeler
Концепция служебно-ориентированных приложений
Web-сервис
Язык описания web-сервисов
Протокол SOAP
Windows Communication Foundation
WCF и SOA
Канонические принципы WCF
Практические принципы WCF
Разработка сервис-ориентированных приложений с применением WCF
Схема организации удаленного взаимодействия в WCF
Структура WCF-сервиса
Единая программная модель
Концепция архитектуры, управляемой моделью
Платформенно-независимая модель
Платформенно-зависимая модель
Процесс трансформации моделей
Методология MDA
Преимущества MDA
SOA и MDA. Model Driven SOA.
Обзор Eclipse Modeling Framework (EMF)
Модели рабочих процессов. Windows Workflow Foundation.
Языки преобразования моделей. Графовые грамматики. Язык Query-View-Transformation. Язык преобразования моделей ATL.
Понятие шаблона проектирования.
Классификация шаблонов проектирования.
Преимущества и недостатки применения шаблонов проектирования.
Обзор основных шаблонов проектирования
Шаблон делегирования (Delegation pattern).
Шаблон функционального дизайна (Functional design).
Неизменяемый объект (Immutable).
Интерфейс (Interface).
Маркер (Marker interface).
Контейнер свойств (Property Container).
Обзор порождающих шаблонов проектирования.
Абстрактная фабрика.
Строитель.
Фабричный метод.
Отложенная инициализация.
Объектный пул.
Прототип.
Получение ресурса есть инициализация.
Одиночка.
Мультитон.
Обзор поведенческих шаблонов проектирования
Цепочка ответственности (Chain of Responsibility).
Команда (Command, Action, Transaction).
Интерпретатор (Interpreter).
Итератор (Iterator, Cursor).
Посредник (Mediator).
Хранитель (Memento, Token).
Наблюдатель (Observer, Dependents, Publish-Subscribe, Listener).
Состояние (State).
Стратегия (Strategy).
Шаблонный метод (Template Method).
Пустой объект (Null Object).
Посетитель (Visitor).
Политика (Simple Policy).
Спецификация (Specification).
Подписчик событий (Event listener).
Обзор группы шаблонов Model-view-controller
Model-view-controller
Model-view-presenter
Обзор шаблона Repository
Преимущества и недостатки шаблона
Обзор шаблонов параллельного программирования
Активный объект (Active Object).
Задержка (Balking).
Взаимодействие посредством сообщений (Messaging).
Блокировка с двойной проверкой (Double checked locking).
Событийно-управляемая асинхронность (Event-based asynchronous).
Ведущий/ведомый (Leaders/followers).
Монитор (Monitor Object).
Реактор (Reactor).
Блокировка чтения/записи (Read write lock).
Планировщик (Scheduler).
Пул потоков (Thread pool).
Личная память потока (Thread-Specific Storage).
Однопоточное выполнение (Single Thread Execution).
Антипаттерны в программировании
Анти-паттерны в управлении разработкой ПО
Анти-паттерны в разработке ПО
Анти-паттерны в объектно-ориентированном программировании
Анти-паттерны в программировании
Методологические анти-паттерны
Обзор архитектурных подходов искусственного интеллекта
Системы, основанные на правилах. Продукции. Схема вывода. Вывод в условиях наличия конфликтов - стратегии разрешения конфликтов. Преимущества продукционных систем. Недостатки продукционных систем.
Мультиагентные системы и их архитектуры. Определение агента. Свойства агента. Виды агентов. Архитектуры агентов. Кооперации агентов. Свойства мультиагентных систем. Отличие мультиагентной архитектуры от других архитектур.
Виртуальные организации.
Поиск-ориентированные архитектуры.
Системы, построенные вокруг планировщиков. Язык PDDL.
Требования к языку описанию архитектуры
Примеры языков описания архитектур: xAdl, Koala, Darvin, AADL
Сравнение с UML
Принципы работы с сложными системами.
Абстракция.
Уточнение.
Модульная разработка. Принципы разбиения системы на модули. Выделение интерфейсов и сокрытие информации. Адекватность, полнота, минимальность и простота интерфейсов. Разделение ответственности. Слабая связность модулей и сильное родство функций в одном модуле.
Повторное использование.