  Architectural smells (AS) are notorious for their long-term impact on the
Maintainability and Evolvability of software systems. The majority of research
work has investigated this topic by mining software repositories of open source
Java systems, making it hard to generalise and apply them to an industrial
context and other programming languages. To address this research gap, we
conducted an embedded multiple-case case study, in collaboration with a large
industry partner, to study how AS evolve in industrial embedded systems. We
detect and track AS in 9 C/C++ projects with over 30 releases for each project
that span over two years of development, with over 20 millions lines of code in
the last release only. In addition to these quantitative results, we also
interview 12 among the developers and architects working on these projects,
collecting over six hours of qualitative data about the usefulness of AS
analysis and the issues they experienced while maintaining and evolving
artefacts affected by AS. Our quantitative findings show how individual smell
instances evolve over time, how long they typically survive within the system,
how they overlap with instances of other smell types, and finally what the
introduction order of smell types is when they overlap. Our qualitative
findings, instead, provide insights on the effects of AS on the long-term
maintainability and evolvability of the system, supported by several excerpts
from our interviews. Practitioners also mention what parts of the AS analysis
actually provide actionable insights that they can use to plan refactoring
activities.
