Files
logseq/assets/SANER2024_paper_127_1700084365547_0.edn
2025-06-05 22:07:12 +02:00

2314 lines
129 KiB
Clojure
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.
{:highlights [{:id #uuid "656498da-3b10-44f4-8b72-623b6922124a",
:page 1,
:position {:bounding {:x1 0,
:y1 40.66666793823242,
:x2 720.4239501953125,
:y2 562.4896240234375,
:width 1468.8,
:height 1900.8},
:rects ({:x1 0,
:y1 40.66666793823242,
:x2 0,
:y2 57.333335876464844,
:width 1468.8,
:height 1900.8}
{:x1 0,
:y1 54.66666793823242,
:x2 0,
:y2 71.33333587646484,
:width 1468.8,
:height 1900.8}
{:x1 0,
:y1 68.66667175292969,
:x2 0,
:y2 85.33333587646484,
:width 1468.8,
:height 1900.8}
{:x1 237.4938201904297,
:y1 466.82293701171875,
:x2 720.3725433349609,
:y2 490.82293701171875,
:width 1468.8,
:height 1900.8}
{:x1 117.5,
:y1 490.5833435058594,
:x2 720.4239501953125,
:y2 514.5833740234375,
:width 1468.8,
:height 1900.8}
{:x1 117.5,
:y1 514.53125,
:x2 720.4180908203125,
:y2 538.53125,
:width 1468.8,
:height 1900.8}
{:x1 117.5,
:y1 538.4896240234375,
:x2 298.4942932128906,
:y2 562.4896240234375,
:width 1468.8,
:height 1900.8}),
:page 1},
:content {:text "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."},
:properties {:color "green"}}
{:id #uuid "656498f8-1f57-402f-bf1d-67d98892fbd1",
:page 1,
:position {:bounding {:x1 0,
:y1 166.6666717529297,
:x2 720.4156494140625,
:y2 753.7083740234375,
:width 1468.8,
:height 1900.8},
:rects ({:x1 0,
:y1 166.6666717529297,
:x2 0,
:y2 183.33334350585938,
:width 1468.8,
:height 1900.8}
{:x1 0,
:y1 180.6666717529297,
:x2 0,
:y2 197.33334350585938,
:width 1468.8,
:height 1900.8}
{:x1 117.5,
:y1 682,
:x2 720.13623046875,
:y2 706,
:width 1468.8,
:height 1900.8}
{:x1 117.5,
:y1 705.7604370117188,
:x2 720.4156494140625,
:y2 729.7604370117188,
:width 1468.8,
:height 1900.8}
{:x1 117.5,
:y1 729.7083740234375,
:x2 280.21087646484375,
:y2 753.7083740234375,
:width 1468.8,
:height 1900.8}),
:page 1},
:content {:text "Furthermore, many generic modeling tools and architecture visualization tools require their users to create and maintain models manually."},
:properties {:color "green"}}
{:id #uuid "65649930-1d7f-4aad-bae6-c04135a00e36",
:page 1,
:position {:bounding {:x1 0,
:y1 236.6666717529297,
:x2 720.0184326171875,
:y2 850.6458740234375,
:width 1468.8,
:height 1900.8},
:rects ({:x1 0,
:y1 236.6666717529297,
:x2 0,
:y2 253.33334350585938,
:width 1468.8,
:height 1900.8}
{:x1 557.6979370117188,
:y1 802.6979370117188,
:x2 720.0184326171875,
:y2 826.6979370117188,
:width 1468.8,
:height 1900.8}
{:x1 117.5,
:y1 826.6458740234375,
:x2 319.1892395019531,
:y2 850.6458740234375,
:width 1468.8,
:height 1900.8}),
:page 1},
:content {:text "Software Project Visualization (SPViz"},
:properties {:color "green"}}
{:id #uuid "656499f8-3bbf-400a-87de-6f94b51ade40",
:page 1,
:position {:bounding {:x1 0,
:y1 278.66666412353516,
:x2 720.4247436523438,
:y2 970.2083740234375,
:width 1468.8,
:height 1900.8},
:rects ({:x1 0,
:y1 278.66666412353516,
:x2 0,
:y2 295.3333282470703,
:width 1468.8,
:height 1900.8}
{:x1 0,
:y1 292.66666412353516,
:x2 0,
:y2 309.3333282470703,
:width 1468.8,
:height 1900.8}
{:x1 0,
:y1 306.66666412353516,
:x2 0,
:y2 323.3333282470703,
:width 1468.8,
:height 1900.8}
{:x1 441.266845703125,
:y1 874.3541870117188,
:x2 720.4197998046875,
:y2 898.3541870117188,
:width 1468.8,
:height 1900.8}
{:x1 117.5,
:y1 898.3020935058594,
:x2 720.4247436523438,
:y2 922.3021240234375,
:width 1468.8,
:height 1900.8}
{:x1 117.5,
:y1 922.2604370117188,
:x2 720.4232177734375,
:y2 946.2604370117188,
:width 1468.8,
:height 1900.8}
{:x1 117.5,
:y1 946.2083740234375,
:x2 327.03759765625,
:y2 970.2083740234375,
:width 1468.8,
:height 1900.8}),
:page 1},
:content {:text "We demonstrate how SPViz can then automatically synthesize a customized, project-specific visualization tool that can adapt to changes in the underlying project automatically."},
:properties {:color "green"}}
{:id #uuid "6564b518-c480-4282-81c0-780b16a8879f",
:page 1,
:position {:bounding {:x1 0,
:y1 516.6666870117188,
:x2 639.8650512695312,
:y2 1329.0625,
:width 1305.6,
:height 1689.6},
:rects ({:x1 0,
:y1 516.6666870117188,
:x2 0,
:y2 533.3333435058594,
:width 1305.6,
:height 1689.6}
{:x1 0,
:y1 530.6666870117188,
:x2 0,
:y2 547.3333435058594,
:width 1305.6,
:height 1689.6}
{:x1 0,
:y1 544.6666870117188,
:x2 0,
:y2 561.3333435058594,
:width 1305.6,
:height 1689.6}
{:x1 587.5574493408203,
:y1 1228.5208740234375,
:x2 639.5426788330078,
:y2 1252.5208740234375,
:width 1305.6,
:height 1689.6}
{:x1 104.4375,
:y1 1254.041748046875,
:x2 639.8611450195312,
:y2 1278.041748046875,
:width 1305.6,
:height 1689.6}
{:x1 104.4375,
:y1 1279.5521240234375,
:x2 639.8650512695312,
:y2 1303.5521240234375,
:width 1305.6,
:height 1689.6}
{:x1 104.4375,
:y1 1305.0625,
:x2 194.2757110595703,
:y2 1329.0625,
:width 1305.6,
:height 1689.6}),
:page 1},
:content {:text "There are tools to reverse-engineer the actual architecture of projects to compare it to the modeled architecture and adapt them to each othe"},
:properties {:color "green"}}
{:id #uuid "6564b560-4caf-47f1-8929-cbda745f8c90",
:page 1,
:position {:bounding {:x1 0,
:y1 810.6666870117188,
:x2 1201.0100860595703,
:y2 1201.5,
:width 1305.6,
:height 1689.6},
:rects ({:x1 0,
:y1 810.6666870117188,
:x2 0,
:y2 827.3333740234375,
:width 1305.6,
:height 1689.6}
{:x1 0,
:y1 824.6666870117188,
:x2 0,
:y2 841.3333740234375,
:width 1305.6,
:height 1689.6}
{:x1 0,
:y1 838.6666870117188,
:x2 0,
:y2 855.3333740234375,
:width 1305.6,
:height 1689.6}
{:x1 1032.3609161376953,
:y1 1100.9583740234375,
:x2 1199.8391876220703,
:y2 1124.9583740234375,
:width 1305.6,
:height 1689.6}
{:x1 665.5833282470703,
:y1 1126.4791870117188,
:x2 1201.0055694580078,
:y2 1150.4791870117188,
:width 1305.6,
:height 1689.6}
{:x1 665.5833282470703,
:y1 1151.9896240234375,
:x2 1201.0100860595703,
:y2 1175.9896240234375,
:width 1305.6,
:height 1689.6}
{:x1 665.5833282470703,
:y1 1177.5,
:x2 920.3423004150391,
:y2 1201.5,
:width 1305.6,
:height 1689.6}),
:page 1},
:content {:text "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"},
:properties {:color "green"}}
{:id #uuid "6564b597-5e60-44e4-a6cb-d19943ca4c8f",
:page 1,
:position {:bounding {:x1 0,
:y1 894.6666870117188,
:x2 1201.0144805908203,
:y2 1329.0625,
:width 1305.6,
:height 1689.6},
:rects ({:x1 0,
:y1 894.6666870117188,
:x2 0,
:y2 911.3333435058594,
:width 1305.6,
:height 1689.6}
{:x1 0,
:y1 908.6666870117188,
:x2 0,
:y2 925.3333435058594,
:width 1305.6,
:height 1689.6}
{:x1 737.8216094970703,
:y1 1254.0416870117188,
:x2 1201.0144805908203,
:y2 1278.0416870117188,
:width 1305.6,
:height 1689.6}
{:x1 665.5833282470703,
:y1 1279.5521240234375,
:x2 1201.0121612548828,
:y2 1303.5521240234375,
:width 1305.6,
:height 1689.6}
{:x1 665.5833282470703,
:y1 1305.0625,
:x2 1026.2344512939453,
:y2 1329.0625,
:width 1305.6,
:height 1689.6}),
:page 1},
:content {:text "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."},
:properties {:color "green"}}
{:id #uuid "6564fe5b-3582-4ede-bb8c-1349b9d9055d",
:page 1,
:position {:bounding {:x1 0,
:y1 805.8854370117188,
:x2 675.5789947509766,
:y2 1037.3333740234375,
:width 734.4,
:height 950.4},
:rects ({:x1 472.20347595214844,
:y1 805.8854370117188,
:x2 675.5780487060547,
:y2 819.21875,
:width 734.4,
:height 950.4}
{:x1 374.39064025878906,
:y1 820.234375,
:x2 675.5789947509766,
:y2 833.5677490234375,
:width 734.4,
:height 950.4}
{:x1 374.39064025878906,
:y1 834.5833740234375,
:x2 675.5774383544922,
:y2 847.9166870117188,
:width 734.4,
:height 950.4}
{:x1 374.39064025878906,
:y1 848.9375,
:x2 478.53245544433594,
:y2 862.2708740234375,
:width 734.4,
:height 950.4}
{:x1 0,
:y1 992.3333740234375,
:x2 0,
:y2 1009.3333740234375,
:width 734.4,
:height 950.4}
{:x1 0,
:y1 1006.3333740234375,
:x2 0,
:y2 1023.3333740234375,
:width 734.4,
:height 950.4}
{:x1 0,
:y1 1020.3333740234375,
:x2 0,
:y2 1037.3333740234375,
:width 734.4,
:height 950.4}),
:page 1},
:content {:text "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"},
:properties {:color "green"}}
{:id #uuid "6564fe77-0f8e-4393-a9ac-b45eefae50ce",
:page 11,
:position {:bounding {:x1 0,
:y1 586.484375,
:x2 359.8329772949219,
:y2 673.3333435058594,
:width 734.4,
:height 950.4},
:rects ({:x1 58.75,
:y1 586.484375,
:x2 359.3112030029297,
:y2 597.1510620117188,
:width 734.4,
:height 950.4}
{:x1 80.63542175292969,
:y1 597.2239685058594,
:x2 359.8329772949219,
:y2 607.890625,
:width 734.4,
:height 950.4}
{:x1 80.63542175292969,
:y1 607.9635620117188,
:x2 337.97100830078125,
:y2 618.6302185058594,
:width 734.4,
:height 950.4}
{:x1 0,
:y1 642.3333435058594,
:x2 0,
:y2 659.3333435058594,
:width 734.4,
:height 950.4}
{:x1 0,
:y1 656.3333435058594,
:x2 0,
:y2 673.3333435058594,
:width 734.4,
:height 950.4}),
:page 11},
:content {:text "[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"},
:properties {:color "green"}}
{:id #uuid "6564feac-cad1-4f22-ab45-cedb69e910cd",
:page 2,
:position {:bounding {:x1 172.92188262939453,
:y1 607.8854370117188,
:x2 455.69246673583984,
:y2 625.5520935058594,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 172.92188262939453,
:y1 607.8854370117188,
:x2 455.69246673583984,
:y2 625.5520935058594,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 2},
:content {:text "support for multiple views for architectures "},
:properties {:color "blue"}}
{:id #uuid "6564feb1-e4b5-4a8e-9988-fee8ec6fe46c",
:page 2,
:position {:bounding {:x1 139.63021087646484,
:y1 627.0208435058594,
:x2 475.9554672241211,
:y2 644.6875305175781,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 139.63021087646484,
:y1 627.0208435058594,
:x2 475.9554672241211,
:y2 644.6875305175781,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 2},
:content {:text "support for specific architectural styles and patterns"},
:properties {:color "blue"}}
{:id #uuid "6564ffcd-3af3-4f3c-9797-52d383c9879b",
:page 2,
:position {:bounding {:x1 0,
:y1 138.33334350585938,
:x2 479.9414596557617,
:y2 778.3750305175781,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 0,
:y1 138.33334350585938,
:x2 0,
:y2 155.33334350585938,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 0,
:y1 152.33334350585938,
:x2 0,
:y2 169.33334350585938,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 332.5468978881836,
:y1 722.4427185058594,
:x2 479.9414596557617,
:y2 740.1094055175781,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 78.33333587646484,
:y1 741.5729370117188,
:x2 479.8629684448242,
:y2 759.2395935058594,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 78.33333587646484,
:y1 760.7083435058594,
:x2 111.34794616699219,
:y2 778.3750305175781,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 2},
:content {:text "How can one create customized architecture visualization tools with minimal effor"},
:properties {:color "purple"}}
{:id #uuid "65650087-3e6c-4735-97e4-ec26383cdb5a",
:page 2,
:position {:bounding {:x1 0,
:y1 208.33334350585938,
:x2 479.8626937866211,
:y2 854.7864685058594,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 0,
:y1 208.33334350585938,
:x2 0,
:y2 225.33334350585938,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 296.4888381958008,
:y1 818.1145935058594,
:x2 479.8626937866211,
:y2 835.7812805175781,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 78.33333587646484,
:y1 837.1198425292969,
:x2 300.03792572021484,
:y2 854.7864685058594,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 2},
:content {:text "ne to describe architectural elements and their relationships"},
:properties {:color "green"}}
{:id #uuid "6565008c-31f2-4ba3-bb8f-e20d7af47b0f",
:page 2,
:position {:bounding {:x1 0,
:y1 222.33334350585938,
:x2 479.8591537475586,
:y2 873.9219055175781,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 0,
:y1 222.33334350585938,
:x2 0,
:y2 239.33334350585938,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 339.31893157958984,
:y1 837.1198425292969,
:x2 479.8591537475586,
:y2 854.7864685058594,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 78.33333587646484,
:y1 856.2552185058594,
:x2 262.49327850341797,
:y2 873.9219055175781,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 2},
:content {:text "one to describe how these should be visualized."},
:properties {:color "green"}}
{:id #uuid "656500ca-de96-4d6d-a270-0ef11346e55e",
:page 2,
:position {:bounding {:x1 0,
:y1 292.3333435058594,
:x2 480.0197067260742,
:y2 988.7291870117188,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 0,
:y1 292.3333435058594,
:x2 0,
:y2 309.3333435058594,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 0,
:y1 306.3333435058594,
:x2 0,
:y2 323.3333435058594,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 214.48564910888672,
:y1 932.7969055175781,
:x2 479.0399398803711,
:y2 950.4635620117188,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 78.33333587646484,
:y1 951.9323120117188,
:x2 480.0197067260742,
:y2 969.5989685058594,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 78.33333587646484,
:y1 971.0625305175781,
:x2 305.7669906616211,
:y2 988.7291870117188,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 2},
:content {:text "An outline of an initial view for further configuration of a concrete architecture visualization tool synthesized by SPViz is shown in "},
:properties {:color "green"}}
{:id #uuid "6567bd5d-090d-4ff7-9823-d55542e7150c",
:page 2,
:position {:bounding {:x1 250.8172149658203,
:y1 894.4309387207031,
:x2 475.6478576660156,
:y2 912.3231506347656,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 250.8172149658203,
:y1 894.4309387207031,
:x2 475.6478576660156,
:y2 912.3231506347656,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 2},
:content {:text " project-specific visualization tool"},
:properties {:color "yellow"}}
{:id #uuid "6567bd93-9df0-46e2-9d35-5b57e0843d71",
:page 2,
:position {:bounding {:x1 499.1920471191406,
:y1 607.7894592285156,
:x2 900.8042602539062,
:y2 663.9538269042969,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 598.1585388183594,
:y1 607.7894592285156,
:x2 900.5338745117188,
:y2 625.6817321777344,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 499.1920471191406,
:y1 626.9255065917969,
:x2 900.8042602539062,
:y2 644.8177795410156,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 499.1920471191406,
:y1 646.0615539550781,
:x2 582.9742431640625,
:y2 663.9538269042969,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 2},
:content {:text "This previous work only works for a single architecture and therefore lacks the applicability to other architectures"},
:properties {:color "blue"}}
{:id #uuid "6567bdcf-64c3-47d7-b062-7ebb5b67e217",
:page 2,
:position {:bounding {:x1 531.2109985351562,
:y1 918.0001220703125,
:x2 900.7809143066406,
:y2 955.0284423828125,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 762.7131652832031,
:y1 918.0001220703125,
:x2 900.7809143066406,
:y2 935.8923950195312,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 531.2109985351562,
:y1 937.1361694335938,
:x2 825.7027893066406,
:y2 955.0284423828125,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 2},
:content {:text " two DSLs describing arbitrary architectures and their visualization "},
:properties {:color "blue"}}
{:id #uuid "6567be00-6500-4cb4-a3e4-b98d6b42b4b8",
:page 2,
:position {:bounding {:x1 531.2109985351562,
:y1 975.2770385742188,
:x2 900.7823181152344,
:y2 1012.3053588867188,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 667.2732543945312,
:y1 975.2770385742188,
:x2 900.7823181152344,
:y2 993.1693115234375,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 531.2109985351562,
:y1 994.4130859375,
:x2 647.8800964355469,
:y2 1012.3053588867188,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 2},
:content {:text "automatically generate a complete visualization tool,"},
:properties {:color "blue"}}
{:id #uuid "6567be08-fbef-4f66-b47d-d662ee761df1",
:page 2,
:position {:bounding {:x1 552.7812194824219,
:y1 1051.8155517578125,
:x2 827.9242858886719,
:y2 1069.7078247070312,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 552.7812194824219,
:y1 1051.8155517578125,
:x2 827.9242858886719,
:y2 1069.7078247070312,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 2},
:content {:text " illustrate the DSLs using example projects"},
:properties {:color "blue"}}
{:id #uuid "6567be2d-4889-4862-b440-adbb33eae45b",
:page 3,
:position {:bounding {:x1 78.33573150634766,
:y1 161.61236572265625,
:x2 479.9379653930664,
:y2 236.9071044921875,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 219.38453674316406,
:y1 161.61236572265625,
:x2 479.6605987548828,
:y2 179.504638671875,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 78.33573150634766,
:y1 180.74273681640625,
:x2 479.9379653930664,
:y2 198.635009765625,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 78.33573150634766,
:y1 199.8787841796875,
:x2 479.3956985473633,
:y2 217.77105712890625,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 78.33573150634766,
:y1 219.01483154296875,
:x2 399.9727554321289,
:y2 236.9071044921875,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 3},
:content {:text "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."},
:properties {:color "green"}}
{:id #uuid "6567be55-514b-45c8-8bcb-71f206263c5a",
:page 3,
:position {:bounding {:x1 135.95123291015625,
:y1 429.3688049316406,
:x2 471.9466552734375,
:y2 447.2610778808594,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 135.95123291015625,
:y1 429.3688049316406,
:x2 471.9466552734375,
:y2 447.2610778808594,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 3},
:content {:text "generalize these concepts for arbitrary architectures"},
:properties {:color "green"}}
{:id #uuid "6567bee1-9af7-42d9-ac8c-bbeefc15930a",
:page 4,
:position {:bounding {:x1 61.7180118560791,
:y1 332.031005859375,
:x2 492.7180118560791,
:y2 542.031005859375,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects (),
:page 4},
:content {:text "[:span]", :image 1701297887434},
:properties {:color "green"}}
{:id #uuid "6567bfc7-e9cd-4c5b-b657-e24f77becf19",
:page 3,
:position {:bounding {:x1 78.33573341369629,
:y1 486.64579010009766,
:x2 479.93824195861816,
:y2 523.6741104125977,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 155.50464820861816,
:y1 486.64579010009766,
:x2 479.93824195861816,
:y2 504.5380630493164,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 78.33573341369629,
:y1 505.7818374633789,
:x2 443.4412021636963,
:y2 523.6741104125977,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 3},
:content {:text "modifying and filtering views to be reusable for documentation purposes in evolving (software) projects"},
:properties {:color "green"}}
{:id #uuid "6567bfd4-a9f2-4dc4-9244-00ffdfb071ac",
:page 3,
:position {:bounding {:x1 78.33573341369629,
:y1 544.0482559204102,
:x2 480.0615177154541,
:y2 581.0765762329102,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 235.37124061584473,
:y1 544.0482559204102,
:x2 480.0615177154541,
:y2 561.9405288696289,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 78.33573341369629,
:y1 563.1843032836914,
:x2 475.85618019104004,
:y2 581.0765762329102,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 3},
:content {:text "The project model (PM) contains the extracted data of a concrete project, here for an OSGi project"},
:properties {:color "yellow"}}
{:id #uuid "6567c00b-5b9b-4ba0-971e-dde44b6e5ba6",
:page 3,
:position {:bounding {:x1 168.0253086090088,
:y1 639.7228212356567,
:x2 375.0154972076416,
:y2 657.6150941848755,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 168.0253086090088,
:y1 639.7228212356567,
:x2 375.0154972076416,
:y2 657.6150941848755,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 3},
:content {:text "architecture meta model (A2M"},
:properties {:color "green"}}
{:id #uuid "6567c06c-17c9-4d37-94e9-c909a815a59c",
:page 3,
:position {:bounding {:x1 78.33573150634766,
:y1 888.3488922119141,
:x2 479.15496826171875,
:y2 925.3715362548828,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 250.82601928710938,
:y1 888.3488922119141,
:x2 479.15496826171875,
:y2 906.2411651611328,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 78.33573150634766,
:y1 907.4792633056641,
:x2 450.9646987915039,
:y2 925.3715362548828,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 3},
:content {:text "All connections of the project can be interactively added or removed to show any hierarchy"},
:properties {:color "green"}}
{:id #uuid "6567c0ac-0095-4010-9e77-4d4603735337",
:page 3,
:position {:bounding {:x1 110.35468292236328,
:y1 1063.3462829589844,
:x2 400.6763381958008,
:y2 1081.2385559082031,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 110.35468292236328,
:y1 1063.3462829589844,
:x2 400.6763381958008,
:y2 1081.2385559082031,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 3},
:content {:text "connect the connected artifacts of an artifac"},
:properties {:color "red"}}
{:id #uuid "6567c16c-1b7c-466e-9d45-bd0b838f69d5",
:page 3,
:position {:bounding {:x1 499.1920471191406,
:y1 341.299617767334,
:x2 900.7952270507812,
:y2 397.45827865600586,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 566.0910034179688,
:y1 341.299617767334,
:x2 900.79345703125,
:y2 359.19189071655273,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 499.1920471191406,
:y1 360.42995834350586,
:x2 900.7952270507812,
:y2 378.3222312927246,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 499.1920471191406,
:y1 379.5660057067871,
:x2 679.6597595214844,
:y2 397.45827865600586,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 3},
:content {:text "e define meta meta models to describe the general structure of a software architecture and an abstract way of visualizing that architectur"},
:properties {:color "yellow"}}
{:id #uuid "6567c185-408f-4c0e-83dd-cfcd615cbae3",
:page 3,
:position {:bounding {:x1 499.1920471191406,
:y1 322.16357040405273,
:x2 900.7957153320312,
:y2 359.19189071655273,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 676.59033203125,
:y1 322.16357040405273,
:x2 900.7957153320312,
:y2 340.05581283569336,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 499.1920471191406,
:y1 341.299617767334,
:x2 547.0986938476562,
:y2 359.19189071655273,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 3},
:content {:text "arbitrary architecture meta models(A2Ms)"},
:properties {:color "yellow"}}
{:id #uuid "6567c1b8-9ffd-41e7-90e9-ca65c99118d2",
:page 3,
:position {:bounding {:x1 499.1920471191406,
:y1 456.104549407959,
:x2 900.86962890625,
:y2 607.9434776306152,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 758.71142578125,
:y1 456.104549407959,
:x2 900.7937622070312,
:y2 473.99682235717773,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 499.1920471191406,
:y1 475.24059677124023,
:x2 900.8447875976562,
:y2 493.132869720459,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 499.1920471191406,
:y1 494.3766441345215,
:x2 900.7572021484375,
:y2 512.2689170837402,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 499.1920471191406,
:y1 513.5126914978027,
:x2 900.86962890625,
:y2 531.4049644470215,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 499.1920471191406,
:y1 532.6430625915527,
:x2 900.4891967773438,
:y2 550.5353355407715,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 499.1920471191406,
:y1 551.779109954834,
:x2 900.7960815429688,
:y2 569.6713829040527,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 499.1920471191406,
:y1 570.9151573181152,
:x2 900.8121948242188,
:y2 588.807430267334,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 499.1920471191406,
:y1 590.0512046813965,
:x2 632.5009765625,
:y2 607.9434776306152,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 3},
:content {:text "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)"},
:properties {:color "yellow"}}
{:id #uuid "6567c23e-7cd2-4aac-821d-a6fd3628a18c",
:page 3,
:position {:bounding {:x1 499.1920471191406,
:y1 902.6638793945312,
:x2 900.7974853515625,
:y2 977.9642944335938,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 794.8684692382812,
:y1 902.6638793945312,
:x2 900.7926025390625,
:y2 920.55615234375,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 499.1920471191406,
:y1 921.7999267578125,
:x2 898.7888793945312,
:y2 939.6921997070312,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 499.1920471191406,
:y1 940.9359741210938,
:x2 900.7974853515625,
:y2 958.8282470703125,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 499.1920471191406,
:y1 960.072021484375,
:x2 576.4578247070312,
:y2 977.9642944335938,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 3},
:content {:text "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. "},
:properties {:color "green"}}
{:id #uuid "6567c269-4c2c-4b24-b818-111798d4f687",
:page 3,
:position {:bounding {:x1 499.1920471191406,
:y1 1113.0178527832031,
:x2 899.98046875,
:y2 1130.9101257324219,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 499.1920471191406,
:y1 1113.0178527832031,
:x2 899.98046875,
:y2 1130.9101257324219,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 3},
:content {:text "This is due to the A3M being self-describing, just as the MOF."},
:properties {:color "yellow"}}
{:id #uuid "6567c2b2-4669-486e-ac41-3642e72518c0",
:page 4,
:position {:bounding {:x1 78.33573150634766,
:y1 824.0999298095703,
:x2 479.6631774902344,
:y2 861.1282501220703,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 265.5286865234375,
:y1 824.0999298095703,
:x2 479.6631774902344,
:y2 841.9922027587891,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 78.33573150634766,
:y1 843.2359771728516,
:x2 475.9450454711914,
:y2 861.1282501220703,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 4},
:content {:text " The information in the example consists of the name, artifacts, their hierarchy and connections"},
:properties {:color "green"}}
{:id #uuid "6567c2c2-56d6-4cc9-bcf2-a219abb787d0",
:page 4,
:position {:bounding {:x1 167.48703002929688,
:y1 862.3663482666016,
:x2 244.37281799316406,
:y2 880.2586212158203,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 167.48703002929688,
:y1 862.3663482666016,
:x2 244.37281799316406,
:y2 880.2586212158203,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 4},
:content {:text "meta model"},
:properties {:color "yellow"}}
{:id #uuid "65735fca-9fc8-4896-a1cd-882585b4dfd0",
:page 2,
:position {:bounding {:x1 73.6796875,
:y1 967.0390625,
:x2 451.4258117675781,
:y2 1019.53125,
:width 921,
:height 1191.8823529411764},
:rects ({:x1 373.501220703125,
:y1 967.0390625,
:x2 451.4258117675781,
:y2 983.5390625,
:width 921,
:height 1191.8823529411764}
{:x1 73.6796875,
:y1 985.03125,
:x2 451.3728942871094,
:y2 1001.53125,
:width 921,
:height 1191.8823529411764}
{:x1 73.6796875,
:y1 1003.03125,
:x2 200.10238647460938,
:y2 1019.53125,
:width 921,
:height 1191.8823529411764}),
:page 2},
:content {:text " Specifically, it uses the Model-View-Controller (MVC) paradigm [16] as a guiding principle. "},
:properties {:color "yellow"}}
{:id #uuid "657360d2-6296-4a55-acb4-78155dec7ea2",
:page 2,
:position {:bounding {:x1 469.5234375,
:y1 823.890625,
:x2 847.2212524414062,
:y2 858.390625,
:width 921,
:height 1191.8823529411764},
:rects ({:x1 810.4746704101562,
:y1 823.890625,
:x2 847.2212524414062,
:y2 840.390625,
:width 921,
:height 1191.8823529411764}
{:x1 469.5234375,
:y1 841.890625,
:x2 582.9459228515625,
:y2 858.390625,
:width 921,
:height 1191.8823529411764}),
:page 2},
:content {:text "works for OSGi projects."},
:properties {:color "yellow"}}
{:id #uuid "65736127-c00e-4730-829a-9e7f7ae2a278",
:page 2,
:position {:bounding {:x1 499.640625,
:y1 935.3359375,
:x2 847.2096557617188,
:y2 987.828125,
:width 921,
:height 1191.8823529411764},
:rects ({:x1 613.35791015625,
:y1 935.3359375,
:x2 847.2073364257812,
:y2 951.8359375,
:width 921,
:height 1191.8823529411764}
{:x1 499.640625,
:y1 953.328125,
:x2 847.2096557617188,
:y2 969.828125,
:width 921,
:height 1191.8823529411764}
{:x1 499.640625,
:y1 971.328125,
:x2 752.00439453125,
:y2 987.828125,
:width 921,
:height 1191.8823529411764}),
:page 2},
:content {:text "as well as template code for a model generator akin to the OSGi visualization using the DSLs based on example project architectures i"},
:properties {:color "yellow"}}
{:id #uuid "65738f66-7a16-457f-ad3d-bdba3c4ad881",
:page 3,
:position {:bounding {:x1 469.5234375,
:y1 741.0546875,
:x2 847.3312377929688,
:y2 775.5546875,
:width 921,
:height 1191.8823529411764},
:rects ({:x1 617.8984375,
:y1 741.0546875,
:x2 847.3312377929688,
:y2 757.5546875,
:width 921,
:height 1191.8823529411764}
{:x1 469.5234375,
:y1 759.0546875,
:x2 521.4027709960938,
:y2 775.5546875,
:width 921,
:height 1191.8823529411764}),
:page 3},
:content {:text "artifacts and references between these artifacts."},
:properties {:color "green"}}
{:id #uuid "65738fb6-7ac9-45b6-90b3-19b1fec27031",
:page 3,
:position {:bounding {:x1 469.5234375,
:y1 903.03125,
:x2 847.2162475585938,
:y2 955.40625,
:width 921,
:height 1191.8823529411764},
:rects ({:x1 542.185302734375,
:y1 903.03125,
:x2 846.966552734375,
:y2 919.53125,
:width 921,
:height 1191.8823529411764}
{:x1 469.5234375,
:y1 921.03125,
:x2 847.2162475585938,
:y2 937.53125,
:width 921,
:height 1191.8823529411764}
{:x1 469.5234375,
:y1 938.90625,
:x2 803.7105712890625,
:y2 955.40625,
:width 921,
:height 1191.8823529411764}),
:page 3},
:content {:text "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. "},
:properties {:color "blue"}}
{:id #uuid "6573909f-60bd-4ad7-887e-436844d65178",
:page 4,
:position {:bounding {:x1 564.84375,
:y1 437.9609375,
:x2 608.0238037109375,
:y2 451.4609375,
:width 921,
:height 1191.8823529411764},
:rects ({:x1 564.84375,
:y1 437.9609375,
:x2 608.0238037109375,
:y2 451.4609375,
:width 921,
:height 1191.8823529411764}),
:page 4},
:content {:text "Bundle"},
:properties {:color "green"}}
{:id #uuid "657390a2-39e3-47b7-a701-ecc38b5946ee",
:page 4,
:position {:bounding {:x1 564.84375,
:y1 532.359375,
:x2 679.9906005859375,
:y2 545.859375,
:width 921,
:height 1191.8823529411764},
:rects ({:x1 564.84375,
:y1 532.359375,
:x2 679.9906005859375,
:y2 545.859375,
:width 921,
:height 1191.8823529411764}),
:page 4},
:content {:text "ServiceInterface"},
:properties {:color "green"}}
{:id #uuid "657390a5-3dc9-4d96-bd38-a8a4a1e0165e",
:page 4,
:position {:bounding {:x1 564.84375,
:y1 545.828125,
:x2 679.9906005859375,
:y2 559.328125,
:width 921,
:height 1191.8823529411764},
:rects ({:x1 564.84375,
:y1 545.828125,
:x2 679.9906005859375,
:y2 559.328125,
:width 921,
:height 1191.8823529411764}),
:page 4},
:content {:text "ServiceComponent"},
:properties {:color "green"}}
{:id #uuid "657390a7-efc6-47de-9703-2816412d1619",
:page 4,
:position {:bounding {:x1 485.640625,
:y1 464.8984375,
:x2 528.8206787109375,
:y2 478.3984375,
:width 921,
:height 1191.8823529411764},
:rects ({:x1 485.640625,
:y1 464.8984375,
:x2 528.8206787109375,
:y2 478.3984375,
:width 921,
:height 1191.8823529411764}),
:page 4},
:content {:text "Bundle"},
:properties {:color "green"}}
{:id #uuid "657390a9-c869-4f2b-8b7e-2600b10a32f7",
:page 4,
:position {:bounding {:x1 485.640625,
:y1 613.2890625,
:x2 600.7874755859375,
:y2 626.7890625,
:width 921,
:height 1191.8823529411764},
:rects ({:x1 485.640625,
:y1 613.2890625,
:x2 600.7874755859375,
:y2 626.7890625,
:width 921,
:height 1191.8823529411764}),
:page 4},
:content {:text "ServiceInterface"},
:properties {:color "green"}}
{:id #uuid "657390ac-442e-4d6a-877e-2a2ac76ef83b",
:page 4,
:position {:bounding {:x1 485.640625,
:y1 653.8125,
:x2 600.7874755859375,
:y2 667.3125,
:width 921,
:height 1191.8823529411764},
:rects ({:x1 485.640625,
:y1 653.8125,
:x2 600.7874755859375,
:y2 667.3125,
:width 921,
:height 1191.8823529411764}),
:page 4},
:content {:text "ServiceComponent"},
:properties {:color "green"}}
{:id #uuid "65739136-856a-4b98-b88d-0248202ccd18",
:page 5,
:position {:bounding {:x1 73.6796875,
:y1 813.046875,
:x2 451.3970031738281,
:y2 847.546875,
:width 921,
:height 1191.8823529411764},
:rects ({:x1 88.6875,
:y1 813.046875,
:x2 451.3970031738281,
:y2 829.546875,
:width 921,
:height 1191.8823529411764}
{:x1 73.6796875,
:y1 831.046875,
:x2 210.8852081298828,
:y2 847.546875,
:width 921,
:height 1191.8823529411764}),
:page 5},
:content {:text "Therefore the VC3M allows the architects to further structure their visualization"},
:properties {:color "green"}}
{:id #uuid "65739277-1272-4dbf-8ec8-d2abccf3eba5",
:page 5,
:position {:bounding {:x1 73.6796875,
:y1 956.90625,
:x2 451.37786865234375,
:y2 991.40625,
:width 921,
:height 1191.8823529411764},
:rects ({:x1 253.28773498535156,
:y1 956.90625,
:x2 451.37786865234375,
:y2 973.40625,
:width 921,
:height 1191.8823529411764}
{:x1 73.6796875,
:y1 974.90625,
:x2 344.79559326171875,
:y2 991.40625,
:width 921,
:height 1191.8823529411764}),
:page 5},
:content {:text " VC3M allows to configure how the artifacts themselves should be visualized"},
:properties {:color "blue"}}
{:id #uuid "6573929a-5db6-4baf-bd17-8cbb014303ee",
:page 5,
:position {:bounding {:x1 471.640625,
:y1 612.6953125,
:x2 513.1953125,
:y2 626.1953125,
:width 921,
:height 1191.8823529411764},
:rects ({:x1 471.640625,
:y1 612.6953125,
:x2 513.1953125,
:y2 626.1953125,
:width 921,
:height 1191.8823529411764}),
:page 5},
:content {:text "Fig. 10. "},
:properties {:color "yellow"}}
{:id #uuid "657393ae-cd69-45f2-9a3b-23ac47a47237",
:page 5,
:position {:bounding {:x1 469.5234375,
:y1 720.203125,
:x2 847.260986328125,
:y2 754.6953125,
:width 921,
:height 1191.8823529411764},
:rects ({:x1 494.0234375,
:y1 720.203125,
:x2 847.260986328125,
:y2 736.703125,
:width 921,
:height 1191.8823529411764}
{:x1 469.5234375,
:y1 738.1953125,
:x2 564.6898803710938,
:y2 754.6953125,
:width 921,
:height 1191.8823529411764}),
:page 5},
:content {:text "category connections are another way of organizing and filtering views. "},
:properties {:color "green"}}
{:id #uuid "65739407-ddfa-4e36-a05d-8ece1d53303c",
:page 5,
:position {:bounding {:x1 469.5234375,
:y1 938.90625,
:x2 847.2216796875,
:y2 991.40625,
:width 921,
:height 1191.8823529411764},
:rects ({:x1 628.9473876953125,
:y1 938.90625,
:x2 847.216796875,
:y2 955.40625,
:width 921,
:height 1191.8823529411764}
{:x1 469.5234375,
:y1 956.90625,
:x2 847.2216796875,
:y2 973.40625,
:width 921,
:height 1191.8823529411764}
{:x1 469.5234375,
:y1 974.90625,
:x2 579.4097290039062,
:y2 991.40625,
:width 921,
:height 1191.8823529411764}),
:page 5},
:content {:text "thus showing that the previously manually designed OSGi visualization can be generalized using our DSLs. "},
:properties {:color "yellow"}}
{:id #uuid "6573945b-0222-4cd9-b248-c21a33dd6536",
:page 6,
:position {:bounding {:x1 73.6796875,
:y1 385.046875,
:x2 846.693115234375,
:y2 412.015625,
:width 921,
:height 1191.8823529411764},
:rects ({:x1 73.6796875,
:y1 385.046875,
:x2 846.693115234375,
:y2 398.546875,
:width 921,
:height 1191.8823529411764}
{:x1 73.6796875,
:y1 398.515625,
:x2 505.7796325683594,
:y2 412.015625,
:width 921,
:height 1191.8823529411764}),
:page 6},
:content {:text "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"},
:properties {:color "yellow"}}
{:id #uuid "65749421-0944-4be0-b26c-2501ea11ad00",
:page 6,
:position {:bounding {:x1 78.328125,
:y1 601.171875,
:x2 479.8982849121094,
:y2 657.3203125,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 450.3835754394531,
:y1 601.171875,
:x2 479.6210632324219,
:y2 619.171875,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 78.328125,
:y1 620.1796875,
:x2 479.8982849121094,
:y2 638.1796875,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 78.328125,
:y1 639.3203125,
:x2 117.35281372070312,
:y2 657.3203125,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 6},
:content {:text "This artifact view defines the filters for a bundle dependencies view. "},
:properties {:color "green"}}
{:id #uuid "65749485-3cd8-40fb-9436-e7b33308905c",
:page 6,
:position {:bounding {:x1 78.328125,
:y1 959.6640625,
:x2 479.9006652832031,
:y2 1015.8046875,
:width 979.1999999999999,
:height 1267.1999999999998},
:rects ({:x1 178.87594604492188,
:y1 959.6640625,
:x2 479.63037109375,
:y2 977.6640625,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 78.328125,
:y1 978.796875,
:x2 479.9006652832031,
:y2 996.796875,
:width 979.1999999999999,
:height 1267.1999999999998}
{:x1 78.328125,
:y1 997.8046875,
:x2 347.2004699707031,
:y2 1015.8046875,
:width 979.1999999999999,
:height 1267.1999999999998}),
:page 6},
:content {:text "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"},
:properties {:color "green"}}
{:id #uuid "65749f02-578f-4f22-8b75-ed97a7bef133",
:page 6,
:position {:bounding {:x1 665.5859375,
:y1 1458.4765625,
:x2 1201.10302734375,
:y2 1533,
:width 1305.6,
:height 1689.6},
:rects ({:x1 665.5859375,
:y1 1458.4765625,
:x2 1201.10302734375,
:y2 1481.9765625,
:width 1305.6,
:height 1689.6}
{:x1 665.5859375,
:y1 1483.984375,
:x2 1201.052001953125,
:y2 1507.484375,
:width 1305.6,
:height 1689.6}
{:x1 665.5859375,
:y1 1509.5,
:x2 815.9111328125,
:y2 1533,
:width 1305.6,
:height 1689.6}),
:page 6},
:content {:text "The template contains a file ReadProjectFiles.java which is missing the architecture-specific extraction of data from the projects sources"},
:properties {:color "yellow"}}
{:id #uuid "6574ffd5-23d1-4760-97e9-1c2ac28373b4",
:page 7,
:position {:bounding {:x1 71.80729675292969,
:y1 108.53643798828125,
:x2 439.9452819824219,
:y2 142.41143798828125,
:width 897.6,
:height 1161.6000000000001},
:rects ({:x1 233.1182861328125,
:y1 108.53643798828125,
:x2 439.9452819824219,
:y2 124.86981201171875,
:width 897.6,
:height 1161.6000000000001}
{:x1 71.80729675292969,
:y1 126.078125,
:x2 352.35618591308594,
:y2 142.41143798828125,
:width 897.6,
:height 1161.6000000000001}),
:page 7},
:content {:text " Examples described in Section V implement this template to show its feasibility"},
:properties {:color "yellow"}}
{:id #uuid "65750014-5520-4748-a4b1-a9a453694d7f",
:page 7,
:position {:bounding {:x1 71.80729675292969,
:y1 231.20314025878906,
:x2 439.9445037841797,
:y2 282.6145782470703,
:width 897.6,
:height 1161.6000000000001},
:rects ({:x1 220.83721923828125,
:y1 231.20314025878906,
:x2 439.69158935546875,
:y2 247.5364532470703,
:width 897.6,
:height 1161.6000000000001}
{:x1 71.80729675292969,
:y1 248.7395782470703,
:x2 439.9445037841797,
:y2 265.0729522705078,
:width 897.6,
:height 1161.6000000000001}
{:x1 71.80729675292969,
:y1 266.28126525878906,
:x2 371.9073944091797,
:y2 282.6145782470703,
:width 897.6,
:height 1161.6000000000001}),
:page 7},
:content {:text "This open format allows other code mining and reverse engineering tools to work together with our A2M and therefore with the visualization tool"},
:properties {:color "yellow"}}
{:id #uuid "657568ac-6059-480a-8a50-97519717938f",
:page 7,
:position {:bounding {:x1 173.2108612060547,
:y1 336.90626525878906,
:x2 296.4180908203125,
:y2 353.2395935058594,
:width 897.6,
:height 1161.6000000000001},
:rects ({:x1 173.2108612060547,
:y1 336.90626525878906,
:x2 296.4180908203125,
:y2 353.2395935058594,
:width 897.6,
:height 1161.6000000000001}),
:page 7},
:content {:text " KLighD framework "},
:properties {:color "yellow"}}
{:id #uuid "657568f4-baba-4bbb-bdcf-e1fd0c2b26ef",
:page 7,
:position {:bounding {:x1 71.8072919845581,
:y1 565.2760620117188,
:x2 439.94222259521484,
:y2 599.1510620117188,
:width 897.6,
:height 1161.6000000000001},
:rects ({:x1 173.67574310302734,
:y1 565.2760620117188,
:x2 439.94222259521484,
:y2 581.6094055175781,
:width 897.6,
:height 1161.6000000000001}
{:x1 71.8072919845581,
:y1 582.8177185058594,
:x2 341.57270336151123,
:y2 599.1510620117188,
:width 897.6,
:height 1161.6000000000001}),
:page 7},
:content {:text "DSLs to run and parse the configurations, making the tool less concise for its use case"},
:properties {:color "yellow"}}
{:id #uuid "65756934-0893-4f95-a17b-3028bf237c92",
:page 7,
:position {:bounding {:x1 71.80729293823242,
:y1 635.4375152587891,
:x2 439.9452819824219,
:y2 686.8489685058594,
:width 897.6,
:height 1161.6000000000001},
:rects ({:x1 379.798095703125,
:y1 635.4375152587891,
:x2 439.9452819824219,
:y2 651.7708435058594,
:width 897.6,
:height 1161.6000000000001}
{:x1 71.80729293823242,
:y1 652.9791870117188,
:x2 439.9430961608887,
:y2 669.3125305175781,
:width 897.6,
:height 1161.6000000000001}
{:x1 71.80729293823242,
:y1 670.5156555175781,
:x2 408.0503959655762,
:y2 686.8489685058594,
:width 897.6,
:height 1161.6000000000001}),
:page 7},
:content {:text "We opted for the generation approach, mainly to make the subsequent implementation/adaption of the model generator simpler"},
:properties {:color "yellow"}}
{:id #uuid "65756b39-70b9-41b4-8093-25e7802028bd",
:page 7,
:position {:bounding {:x1 71.80729293823242,
:y1 725.1145935058594,
:x2 439.9644470214844,
:y2 776.5260620117188,
:width 897.6,
:height 1161.6000000000001},
:rects ({:x1 294.2854919433594,
:y1 725.1145935058594,
:x2 439.9644470214844,
:y2 741.4479370117188,
:width 897.6,
:height 1161.6000000000001}
{:x1 71.80729293823242,
:y1 742.6510620117188,
:x2 439.9425163269043,
:y2 758.9844055175781,
:width 897.6,
:height 1161.6000000000001}
{:x1 71.80729293823242,
:y1 760.1927185058594,
:x2 283.20385360717773,
:y2 776.5260620117188,
:width 897.6,
:height 1161.6000000000001}),
:page 7},
:content {:text "ny project architecture, causing the range of such an architectures main development IDE to be pretty much any IDE. "},
:properties {:color "yellow"}}
{:id #uuid "65756c5d-2f6f-44b7-a5a0-afbfb8f7b10d",
:page 7,
:position {:bounding {:x1 457.59376525878906,
:y1 73.45832824707031,
:x2 825.7295074462891,
:y2 142.4114532470703,
:width 897.6,
:height 1161.6000000000001},
:rects ({:x1 472.13543701171875,
:y1 73.45832824707031,
:x2 825.6626281738281,
:y2 89.79167175292969,
:width 897.6,
:height 1161.6000000000001}
{:x1 457.59376525878906,
:y1 90.99479675292969,
:x2 825.4832305908203,
:y2 107.328125,
:width 897.6,
:height 1161.6000000000001}
{:x1 457.59376525878906,
:y1 108.53645324707031,
:x2 825.7295074462891,
:y2 124.86979675292969,
:width 897.6,
:height 1161.6000000000001}
{:x1 457.59376525878906,
:y1 126.07814025878906,
:x2 619.4980773925781,
:y2 142.4114532470703,
:width 897.6,
:height 1161.6000000000001}),
:page 7},
:content {:text "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"},
:properties {:color "yellow"}}
{:id #uuid "65756ca2-9f70-482f-a347-984b6364642d",
:page 7,
:position {:bounding {:x1 516.0188140869141,
:y1 531.5885620117188,
:x2 660.4507141113281,
:y2 547.9219055175781,
:width 897.6,
:height 1161.6000000000001},
:rects ({:x1 516.0188140869141,
:y1 531.5885620117188,
:x2 660.4507141113281,
:y2 547.9219055175781,
:width 897.6,
:height 1161.6000000000001}),
:page 7},
:content {:text "flexibility and usability"},
:properties {:color "purple"}}
{:id #uuid "65756d1d-9694-4692-9232-07a8621c7247",
:page 7,
:position {:bounding {:x1 457.59376525878906,
:y1 619.2916870117188,
:x2 825.7319641113281,
:y2 653.0469055175781,
:width 897.6,
:height 1161.6000000000001},
:rects ({:x1 562.4135131835938,
:y1 619.2916870117188,
:x2 825.7319641113281,
:y2 635.6250305175781,
:width 897.6,
:height 1161.6000000000001}
{:x1 457.59376525878906,
:y1 636.7135620117188,
:x2 679.1567687988281,
:y2 653.0469055175781,
:width 897.6,
:height 1161.6000000000001}),
:page 7},
:content {:text " quantitative analysis on the effort reduction using SPViz for the OSGi example."},
:properties {:color "purple"}}
{:id #uuid "65756d65-ea85-4f64-b164-1e70a9502f94",
:page 6,
:position {:bounding {:x1 457.59376525878906,
:y1 580.2604370117188,
:x2 825.7309265136719,
:y2 631.6771240234375,
:width 897.6,
:height 1161.6000000000001},
:rects ({:x1 616.2184448242188,
:y1 580.2604370117188,
:x2 825.7309265136719,
:y2 596.5937805175781,
:width 897.6,
:height 1161.6000000000001}
{:x1 457.59376525878906,
:y1 597.8021240234375,
:x2 825.1730499267578,
:y2 614.1354370117188,
:width 897.6,
:height 1161.6000000000001}
{:x1 457.59376525878906,
:y1 615.3437805175781,
:x2 655.8827209472656,
:y2 631.6771240234375,
:width 897.6,
:height 1161.6000000000001}),
:page 6},
:content {:text " What connections and hierarchies in the code should be made visible? and What kinds of artifacts define and order these?"},
:properties {:color "purple"}}
{:id #uuid "65756e45-a349-4c74-9575-6565ca529029",
:page 7,
:position {:bounding {:x1 578.1134338378906,
:y1 1106.5104370117188,
:x2 620.3083801269531,
:y2 1125.84375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 578.1134338378906,
:y1 1106.5104370117188,
:x2 620.3083801269531,
:y2 1125.84375,
:width 1060.8,
:height 1372.8}),
:page 7},
:content {:text "OSGi"},
:properties {:color "yellow"}}
{:id #uuid "65756e97-4603-4e10-a411-7a600f1fae87",
:page 8,
:position {:bounding {:x1 399.2905387878418,
:y1 231.765625,
:x2 496.4771537780762,
:y2 251.09896850585938,
:width 1060.8,
:height 1372.8},
:rects ({:x1 399.2905387878418,
:y1 231.765625,
:x2 496.4771537780762,
:y2 251.09896850585938,
:width 1060.8,
:height 1372.8}),
:page 8},
:content {:text "PM generator"},
:properties {:color "yellow"}}
{:id #uuid "65756ef8-4a40-4581-9e6e-4ce81c5030af",
:page 8,
:position {:bounding {:x1 84.85937881469727,
:y1 293.8177185058594,
:x2 519.9913749694824,
:y2 375.33856201171875,
:width 1060.8,
:height 1372.8},
:rects ({:x1 411.5809440612793,
:y1 293.8177185058594,
:x2 519.9913749694824,
:y2 313.15106201171875,
:width 1060.8,
:height 1372.8}
{:x1 84.85937881469727,
:y1 314.546875,
:x2 519.9482536315918,
:y2 333.8802185058594,
:width 1060.8,
:height 1372.8}
{:x1 84.85937881469727,
:y1 335.27606201171875,
:x2 519.9432716369629,
:y2 354.609375,
:width 1060.8,
:height 1372.8}
{:x1 84.85937881469727,
:y1 356.0052185058594,
:x2 473.50085830688477,
:y2 375.33856201171875,
:width 1060.8,
:height 1372.8}),
:page 8},
:content {:text "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."},
:properties {:color "yellow"}}
{:id #uuid "65756f32-af92-4a01-bbd4-b89d68bded8a",
:page 8,
:position {:bounding {:x1 84.85937881469727,
:y1 378.38021087646484,
:x2 519.9729118347168,
:y2 521.953125,
:width 1060.8,
:height 1372.8},
:rects ({:x1 102.15104293823242,
:y1 378.38021087646484,
:x2 519.9729118347168,
:y2 397.7135467529297,
:width 1060.8,
:height 1372.8}
{:x1 84.85937881469727,
:y1 399.109375,
:x2 519.9462928771973,
:y2 418.4427185058594,
:width 1060.8,
:height 1372.8}
{:x1 195.18229293823242,
:y1 418.1145935058594,
:x2 519.6532402038574,
:y2 431.78125,
:width 1060.8,
:height 1372.8}
{:x1 84.85937881469727,
:y1 419.8385467529297,
:x2 195.1541404724121,
:y2 439.171875,
:width 1060.8,
:height 1372.8}
{:x1 208.76041793823242,
:y1 419.8385467529297,
:x2 519.6532402038574,
:y2 439.171875,
:width 1060.8,
:height 1372.8}
{:x1 84.85937881469727,
:y1 440.4322967529297,
:x2 519.9429054260254,
:y2 459.765625,
:width 1060.8,
:height 1372.8}
{:x1 84.85937881469727,
:y1 461.1614685058594,
:x2 519.6516151428223,
:y2 480.4947967529297,
:width 1060.8,
:height 1372.8}
{:x1 84.85937881469727,
:y1 481.890625,
:x2 519.9423866271973,
:y2 501.2239685058594,
:width 1060.8,
:height 1372.8}
{:x1 84.85937881469727,
:y1 502.6197967529297,
:x2 170.79264450073242,
:y2 521.953125,
:width 1060.8,
:height 1372.8}),
:page 8},
:content {:text "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."},
:properties {:color "yellow"}}
{:id #uuid "657570cf-afc8-4cc3-bfba-d7c36f66cd13",
:page 8,
:position {:bounding {:x1 540.7916793823242,
:y1 252.359375,
:x2 975.8770446777344,
:y2 313.15106201171875,
:width 1060.8,
:height 1372.8},
:rects ({:x1 882.6125793457031,
:y1 252.359375,
:x2 975.8770446777344,
:y2 271.6927185058594,
:width 1060.8,
:height 1372.8}
{:x1 540.7916793823242,
:y1 273.08856201171875,
:x2 975.8196716308594,
:y2 292.421875,
:width 1060.8,
:height 1372.8}
{:x1 540.7916793823242,
:y1 293.8177185058594,
:x2 722.4272689819336,
:y2 313.15106201171875,
:width 1060.8,
:height 1372.8}),
:page 8},
:content {:text "he generator parses the pom.xml files to build the PM of the hierarchy and the module dependencie"},
:properties {:color "green"}}
{:id #uuid "65757240-df44-4a44-8229-2606bf6a2924",
:page 8,
:position {:bounding {:x1 540.7916793823242,
:y1 419.4270935058594,
:x2 975.8749694824219,
:y2 459.35418701171875,
:width 1060.8,
:height 1372.8},
:rects ({:x1 673.6470336914062,
:y1 419.4270935058594,
:x2 975.8749694824219,
:y2 438.76043701171875,
:width 1060.8,
:height 1372.8}
{:x1 540.7916793823242,
:y1 440.0208435058594,
:x2 936.7316207885742,
:y2 459.35418701171875,
:width 1060.8,
:height 1372.8}),
:page 8},
:content {:text "or automatically updating documentation and for onboarding of new developers and maintenance. "},
:properties {:color "yellow"}}
{:id #uuid "65757373-3361-481f-9016-4accbb161dfb",
:page 9,
:position {:bounding {:x1 84.8593807220459,
:y1 949.4635620117188,
:x2 519.952169418335,
:y2 1010.1198120117188,
:width 1060.8,
:height 1372.8},
:rects ({:x1 119.98958396911621,
:y1 949.4635620117188,
:x2 519.952169418335,
:y2 968.796875,
:width 1060.8,
:height 1372.8}
{:x1 84.8593807220459,
:y1 970.1927185058594,
:x2 519.9452571868896,
:y2 989.5260620117188,
:width 1060.8,
:height 1372.8}
{:x1 84.8593807220459,
:y1 990.7864685058594,
:x2 337.6862392425537,
:y2 1010.1198120117188,
:width 1060.8,
:height 1372.8}),
:page 9},
:content {:text "explain the architecture and specific hierarchies to others by creating architectural descriptions, without the need to update such descriptions manually"},
:properties {:color "green"}}
{:id #uuid "65757383-bf9d-456c-aa94-f5c67b430ce0",
:page 9,
:position {:bounding {:x1 84.8593807220459,
:y1 1032.2448120117188,
:x2 519.9460048675537,
:y2 1093.0364685058594,
:width 1060.8,
:height 1372.8},
:rects ({:x1 128.12343406677246,
:y1 1032.2448120117188,
:x2 519.9460048675537,
:y2 1051.578125,
:width 1060.8,
:height 1372.8}
{:x1 84.8593807220459,
:y1 1052.9739685058594,
:x2 519.9437313079834,
:y2 1072.3073120117188,
:width 1060.8,
:height 1372.8}
{:x1 84.8593807220459,
:y1 1073.703125,
:x2 321.67934226989746,
:y2 1093.0364685058594,
:width 1060.8,
:height 1372.8}),
:page 9},
:content {:text "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."},
:properties {:color "yellow"}}
{:id #uuid "6575749b-d197-4a4d-be76-b3cceb37906f",
:page 9,
:position {:bounding {:x1 84.85937881469727,
:y1 1073.703125,
:x2 519.9443588256836,
:y2 1134.4948120117188,
:width 1060.8,
:height 1372.8},
:rects ({:x1 326.2627182006836,
:y1 1073.703125,
:x2 519.9443588256836,
:y2 1093.0364685058594,
:width 1060.8,
:height 1372.8}
{:x1 84.85937881469727,
:y1 1094.4323120117188,
:x2 519.9422950744629,
:y2 1113.765625,
:width 1060.8,
:height 1372.8}
{:x1 84.85937881469727,
:y1 1115.1614685058594,
:x2 518.646915435791,
:y2 1134.4948120117188,
:width 1060.8,
:height 1372.8}),
:page 9},
:content {:text "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."},
:properties {:color "yellow"}}
{:id #uuid "65757684-ebce-4c3f-8983-3990806afe33",
:page 9,
:position {:bounding {:x1 540.7916793823242,
:y1 665.84375,
:x2 975.8740463256836,
:y2 726.6354370117188,
:width 1060.8,
:height 1372.8},
:rects ({:x1 781.9717712402344,
:y1 665.84375,
:x2 975.7958679199219,
:y2 685.1770935058594,
:width 1060.8,
:height 1372.8}
{:x1 540.7916793823242,
:y1 686.5729217529297,
:x2 975.8740463256836,
:y2 705.90625,
:width 1060.8,
:height 1372.8}
{:x1 540.7916793823242,
:y1 707.3020935058594,
:x2 949.3138046264648,
:y2 726.6354370117188,
:width 1060.8,
:height 1372.8}),
:page 9},
:content {:text "many related proposals go in the direction of visualization for software architectures or using meta models to describe and visualize architectures"},
:properties {:color "yellow"}}
{:id #uuid "657576d9-51bb-49be-aad6-51c06656f231",
:page 9,
:position {:bounding {:x1 540.7916793823242,
:y1 1039.9323120117188,
:x2 975.8743591308594,
:y2 1079.9948120117188,
:width 1060.8,
:height 1372.8},
:rects ({:x1 635.1993103027344,
:y1 1039.9323120117188,
:x2 975.8743591308594,
:y2 1059.265625,
:width 1060.8,
:height 1372.8}
{:x1 540.7916793823242,
:y1 1060.6614685058594,
:x2 698.1775741577148,
:y2 1079.9948120117188,
:width 1060.8,
:height 1372.8}),
:page 9},
:content {:text "ts use for projects developed outside the Eclipse environment is limited"},
:properties {:color "green"}}
{:id #uuid "6575cacd-eafb-4c19-a6f4-e121d74a2c6a",
:page 9,
:position {:bounding {:x1 508.7734375,
:y1 1115,
:x2 918.0571899414062,
:y2 1172.0078125,
:width 998,
:height 1291.5294117647059},
:rects ({:x1 551.94091796875,
:y1 1115,
:x2 918.0571899414062,
:y2 1133,
:width 998,
:height 1291.5294117647059}
{:x1 508.7734375,
:y1 1134.5,
:x2 918.0523681640625,
:y2 1152.5,
:width 998,
:height 1291.5294117647059}
{:x1 508.7734375,
:y1 1154.0078125,
:x2 872.5899658203125,
:y2 1172.0078125,
:width 998,
:height 1291.5294117647059}),
:page 9},
:content {:text "Our tool allows to interface with existing architectures to provide visualizations, while not requiring any concrete language or syntax on the architecture description itself"},
:properties {:color "yellow"}}
{:id #uuid "6575cb1a-e1e4-4960-b474-d0bd54c54cf4",
:page 10,
:position {:bounding {:x1 79.8359375,
:y1 81.78125,
:x2 489.1199035644531,
:y2 138.7890625,
:width 998,
:height 1291.5294117647059},
:rects ({:x1 403.48406982421875,
:y1 81.78125,
:x2 489.1199035644531,
:y2 99.78125,
:width 998,
:height 1291.5294117647059}
{:x1 79.8359375,
:y1 101.28125,
:x2 489.11956787109375,
:y2 119.28125,
:width 998,
:height 1291.5294117647059}
{:x1 79.8359375,
:y1 120.7890625,
:x2 483.79595947265625,
:y2 138.7890625,
:width 998,
:height 1291.5294117647059}),
:page 10},
:content {:text "requiring the underlying projects to conform to their constraints are for example ArchJava [6] for Java and Codoc [27] for Python"},
:properties {:color "yellow"}}
{:id #uuid "6575cb4c-042a-49eb-9edb-68feaa78d87d",
:page 10,
:position {:bounding {:x1 79.8359375,
:y1 1017.4921875,
:x2 489.12176513671875,
:y2 1094,
:width 998,
:height 1291.5294117647059},
:rects ({:x1 364.677001953125,
:y1 1017.4921875,
:x2 489.12176513671875,
:y2 1035.4921875,
:width 998,
:height 1291.5294117647059}
{:x1 79.8359375,
:y1 1036.9921875,
:x2 489.116943359375,
:y2 1054.9921875,
:width 998,
:height 1291.5294117647059}
{:x1 79.8359375,
:y1 1056.4921875,
:x2 489.1206970214844,
:y2 1074.4921875,
:width 998,
:height 1291.5294117647059}
{:x1 79.8359375,
:y1 1076,
:x2 288.86187744140625,
:y2 1094,
:width 998,
:height 1291.5294117647059}),
:page 10},
:content {:text "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"},
:properties {:color "green"}}
{:id #uuid "6575cb62-5af7-4549-92f2-89adcb6df878",
:page 10,
:position {:bounding {:x1 508.7734375,
:y1 559.7734375,
:x2 918.0546875,
:y2 616.78125,
:width 998,
:height 1291.5294117647059},
:rects ({:x1 721.7572631835938,
:y1 559.7734375,
:x2 917.98583984375,
:y2 577.7734375,
:width 998,
:height 1291.5294117647059}
{:x1 508.7734375,
:y1 579.28125,
:x2 918.0546875,
:y2 597.28125,
:width 998,
:height 1291.5294117647059}
{:x1 508.7734375,
:y1 598.78125,
:x2 696.3624877929688,
:y2 616.78125,
:width 998,
:height 1291.5294117647059}),
:page 10},
:content {:text "software architects to quickly create a visualization tool they can use to explore any otherwise obscure architecture"},
:properties {:color "green"}}
{:id #uuid "6575cbb4-7e31-4bdf-b262-a693473d238a",
:page 10,
:position {:bounding {:x1 365.5234375,
:y1 485.9453125,
:x2 659.533935546875,
:y2 526.96875,
:width 717,
:height 927.8823529411765},
:rects ({:x1 617.2645874023438,
:y1 485.9453125,
:x2 659.528564453125,
:y2 498.9453125,
:width 717,
:height 927.8823529411765}
{:x1 365.5234375,
:y1 499.953125,
:x2 659.533935546875,
:y2 512.953125,
:width 717,
:height 927.8823529411765}
{:x1 365.5234375,
:y1 513.96875,
:x2 453.857421875,
:y2 526.96875,
:width 717,
:height 927.8823529411765}),
:page 10},
:content {:text "available for arbitrary software architectures, highlighting the usability of such a concept."},
:properties {:color "yellow"}}
{:id #uuid "6575cbbf-15df-49da-93a2-f96abe0fd8d7",
:page 10,
:position {:bounding {:x1 365.5234375,
:y1 513.96875,
:x2 659.5293579101562,
:y2 554.9921875,
:width 717,
:height 927.8823529411765},
:rects ({:x1 572.21435546875,
:y1 513.96875,
:x2 659.33837890625,
:y2 526.96875,
:width 717,
:height 927.8823529411765}
{:x1 365.5234375,
:y1 527.9765625,
:x2 659.5293579101562,
:y2 540.9765625,
:width 717,
:height 927.8823529411765}
{:x1 365.5234375,
:y1 541.9921875,
:x2 572.3897705078125,
:y2 554.9921875,
:width 717,
:height 927.8823529411765}),
:page 10},
:content {:text "tate-of-the-art and well-accepted views on connections within software systems such as dependencies and service structures"},
:properties {:color "yellow"}}
{:id #uuid "6575cbd1-a3f1-4f06-a83e-7c475b9a1c72",
:page 10,
:position {:bounding {:x1 365.5234375,
:y1 639.96875,
:x2 659.529296875,
:y2 666.984375,
:width 717,
:height 927.8823529411765},
:rects ({:x1 465.67987060546875,
:y1 639.96875,
:x2 659.529296875,
:y2 652.96875,
:width 717,
:height 927.8823529411765}
{:x1 365.5234375,
:y1 653.984375,
:x2 574.48193359375,
:y2 666.984375,
:width 717,
:height 927.8823529411765}),
:page 10},
:content {:text " quickly set up a visualization for new and emerging languages and system structures"},
:properties {:color "yellow"}}],
:extra {:page 9}}