Исходный интерфейс может добавляться путем замены или существующей реализации или новой реализации. Операция добавления исходного интерфейса — это составная операция добавления реализации.
Операция добавления нового входного интерфейса Addlnt имеет вид:
с семантикой согласно следующему правилу.
Если справедливо, что
то NewCInt = OldCInt u {NewCIntlq}, NewCImp = OldCImp, где NewCIntlq — новый интерфейс.
Лемма 3.2. Операция добавления интерфейса с заданной семантикой сохраняет условие целостности компонента.
Пусть выполняется условие целостности для базового компонента, т. е. для каждого из входных интерфейсов существует соответствующая реализация. Эта предпосылка требует наличия реализации и для нового интерфейса. Потому расширенное множество входных интерфейсов целостности компонента истинно для созданного компонента с сохранением целостности.
Для операции расширения существующего интерфейса в отличие от операции расширения существующей реализации, нс требующей своей сохранности для структуры компонента, все существующие входные интерфейсы должны сохраняться. Операция CFact носит комплексный характер, потому что дополнительные методы, которые входят в состав интерфейса, требуют реализации со стороны контейнера.
Выше была отмечена важность построения модели сервиса для определения совместимости компонентных сред. Эта модель детализирует CServ с указанием сервисов, которые необходимы для поддержки функционирования компонентов и компонентных сред в рамках парадигмы компонентного программирования, которая обеспечивает формальное определение дополнительных статических и динамических свойств компонентных сред.