A survey on the practical use of UML for different software architecture viewpoints

Table of Contents



Software architecture viewpoints modularize the software architectures in terms of different viewpoints that each address a different concern. Unified Modeling Language (UML) is so popular among practitioners for modeling software architectures from different viewpoints.


In this paper, we aimed at understanding the practitioners’ UML usage for the modeling of software architectures from different viewpoints.


To this end, 109 practitioners with diverse profiles have been surveyed to understand practitioners’ UML usage for six different viewpoints: functional, information, concurrency, development, deployment, and operational. Each viewpoint has been considered in terms of a set of software models that can be created in that viewpoint.


The survey includes 35 questions for different viewpoint models, and the results lead to interesting findings. While the top popular viewpoints for the UML-based software architecture modeling are the functional (96%) and information (99%) viewpoints, the least popular one is the operational viewpoint that is considered by 26% of the practitioners. The top popular UML modeling tool is Enterprise Architect regardless of the viewpoints considered. Concerning the software models that can be created in each viewpoint, UML’s class diagram is practitioners’ top choice for the functional structure (71%), data structure (85%), concurrency structure (75%), software code structure (34%), and system installation (39%), and system support (16%) models; UML’s sequence diagram is the top choice for the data lifecycle models (47%); UML’s deployment diagram for the physical structure (71%), a mapping between the functional and physical components (53%), and system migration (21%) models; UML’s activity diagram for the data flow (65%), software build and release processes (20–22%), and system administration (36%) models; UML’s component diagram for the mapping between the functional and concurrent components (35%), software module structure (47%), and system configuration (21%) models; and UML’s package diagram for the software module structure (47%) models.


Software systems that are developed are getting larger and more complex each day due to the ever-increasing customer demand and improving technology. This also leads to complex software system designs that cannot easily be managed by the project stakeholders and cause the software systems to be delivered late (or over-budget) or developed wrongly. To manage the software design complexity, the notion of software architecture has been proposed in the early nineties, which promotes the decompositions of large and complex software systems into manageable components and connectors and their high-level reasoning [1, 2, 3]. Software architectures can be specified in a more modular and thus understandable way in terms of different perspectives that each concern different aspects of software development. These perspectives are actually called as software architecture viewpoints, which have been initially proposed in the mid-nineties by Kruchten [4]. Kruchten separates the software architecture design into four viewpoints, which are the logical, process, development, and physical viewpoints. In a logical viewpoint, the software system to be built is decomposed into components and their relationships. In the process viewpoint, the concurrent interactions of the system components are focused upon. In the development viewpoint, the implementation-related issues are focused upon. Lastly, in the physical viewpoint, the physical hardware units and their physical connections are focused upon, in which the logical components are to be allocated. Another important work has been performed by Soni et al. [5], who proposed the conceptual, module, execution, and code viewpoints. The conceptual viewpoint is essentially the same as Kruchten’s logical viewpoint, and the module viewpoint adapts the conceptual viewpoint with the high-level implementation design decisions that are independent of any programming languages (e.g., the ideal structure of the software implementation). The execution viewpoint is for modeling the run-time elements (e.g., operating system and process) and their communications. The code viewpoint represents the organization of the source code into modules in any programming language. Later on, Clements et al. [6], offered the component & connector, module, and allocation viewpoints that are each modeled in terms of a set of architectural styles. The component & connector viewpoint focuses on decomposing software systems into components that interact via connectors, while the module viewpoint focuses on the software implementation and the allocation viewpoint focuses on the physical system units. Garland et al. [7] also offered a large set of viewpoints that are categorized into five groups: domain analysis, component design, subsystem design, data design, process & deployment design. The domain analysis focuses on the top-level architecture description of systems. The component design focuses on the components composing the systems, their interactions, and behaviors. The sub-system design focuses on systems’ build-time and organizational structures. The data design focuses on data architecture and the process & deployment design focuses on the concurrency issues and the physical system structures. The IEEE community standardized the concept of software architecture viewpoints [8] (i.e., IEEE Standard 1471). They treat the view and viewpoint concepts separately1. That is, each view is essentially a set of software models that describe the software system from a particular viewpoint. The view models are expected to satisfy the rules and constraints of the viewpoint that define the view. 50 Software architectures can be modeled in terms of different viewpoints using the software modeling languages, which can be architecture description languages [9], domain-specific languages (e.g., Liszt [10], HIPA [11], and NDL [12]), and UML [13]. Among them, Unified Modeling Language is considered as the top-used language by practitioners for modeling software architectures [14, 15, 16, 17]. UML offers various diagrams for the visual specifications of software systems, which can be categorized into static and dynamic diagrams. The static diagrams are concerned with the system structures while the dynamic diagrams are concerned with the system’s changing behaviors. UML’s static diagrams are the composite structure diagram, deployment diagram, package diagram, profile diagram, class diagram, object diagram, and component diagram. UML’s dynamic diagrams are the activity diagram, use case diagram, state machine diagram, and some interaction diagrams that are the sequence, communication, and timing diagrams. UML is supported by a huge number of modeling tools, e.g., Enterprise Architect, Visual Paradigm, MagicDraw, Modelio, IBM Rational Rhapsody, etc. Using these tools, practitioners can model their software systems in UML and perform many different operations such as model management, analysis, simulation, user collaboration, project management, model transformation, documentation, etc. UML has also been extended many times for adapting UML to different domains (e.g., embedded systems, multi-agent systems, distributed systems, and web applications) [18].


