17 KiB
17 KiB
file:: SANER2024_paper_127_1700084365547_0.pdf file-path:: ../assets/SANER2024_paper_127_1700084365547_0.pdf
- For most service architectures, such as OSGi and Spring, architecture-specific tools allow software developers and architects to visualize otherwise obscure configurations hidden in the project files. ls-type:: annotation hl-page:: 1 hl-color:: green id:: 656498da-3b10-44f4-8b72-623b6922124a
- Furthermore, many generic modeling tools and architecture visualization tools require their users to create and maintain models manually. ls-type:: annotation hl-page:: 1 hl-color:: green id:: 656498f8-1f57-402f-bf1d-67d98892fbd1
- Software Project Visualization (SPViz ls-type:: annotation hl-page:: 1 hl-color:: green id:: 65649930-1d7f-4aad-bae6-c04135a00e36
- We demonstrate how SPViz can then automatically synthesize a customized, project-specific visualization tool that can adapt to changes in the underlying project automatically. ls-type:: annotation hl-page:: 1 hl-color:: green id:: 656499f8-3bbf-400a-87de-6f94b51ade40
- There are tools to reverse-engineer the actual architecture of projects to compare it to the modeled architecture and adapt them to each othe ls-type:: annotation hl-page:: 1 hl-color:: green id:: 6564b518-c480-4282-81c0-780b16a8879f
- As the use of programming languages and project structures surrounding them changes over time, new tools to work with those languages and structures must be developed ls-type:: annotation hl-page:: 1 hl-color:: green id:: 6564b560-4caf-47f1-8929-cbda745f8c90
- For each new project structure, developers will ask how project artifacts relate to each other and which hierarchies exist, to explore and explain the projects. ls-type:: annotation hl-page:: 1 hl-color:: green id:: 6564b597-5e60-44e4-a6cb-d19943ca4c8f
- However, such generic techniques may fail to be specific enough to describe the needs of domain experts and require too much manual effort to yield pleasing and meaningful diagrams ls-type:: annotation hl-page:: 1 hl-color:: green id:: 6564fe5b-3582-4ede-bb8c-1349b9d9055d
- [14] I. Malavolta, P. Lago, H. Muccini, P. Pelliccione, and A. Tang, “What industry needs from architectural languages: A survey,” IEEE Transactions on Software Engineering, vol. 39, no. 6, pp. 869–891, 2013 ls-type:: annotation hl-page:: 11 hl-color:: green id:: 6564fe77-0f8e-4393-a9ac-b45eefae50ce
- support for multiple views for architectures ls-type:: annotation hl-page:: 2 hl-color:: blue id:: 6564feac-cad1-4f22-ab45-cedb69e910cd hl-stamp:: 1701297419577
- support for specific architectural styles and patterns ls-type:: annotation hl-page:: 2 hl-color:: blue id:: 6564feb1-e4b5-4a8e-9988-fee8ec6fe46c hl-stamp:: 1701297424394
- How can one create customized architecture visualization tools with minimal effor ls-type:: annotation hl-page:: 2 hl-color:: purple id:: 6564ffcd-3af3-4f3c-9797-52d383c9879b hl-stamp:: 1701297447756
- ne to describe architectural elements and their relationships ls-type:: annotation hl-page:: 2 hl-color:: green id:: 65650087-3e6c-4735-97e4-ec26383cdb5a
- one to describe how these should be visualized. ls-type:: annotation hl-page:: 2 hl-color:: green id:: 6565008c-31f2-4ba3-bb8f-e20d7af47b0f
- An outline of an initial view for further configuration of a concrete architecture visualization tool synthesized by SPViz is shown in ls-type:: annotation hl-page:: 2 hl-color:: green id:: 656500ca-de96-4d6d-a270-0ef11346e55e
- project-specific visualization tool ls-type:: annotation hl-page:: 2 hl-color:: yellow id:: 6567bd5d-090d-4ff7-9823-d55542e7150c
- This previous work only works for a single architecture and therefore lacks the applicability to other architectures ls-type:: annotation hl-page:: 2 hl-color:: blue id:: 6567bd93-9df0-46e2-9d35-5b57e0843d71
- two DSLs describing arbitrary architectures and their visualization ls-type:: annotation hl-page:: 2 hl-color:: blue id:: 6567bdcf-64c3-47d7-b062-7ebb5b67e217
- automatically generate a complete visualization tool, ls-type:: annotation hl-page:: 2 hl-color:: blue id:: 6567be00-6500-4cb4-a3e4-b98d6b42b4b8
- illustrate the DSLs using example projects ls-type:: annotation hl-page:: 2 hl-color:: blue id:: 6567be08-fbef-4f66-b47d-d662ee761df1
- The use of the diagrams, according to the previous paper, allows to move from manually drawn diagrams such as UML to automatically created diagrams that are useful for system documentation purposes. ls-type:: annotation hl-page:: 3 hl-color:: green id:: 6567be2d-4889-4862-b440-adbb33eae45b
- generalize these concepts for arbitrary architectures ls-type:: annotation hl-page:: 3 hl-color:: green id:: 6567be55-514b-45c8-8bcb-71f206263c5a
- [:span] ls-type:: annotation hl-page:: 4 hl-color:: green id:: 6567bee1-9af7-42d9-ac8c-bbeefc15930a hl-type:: area hl-stamp:: 1701297887434
- modifying and filtering views to be reusable for documentation purposes in evolving (software) projects ls-type:: annotation hl-page:: 3 hl-color:: green id:: 6567bfc7-e9cd-4c5b-b657-e24f77becf19
- The project model (PM) contains the extracted data of a concrete project, here for an OSGi project ls-type:: annotation hl-page:: 3 hl-color:: yellow id:: 6567bfd4-a9f2-4dc4-9244-00ffdfb071ac hl-stamp:: 1702061506210
- architecture meta model (A2M ls-type:: annotation hl-page:: 3 hl-color:: green id:: 6567c00b-5b9b-4ba0-971e-dde44b6e5ba6
- All connections of the project can be interactively added or removed to show any hierarchy ls-type:: annotation hl-page:: 3 hl-color:: green id:: 6567c06c-17c9-4d37-94e9-c909a815a59c
- connect the connected artifacts of an artifac ls-type:: annotation hl-page:: 3 hl-color:: red id:: 6567c0ac-0095-4010-9e77-4d4603735337
- e define meta meta models to describe the general structure of a software architecture and an abstract way of visualizing that architectur ls-type:: annotation hl-page:: 3 hl-color:: yellow id:: 6567c16c-1b7c-466e-9d45-bd0b838f69d5
- arbitrary architecture meta models(A2Ms) ls-type:: annotation hl-page:: 3 hl-color:: yellow id:: 6567c185-408f-4c0e-83dd-cfcd615cbae3
- We refer to the meta model for describing the architecture the architecture meta model (A2M), and the meta model for the possible types of shown connections and views the view context meta model(VC2M). This section introduces two DSLs for defining such A2Ms and VC2Ms, thus making the DSLs themselves an architecture meta meta model (A3M) and a view context meta meta model (VC3M) ls-type:: annotation hl-page:: 3 hl-color:: yellow id:: 6567c1b8-9ffd-41e7-90e9-ca65c99118d2
- We define these components as the A3M. The A3M can be applied to most architectures to show how all their different artifacts relate to each other. ls-type:: annotation hl-page:: 3 hl-color:: green id:: 6567c23e-7cd2-4aac-821d-a6fd3628a18c
- This is due to the A3M being self-describing, just as the MOF. ls-type:: annotation hl-page:: 3 hl-color:: yellow id:: 6567c269-4c2c-4b24-b818-111798d4f687
- The information in the example consists of the name, artifacts, their hierarchy and connections ls-type:: annotation hl-page:: 4 hl-color:: green id:: 6567c2b2-4669-486e-ac41-3642e72518c0
- meta model ls-type:: annotation hl-page:: 4 hl-color:: yellow id:: 6567c2c2-56d6-4cc9-bcf2-a219abb787d0
- Specifically, it uses the Model-View-Controller (MVC) paradigm [16] as a guiding principle. ls-type:: annotation hl-page:: 2 hl-color:: yellow id:: 65735fca-9fc8-4896-a1cd-882585b4dfd0
- works for OSGi projects. ls-type:: annotation hl-page:: 2 hl-color:: yellow id:: 657360d2-6296-4a55-acb4-78155dec7ea2
- as well as template code for a model generator akin to the OSGi visualization using the DSLs based on example project architectures i ls-type:: annotation hl-page:: 2 hl-color:: yellow id:: 65736127-c00e-4730-829a-9e7f7ae2a278
- artifacts and references between these artifacts. ls-type:: annotation hl-page:: 3 hl-color:: green id:: 65738f66-7a16-457f-ad3d-bdba3c4ad881
- This concept is comparable to other meta models used for Model Driven Engineering (MDE) such as the Meta Object Facility (MOF) [19], in a simplified version. ls-type:: annotation hl-page:: 3 hl-color:: blue id:: 65738fb6-7ac9-45b6-90b3-19b1fec27031
- Bundle ls-type:: annotation hl-page:: 4 hl-color:: green id:: 6573909f-60bd-4ad7-887e-436844d65178
- ServiceInterface ls-type:: annotation hl-page:: 4 hl-color:: green id:: 657390a2-39e3-47b7-a701-ecc38b5946ee
- ServiceComponent ls-type:: annotation hl-page:: 4 hl-color:: green id:: 657390a5-3dc9-4d96-bd38-a8a4a1e0165e
- Bundle ls-type:: annotation hl-page:: 4 hl-color:: green id:: 657390a7-efc6-47de-9703-2816412d1619
- ServiceInterface ls-type:: annotation hl-page:: 4 hl-color:: green id:: 657390a9-c869-4f2b-8b7e-2600b10a32f7
- ServiceComponent ls-type:: annotation hl-page:: 4 hl-color:: green id:: 657390ac-442e-4d6a-877e-2a2ac76ef83b
- Therefore the VC3M allows the architects to further structure their visualization ls-type:: annotation hl-page:: 5 hl-color:: green id:: 65739136-856a-4b98-b88d-0248202ccd18
- VC3M allows to configure how the artifacts themselves should be visualized ls-type:: annotation hl-page:: 5 hl-color:: blue id:: 65739277-1272-4dbf-8ec8-d2abccf3eba5
- Fig. 10. ls-type:: annotation hl-page:: 5 hl-color:: yellow id:: 6573929a-5db6-4baf-bd17-8cbb014303ee hl-stamp:: 1702072988918
- category connections are another way of organizing and filtering views. ls-type:: annotation hl-page:: 5 hl-color:: green id:: 657393ae-cd69-45f2-9a3b-23ac47a47237
- thus showing that the previously manually designed OSGi visualization can be generalized using our DSLs. ls-type:: annotation hl-page:: 5 hl-color:: yellow id:: 65739407-ddfa-4e36-a05d-8ece1d53303c
- Fig. 11. Traditional (left, gray) and proposed (red) process for developing a new software project visualization tool. A2M and VC2M are written in the DSLs proposed here. Boxes represent files, software packages, and applications in UML style ls-type:: annotation hl-page:: 6 hl-color:: yellow id:: 6573945b-0222-4cd9-b248-c21a33dd6536
- This artifact view defines the filters for a bundle dependencies view. ls-type:: annotation hl-page:: 6 hl-color:: green id:: 65749421-0944-4be0-b26c-2501ea11ad00
- That is, a connection between features will be shown, if a bundle contained in one feature has a connection to a bundle contained in another feature ls-type:: annotation hl-page:: 6 hl-color:: green id:: 65749485-3cd8-40fb-9436-e7b33308905c
- The template contains a file ReadProjectFiles.java which is missing the architecture-specific extraction of data from the project’s sources ls-type:: annotation hl-page:: 6 hl-color:: yellow id:: 65749f02-578f-4f22-8b75-ed97a7bef133
- Examples described in Section V implement this template to show its feasibility ls-type:: annotation hl-page:: 7 hl-color:: yellow id:: 6574ffd5-23d1-4760-97e9-1c2ac28373b4
- This open format allows other code mining and reverse engineering tools to work together with our A2M and therefore with the visualization tool ls-type:: annotation hl-page:: 7 hl-color:: yellow id:: 65750014-5520-4748-a4b1-a9a453694d7f
- KLighD framework ls-type:: annotation hl-page:: 7 hl-color:: yellow id:: 657568ac-6059-480a-8a50-97519717938f
- DSLs to run and parse the configurations, making the tool less concise for its use case ls-type:: annotation hl-page:: 7 hl-color:: yellow id:: 657568f4-baba-4bbb-bdcf-e1fd0c2b26ef
- We opted for the generation approach, mainly to make the subsequent implementation/adaption of the model generator simpler ls-type:: annotation hl-page:: 7 hl-color:: yellow id:: 65756934-0893-4f95-a17b-3028bf237c92
- ny project architecture, causing the range of such an architecture’s main development IDE to be pretty much any IDE. ls-type:: annotation hl-page:: 7 hl-color:: yellow id:: 65756b39-70b9-41b4-8093-25e7802028bd
- The initial setup of the individual visualization tool is supported mainly in the Eclipse IDE. This includes the development of both DSLs and the implementation/adaption of a model generator for the PM ls-type:: annotation hl-page:: 7 hl-color:: yellow id:: 65756c5d-2f6f-44b7-a5a0-afbfb8f7b10d
- flexibility and usability ls-type:: annotation hl-page:: 7 hl-color:: purple id:: 65756ca2-9f70-482f-a347-984b6364642d
- quantitative analysis on the effort reduction using SPViz for the OSGi example. ls-type:: annotation hl-page:: 7 hl-color:: purple id:: 65756d1d-9694-4692-9232-07a8621c7247
- ‘What connections and hierarchies in the code should be made visible?’ and ‘What kinds of artifacts define and order these? ls-type:: annotation hl-page:: 6 hl-color:: purple id:: 65756d65-ea85-4f64-b164-1e70a9502f94
- OSGi ls-type:: annotation hl-page:: 7 hl-color:: yellow id:: 65756e45-a349-4c74-9575-6565ca529029
- PM generator ls-type:: annotation hl-page:: 8 hl-color:: yellow id:: 65756e97-4603-4e10-a411-7a600f1fae87
- Furthermore, it parses OSGI-INF/ folders and the Java files for definitions and connections of service components and interfaces and creates an OSGi PM based on that data for any OSGi project. ls-type:: annotation hl-page:: 8 hl-color:: yellow id:: 65756ef8-4a40-4581-9e6e-4ce81c5030af
- This example was verified with a project from our industrial partner, as well as the KLighD and Semantics frameworks of the KIELER7 project. The partner project consists of 144 bundles plus 109 additional dependent bundles, as well as285 service artifacts. The KLighD and Semantics frameworks consist of 25 plus 196 bundles and 166 plus 144 bundles, respectively. ls-type:: annotation hl-page:: 8 hl-color:: yellow id:: 65756f32-af92-4a01-bbd4-b89d68bded8a
- he generator parses the pom.xml files to build the PM of the hierarchy and the module dependencie ls-type:: annotation hl-page:: 8 hl-color:: green id:: 657570cf-afc8-4cc3-bfba-d7c36f66cd13
- or automatically updating documentation and for onboarding of new developers and maintenance. ls-type:: annotation hl-page:: 8 hl-color:: yellow id:: 65757240-df44-4a44-8229-2606bf6a2924
- explain the architecture and specific hierarchies to others by creating architectural descriptions, without the need to update such descriptions manually ls-type:: annotation hl-page:: 9 hl-color:: green id:: 65757373-3361-481f-9016-4accbb161dfb
- While there are many visualizations out there, this shows that at least for this questionnaire the architects were not happy with other tools they used so far. ls-type:: annotation hl-page:: 9 hl-color:: yellow id:: 65757383-bf9d-456c-aa94-f5c67b430ce0
- Other tools did not provide exactly what was required, because they were not usable as well, or because the architects did not find the right tool yet. ls-type:: annotation hl-page:: 9 hl-color:: yellow id:: 6575749b-d197-4a4d-be76-b3cceb37906f
- many related proposals go in the direction of visualization for software architectures or using meta models to describe and visualize architectures ls-type:: annotation hl-page:: 9 hl-color:: yellow id:: 65757684-ebce-4c3f-8983-3990806afe33
- ts use for projects developed outside the Eclipse environment is limited ls-type:: annotation hl-page:: 9 hl-color:: green id:: 657576d9-51bb-49be-aad6-51c06656f231
- Our tool allows to interface with existing architectures to provide visualizations, while not requiring any concrete language or syntax on the architecture description itself ls-type:: annotation hl-page:: 9 hl-color:: yellow id:: 6575cacd-eafb-4c19-a6f4-e121d74a2c6a
- requiring the underlying projects to conform to their constraints are for example ArchJava [6] for Java and Codoc [27] for Python ls-type:: annotation hl-page:: 10 hl-color:: yellow id:: 6575cb1a-e1e4-4960-b474-d0bd54c54cf4
- We would like the generated visualization modules to be extensible to make the final visualizations more configurable to fit aesthetics criteria of the architecture to visualize ls-type:: annotation hl-page:: 10 hl-color:: green id:: 6575cb4c-042a-49eb-9edb-68feaa78d87d
- software architects to quickly create a visualization tool they can use to explore any otherwise obscure architecture ls-type:: annotation hl-page:: 10 hl-color:: green id:: 6575cb62-5af7-4549-92f2-89adcb6df878
- available for arbitrary software architectures, highlighting the usability of such a concept. ls-type:: annotation hl-page:: 10 hl-color:: yellow id:: 6575cbb4-7e31-4bdf-b262-a693473d238a
- tate-of-the-art and well-accepted views on connections within software systems such as dependencies and service structures ls-type:: annotation hl-page:: 10 hl-color:: yellow id:: 6575cbbf-15df-49da-93a2-f96abe0fd8d7
- quickly set up a visualization for new and emerging languages and system structures ls-type:: annotation hl-page:: 10 hl-color:: yellow id:: 6575cbd1-a3f1-4f06-a83e-7c475b9a1c72