Abstract
Service Oriented Architecture (SOA) is an architectural design paradigm which facilitates building and composing flexible, extensible and reusable service-oriented assets. These latter are encapsulated behind well-defined and published interfaces that can be dynamically discovered by third-party services. Before the advent of SOA, several software systems were developed using older technologies. Many of these systems still afford a business value, however they suffer from evolution and maintenance problems. It is advantageous to modernize those software systems towards service-based ones. In this sense, several re-engineering techniques propose migrating object-oriented applications towards SOA. Nonetheless, these approaches rely on ad-hoc criteria to correctly identify services in object-oriented legacy source code.Besides, one of the most distinguishing features of a service-oriented application is the ability to dynamically reconfigure and adjust its behavior to cope with changing environment during execution. However, in existing architecture description languages handling this aspect, reconfiguration rules are represented in an ad-hoc manner; reconfiguration scenarios are often implicit. This fact hinders a full management of dynamic reconfiguration at architecture level. Moreover, it constitutes a challenge to trace dynamic reconfiguration description/management at different levels of abstraction.In order to overcome the aforementioned problems, our contributions are presented in two axes: First, in the context of migrating legacy software towards SOA, we propose a service identification approach based on a quality measurement model, where service characteristics are considered, refined to measurable metrics in order to measure the semantic correctness of identified services. The second axis is dedicated to an Architecture Description Language (ADL) proposition that describes a variant-rich service-based architecture. In this modular ADL, dynamic reconfigurations are specified at architecture level. Moreover, the description is enriched with context and variability information, in order to enable a variability-based self-reconfiguration of architecture in response to context changes at runtime.