Software Architecture Tools- A Classification and Survey with Recommendation for an Organization

Document Type : Research Article


1 Faculty of Statistics, Mathematics and Computer Sciences, Allameh Tabataba'i University, Tehran, Iran.

2 School of Computer Engineering, Iran University of Science and Technology, Tehran, Iran.

3 Department of Instructional Technology, Allameh Tabataba'i University, Tehran, Iran.


With the rise of cloud infrastructures, micro-services, frameworks, and reference architectures for every conceivable domain and quality attribute, someone might think that architectural knowledge is hardly needed anymore. But all the architect of today needs to select from the rich array of tools and infrastructure alternatives out there, instantiate, configure them, and create an architecture. Software architecture tools mean any software that helps automation and create architecture, according to requirements. The purpose of these tools is to reduce human effort, speed up software development, and increase reliability. This paper aims to perform a literature review of software architecture tools and to propose architectures for the requirements of the Organization of Small Industries and Industrial Towns of Iran (OSIITI). We surveyed more than 50 software architecture tools for use in practical situations and large-scale projects such as OSIITI’s needs. The results of this survey identified five classes, namely (a) Modeling Tools to model architectures; (b) Code-Based Tools (Diagrams-As-Code) to perform syntactic and semantic consistency checking of the models; (c) Automated Tools to generate executable source code automatically that implements the models; (d) Diagramming Tools and (e) Icons-Based Tools to support for trace links between models and requirements or models and tests interfaces. For each class, several software tools are provided with their major features. These classes and tools are very helpful for organizations such as OSIITI that want to develop software, in both small and large-scale projects. A couple of architectures, based on layered and service-oriented patterns are proposed for OSIITI.


Main Subjects

[1] L. Bass and P. Clements and R. Kaman. Software Architecture in Practice. Addison-Wesley. 2022.
[2] OSIITI. Organization of Small Industries and Industrial Towns of Iran. Last visited: 15 Jan 2023. 2023.
[3] E. Majidi and M. Alemi and H. Rashidi. "Software Architecture: A Survey and Classification". Second International Conference on Communication Software and Networks. 454–460, 2010. [DOI ]
[4] M. Richards and N. Ford. Fundamentals of Software Architecture: An Engineering Approach. O'Reilly Media. 2020.
[5] J. Portillo-Rodriguez and A. Vizcaino and Ch. Ebert and M. Piattini. Tools to Support Global Software Development Processes: A Survey. 2010 5th IEEE International Conference on Global Software Engineering. 13-22, 2010. [DOI ]
[6] M. Tavakoli and L. Zhao and A. Heydari and G. Nenadic. Extracting useful software development information from mobile application reviews: A survey of intelligent mining techniques and tools. Expert Systems with Applications. 113: 186-199, 2018. [DOI ]
[7] E. Fregnan and T. Baum and A. Bacchelli. A survey on software coupling relations and tools. Information and Software Technology. 107: 159-178, 2019. [DOI ]
[8] M. Ozkaya and F. Erata. Understanding Practitioners’ Challenges on Software Modeling: A Survey. Journal of Computer Languages. 58: 100963, 2020. [DOI ]
[9] F. Tian and P. Liang and M.A. Babar. Relationships between software architecture and source code in practice: An exploratory survey and interview. Information and Software Technology. 141: 106705, 2022. [DOI ]
[10] M.R. Behbahani Nejad and H. Rashidi. A Novel Architecture based on Business Intelligence Approach to Exploit Big Data. Journal of Electrical and Computer Engineering Innovations (JECEI). 11(1): 85–102, 2023. [DOI ]
[11] M. Galster and D. Weyns. Empirical research in software architecture — Perceptions of the community. Journal of Systems and Software. 202: 111684, 2023. [DOI ]