Меню

Site Logo

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

  1. Текущая ситуация на рынке разработки программного обеспечения
  2. Факторы, тормозящие создание и внедрение новых IT-решений
  3. Классические проблемы IT-инфраструктуры предприятий, которые развивали ее по историческим соображениям
  4. Тенденции развития методов разработки программного обеспечения

Архитектура. Типы архитектур. Клиент-серверная архитектура.

  1. Что такое программная архитектура
  2. Методики формирования программной архитектуры
  3. Использование архитектуры для достижения стратегических преимуществ
  4. Общее описание программной архитектуры
  5. Отличие архитектуры программного обеспечения от детального проектирования программного обеспечения
  6. Примеры архитектурных стилей и моделей
  7. Клиент-серверная архитектура.
  8. Многоуровневая архитектура.
  9. Прямой обмен данными.
  10. Технологии COM и CORBA.
  11. Проблемы поддержки и масштабирования клиент-серверных программ

Распределенные системы.

  1. Понятие системы. Определение системы
  2. Распределенная система
  3. Типы распределенных систем
  4. Примеры распределенных систем
  5. Требования к распределенным системам
  6. Архитектуры распределенных систем
  7. Распределенные базы данных

Событийно-ориентированная архитектура (EDA).

  1. Концепция событийно-управляемой архитектуры. Предпосылки создания событийно-управляемой архитектуры
  2. Основные элементы программ, построенных согласно событийно-управляемой архитектуре
  3. Задачи системной шины
  4. Преимущества событийно-управляемой архитектуры
  5. Архитектура системы передачи сообщений

Сервис-ориентированная архитектура (SOA).

  1. Обзор основных моментов сервис-ориентированной архитектуры. Сервис. Сервисная ориентация. Композитные приложения.
  2. Жизненный цикл SOA.
  3. Проектирование бизнес-логики в IBM WebSphere Business Modeler

Введение в Windows Communication Foundation.

  1. Концепция служебно-ориентированных приложений
  2. Web-сервис
  3. Язык описания web-сервисов
  4. Протокол SOAP
  5. Windows Communication Foundation
  6. WCF и SOA
  7. Канонические принципы WCF
  8. Практические принципы WCF
  9. Разработка сервис-ориентированных приложений с применением WCF
  10. Схема организации удаленного взаимодействия в WCF
  11. Структура WCF-сервиса
  12. Единая программная модель

Архитектура, управляемая моделю (Model Driven Architecture, MDA).

  1. Концепция архитектуры, управляемой моделью
  2. Платформенно-независимая модель
  3. Платформенно-зависимая модель
  4. Процесс трансформации моделей
  5. Методология MDA
  6. Преимущества MDA
  7. SOA и MDA. Model Driven SOA.
  8. Обзор Eclipse Modeling Framework (EMF)
  9. Модели рабочих процессов. Windows Workflow Foundation.
  10. Языки преобразования моделей. Графовые грамматики. Язык Query-View-Transformation. Язык преобразования моделей ATL.

Шаблоны проектирования (Design patterns).

  1. Понятие шаблона проектирования.
  2. Классификация шаблонов проектирования.
  3. Преимущества и недостатки применения шаблонов проектирования.

Основные шаблоны проектирования.

  1. Обзор основных шаблонов проектирования
  2. Шаблон делегирования (Delegation pattern).
  3. Шаблон функционального дизайна (Functional design).
  4. Неизменяемый объект (Immutable).
  5. Интерфейс (Interface).
  6. Маркер (Marker interface).
  7. Контейнер свойств (Property Container).

Порождающие шаблоны проектирования.

  1. Обзор порождающих шаблонов проектирования.
  2. Абстрактная фабрика.
  3. Строитель.
  4. Фабричный метод.
  5. Отложенная инициализация.
  6. Объектный пул.
  7. Прототип.
  8. Получение ресурса есть инициализация.
  9. Одиночка.
  10. Мультитон.

Поведенческие шаблоны проектирования.

  1. Обзор поведенческих шаблонов проектирования
  2. Цепочка ответственности (Chain of Responsibility).
  3. Команда (Command, Action, Transaction).
  4. Интерпретатор (Interpreter).
  5. Итератор (Iterator, Cursor).
  6. Посредник (Mediator).
  7. Хранитель (Memento, Token).
  8. Наблюдатель (Observer, Dependents, Publish-Subscribe, Listener).
  9. Состояние (State).
  10. Стратегия (Strategy).
  11. Шаблонный метод (Template Method).
  12. Пустой объект (Null Object).
  13. Посетитель (Visitor).
  14. Политика (Simple Policy).
  15. Спецификация (Specification).
  16. Подписчик событий (Event listener).

Шаблоны группы Model-view-controller.

  1. Обзор группы шаблонов Model-view-controller
  2. Model-view-controller
  3. Model-view-presenter

Шаблон Repository.

  1. Обзор шаблона Repository
  2. Преимущества и недостатки шаблона

Шаблоны параллельного программирования.

  1. Обзор шаблонов параллельного программирования
  2. Активный объект (Active Object).
  3. Задержка (Balking).
  4. Взаимодействие посредством сообщений (Messaging).
  5. Блокировка с двойной проверкой (Double checked locking).
  6. Событийно-управляемая асинхронность (Event-based asynchronous).
  7. Ведущий/ведомый (Leaders/followers).
  8. Монитор (Monitor Object).
  9. Реактор (Reactor).
  10. Блокировка чтения/записи (Read write lock).
  11. Планировщик (Scheduler).
  12. Пул потоков (Thread pool).
  13. Личная память потока (Thread-Specific Storage).
  14. Однопоточное выполнение (Single Thread Execution).

Анти-паттерны.

  1. Антипаттерны в программировании
  2. Анти-паттерны в управлении разработкой ПО
  3. Анти-паттерны в разработке ПО
  4. Анти-паттерны в объектно-ориентированном программировании
  5. Анти-паттерны в программировании
  6. Методологические анти-паттерны

Архитектурные подходы искусственного интеллекта

  1. Обзор архитектурных подходов искусственного интеллекта
  2. Системы, основанные на правилах. Продукции. Схема вывода. Вывод в условиях наличия конфликтов - стратегии разрешения конфликтов. Преимущества продукционных систем. Недостатки продукционных систем.
  3. Мультиагентные системы и их архитектуры. Определение агента. Свойства агента. Виды агентов. Архитектуры агентов. Кооперации агентов. Свойства мультиагентных систем. Отличие мультиагентной архитектуры от других архитектур.
  4. Виртуальные организации.
  5. Поиск-ориентированные архитектуры.
  6. Системы, построенные вокруг планировщиков. Язык PDDL.

Языки описания архитектуры

  1. Требования к языку описанию архитектуры
  2. Примеры языков описания архитектур: xAdl, Koala, Darvin, AADL
  3. Сравнение с UML

Принципы проектирования крупных систем.

  1. Принципы работы с сложными системами.
  2. Абстракция.
  3. Уточнение.
  4. Модульная разработка. Принципы разбиения системы на модули. Выделение интерфейсов и сокрытие информации. Адекватность, полнота, минимальность и простота интерфейсов. Разделение ответственности. Слабая связность модулей и сильное родство функций в одном модуле.
  5. Повторное использование.