Порождающее программирование
Кафедра информатики и автоматизации научных исследований
Специальность: Прикладная информатика в области принятия решений
Преподаватель: Попов Д.В.
Порождающее программирование (Generative Programming, GP) открывает перед разработчиками приложений глобальные перспективы. Оно реализует идею перехода от "одноразовых" программных систем к полуавтоматическому производству самых разнообразных продуктов.
Самое ценное качество методики порождающего программирования состоит в том, что она учитывает преимущества автоматизации применительно к разработке программных средств. Этот учебный курс содержит обзор методов и инструментов, обеспечивающих возможность проектирования и реализации "правильных" компонентов семейств систем, а также автоматизации их сборки. Представленные в этом учебном курсе методы применимы к любым коммерческим проектам - от "локального" программирования на уровне классов и процедур до масштабных разработок семейств комплексных систем. Целью курса является ознакомление студентов с этой областью.
В результате освоения дисциплины обучающийся должен:
Знать основные понятия рассматриваемой области, программыне средства относящиеся к области.
Уметь применять шаблоны из библиотеки шаблонов C++ Boost Library (www.boost.org).
Содержание
- Методы и приемы анализа и проектирования
- Инженерия предметной области
- Инженерия предметной области и объектно-ориентированные методы анализа и проектирования
- Моделирование характеристик
- Технология порождающего программирования
- Концептуальное моделирование
- Технологии реализации
- Родовое программирование
- Компонентно-ориентированные методики шаблонного программирования на C++
- Аспектно-ориентированное программирование
- Генераторы
- Статическое метапрограммирование на языке C++
- Ментальное программирование
- Model Driven Architecture
- Другое
- Практические примеры
Литература
а) основная литература
- К. Чарнецки, У.Айзенкер Порождающее программирование. Методы, инструменты, применение СПб.: Питер, 2005. – 731 с
б) интернет ресурсы
- Трансформация программ http://www.program-transformation.org/
- Lambda the ultimate (The programming language Web Log)
- http://lambda-the-ultimate.org/
Вопросы для экзамена
- Инженерия предметной области
- Инженерия предметной области и объектно-ориентированные методы анализа и проектирования
- Моделирование характеристик
- Технология порождающего программирования
- Концептуальное моделирование
- Технологии реализации
- Родовое программирование
- Компонентно-ориентированные методики шаблонного программирования на C++
- Аспектно-ориентированное программирование
- Генераторы
- Статическое метапрограммирование на языке C++
- Ментальное программирование
- Model Driven Architecture
Отчетность
- Семестр 3: Экз