Dynamic Variability Management in Product Lines: An Approach Based on Architectural Contracts - Carvalho, Sergio T.; Loques, Orlando; Murta, Leonardo (Anais do Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS); 2010: Anais do IV Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software, 2010)
Software product lines capture commonalities and variabilities of products in order to facilitate the process development of new products. However, variability management is traditionally done just in development time and deployment time, not attending classes of applications that require a high degree of adaptability such as ubiquitous/pervasive and context-aware applications. This paper presents an approach for runtime variability management, considering product lines aimed at context-aware applications. The approach focuses on product line architecture description associated to contracts, which are used to manage dynamic variabilities. In a contract can be set services and context rules at a high level of abstraction. Services encapsulate variabilities and are capable of adapting/reconfiguring architecture of a product on dynamic way, while the rules determine a context which a particular service should be activated. This approach was applied in scenarios involving dynamic variabilities in a product line focused on home health care applications, where it was possible to observe its feasibility.