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

1 line
45 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 "6389f966-1886-4cc9-bf65-63b5d392b37e", :page 1, :position {:bounding {:x1 0, :y1 141.2916717529297, :x2 995.1344451904297, :y2 802.5833740234375, :width 1305.6, :height 1689.6}, :rects ({:x1 0, :y1 141.2916717529297, :x2 0, :y2 159.95834350585938, :width 1305.6, :height 1689.6} {:x1 450.5984344482422, :y1 753.0833740234375, :x2 995.1344451904297, :y2 777.0833740234375, :width 1305.6, :height 1689.6} {:x1 287.4895935058594, :y1 778.5833740234375, :x2 422.97679138183594, :y2 802.5833740234375, :width 1305.6, :height 1689.6}), :page 1}, :content {:text "side effects on database design, querying, and maintenance are not well-known. "}, :properties {:color "green"}} {:id #uuid "6389f972-b49a-44e1-acef-4887efe6f7d9", :page 1, :position {:bounding {:x1 0, :y1 155.6875, :x2 995.1367645263672, :y2 828.09375, :width 1305.6, :height 1689.6}, :rects ({:x1 0, :y1 155.6875, :x2 0, :y2 174.3541717529297, :width 1305.6, :height 1689.6} {:x1 564.7711029052734, :y1 778.5833740234375, :x2 995.1367645263672, :y2 802.5833740234375, :width 1305.6, :height 1689.6} {:x1 287.4895935058594, :y1 804.09375, :x2 903.6275329589844, :y2 828.09375, :width 1305.6, :height 1689.6}), :page 1}, :content {:text "e elaborate on the recent research effort devoted to the mining, analyzing, and evolving data-intensive software ecosystems"}, :properties {:color "green"}} {:id #uuid "6389f979-4478-452d-8bec-d59292e278c1", :page 1, :position {:bounding {:x1 799.0538177490234, :y1 829.59375, :x2 956.6370086669922, :y2 853.59375, :width 1305.6, :height 1689.6}, :rects ({:x1 799.0538177490234, :y1 829.59375, :x2 956.6370086669922, :y2 853.59375, :width 1305.6, :height 1689.6}), :page 1}, :content {:text "automated support"}, :properties {:color "green"}} {:id #uuid "638b0ccc-385c-4366-bdf9-f63f17c29661", :page 2, :position {:bounding {:x1 0, :y1 29.5, :x2 777.3624877929688, :y2 246.78125, :width 1019.9999999999999, :height 1319.9999999999998}, :rects ({:x1 0, :y1 29.5, :x2 0, :y2 50.5, :width 1019.9999999999999, :height 1319.9999999999998} {:x1 224.6015625, :y1 208.359375, :x2 777.3624877929688, :y2 226.859375, :width 1019.9999999999999, :height 1319.9999999999998} {:x1 224.6015625, :y1 228.28125, :x2 522.528076171875, :y2 246.78125, :width 1019.9999999999999, :height 1319.9999999999998}), :page 2}, :content {:text "Data-intensive software ecosystems comprise one or several databases and a collection of applications connected with the former"}, :properties {:color "green"}} {:id #uuid "638b0cf5-2a37-412e-8281-6a320d9ce449", :page 2, :position {:bounding {:x1 0, :y1 125.5, :x2 933.0043334960938, :y2 439.1015625, :width 1224, :height 1584}, :rects ({:x1 0, :y1 125.5, :x2 0, :y2 146.5, :width 1224, :height 1584} {:x1 510.17584228515625, :y1 393.1953125, :x2 933.0043334960938, :y2 415.1953125, :width 1224, :height 1584} {:x1 269.5234375, :y1 417.1015625, :x2 473.02496337890625, :y2 439.1015625, :width 1224, :height 1584}), :page 2}, :content {:text " it is the databases responsibility to handle the query with its best performance"}, :properties {:color "green"}} {:id #uuid "638b0d0c-a7e6-48de-b01d-edd1f457fb8c", :page 2, :position {:bounding {:x1 0, :y1 253.5, :x2 932.3195495605469, :y2 630.3828125, :width 1224, :height 1584}, :rects ({:x1 0, :y1 253.5, :x2 0, :y2 274.5, :width 1224, :height 1584} {:x1 398.1547546386719, :y1 584.4765625, :x2 932.3195495605469, :y2 606.4765625, :width 1224, :height 1584} {:x1 269.5234375, :y1 608.3828125, :x2 483.04046630859375, :y2 630.3828125, :width 1224, :height 1584}), :page 2}, :content {:text "the increasing use of NoSQL databases poses new challenges for developers and researcher"}, :properties {:color "green"}} {:id #uuid "638b0d1b-c0d0-4b7a-af5b-d9dd34238158", :page 2, :position {:bounding {:x1 584.328125, :y1 680.1171875, :x2 636.3707275390625, :y2 702.1171875, :width 1224, :height 1584}, :rects ({:x1 584.328125, :y1 680.1171875, :x2 636.3707275390625, :y2 702.1171875, :width 1224, :height 1584}), :page 2}, :content {:text "hybrid"}, :properties {:color "green"}} {:id #uuid "638b0d1e-6115-463a-bdd5-ce2458135ffd", :page 2, :position {:bounding {:x1 322.125, :y1 704.03125, :x2 459.7254333496094, :y2 726.03125, :width 1224, :height 1584}, :rects ({:x1 322.125, :y1 704.03125, :x2 459.7254333496094, :y2 726.03125, :width 1224, :height 1584}), :page 2}, :content {:text "hybrid polystores"}, :properties {:color "green"}} {:id #uuid "638b0d2b-5c16-4390-a29f-62eb0c47ada5", :page 2, :position {:bounding {:x1 293.4375, :y1 751.8515625, :x2 867.5587158203125, :y2 773.8515625, :width 1224, :height 1584}, :rects ({:x1 293.4375, :y1 751.8515625, :x2 867.5587158203125, :y2 773.8515625, :width 1224, :height 1584}), :page 2}, :content {:text "We present recent research initiatives aiming to address those challenges"}, :properties {:color "green"}} {:id #uuid "638b0d35-d1fd-4e4d-9484-17c19ce17509", :page 2, :position {:bounding {:x1 0, :y1 381.5, :x2 933.0045776367188, :y2 821.6640625, :width 1224, :height 1584}, :rects ({:x1 0, :y1 381.5, :x2 0, :y2 402.5, :width 1224, :height 1584} {:x1 347.16082763671875, :y1 775.7578125, :x2 933.0045776367188, :y2 797.7578125, :width 1224, :height 1584} {:x1 269.5234375, :y1 799.6640625, :x2 507.7686462402344, :y2 821.6640625, :width 1224, :height 1584}), :page 2}, :content {:text "discuss mining techniques to determine how data is stored and managed in a data-intensive ecosystem"}, :properties {:color "green"}} {:id #uuid "638b0d4e-10df-4dfb-a1d9-c83cd776fcc4", :page 2, :position {:bounding {:x1 0, :y1 429.5, :x2 933.0032348632812, :y2 893.3984375, :width 1224, :height 1584}, :rects ({:x1 0, :y1 429.5, :x2 0, :y2 450.5, :width 1224, :height 1584} {:x1 295.56805419921875, :y1 847.4921875, :x2 933.0032348632812, :y2 869.4921875, :width 1224, :height 1584} {:x1 269.5234375, :y1 871.3984375, :x2 707.2156372070312, :y2 893.3984375, :width 1224, :height 1584}), :page 2}, :content {:text "static analysis and visualization techniques that exploit the mined information on the storage and manipulation of the ecosystem data"}, :properties {:color "green"}} {:id #uuid "638b0d5d-e6f6-4fd3-b0c2-dbfed75a8308", :page 2, :position {:bounding {:x1 299.79046630859375, :y1 895.3125, :x2 896.0216064453125, :y2 917.3125, :width 1224, :height 1584}, :rects ({:x1 299.79046630859375, :y1 895.3125, :x2 896.0216064453125, :y2 917.3125, :width 1224, :height 1584}), :page 2}, :content {:text "findings of empirical studies related to data-intensive software ecosystems"}, :properties {:color "green"}} {:id #uuid "638b1330-a66f-4fbd-8308-3e24b3505f97", :page 2, :position {:bounding {:x1 197.6510467529297, :y1 779.6666870117188, :x2 312.33428955078125, :y2 797.6666870117188, :width 897.6, :height 1161.6000000000001}, :rects ({:x1 197.6510467529297, :y1 779.6666870117188, :x2 312.33428955078125, :y2 797.6666870117188, :width 897.6, :height 1161.6000000000001}), :page 2}, :content {:text "2.1 Introduction"}, :properties {:color "yellow"}} {:id #uuid "638b15bc-87f0-42f4-ae17-7d364cb53bf6", :page 2, :position {:bounding {:x1 0, :y1 557.6667060852051, :x2 684.0811614990234, :y2 925.7813110351562, :width 897.6, :height 1161.6000000000001}, :rects ({:x1 0, :y1 557.6667060852051, :x2 0, :y2 578.3333740234375, :width 897.6, :height 1161.6000000000001} {:x1 0, :y1 573.666707277298, :x2 0, :y2 594.3333733081818, :width 897.6, :height 1161.6000000000001} {:x1 0, :y1 589.6667079925537, :x2 0, :y2 610.3333740234375, :width 897.6, :height 1161.6000000000001} {:x1 606.16162109375, :y1 856.8438110351562, :x2 681.8718872070312, :y2 873.1771240234375, :width 897.6, :height 1161.6000000000001} {:x1 197.6510467529297, :y1 874.3750610351562, :x2 684.0811614990234, :y2 890.7083740234375, :width 897.6, :height 1161.6000000000001} {:x1 197.6510467529297, :y1 891.9114990234375, :x2 684.0805511474609, :y2 908.2448425292969, :width 897.6, :height 1161.6000000000001} {:x1 197.6510467529297, :y1 909.4479675292969, :x2 535.1724090576172, :y2 925.7813110351562, :width 897.6, :height 1161.6000000000001}), :page 2}, :content {:text "A subsystem may rely on one or more databases and their data will likely travel through the entire ecosystem. For maintaining and evolving this interconnected system network, it is fundamental to understand how data is handled all over it."}, :properties {:color "green"}} {:id #uuid "638b15de-480f-489b-85a7-71155777af54", :page 3, :position {:bounding {:x1 0, :y1 13.666664123535156, :x2 684.0827026367188, :y2 193.7239532470703, :width 897.6, :height 1161.6000000000001}, :rects ({:x1 0, :y1 13.666664123535156, :x2 0, :y2 34.33332824707031, :width 897.6, :height 1161.6000000000001} {:x1 0, :y1 29.666664123535156, :x2 0, :y2 50.33332824707031, :width 897.6, :height 1161.6000000000001} {:x1 364.2361755371094, :y1 142.3229217529297, :x2 684.0827026367188, :y2 158.65625, :width 897.6, :height 1161.6000000000001} {:x1 197.6510467529297, :y1 159.8541717529297, :x2 684.0802612304688, :y2 176.18751525878906, :width 897.6, :height 1161.6000000000001} {:x1 197.6510467529297, :y1 177.39064025878906, :x2 652.4750213623047, :y2 193.7239532470703, :width 897.6, :height 1161.6000000000001}), :page 3}, :content {:text "approaches to mining how data is stored and managed in a data-intensive ecosystem. Such knowledge can serve various purposes, e.g., reverse engineering, re-documentation, visualization, or quality assurance approaches"}, :properties {:color "green"}} {:id #uuid "638b15ed-79e5-4ff4-994c-9062c9857199", :page 3, :position {:bounding {:x1 0, :y1 61.66667175292969, :x2 684.0839233398438, :y2 228.7916717529297, :width 897.6, :height 1161.6000000000001}, :rects ({:x1 0, :y1 61.66667175292969, :x2 0, :y2 82.33332824707031, :width 897.6, :height 1161.6000000000001} {:x1 215.1875, :y1 194.9270782470703, :x2 684.0839233398438, :y2 211.2604217529297, :width 897.6, :height 1161.6000000000001} {:x1 197.6510467529297, :y1 212.4583282470703, :x2 395.94818115234375, :y2 228.7916717529297, :width 897.6, :height 1161.6000000000001}), :page 3}, :content {:text "We present two techniques to study the interaction points in the applications where they communicate with databases."}, :properties {:color "yellow"}} {:id #uuid "638b1684-bca4-4a47-8cbf-5097fa38b4b0", :page 3, :position {:bounding {:x1 0, :y1 349.6666774749756, :x2 746.2697143554688, :y2 687.8854370117188, :width 979.1999999999999, :height 1267.1999999999998}, :rects ({:x1 0, :y1 349.6666774749756, :x2 0, :y2 370.3333435058594, :width 979.1999999999999, :height 1267.1999999999998} {:x1 0, :y1 365.6666793823242, :x2 0, :y2 386.3333435058594, :width 979.1999999999999, :height 1267.1999999999998} {:x1 647.3186950683594, :y1 631.9635620117188, :x2 746.2697143554688, :y2 649.6302185058594, :width 979.1999999999999, :height 1267.1999999999998} {:x1 215.6197967529297, :y1 651.0937805175781, :x2 745.4860687255859, :y2 668.7604370117188, :width 979.1999999999999, :height 1267.1999999999998} {:x1 215.6197967529297, :y1 670.2187805175781, :x2 552.5184783935547, :y2 687.8854370117188, :width 979.1999999999999, :height 1267.1999999999998}), :page 3}, :content {:text " object-oriented languages usually follow the DAO (Data Access Object) design pattern to isolate the application/business layer from the persistence laye"}, :properties {:color "green"}} {:id #uuid "638b16b3-d511-4e2b-be5f-c41320b8a352", :page 3, :position {:bounding {:x1 0, :y1 381.6666793823242, :x2 744.6461181640625, :y2 707.0156555175781, :width 979.1999999999999, :height 1267.1999999999998}, :rects ({:x1 0, :y1 381.6666793823242, :x2 0, :y2 402.3333435058594, :width 979.1999999999999, :height 1267.1999999999998} {:x1 577.0523681640625, :y1 670.2187805175781, :x2 744.6461181640625, :y2 687.8854370117188, :width 979.1999999999999, :height 1267.1999999999998} {:x1 215.6197967529297, :y1 689.3489685058594, :x2 742.1390228271484, :y2 707.0156555175781, :width 979.1999999999999, :height 1267.1999999999998}), :page 3}, :content {:text "DAO class implements all the functionality required for fetching, updating, and removing its domain objects"}, :properties {:color "green"}} {:id #uuid "638b16e6-d8ed-4308-952f-b02393b68341", :page 3, :position {:bounding {:x1 0, :y1 525.6666870117188, :x2 746.2699584960938, :y2 879.1719055175781, :width 979.1999999999999, :height 1267.1999999999998}, :rects ({:x1 0, :y1 525.6666870117188, :x2 0, :y2 546.3333435058594, :width 979.1999999999999, :height 1267.1999999999998} {:x1 475.49957275390625, :y1 842.3750305175781, :x2 746.2699584960938, :y2 860.0416870117188, :width 979.1999999999999, :height 1267.1999999999998} {:x1 215.6197967529297, :y1 861.5052185058594, :x2 266.0107116699219, :y2 879.1719055175781, :width 979.1999999999999, :height 1267.1999999999998}), :page 3}, :content {:text "many systems use combinations of multiple libraries"}, :properties {:color "green"}} {:id #uuid "638b1736-ad72-417d-b1db-9ad4f809100b", :page 3, :position {:bounding {:x1 0, :y1 557.6666870117188, :x2 745.7364349365234, :y2 917.4270935058594, :width 979.1999999999999, :height 1267.1999999999998}, :rects ({:x1 0, :y1 557.6666870117188, :x2 0, :y2 578.3333435058594, :width 979.1999999999999, :height 1267.1999999999998} {:x1 219.60081481933594, :y1 880.6302185058594, :x2 745.7364349365234, :y2 898.2969055175781, :width 979.1999999999999, :height 1267.1999999999998} {:x1 215.6197967529297, :y1 899.7604675292969, :x2 742.3520355224609, :y2 917.4270935058594, :width 979.1999999999999, :height 1267.1999999999998}), :page 3}, :content {:text "hese libraries can partly or completely hide the actual SQL queries executed by the programs, generating queries at runtime before sending them to the database server"}, :properties {:color "green"}} {:id #uuid "638b2d33-bf7e-402a-ba39-0bf7f4be6618", :page 3, :position {:bounding {:x1 278.0416717529297, :y1 939.0052490234375, :x2 462.1510009765625, :y2 957.0052490234375, :width 979.1999999999999, :height 1267.1999999999998}, :rects ({:x1 278.0416717529297, :y1 939.0052490234375, :x2 462.1510009765625, :y2 957.0052490234375, :width 979.1999999999999, :height 1267.1999999999998}), :page 3}, :content {:text "Statement.execute(...)"}, :properties {:color "green"}} {:id #uuid "638b2d88-428c-43ec-a7ce-0132bf1b1e7b", :page 4, :position {:bounding {:x1 0, :y1 621.6666793823242, :x2 746.2681694030762, :y2 934.7500305175781, :width 979.1999999999999, :height 1267.1999999999998}, :rects ({:x1 0, :y1 621.6666793823242, :x2 0, :y2 642.3333435058594, :width 979.1999999999999, :height 1267.1999999999998} {:x1 215.61979293823242, :y1 897.9583435058594, :x2 746.2681694030762, :y2 915.6250305175781, :width 979.1999999999999, :height 1267.1999999999998} {:x1 215.61979293823242, :y1 917.0833435058594, :x2 505.18720626831055, :y2 934.7500305175781, :width 979.1999999999999, :height 1267.1999999999998}), :page 4}, :content {:text "identify the source code locations where database queries are executed and extract the set of actual SQL queries for each location"}, :properties {:color "green"}} {:id #uuid "638b2ddc-89ef-4e37-a330-b7c7a140e42d", :page 6, :position {:bounding {:x1 0, :y1 93.66667175292969, :x2 746.2723999023438, :y2 287.7864532470703, :width 979.1999999999999, :height 1267.1999999999998}, :rects ({:x1 0, :y1 93.66667175292969, :x2 0, :y2 114.33332824707031, :width 979.1999999999999, :height 1267.1999999999998} {:x1 487.51593017578125, :y1 250.9947967529297, :x2 746.2723999023438, :y2 268.6614532470703, :width 979.1999999999999, :height 1267.1999999999998} {:x1 215.61979293823242, :y1 270.1197967529297, :x2 576.0775260925293, :y2 287.7864532470703, :width 979.1999999999999, :height 1267.1999999999998}), :page 6}, :content {:text " the extraction process balances precision and the computation overhead of in-depth static analyses"}, :properties {:color "green"}} {:id #uuid "638b2dfa-e45b-4298-9463-455ab228e899", :page 6, :position {:bounding {:x1 0, :y1 205.6666717529297, :x2 746.2718353271484, :y2 421.6875228881836, :width 979.1999999999999, :height 1267.1999999999998}, :rects ({:x1 0, :y1 205.6666717529297, :x2 0, :y2 226.33333587646484, :width 979.1999999999999, :height 1267.1999999999998} {:x1 405.5016326904297, :y1 384.8906478881836, :x2 746.2718353271484, :y2 402.5573043823242, :width 979.1999999999999, :height 1267.1999999999998} {:x1 215.61979293823242, :y1 404.02083587646484, :x2 582.3196830749512, :y2 421.6875228881836, :width 979.1999999999999, :height 1267.1999999999998}), :page 6}, :content {:text "hey analyzed the evolution of the same three systems as they have been developed for more than seven years."}, :properties {:color "green"}} {:id #uuid "638b9415-f580-413a-9136-eb79b085e269", :page 6, :position {:bounding {:x1 161.71354293823242, :y1 631.53125, :x2 426.3181266784668, :y2 644.8645935058594, :width 734.4, :height 950.4}, :rects ({:x1 161.71354293823242, :y1 631.53125, :x2 426.3181266784668, :y2 644.8645935058594, :width 734.4, :height 950.4}), :page 6}, :content {:text "schema-less storage allows faster data structure change"}, :properties {:color "green"}} {:id #uuid "638b9442-98db-427f-8081-61be8efb6379", :page 6, :position {:bounding {:x1 250.6536865234375, :y1 645.875, :x2 288.69395446777344, :y2 659.2083435058594, :width 734.4, :height 950.4}, :rects ({:x1 250.6536865234375, :y1 645.875, :x2 288.69395446777344, :y2 659.2083435058594, :width 734.4, :height 950.4}), :page 6}, :content {:text "multiple"}, :properties {:color "green"}} {:id #uuid "638b9446-8220-44c7-845e-39cb3df65e80", :page 6, :position {:bounding {:x1 291.7525634765625, :y1 645.875, :x2 428.5387878417969, :y2 659.2083435058594, :width 734.4, :height 950.4}, :rects ({:x1 291.7525634765625, :y1 645.875, :x2 428.5387878417969, :y2 659.2083435058594, :width 734.4, :height 950.4}), :page 6}, :content {:text "co-existing implicit schemas"}, :properties {:color "green"}} {:id #uuid "638b947b-7c4e-41ae-9825-4fe8a7f3755c", :page 6, :position {:bounding {:x1 207.05281829833984, :y1 688.9166870117188, :x2 531.447868347168, :y2 702.25, :width 734.4, :height 950.4}, :rects ({:x1 207.05281829833984, :y1 688.9166870117188, :x2 531.447868347168, :y2 702.25, :width 734.4, :height 950.4}), :page 6}, :content {:text "support schema evolution in the schema-less NoSQL environmen"}, :properties {:color "green"}} {:id #uuid "638b9487-a71a-4c69-ae1b-bdfb29990f6e", :page 6, :position {:bounding {:x1 366.7620544433594, :y1 703.2604370117188, :x2 448.55047607421875, :y2 716.59375, :width 734.4, :height 950.4}, :rects ({:x1 366.7620544433594, :y1 703.2604370117188, :x2 448.55047607421875, :y2 716.59375, :width 734.4, :height 950.4}), :page 6}, :content {:text "schema extractio"}, :properties {:color "green"}} {:id #uuid "638b948a-d603-407e-96a1-2151ee52fc2d", :page 6, :position {:bounding {:x1 481.6259765625, :y1 703.2604370117188, :x2 559.8126831054688, :y2 716.59375, :width 734.4, :height 950.4}, :rects ({:x1 481.6259765625, :y1 703.2604370117188, :x2 559.8126831054688, :y2 716.59375, :width 734.4, :height 950.4}), :page 6}, :content {:text "schema genera-"}, :properties {:color "green"}} {:id #uuid "638b948c-af44-49aa-9c3b-f721a86e17a8", :page 6, :position {:bounding {:x1 206.68978118896484, :y1 717.609375, :x2 265.0336151123047, :y2 730.9427185058594, :width 734.4, :height 950.4}, :rects ({:x1 206.68978118896484, :y1 717.609375, :x2 265.0336151123047, :y2 730.9427185058594, :width 734.4, :height 950.4}), :page 6}, :content {:text "optimization"}, :properties {:color "green"}} {:id #uuid "638b9490-bc1b-4652-ab79-50524392a68d", :page 6, :position {:bounding {:x1 0, :y1 573.6666870117188, :x2 559.8126945495605, :y2 730.9427185058594, :width 734.4, :height 950.4}, :rects ({:x1 0, :y1 573.6666870117188, :x2 0, :y2 594.3333435058594, :width 734.4, :height 950.4} {:x1 0, :y1 589.6666870117188, :x2 0, :y2 610.3333435058594, :width 734.4, :height 950.4} {:x1 0, :y1 605.6666870117188, :x2 0, :y2 626.3333435058594, :width 734.4, :height 950.4} {:x1 375.31207275390625, :y1 674.5677185058594, :x2 558.2266235351562, :y2 687.9010620117188, :width 734.4, :height 950.4} {:x1 161.71354293823242, :y1 688.9166870117188, :x2 559.3973197937012, :y2 702.25, :width 734.4, :height 950.4} {:x1 161.71354293823242, :y1 703.2604370117188, :x2 559.8126945495605, :y2 716.59375, :width 734.4, :height 950.4} {:x1 161.71354293823242, :y1 717.609375, :x2 319.127986907959, :y2 730.9427185058594, :width 734.4, :height 950.4}), :page 6}, :content {:text "allenges of NoSQL systems. A popular one is to support schema evolution in the schema-less NoSQL environment [12]. For example, researchers study automatic schema extraction [13], schema generation [14], optimization [15], and s"}, :properties {:color "green"}} {:id #uuid "638b9495-bbf1-4b0d-930f-39c9d06b0fc2", :page 6, :position {:bounding {:x1 0, :y1 621.6666870117188, :x2 559.8111572265625, :y2 745.2864685058594, :width 734.4, :height 950.4}, :rects ({:x1 0, :y1 621.6666870117188, :x2 0, :y2 642.3333435058594, :width 734.4, :height 950.4} {:x1 330.67100524902344, :y1 717.609375, :x2 559.8111572265625, :y2 730.9427185058594, :width 734.4, :height 950.4} {:x1 161.71354293823242, :y1 731.953125, :x2 414.4443016052246, :y2 745.2864685058594, :width 734.4, :height 950.4}), :page 6}, :content {:text "ema suggestions [16]. Behind the scenes, such approaches mainly rely on a static analysis of the sou"}, :properties {:color "green"}} {:id #uuid "638b94d5-5d8e-4865-b49a-6067089ab001", :page 7, :position {:bounding {:x1 0, :y1 61.66667175292969, :x2 559.8147506713867, :y2 186.984375, :width 734.4, :height 950.4}, :rects ({:x1 0, :y1 61.66667175292969, :x2 0, :y2 82.33334350585938, :width 734.4, :height 950.4} {:x1 336.11951446533203, :y1 159.30209350585938, :x2 559.8147506713867, :y2 172.63543701171875, :width 734.4, :height 950.4} {:x1 161.7135467529297, :y1 173.65106201171875, :x2 203.29492950439453, :y2 186.984375, :width 734.4, :height 950.4}), :page 7}, :content {:text "andle the excessively dynamic features of the languag"}, :properties {:color "green"}} {:id #uuid "638b94da-ded3-4edd-af78-29438e30cc67", :page 7, :position {:bounding {:x1 340.31649017333984, :y1 173.65106201171875, :x2 416.9536666870117, :y2 186.984375, :width 734.4, :height 950.4}, :rects ({:x1 340.31649017333984, :y1 173.65106201171875, :x2 416.9536666870117, :y2 186.984375, :width 734.4, :height 950.4}), :page 7}, :content {:text "h type inferenc"}, :properties {:color "green"}} {:id #uuid "638b94dc-6b1f-4193-8727-33c1ba2eb19c", :page 7, :position {:bounding {:x1 452.66609954833984, :y1 173.65106201171875, :x2 490.9948959350586, :y2 186.984375, :width 734.4, :height 950.4}, :rects ({:x1 452.66609954833984, :y1 173.65106201171875, :x2 490.9948959350586, :y2 186.984375, :width 734.4, :height 950.4}), :page 7}, :content {:text "data flo"}, :properties {:color "green"}} {:id #uuid "638b94df-25a6-453c-a6e3-ae10a235b365", :page 7, :position {:bounding {:x1 161.7135467529297, :y1 187.99481201171875, :x2 194.36570739746094, :y2 201.328125, :width 734.4, :height 950.4}, :rects ({:x1 161.7135467529297, :y1 187.99481201171875, :x2 194.36570739746094, :y2 201.328125, :width 734.4, :height 950.4}), :page 7}, :content {:text "graphs"}, :properties {:color "green"}} {:id #uuid "638b94e2-d06e-41c0-987f-329c7ab673eb", :page 7, :position {:bounding {:x1 542.2780990600586, :y1 173.65106201171875, :x2 559.8136520385742, :y2 186.984375, :width 734.4, :height 950.4}, :rects ({:x1 542.2780990600586, :y1 173.65106201171875, :x2 559.8136520385742, :y2 186.984375, :width 734.4, :height 950.4}), :page 7}, :content {:text "call"}, :properties {:color "green"}} {:id #uuid "638bda2b-cba2-444d-98b1-e16e31547976", :page 7, :position {:bounding {:x1 319.3631896972656, :y1 396.5989580154419, :x2 451.1071472167969, :y2 409.26564502716064, :width 816, :height 1056}, :rects ({:x1 319.3631896972656, :y1 396.5989580154419, :x2 451.1071472167969, :y2 409.26564502716064, :width 816, :height 1056}), :page 7}, :content {:text "r e q u i r e ( \" mongoose \" ) ;"}, :properties {:color "green"}} {:id #uuid "638bda69-4d7e-4f8b-b4c1-807b48288907", :page 7, :position {:bounding {:x1 0, :y1 173.3333330154419, :x2 622.0004730224609, :y2 335.24480152130127, :width 816, :height 1056}, :rects ({:x1 0, :y1 173.3333330154419, :x2 0, :y2 194.66667652130127, :width 816, :height 1056} {:x1 0, :y1 189.3333330154419, :x2 0, :y2 210.66667652130127, :width 816, :height 1056} {:x1 564.0208435058594, :y1 288.69792652130127, :x2 621.8892822265625, :y2 303.69792652130127, :width 816, :height 1056} {:x1 179.6822967529297, :y1 304.63542652130127, :x2 622.0004730224609, :y2 319.3020830154419, :width 816, :height 1056} {:x1 179.6822967529297, :y1 320.57814502716064, :x2 254.40530395507812, :y2 335.24480152130127, :width 816, :height 1056}), :page 7}, :content {:text " Schema is mapped to a MongoDB collection and defines the structure of the documents within that collection"}, :properties {:color "green"}} {:id #uuid "638dea05-b734-42cf-ba67-af7596d43005", :page 8, :position {:bounding {:x1 0, :y1 397.3333740234375, :x2 777.361083984375, :y2 772.9271240234375, :width 1019.9999999999999, :height 1319.9999999999998}, :rects ({:x1 0, :y1 397.3333740234375, :x2 0, :y2 418.66668701171875, :width 1019.9999999999999, :height 1319.9999999999998} {:x1 542.5794677734375, :y1 734.3333740234375, :x2 777.361083984375, :y2 753, :width 1019.9999999999999, :height 1319.9999999999998} {:x1 224.60418701171875, :y1 754.2604370117188, :x2 366.3830261230469, :y2 772.9271240234375, :width 1019.9999999999999, :height 1319.9999999999998}), :page 8}, :content {:text "CodeQL,3 a code analysis engine developed by GitHu"}, :properties {:color "green"}} {:id #uuid "638deb12-a99e-444b-bd76-6aeaad13b8a3", :page 9, :position {:bounding {:x1 0, :y1 1149.3333740234375, :x2 995.1376647949219, :y2 1203.3958740234375, :width 1305.6, :height 1689.6}, :rects ({:x1 0, :y1 1149.3333740234375, :x2 0, :y2 1170.666748046875, :width 1305.6, :height 1689.6} {:x1 287.4895935058594, :y1 1153.8958740234375, :x2 995.1376647949219, :y2 1177.8958740234375, :width 1305.6, :height 1689.6} {:x1 287.4895935058594, :y1 1179.3958740234375, :x2 467.23175048828125, :y2 1203.3958740234375, :width 1305.6, :height 1689.6}), :page 9}, :content {:text "We presented two static analysis approaches to study how applications communicate with their databases."}, :properties {:color "green"}} {:id #uuid "638deb40-0b44-435b-b4a8-0bbf70907f8c", :page 10, :position {:bounding {:x1 0, :y1 109.3333740234375, :x2 994.4269714355469, :y2 409, :width 1305.6, :height 1689.6}, :rects ({:x1 0, :y1 109.3333740234375, :x2 0, :y2 130.66668701171875, :width 1305.6, :height 1689.6} {:x1 287.4895935058594, :y1 359.4896240234375, :x2 994.4269714355469, :y2 383.4896240234375, :width 1305.6, :height 1689.6} {:x1 287.4895935058594, :y1 385, :x2 645.9773559570312, :y2 409, :width 1305.6, :height 1689.6}), :page 10}, :content {:text "Brink et al. present a quality assessment approach for SQL statements embedded in PL/SQL, COBOL, and Visual Basic code ["}, :properties {:color "green"}} {:id #uuid "638debc6-2a34-4970-9460-d8a86f1689be", :page 11, :position {:bounding {:x1 0, :y1 77.33334350585938, :x2 995.1400146484375, :y2 428.125, :width 1305.6, :height 1689.6}, :rects ({:x1 0, :y1 77.33334350585938, :x2 0, :y2 98.66668701171875, :width 1305.6, :height 1689.6} {:x1 749.7474975585938, :y1 378.625, :x2 995.1400146484375, :y2 402.625, :width 1305.6, :height 1689.6} {:x1 287.4895935058594, :y1 404.125, :x2 501.7294921875, :y2 428.125, :width 1305.6, :height 1689.6}), :page 11}, :content {:text "we show static analysis approaches in Section 3.2"}, :properties {:color "green"}} {:id #uuid "638debd4-f758-4129-82c6-4905b8dd4727", :page 11, :position {:bounding {:x1 318.6643981933594, :y1 455.13543701171875, :x2 981.2872009277344, :y2 479.13543701171875, :width 1305.6, :height 1689.6}, :rects ({:x1 318.6643981933594, :y1 455.13543701171875, :x2 981.2872009277344, :y2 479.13543701171875, :width 1305.6, :height 1689.6}), :page 11}, :content {:text "dependencies between the database and different components of an ecosystem"}, :properties {:color "green"}} {:id #uuid "638dec2a-f439-463a-b203-d9877383dd22", :page 11, :position {:bounding {:x1 0, :y1 205.33334350585938, :x2 995.1385192871094, :y2 757.5625, :width 1305.6, :height 1689.6}, :rects ({:x1 0, :y1 205.33334350585938, :x2 0, :y2 226.66668701171875, :width 1305.6, :height 1689.6} {:x1 0, :y1 221.33334350585938, :x2 0, :y2 242.66668701171875, :width 1305.6, :height 1689.6} {:x1 791.5431518554688, :y1 682.5521240234375, :x2 995.1359252929688, :y2 706.5521240234375, :width 1305.6, :height 1689.6} {:x1 287.4895935058594, :y1 708.0521240234375, :x2 995.1385192871094, :y2 732.0521240234375, :width 1305.6, :height 1689.6} {:x1 287.4895935058594, :y1 733.5625, :x2 794.3756713867188, :y2 757.5625, :width 1305.6, :height 1689.6}), :page 11}, :content {:text "because the application code and the database depend on each other, they evolve in parallel [8], resulting in increased complexity of the database communication code."}, :properties {:color "green"}} {:id #uuid "638dec44-23ff-4e7a-a9fd-5ae1049bdf3e", :page 11, :position {:bounding {:x1 448.9375, :y1 861.0833740234375, :x2 556.8175048828125, :y2 885.0833740234375, :width 1305.6, :height 1689.6}, :rects ({:x1 448.9375, :y1 861.0833740234375, :x2 556.8175048828125, :y2 885.0833740234375, :width 1305.6, :height 1689.6}), :page 11}, :content {:text "SQLInspect"}, :properties {:color "green"}} {:id #uuid "638dec55-f0e7-461c-80d9-3bcd782aa073", :page 11, :position {:bounding {:x1 0, :y1 317.33333587646484, :x2 993.0038452148438, :y2 987.09375, :width 1305.6, :height 1689.6}, :rects ({:x1 0, :y1 317.33333587646484, :x2 0, :y2 338.6666717529297, :width 1305.6, :height 1689.6} {:x1 604.2528076171875, :y1 937.59375, :x2 993.0038452148438, :y2 961.59375, :width 1305.6, :height 1689.6} {:x1 287.4895935058594, :y1 963.09375, :x2 717.4263916015625, :y2 987.09375, :width 1305.6, :height 1689.6}), :page 11}, :content {:text " A lightweight analyzer can pinpoint a mistake already in the IDE before the developer commits it"}, :properties {:color "green"}} {:id #uuid "638ded2c-cf12-4c80-8695-5f46a662aa3f", :page 13, :position {:bounding {:x1 0, :y1 109.3333740234375, :x2 994.7906494140625, :y2 409, :width 1305.6, :height 1689.6}, :rects ({:x1 0, :y1 109.3333740234375, :x2 0, :y2 130.66668701171875, :width 1305.6, :height 1689.6} {:x1 766.2211303710938, :y1 359.4896240234375, :x2 994.7906494140625, :y2 383.4896240234375, :width 1305.6, :height 1689.6} {:x1 287.4895935058594, :y1 385, :x2 873.3412780761719, :y2 409, :width 1305.6, :height 1689.6}), :page 13}, :content {:text "estimate the effort required in the past for adapting the applications to database schema changes"}, :properties {:color "green"}} {:id #uuid "638ded56-fbf9-4c36-9b42-a7ff0d7dd641", :page 13, :position {:bounding {:x1 292.7059326171875, :y1 461.510498046875, :x2 667.9588623046875, :y2 485.510498046875, :width 1305.6, :height 1689.6}, :rects ({:x1 292.7059326171875, :y1 461.510498046875, :x2 667.9588623046875, :y2 485.510498046875, :width 1305.6, :height 1689.6}), :page 13}, :content {:text "hey rely on the previous analysis approach w"}, :properties {:color "green"}} {:id #uuid "638dee0b-a1bc-4832-8919-305b72fc7be2", :page 13, :position {:bounding {:x1 517.865478515625, :y1 1148, :x2 778.1014404296875, :y2 1172, :width 1305.6, :height 1689.6}, :rects ({:x1 517.865478515625, :y1 1148, :x2 778.1014404296875, :y2 1172, :width 1305.6, :height 1689.6}), :page 13}, :content {:text "information visualization field,"}, :properties {:color "green"}} {:id #uuid "638dee14-e0fe-4830-8c50-bde4f328bb66", :page 13, :position {:bounding {:x1 0, :y1 557.3333740234375, :x2 994.0451049804688, :y2 1248.5208740234375, :width 1305.6, :height 1689.6}, :rects ({:x1 0, :y1 557.3333740234375, :x2 0, :y2 578.6666870117188, :width 1305.6, :height 1689.6} {:x1 886.0712890625, :y1 1199.010498046875, :x2 994.0451049804688, :y2 1223.010498046875, :width 1305.6, :height 1689.6} {:x1 287.4895935058594, :y1 1224.5208740234375, :x2 770.32421875, :y2 1248.5208740234375, :width 1305.6, :height 1689.6}), :page 13}, :content {:text "visualization is the preferred way of getting acquainted with large data"}, :properties {:color "green"}} {:id #uuid "638df06f-0f30-4dcf-a5d9-7d7dc8a91631", :page 16, :position {:bounding {:x1 0, :y1 93.33332824707031, :x2 995.1340026855469, :y2 485.51043701171875, :width 1305.6, :height 1689.6}, :rects ({:x1 0, :y1 93.33332824707031, :x2 0, :y2 114.66666412353516, :width 1305.6, :height 1689.6} {:x1 0, :y1 109.33332824707031, :x2 0, :y2 130.66666412353516, :width 1305.6, :height 1689.6} {:x1 287.4895935058594, :y1 410.5, :x2 995.1327819824219, :y2 434.5, :width 1305.6, :height 1689.6} {:x1 287.4895935058594, :y1 436.0104217529297, :x2 995.1340026855469, :y2 460.0104217529297, :width 1305.6, :height 1689.6} {:x1 287.4895935058594, :y1 461.5104217529297, :x2 387.6553955078125, :y2 485.51043701171875, :width 1305.6, :height 1689.6}), :page 16}, :content {:text "As we could see in the previous example, the city metaphor for visualizing software systems in 3D has been widely explored and has led to various implementations and approaches"}, :properties {:color "green"}} {:id #uuid "638e28f3-eba8-4572-887b-30397eab9037", :page 16, :position {:bounding {:x1 0, :y1 349.3333435058594, :x2 746.0113296508789, :y2 651.2239837646484, :width 979.1999999999999, :height 1267.1999999999998}, :rects ({:x1 0, :y1 349.3333435058594, :x2 0, :y2 370.6666717529297, :width 979.1999999999999, :height 1267.1999999999998} {:x1 289.3508987426758, :y1 614.4322967529297, :x2 746.0113296508789, :y2 632.0989837646484, :width 979.1999999999999, :height 1267.1999999999998} {:x1 215.6197967529297, :y1 633.5572967529297, :x2 723.4296112060547, :y2 651.2239837646484, :width 979.1999999999999, :height 1267.1999999999998}), :page 16}, :content {:text "he resulting view seamlessly integrates data sources into a software city and enables a comprehensive understanding of a systems source code and data."}, :properties {:color "green"}} {:id #uuid "638e2990-90d3-4a2a-89ed-c3a5459f611d", :page 17, :position {:bounding {:x1 0, :y1 445.3333740234375, :x2 808.0844116210938, :y2 991.1510925292969, :width 1060.8, :height 1372.8}, :rects ({:x1 0, :y1 445.3333740234375, :x2 0, :y2 466.6667022705078, :width 1060.8, :height 1372.8} {:x1 437.5172119140625, :y1 951.0938110351562, :x2 808.0844116210938, :y2 970.4271240234375, :width 1060.8, :height 1372.8} {:x1 233.58854293823242, :y1 971.8177490234375, :x2 692.6761283874512, :y2 991.1510925292969, :width 1060.8, :height 1372.8}), :page 17}, :content {:text "static analysis approach to identify SQL code smells in the database communication layer of data-intensive application"}, :properties {:color "green"}} {:id #uuid "638e2a05-1563-4813-b432-011e4ce0af27", :page 18, :position {:bounding {:x1 0, :y1 653.3333740234375, :x2 808.64794921875, :y2 1036.9948425292969, :width 1060.8, :height 1372.8}, :rects ({:x1 0, :y1 653.3333740234375, :x2 0, :y2 674.6667098999023, :width 1060.8, :height 1372.8} {:x1 773.58935546875, :y1 996.9427490234375, :x2 808.64794921875, :y2 1016.2760925292969, :width 1060.8, :height 1372.8} {:x1 233.58854293823242, :y1 1017.6614990234375, :x2 516.911693572998, :y2 1036.9948425292969, :width 1060.8, :height 1372.8}), :page 18}, :content {:text " a visualization approach of database behavio"}, :properties {:color "green"}} {:id #uuid "638e2a2c-065e-468f-87ad-a0625628cc60", :page 19, :position {:bounding {:x1 233.58854293823242, :y1 165.22396087646484, :x2 410.60375595092773, :y2 188.22396087646484, :width 1060.8, :height 1372.8}, :rects ({:x1 233.58854293823242, :y1 165.22396087646484, :x2 410.60375595092773, :y2 188.22396087646484, :width 1060.8, :height 1372.8}), :page 19}, :content {:text "4 Empirical Studies"}, :properties {:color "green"}} {:id #uuid "638e2bce-6955-4294-817a-ffa094cf5ac2", :page 19, :position {:bounding {:x1 260.2035140991211, :y1 637.7552185058594, :x2 340.9497375488281, :y2 657.0885620117188, :width 1060.8, :height 1372.8}, :rects ({:x1 260.2035140991211, :y1 637.7552185058594, :x2 340.9497375488281, :y2 657.0885620117188, :width 1060.8, :height 1372.8}), :page 19}, :content {:text "Libraries.io"}, :properties {:color "green"}} {:id #uuid "638e2be7-2942-4fdf-9ecc-57eabdafa4f9", :page 19, :position {:bounding {:x1 459.0325927734375, :y1 699.9219055175781, :x2 555.0391540527344, :y2 719.2552185058594, :width 1060.8, :height 1372.8}, :rects ({:x1 459.0325927734375, :y1 699.9219055175781, :x2 555.0391540527344, :y2 719.2552185058594, :width 1060.8, :height 1372.8}), :page 19}, :content {:text "40,609 projec"}, :properties {:color "green"}} {:id #uuid "638e2bf8-24be-4141-b33c-cb22f44e2f32", :page 19, :position {:bounding {:x1 0, :y1 397.3333435058594, :x2 808.107666015625, :y2 843.5885620117188, :width 1060.8, :height 1372.8}, :rects ({:x1 0, :y1 397.3333435058594, :x2 0, :y2 418.6666774749756, :width 1060.8, :height 1372.8} {:x1 339.3140869140625, :y1 803.5312805175781, :x2 808.107666015625, :y2 822.8645935058594, :width 1060.8, :height 1372.8} {:x1 233.58854293823242, :y1 824.2552185058594, :x2 440.9769706726074, :y2 843.5885620117188, :width 1060.8, :height 1372.8}), :page 19}, :content {:text "However, the popularity of SQL technologies has recently decreased concerning NoSQL datastores"}, :properties {:color "green"}} {:id #uuid "638e2c1a-13a4-4716-b1c8-695a7fb5d1b9", :page 19, :position {:bounding {:x1 0, :y1 541.3333435058594, :x2 808.6810722351074, :y2 1030.0885925292969, :width 1060.8, :height 1372.8}, :rects ({:x1 0, :y1 541.3333435058594, :x2 0, :y2 562.6666793823242, :width 1060.8, :height 1372.8} {:x1 233.58854293823242, :y1 990.0312805175781, :x2 808.6810722351074, :y2 1009.3645935058594, :width 1060.8, :height 1372.8} {:x1 233.58854293823242, :y1 1010.7552185058594, :x2 575.3819694519043, :y2 1030.0885925292969, :width 1060.8, :height 1372.8}), :page 19}, :content {:text "more than 56% of systems relying on a key-value database also use another technology, typically relational or document-oriented. "}, :properties {:color "green"}} {:id #uuid "638e2c48-923f-447a-846f-f588420318c0", :page 21, :position {:bounding {:x1 276.41656494140625, :y1 166.6354217529297, :x2 696.8595581054688, :y2 187.96876525878906, :width 1060.8, :height 1372.8}, :rects ({:x1 276.41656494140625, :y1 166.6354217529297, :x2 696.8595581054688, :y2 187.96876525878906, :width 1060.8, :height 1372.8}), :page 21}, :content {:text "revalence, Impact and Evolution of SQL Bad Smells"}, :properties {:color "green"}} {:id #uuid "638e2d52-582f-4984-9dcb-cf3b8a10ee4c", :page 22, :position {:bounding {:x1 0, :y1 13.333335876464844, :x2 808.6813507080078, :y2 208.10418701171875, :width 1060.8, :height 1372.8}, :rects ({:x1 0, :y1 13.333335876464844, :x2 0, :y2 34.66667175292969, :width 1060.8, :height 1372.8} {:x1 278.5025177001953, :y1 168.046875, :x2 808.6813507080078, :y2 187.38021850585938, :width 1060.8, :height 1372.8} {:x1 233.58855438232422, :y1 188.77084350585938, :x2 430.9782943725586, :y2 208.10418701171875, :width 1060.8, :height 1372.8}), :page 22}, :content {:text "they further examined the 72 projects for which they could execute the tests and collect coverage reports."}, :properties {:color "green"}} {:id #uuid "638e2d62-a0be-4741-b382-c2951241651e", :page 22, :position {:bounding {:x1 377.82814025878906, :y1 266.16341400146484, :x2 386.82814025878906, :y2 392.65625, :width 1060.8, :height 1372.8}, :rects ({:x1 377.82814025878906, :y1 266.16341400146484, :x2 386.82814025878906, :y2 392.65625, :width 1060.8, :height 1372.8}), :page 22}, :content {:text "Non DB methods test coverage rate"}, :properties {:color "green"}} {:id #uuid "638e2d67-1393-456a-b7cb-01e57f8fdc71", :page 22, :position {:bounding {:x1 464.5000305175781, :y1 423.18231201171875, :x2 601.2028198242188, :y2 432.18231201171875, :width 1060.8, :height 1372.8}, :rects ({:x1 464.5000305175781, :y1 423.18231201171875, :x2 601.2028198242188, :y2 432.18231201171875, :width 1060.8, :height 1372.8}), :page 22}, :content {:text "DB access methods test coverage rate"}, :properties {:color "green"}} {:id #uuid "638e2dce-2fe3-4753-a5a3-560b5b2d0a82", :page 22, :position {:bounding {:x1 0, :y1 205.33334350585938, :x2 870.8548126220703, :y2 625.7239990234375, :width 1142.3999999999999, :height 1478.3999999999999}, :rects ({:x1 0, :y1 205.33334350585938, :x2 0, :y2 226.6666717529297, :width 1142.3999999999999, :height 1478.3999999999999} {:x1 0, :y1 221.33334350585938, :x2 0, :y2 242.6666717529297, :width 1142.3999999999999, :height 1478.3999999999999} {:x1 368.77870178222656, :y1 560.0885620117188, :x2 870.7525329589844, :y2 581.0885620117188, :width 1142.3999999999999, :height 1478.3999999999999} {:x1 251.55730438232422, :y1 582.40625, :x2 870.8548126220703, :y2 603.40625, :width 1142.3999999999999, :height 1478.3999999999999} {:x1 251.55730438232422, :y1 604.7239990234375, :x2 431.1871871948242, :y2 625.7239990234375, :width 1142.3999999999999, :height 1478.3999999999999}), :page 22}, :content {:text "The results indicate that the database manipulation code was poorly tested: 46% of the projects did not test half of their DB methods, and 33% did not test DB communication."}, :properties {:color "green"}} {:id #uuid "638e2e04-e975-4500-9586-d3d57e619fdf", :page 26, :position {:bounding {:x1 0, :y1 253.3333282470703, :x2 870.8694381713867, :y2 648.40625, :width 1142.3999999999999, :height 1478.3999999999999}, :rects ({:x1 0, :y1 253.3333282470703, :x2 0, :y2 274.6666564941406, :width 1142.3999999999999, :height 1478.3999999999999} {:x1 251.55730438232422, :y1 605.0885467529297, :x2 870.8694381713867, :y2 626.0885467529297, :width 1142.3999999999999, :height 1478.3999999999999} {:x1 251.55730438232422, :y1 627.40625, :x2 616.4125289916992, :y2 648.40625, :width 1142.3999999999999, :height 1478.3999999999999}), :page 26}, :content {:text "This chapter summarized the recent research efforts devoted to mining, analyzing and evolving data-intensive software ecosystems."}, :properties {:color "green"}} {:id #uuid "638e2e18-c878-4bc6-82f0-be9f1b040b0b", :page 26, :position {:bounding {:x1 0, :y1 285.3333282470703, :x2 870.8639831542969, :y2 693.0364685058594, :width 1142.3999999999999, :height 1478.3999999999999}, :rects ({:x1 0, :y1 285.3333282470703, :x2 0, :y2 306.6666564941406, :width 1142.3999999999999, :height 1478.3999999999999} {:x1 422.02288818359375, :y1 649.7239685058594, :x2 870.8639831542969, :y2 670.7239685058594, :width 1142.3999999999999, :height 1478.3999999999999} {:x1 251.55730438232422, :y1 672.0364685058594, :x2 347.72096252441406, :y2 693.0364685058594, :width 1142.3999999999999, :height 1478.3999999999999}), :page 26}, :content {:text " (1) both the databases and the programs are essential ecosystem artifacts"}, :properties {:color "green"}} {:id #uuid "638e2e21-7b89-4ec0-99c7-98df121af432", :page 26, :position {:bounding {:x1 0, :y1 301.3333282470703, :x2 870.8720855712891, :y2 737.671875, :width 1142.3999999999999, :height 1478.3999999999999}, :rects ({:x1 0, :y1 301.3333282470703, :x2 0, :y2 322.66666412353516, :width 1142.3999999999999, :height 1478.3999999999999} {:x1 0, :y1 317.3333282470703, :x2 0, :y2 338.66666412353516, :width 1142.3999999999999, :height 1478.3999999999999} {:x1 357.52772521972656, :y1 672.0364685058594, :x2 870.8720855712891, :y2 693.0364685058594, :width 1142.3999999999999, :height 1478.3999999999999} {:x1 251.55730438232422, :y1 694.3541717529297, :x2 870.869499206543, :y2 715.3541870117188, :width 1142.3999999999999, :height 1478.3999999999999} {:x1 251.55730438232422, :y1 716.671875, :x2 426.85897064208984, :y2 737.671875, :width 1142.3999999999999, :height 1478.3999999999999}), :page 26}, :content {:text "(2) mining, analyzing and visualizing what the programs are doing on the data may considerably help in understanding the system in general, and the databases in particular,"}, :properties {:color "green"}} {:id #uuid "638e2e29-dfa7-459c-8a5c-98829e51c895", :page 26, :position {:bounding {:x1 0, :y1 333.3333282470703, :x2 870.8728942871094, :y2 759.984375, :width 1142.3999999999999, :height 1478.3999999999999}, :rects ({:x1 0, :y1 333.3333282470703, :x2 0, :y2 354.66666412353516, :width 1142.3999999999999, :height 1478.3999999999999} {:x1 431.58990478515625, :y1 716.671875, :x2 870.8728942871094, :y2 737.671875, :width 1142.3999999999999, :height 1478.3999999999999} {:x1 251.55730438232422, :y1 738.984375, :x2 600.4845199584961, :y2 759.984375, :width 1142.3999999999999, :height 1478.3999999999999}), :page 26}, :content {:text "(3) database interactions may suffer from quality problems and technical debt and should be better tested"}, :properties {:color "green"}} {:id #uuid "638e2e2f-89f1-4fa9-935a-0655e8616e76", :page 26, :position {:bounding {:x1 0, :y1 349.3333282470703, :x2 870.8720397949219, :y2 782.3020935058594, :width 1142.3999999999999, :height 1478.3999999999999}, :rects ({:x1 0, :y1 349.3333282470703, :x2 0, :y2 370.66666412353516, :width 1142.3999999999999, :height 1478.3999999999999} {:x1 633.5809631347656, :y1 738.984375, :x2 870.8720397949219, :y2 759.984375, :width 1142.3999999999999, :height 1478.3999999999999} {:x1 251.55730438232422, :y1 761.3020935058594, :x2 815.8022384643555, :y2 782.3020935058594, :width 1142.3999999999999, :height 1478.3999999999999}), :page 26}, :content {:text " (4) software evolution methods should devote more attention to the program-database co-evolution problem"}, :properties {:color "green"}} {:id #uuid "638e2f92-7895-4037-8c73-41e7df23f499", :page 23, :position {:bounding {:x1 197.6510467529297, :y1 816.1979370117188, :x2 299.73409271240234, :y2 834.1979370117188, :width 897.6, :height 1161.6000000000001}, :rects ({:x1 197.6510467529297, :y1 816.1979370117188, :x2 299.73409271240234, :y2 834.1979370117188, :width 897.6, :height 1161.6000000000001}), :page 23}, :content {:text "4.6 Reflections"}, :properties {:color "red"}}], :extra {:page 2}}