Download PDFOpen PDF in browserOn Architectural Decay Prediction and Detection in Real-Time Software Systems11 pages•Published: September 26, 2019AbstractAs the number of software applications including the widespread of real-time and em- bedded systems are constantly increasing and tend to grow in complexity, the architecture tends to decay over the years, leading to the occurrence of a spectrum of defects and bad smells (i.e., instances of architectural decay) that are manifested and sustained over time in a software system’s life cycle. Thus, the implemented system is not compliant to the specified architecture and such architectural decay becomes an increasing challenge for the developers. We propose a set of constructive architecture views at different levels of granularity, which monitor and ensure that the modifications made by developers at the implementation level are in compliance with those of the different architectural timed-event elements of real-time systems. Thus, we investigated a set of orthogonal architectural de- cay paradigms timed-event component decay, timed-event interface decay, timed-event connector decay and timed-event port decay. All of this has led to predicting, forecasting, and detecting architectural decay with a greater degree of structure, abstraction techniques, architecture reconstruction; and hence offered a series of potential effectiveness and enhancement in gaining a deeper understanding of implementation-level bad smells in real-time systems. Furthermore, to support this research towards an effective architectural decay prediction and detection geared towards real-time and embedded systems, we investigated and evaluated the effect of our approach through a real-time Internet of Things (IoT) case study.Keyphrases: architectural decay, architectural smell, architectural violation, architecture conformance, code decay, drift, erosion, software architecture In: Frederick Harris, Sergiu Dascalu, Sharad Sharma and Rui Wu (editors). Proceedings of 28th International Conference on Software Engineering and Data Engineering, vol 64, pages 98-108.
|