Порождающее программирование

Кафедра информатики и автоматизации научных исследований

Специальность: Прикладная информатика в области принятия решений

Преподаватель: Попов Д.В.

Порождающее программирование (Generative Programming, GP) открывает перед разработчиками приложений глобальные перспективы. Оно реализует идею перехода от "одноразовых" программных систем к полуавтоматическому производству самых разнообразных продуктов.
Самое ценное качество методики порождающего программирования состоит в том, что она учитывает преимущества автоматизации применительно к разработке программных средств. Этот учебный курс содержит обзор методов и инструментов, обеспечивающих возможность проектирования и реализации "правильных" компонентов семейств систем, а также автоматизации их сборки. Представленные в этом учебном курсе методы применимы к любым коммерческим проектам - от "локального" программирования на уровне классов и процедур до масштабных разработок семейств комплексных систем. Целью курса является ознакомление  студентов  с  этой областью.

В результате освоения дисциплины обучающийся должен:

Знать основные понятия рассматриваемой области, программыне средства относящиеся к области.

Уметь применять шаблоны из библиотеки шаблонов C++ Boost Library (www.boost.org).

Содержание

  • Методы и приемы анализа и проектирования
    • Инженерия предметной области
    • Инженерия предметной области и объектно-ориентированные методы анализа и проектирования
    • Моделирование характеристик
    • Технология порождающего программирования
    • Концептуальное моделирование
  • Технологии реализации
    • Родовое программирование
    • Компонентно-ориентированные методики шаблонного программирования на C++
    • Аспектно-ориентированное программирование
    • Генераторы
    • Статическое метапрограммирование на языке C++
    • Ментальное программирование
    • Model Driven Architecture
    • Другое
  • Практические примеры

Литература

а) основная литература

  1. К. Чарнецки, У.Айзенкер Порождающее программирование. Методы, инструменты, применение СПб.: Питер, 2005. – 731 с

б) интернет ресурсы

  1. Трансформация программ http://www.program-transformation.org/
  2. Lambda the ultimate (The programming language Web Log)
  3. http://lambda-the-ultimate.org/

Вопросы для экзамена

      1. Инженерия предметной области
      2. Инженерия предметной области и объектно-ориентированные методы анализа и проектирования
      3.  Моделирование характеристик
      4.  Технология порождающего программирования
      5. Концептуальное моделирование
      6.  Технологии реализации
      7. Родовое программирование
      8.  Компонентно-ориентированные методики шаблонного программирования на C++
      9.  Аспектно-ориентированное программирование
      10.  Генераторы
      11.  Статическое метапрограммирование на языке C++
      12.  Ментальное программирование
      13.  Model Driven Architecture

Отчетность

  • Семестр 3: Экз