Architecture Conformance Checking in Dynamically Typed Languages

By: Sergio Miranda, Elder Rodrigues Jr, Marco Tulio Valente, Ricardo Terra


Architectural erosion is a recurrent problem faced by software architects, which might be even more severe in systems implemented in dynamically typed languages. The reasons are twofold: (i) some features provided by such languages make developers more propitious to break the planned architecture (e.g., dynamic invocations and buildings), and (ii) the developers’ community lacks tool support for monitoring the implemented architecture. To address these shortcomings, this paper presents an architectural conformance and visualization approach based on static code analysis techniques and on a lightweight type propagation heuristic. The central idea is to provide the developers’ community with means to control the architectural erosion process by reporting architectural violations and visualizing them in high-level architectural models, such as reflexion mod- els and DSMs. This paper also describes a tool – called ArchRuby – that implements our approach. We evaluate our solution in three real-world systems identifying 48 architectural violations of which the developers had no prior knowledge. We also measure the effectiveness of our type propagation heuristic reporting that (i) the number of analyzed types raises 5% on the average and (ii) certain violations are only detected due to our heuristic.


Architecture conformance checking, high-level architectural models, dynamically typed languages

Cite as:

Sergio Miranda, Elder Rodrigues Jr, Marco Tulio Valente, Ricardo Terra, “Architecture Conformance Checking in Dynamically Typed Languages”, Journal of Object Technology, Volume 15, no. 3 (June 2016), pp. 1:1-34, doi:10.5381/jot.2016.15.3.a1.

PDF | DOI | BiBTeX | Tweet this | Post to CiteULike | Share on LinkedIn