{:highlights [{:id #uuid "64427237-7abc-4d23-a382-68406092707b", :page 1, :position {:bounding {:x1 0, :y1 548.4791870117188, :x2 709.4266967773438, :y2 2050, :width 1468.8, :height 1900.8}, :rects ({:x1 628.8060302734375, :y1 548.4791870117188, :x2 709.4266967773438, :y2 572.4791870117188, :width 1468.8, :height 1900.8} {:x1 129.11459350585938, :y1 574.78125, :x2 706.3542175292969, :y2 598.78125, :width 1468.8, :height 1900.8} {:x1 129.11459350585938, :y1 601.0729370117188, :x2 702.8818054199219, :y2 625.0729370117188, :width 1468.8, :height 1900.8} {:x1 0, :y1 2014, :x2 0, :y2 2034, :width 1468.8, :height 1900.8} {:x1 0, :y1 2030, :x2 0, :y2 2050, :width 1468.8, :height 1900.8}), :page 1}, :content {:text "DevOpsoriented domain-specific modeling notations will typically only cover a subset of all the capabilities in these configuration formats"}, :properties {:color "purple"}} {:id #uuid "6442724f-b3be-4d37-a58b-89edfca76769", :page 1, :position {:bounding {:x1 0, :y1 785.1875, :x2 705.7979431152344, :y2 2178, :width 1468.8, :height 1900.8}, :rects ({:x1 461.1382751464844, :y1 785.1875, :x2 705.4345703125, :y2 809.1875, :width 1468.8, :height 1900.8} {:x1 129.11459350585938, :y1 811.4896240234375, :x2 705.7979431152344, :y2 835.4896240234375, :width 1468.8, :height 1900.8} {:x1 0, :y1 2158, :x2 0, :y2 2178, :width 1468.8, :height 1900.8}), :page 1}, :content {:text "These requirements imply a need for a bidirectional transformation (“bx”) which is asymmetric"}, :properties {:color "purple"}} {:id #uuid "64427261-5ced-46c1-8fc9-3625d87259b8", :page 1, :position {:bounding {:x1 157.23150634765625, :y1 916.6979370117188, :x2 262.1585693359375, :y2 940.6979370117188, :width 1468.8, :height 1900.8}, :rects ({:x1 157.23150634765625, :y1 916.6979370117188, :x2 262.1585693359375, :y2 940.6979370117188, :width 1468.8, :height 1900.8}), :page 1}, :content {:text "asymmetric "}, :properties {:color "purple"}} {:id #uuid "64427264-e4f2-413e-9d5b-84424bc77acd", :page 1, :position {:bounding {:x1 300.0311279296875, :y1 916.6979370117188, :x2 374.7016296386719, :y2 940.6979370117188, :width 1468.8, :height 1900.8}, :rects ({:x1 300.0311279296875, :y1 916.6979370117188, :x2 374.7016296386719, :y2 940.6979370117188, :width 1468.8, :height 1900.8}), :page 1}, :content {:text "directed "}, :properties {:color "purple"}} {:id #uuid "64427447-bafd-4aeb-8397-0a53ac38e58d", :page 1, :position {:bounding {:x1 518.6462097167969, :y1 1438.7813110351562, :x2 705.8040771484375, :y2 1462.7813110351562, :width 1468.8, :height 1900.8}, :rects ({:x1 518.6462097167969, :y1 1438.7813110351562, :x2 705.8040771484375, :y2 1462.7813110351562, :width 1468.8, :height 1900.8}), :page 1}, :content {:text "automate continuous"}, :properties {:color "green"}} {:id #uuid "6442744e-da5b-4317-ad3d-ba90039627f3", :page 1, :position {:bounding {:x1 0, :y1 436.69793701171875, :x2 1343.39501953125, :y2 2706.0001831054688, :width 1468.8, :height 1900.8}, :rects ({:x1 763.0833740234375, :y1 436.69793701171875, :x2 1343.39501953125, :y2 460.69793701171875, :width 1468.8, :height 1900.8} {:x1 763.0833740234375, :y1 462.98960876464844, :x2 921.1617431640625, :y2 486.98960876464844, :width 1468.8, :height 1900.8} {:x1 0, :y1 2686.0001831054688, :x2 0, :y2 2706.0001831054688, :width 1468.8, :height 1900.8}), :page 1}, :content {:text "delivery of new software versions, while guaranteeing their correctness and reliability"}, :properties {:color "green"}} {:id #uuid "6442747c-1480-4def-88b8-1494fc8202ec", :page 5, :position {:bounding {:x1 0, :y1 390.97918701171875, :x2 931.7142333984375, :y2 2498.0000610351562, :width 1019.9999999999999, :height 1319.9999999999998}, :rects ({:x1 875.7777709960938, :y1 390.97918701171875, :x2 931.7142333984375, :y2 404.3125, :width 1019.9999999999999, :height 1319.9999999999998} {:x1 551.90625, :y1 404.26043701171875, :x2 802.8031616210938, :y2 417.59375, :width 1019.9999999999999, :height 1319.9999999999998} {:x1 0, :y1 2478.0000610351562, :x2 0, :y2 2498.0000610351562, :width 1019.9999999999999, :height 1319.9999999999998}), :page 5}, :content {:text "DevOpsML: towards modeling DevOps processes and platforms"}, :properties {:color "green"}} {:id #uuid "64427791-7afa-40c5-8911-766b9e6bde71", :page 1, :position {:bounding {:x1 893.6547088623047, :y1 673.40625, :x2 1143.7217254638672, :y2 697.40625, :width 1468.8, :height 1900.8}, :rects ({:x1 893.6547088623047, :y1 673.40625, :x2 1143.7217254638672, :y2 697.40625, :width 1468.8, :height 1900.8}), :page 1}, :content {:text "infrastructure-as-code tools "}, :properties {:color "green"}} {:id #uuid "6442779b-eaf0-4431-a733-4e8bf45d0fbf", :page 1, :position {:bounding {:x1 857.2738494873047, :y1 699.7083740234375, :x2 1122.0702362060547, :y2 723.7083740234375, :width 1468.8, :height 1900.8}, :rects ({:x1 857.2738494873047, :y1 699.7083740234375, :x2 1122.0702362060547, :y2 723.7083740234375, :width 1468.8, :height 1900.8}), :page 1}, :content {:text "container orchestration tools "}, :properties {:color "green"}} {:id #uuid "644277b8-90e5-4152-a242-505a3bd89fa7", :page 1, :position {:bounding {:x1 0, :y1 857.5104370117188, :x2 1343.0868377685547, :y2 2978, :width 1468.8, :height 1900.8}, :rects ({:x1 787.0000457763672, :y1 857.5104370117188, :x2 1339.7670135498047, :y2 881.5104370117188, :width 1468.8, :height 1900.8} {:x1 763.0833587646484, :y1 883.8125, :x2 1339.7686004638672, :y2 907.8125, :width 1468.8, :height 1900.8} {:x1 763.0833587646484, :y1 910.1146240234375, :x2 1343.0868377685547, :y2 934.1146240234375, :width 1468.8, :height 1900.8} {:x1 0, :y1 2942, :x2 0, :y2 2962, :width 1468.8, :height 1900.8} {:x1 0, :y1 2958, :x2 0, :y2 2978, :width 1468.8, :height 1900.8}), :page 1}, :content {:text "It stands to reason that DevOps model-driven approaches would often aim to generate at least some of these configuration files from the high-level descriptions of the intended service compositions."}, :properties {:color "purple"}} {:id #uuid "644277d2-3431-452b-b66c-b69e15ed4f6f", :page 1, :position {:bounding {:x1 0, :y1 1067.9271240234375, :x2 1343.3959197998047, :y2 3106, :width 1468.8, :height 1900.8}, :rects ({:x1 1152.2217254638672, :y1 1067.9271240234375, :x2 1343.3959197998047, :y2 1091.9271240234375, :width 1468.8, :height 1900.8} {:x1 763.0833587646484, :y1 1094.2291870117188, :x2 1339.7732391357422, :y2 1118.2291870117188, :width 1468.8, :height 1900.8} {:x1 763.0833587646484, :y1 1120.53125, :x2 925.0674285888672, :y2 1144.53125, :width 1468.8, :height 1900.8} {:x1 0, :y1 3070, :x2 0, :y2 3090, :width 1468.8, :height 1900.8} {:x1 0, :y1 3086, :x2 0, :y2 3106, :width 1468.8, :height 1900.8}), :page 1}, :content {:text "customise the generated configuration files to cover the aspects not described by the high-level model. "}, :properties {:color "green"}} {:id #uuid "64427805-3a2e-4e17-a578-fc0990d1c7df", :page 1, :position {:bounding {:x1 0, :y1 1173.135498046875, :x2 1343.0118865966797, :y2 3154, :width 1468.8, :height 1900.8}, :rects ({:x1 1082.3241424560547, :y1 1173.135498046875, :x2 1339.7799530029297, :y2 1197.135498046875, :width 1468.8, :height 1900.8} {:x1 763.0833587646484, :y1 1199.4375, :x2 1343.0118865966797, :y2 1223.4375, :width 1468.8, :height 1900.8} {:x1 0, :y1 3134, :x2 0, :y2 3154, :width 1468.8, :height 1900.8}), :page 1}, :content {:text "reorganising the system in a more approachable notation with domain-specific validation rules."}, :properties {:color "green"}} {:id #uuid "64427865-96f7-4130-94f0-db40666b1357", :page 2, :position {:bounding {:x1 0, :y1 1034.2708740234375, :x2 709.4314880371094, :y2 2082, :width 1468.8, :height 1900.8}, :rects ({:x1 398.1728210449219, :y1 1034.2708740234375, :x2 707.8172607421875, :y2 1058.2708740234375, :width 1468.8, :height 1900.8} {:x1 129.11459350585938, :y1 1060.5625, :x2 704.6601257324219, :y2 1084.5625, :width 1468.8, :height 1900.8} {:x1 129.11459350585938, :y1 1086.8646240234375, :x2 709.4314880371094, :y2 1110.8646240234375, :width 1468.8, :height 1900.8} {:x1 129.11459350585938, :y1 1113.166748046875, :x2 479.5918884277344, :y2 1137.166748046875, :width 1468.8, :height 1900.8} {:x1 0, :y1 2030, :x2 0, :y2 2050, :width 1468.8, :height 1900.8} {:x1 0, :y1 2046, :x2 0, :y2 2066, :width 1468.8, :height 1900.8} {:x1 0, :y1 2062, :x2 0, :y2 2082, :width 1468.8, :height 1900.8}), :page 2}, :content {:text "The proposed case is still directed, but it is asymmetrical (the Docker Compose YAML file contains strictly more information than the high-level model, so information loss only happens in one direction)."}, :properties {:color "green"}} {:id #uuid "6442788a-72e5-458e-a773-e3f77b313ed4", :page 2, :position {:bounding {:x1 190.95098876953125, :y1 1323.5833740234375, :x2 672.4343872070312, :y2 1347.5833740234375, :width 1468.8, :height 1900.8}, :rects ({:x1 190.95098876953125, :y1 1323.5833740234375, :x2 672.4343872070312, :y2 1347.5833740234375, :width 1468.8, :height 1900.8}), :page 2}, :content {:text "this could prove to be an interesting application niche."}, :properties {:color "green"}}], :extra {:page 1}}