Smells arquiteturais de monitoramento em sistemas adaptativos
Serikawa, Marcel Akira
Adaptive systems are able to adapt themselves according to changes in its execution environment or the user's needs. Monitors are essential for the development of such systems because they are responsible for collecting and pre-processing the context data. By a search in systems found in repositories and literature, it was observed that monitors are sometimes designed and implemented in an inappropriate way, exhibiting the following characteristics: i) they are Obscure in the source code; ii) they have a unique monitoring rate and iii) they are forced to have a pre-determined execution order. These characteristics lead to difficulties in maintenance, evolution and often problems related to performance. Design decisions that lead to these difficulties can be characterized as architectural smells. The documentation of smells helps developers identifying refactoring opportunities of a system and also highlights practices that should be analyzed during the design and development of new systems. Therefore, this master thesis proses two architectural smells for adaptive systems: the Obscure Monitor and Oppressed Monitors. The first occurs when the monitors are not evident in the system and the second occurs when the monitors are subject to the same monitoring rate and have a strict execution order. In order to check the influence of the presence of theses smells five maintenance activities were applied in two versions of a system called PhoneAdapter, the original version with the presence of the smells and the refactored one in which the smells were removed. The results indicate that the maintenance and evolution of the refactored system are facilitated in most activities.