The survey discussed in this paper attracted 109 participants from 34 different countries, who represent the different profiles in terms of the work industries, job positions, the types of software projects involved, and years of experiences. According to the survey results, most of the practitioners (88%) use UML in modeling their software systems from different architecture viewpoints. Among the considered architecture viewpoints (i.e., functional, information, concurrency, development, deployment, and operational), the top popular viewpoints in which the participants model their systems using UML are the functional and information viewpoints (96-99%). The operational viewpoint is the least popular one, ignored by 61% of the participants in their software modeling with UML. Each software architecture viewpoint has been considered in terms of different types of models that can be specified in that viewpoint. The survey results reveal the UML diagrams that practitioners prefer for each viewpoint model. The functional viewpoint has been addressed with the functional structure model; the information viewpoint has been addressed with the data flow, data structure, and data life-cycle models; the concurrency viewpoint has been addressed with the concurrency structure model and the mapping model between the functional and concurrency components; the development viewpoint has been addressed with the software module structure, software source code,  and build & release models; the deployment viewpoint has been addressed with the physical structure model and the mapping model between the functional and physical components; lastly, the operational viewpoint has been addressed with the system installation, administration, configuration, support, and migration models. Moreover, Enterprise Architect has been observed to be the top-used UML modeling tool regardless of the viewpoints considered. Indeed, the rest of the UML modeling tools have been observed to be rarely used. Note also that some practitioners seem to use the office tools for specifying their software systems from different architecture viewpoints. The results of this survey study are planned to be validated via the XIVT project6, which is labeled by the European Union’s EUREKA Cluster program ITEA (Information Technology for European Advancement). To validate the survey results, a set of case studies will be designed and executed in different industries that the project partners work in, such as Turkcell for telecommunications, Arcelik for consumer electronics, and Bombardier for aviation. The design of the case studies and the data collection and analysis will be performed systematically in accordance with the well-established guidelines, e.g., [47]. Each case study will focus on a real problem that is considered to be crucial for the project partner working in a particular industry of interest and can be solved with software development. A pre-determined set of practitioners working for the project partner will be expected to create software models to design their solutions from a different set of viewpoints. We plan to collect data by observing the techniques and tools that the practitioners prefer to use while modeling and asking the practitioners a pre-determined set of questions during and after their modeling activities. After validating the survey results, we will use the results for our works on designing and developing domain-specific modeling languages for different industries. So, we will determine for any particular domains (e.g., automotive, defense, transportation, and telecommunication) (i) the set of modeling viewpoints to be supported, (ii) the popular types of viewpoint models in which practitioners tend to create models in that domain, and (iii) the types of visual notation sets for the viewpoint models that are more likely to be accepted by practitioners in those industries. Moreover, we also plan to determine and analyze all the existing software architecture viewpoint frameworks that offer a set of viewpoints for the architecture descriptions. By doing so, we aim to compare the existing frameworks based on some pre-determined set of requirements including the scope, the supported viewpoints, the viewpoint descriptions (e.g., the concerns addressed, the different types of models supported), and the support for the viewpoint consistencies.

About KSRA

The Kavian Scientific Research Association (KSRA) is a non-profit research organization to provide research / educational services in December 2013. The members of the community had formed a virtual group on the Viber social network. The core of the Kavian Scientific Association was formed with these members as founders. These individuals, led by Professor Siavosh Kaviani, decided to launch a scientific / research association with an emphasis on education.

KSRA research association, as a non-profit research firm, is committed to providing research services in the field of knowledge. The main beneficiaries of this association are public or private knowledge-based companies, students, researchers, researchers, professors, universities, and industrial and semi-industrial centers around the world.

Our main services Based on Education for all Spectrum people in the world. We want to make an integration between researches and educations. We believe education is the main right of Human beings. So our services should be concentrated on inclusive education.

The KSRA team partners with local under-served communities around the world to improve the access to and quality of knowledge based on education, amplify and augment learning programs where they exist, and create new opportunities for e-learning where traditional education systems are lacking or non-existent.



Mert Ozkaya, Ferhat Erata



Information and Software Technology Volume 121, May 2020, 106275






PDF reference and original file: Click here


+ posts

Ehsan Sharifi has a Ph.D. in software engineering from Amirkabir University of Technology. His major research interests are software quality, software architecture and semantic web.