Programování založené na komponentách je významný způsob pro vytváření velkých aplikací. Nicméně na základě naší zkušenosti, pokročilé komponentové systémy mají mnoho omezení, která brání širšímu uplatnění těchto systémů (zejména v průmyslu).
Tato omezení se týkají zejména (a) nedostatku podpory pro dynamické změny architektury, (b) nedostatečné podpory pro modelování a rošiřování řídící části komponent, (c) nedostatečné podpory pro různé komunikační styly. V tomto článku ukazujeme řešení těchto problémů společně s pokročilým komponentovým systémem SOFA 2, který tato řešení implementuje.