Порождающее программирование
(generative programming)
Порождающее программирование (generative programming)
– парадигма технологии разработки программного обеспечения, основанная
на моделировании семейства программных систем, используя которые можно
по конкретным техническим требованиям автоматически получить специализированный
и оптимизированный промежуточный или конечный программный продукт из
элементарных, многократно используемых компонентов реализации с помощью
базы знаний о конфигурациях [1].
Порождающее программирование фокусирует внимание не на уникальных продуктах
(объектах), а на семействах программных систем (классах объектов). Таким
образом, порождающее программирование имеет огромное сходство с теорией
универсальных и интегративных
моделей, применяемых для синтеза объектов, и являющихся моделями
не отдельно взятого объекта, а моделями всех объектов, принадлежащих
рассматриваемому классу (моделью семейства объектов или систем).
Таким образом, порождающее программирование – это автоматизированное
производство программных продуктов из отдельных компонентов, на манер
того, как это происходит при производстве промышленных изделий, в частности
автомобилей. Ключевыми моментами здесь являются унификация,
автоматизация и гибкость. Так современные сборочные
линии позволяют создавать автомобили с различными конфигурациями. Например,
для автомобиля Mercedes-Benz класса E имеется 8000 вариантов водительских
мест и 10 000 вариантов сидений [1].
В отличие от методологии компонентного программирования в порождающем
программировании происходит автоматическая (автоматизированная) сборка
программного продукта. Компонентно-ориентированное ориентированное программирование
можно уподобить сборке автомобиля из конструктора (набора типовых элементов),
в то время как в порождающем программировании задаются требования к
синтезируемой системе, на манер того, как клиент заказывает у дилера
желаемую конфигурацию автомобиля. Для реализации такой парадигмы необходимы:
- компоненты реализации, с учетом общей архитектуры данной линейки
продуктов;
- модель знаний о трансляции абстрактных требований в конкретные связи
компонентов;
- реализация этих знаний в генераторах.
Здесь также налицо полная аналогия синтеза объектов с использованием
интегративных и универсальных моделей и моделей морфологического множества.
Таким образом, концепция порождающего программирования тесно связана
с идеей автоматизации структурно-параметрического
синтеза, на базе теории интегративных моделей, а, следовательно,
многие элементы теории и инструментальные средства автоматизации структурно-параметрического
синтеза, представленные на данном сайте, могут быть использованы в порождающем
программировании. В самом деле, в работах по порождающему программированию
производство программных систем явно или неявно трактуется как структурно-параметрический
синтез (ведь программная система имеет структуру, а также параметры).
И наоборот, элементы теории и инструментальные средства порождающего
программирования могут быть заимствованы при развитии теории и реализации
интегративных моделей.
Литература
- Чернецки К., Айзенекер У. Порождающее программирование: методы,
инструменты, применение / Пер. с англ. СПб: Питер, 2005.
- Акимов С.В. Четырехуровневая
интегративная модель для автоматизации структурно-параметрического
синтеза // Труды учебных заведений связи / СПбГУТ. СПб, 2004. № 171.
С. 165-173.
- Акимов С.В. Мультиагентная
модель автоматизации структурно-параметрического синтеза
Связанные понятия
|