CALint: A Tool for Enforcing the Clean Architecture's Dependency Rule in Python.

Clevio Orlando de Oliveira Junior, Jonathan Carvalho,Fábio Fagundes Silveira,Tiago Silva da Silva,Eduardo Martins Guerra

International Conference on Computational Science and Its Applications (ICCSA)(2022)

引用 0|浏览4
暂无评分
摘要
Clean Architecture (CA) aims to address the need for more loosely coupled components and better cohesion. CA focuses on preparing software engineers to write more stable, durable, and flexible applications capable of distinguishing between details (e.g., what framework it uses) and the business logic requirements. A literature review shows that considerable effort has been devoted to cataloging and solving code smells related to code, often called code smells. However, the same does not apply to architecture smells - its software architecture counterpart. Similar research regarding other programming languages such as Java, PHP, or C# represents noteworthy works in the area, but they do not address Python applications directly. This work directs efforts towards redesigning and adapting existing Python programs to the CA principles by detecting the code smells that break the CA constraints through the developed CALint tool. Moreover, this approach proposes two extended refactoring techniques to solve these smells efficiently by grouping and comparing static code analysis and reuse them to enforce Clean Architecture's Dependency Rule programmatically. To demonstrate the feasibility of the two refactoring techniques described in this work and the CALint tool, we applied them to three different case studies. The major findings of this work include two extended refactoring techniques and the development of a tool to verify non-conformities related to the Clean Architecture dependency rule. The results show common cases where the dependency rule was violated and highlighted by the CALint tool, which are fixed with the support of refactoring steps.
更多
查看译文
关键词
clean architectures,dependency rule,python
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要