ArchPython: Architecture Conformance Checking for Python Systems

  • Eduardo F. de Lima UFLA
  • Ricardo Terra UFLA

Resumo


Dynamically typed languages provide several resources for developers, such as dynamic invocations and constructs. However, such resources combined with short deadlines, conflicts in requirements, or technical difficulties may increase the number of code decisions that go against the planned architecture, leading to the phenomenon known as architectural erosion. Even though Python is the 3rd most used programming language, there is no tool that allows developers to monitor the architecture of their systems. This is possibly justified by the complexity to infer types since the same variable can assume different types at run time. Facing such challenge, this article proposes ArchPython, the first complete architectural conformance and visualization tool for Python systems. In a nutshell, developers specify the architecture of their systems in a simple and natural way using JSON files and ArchPython takes care of the rest. Automatically, the tool infers types (Jedi + propagation heuristics) and detects architectural violations (divergences, absences, and even alerts). In addition to a JSON-based textual report, the tool also provides two ways of visualizing architectural violations (graph and DSM).
Palavras-chave: software architecture, python, architecture conformance
Publicado
21/10/2020
Como Citar

Selecione um Formato
LIMA, Eduardo F. de; TERRA, Ricardo. ArchPython: Architecture Conformance Checking for Python Systems. In: SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 34. , 2020, Natal. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2020 .