Abstract

Self-adaptive systems (SAS) change their architecture or behavior depending on the (re)configuration plans to answer the environmental context. Moreover, the (re)configurations process may also negatively affect the system’s architectural qualities because this process combines different architectural fragments or solutions via feature binding/unbinding at runtime. Thus, Architectural Bad Smells (ABS) may emerge, implying reduced system maintainability. Also, it indicates possible design and implementation issues and helps improve the system’s quality. But, ABS is less studied in SAS. However, these studies do not analyze the impact of runtime variability on smell detection and evolution as the SAS adapts. We extend our previous work to employ the Behavioral Map to analyze the ABS in SAS at runtime. In particular, we presented the feature identification process employed to instrument the source code of the SASs to detect ABS at runtime. We targeted for Cyclic Dependency (CD), Extraneous Connector (EC), Hub-Like Dependency (HL), and Oppressed Monitor (OM) ABS in multiple runtime adaptations in the SHE [8], Adasim [9], and mRUBiS [10] systems developed in Java. Our results suggest that some ABS appear only in a specific system configuration or architecture. For instance, the EC and OM smell appear in publish-subscribe architecture, as used in SHE. Also, we observed that the type and number of ABS found in the SAS depend on the configuration analyzed at runtime. For instance, in Adasim, the BM found 9 CD and 3 HL smells in the first adaptation, but the BM found 6 CD smells in the second adaptation. We could explain this variation by binding/unbinding certain runtime features. Thus, the Behavioral Map offers interesting support for assessing the architectural qualities of a given runtime adaptation. However, instrumenting the systems for runtime ABS identification demands expertise and time because the core and variable features are not documented. This paper provides the following contributions: i) A first study to identify ABS for SAS at runtime; ii) Our analysis based on two runtime adaptations of SHE, 40 runtime adaptations of Adasim, and 16 runtime adaptations of mRUBiS, demonstrate that runtime variability affects the type and occurrence of smells found; iii) The results and scripts to process behavioral maps are available in Github.
Original languageEnglish
Number of pages2
Publication statusPublished - Jun 2022
EventConférence francophone sur les Architectures Logicielles (CAL): 13ème édition de la Conférence francophone sur les Architectures Logicielles (CAL) - Université Bretagne Sud, Vannes, France
Duration: 7 Jun 202210 Jun 2022
https://www.redcad.org/events/cal2022/index.html

Conference

ConferenceConférence francophone sur les Architectures Logicielles (CAL)
Abbreviated titleCAL
Country/TerritoryFrance
CityVannes
Period7/06/2210/06/22
Internet address

Keywords

  • Architectural Smells
  • Dynamic Software Product Lines
  • Runtime Validation
  • Self-adaptive Systems
  • Behavioral Maps

Fingerprint

Dive into the research topics of 'Identifying Architectural Smells in Self-Adaptive Systems at Runtime'. Together they form a unique fingerprint.

Cite this