Files
logseq/pages/hls__SANER2024_paper_127_1700084365547_0.md
2025-06-05 22:07:12 +02:00

425 lines
17 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
file:: [SANER2024_paper_127_1700084365547_0.pdf](../assets/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. 869891, 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 projects 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 architectures 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