Ignacio Pérez-Messina

Eduardo Graells-Garrido

María Jesús Lobo

Christophe Hurter
email: christophe.hurter@enac.fr

Modalflow: Cross-Origin Flow Data Visualization for Urban Mobility

Keywords: information visualization, flow data, urban mobility, mobile phone data, pervasive data

Pervasive data have become a key source of information for mobility and transportation analyses. However, as a secondary source, it has a different methodological origin than travel survey data, usually relying on unsupervised algorithms, and so it requires to be assessed as a dataset. This assessment is challenging, because, in general, there is not a benchmark dataset or a ground truth scenario available, as travel surveys only represent a partial view of the phenomenon and suffer from their own biases. For this critical task, which involves urban planners and data scientists, we study the design space of the visualization of cross-origin, multivariate flow datasets. For this purpose, we introduce the Modalflow system, which incorporates and adapts different visualization techniques in a notebook-like setting, presenting novel visual encodings and interactions for flows with modal partition into scatterplots, flow maps, origin-destination matrices, and ternary plots. Using this system, we extract general insights on visual analysis of pervasive and survey data for urban mobility and assess a mobile phone network dataset for one metropolitan area.

Introduction

Urban planning has been around since ancient times, but only at the beginning of the 20th century was it developed into an academic field, where it had its boom in the need of accommodating old and new cities to the needs of the industry. Thus, urban planning, along with transportation planning, are modern disciplines based on models developed in pre-digital industrial times. Today, urban planning is turning towards sustainable mobility, a new paradigm that changes how the relation of the city to the environment and people is understood. In this scenario, urbanism is faced with a major challenge: incorporating new data sources and data-driven methodologies into its framework. We aim at easing this transition by using visualization in order to give domain experts a contrasting view of traditional and new data sources against each other, also filling a gap between domains that has already been noted by the visualization community [START_REF] Andrienko | Visual analytics of mobility and transportation: State of the art and further research directions[END_REF].

Owing to its complexity and massiveness, no data source alone can account for the whole phenomenon of mobility within a city. Different ways of measuring and approximating this phenomenon have been developed in order to understand and shape the city. Travel surveys have been a key tool, relying on a small, but carefully orchestrated, sample, access to census data and statistical craftsmanship. They are expensive and time consuming to produce [START_REF] Zegras | Assessing the representativeness of a smartphone-based household travel survey in Dar es Salaam, Tanzania[END_REF] and they show heavy under-reporting [START_REF] Wolf | Trip rate analysis in GPS-enhanced personal travel surveys[END_REF]. This traditional source is contrasted with the information that can be extracted from available and emerging pervasive data sources, such as mobile phone [START_REF] Blondel | A survey of results on mobile phone datasets analysis[END_REF], Wi-Fi [START_REF] Nitti | iABACUS: A Wi-Fi-Based Automatic Bus Passenger Counting System[END_REF], and social network data [START_REF] Ruiz Sánchez | Social networks, big data and transport planning[END_REF]. This type of data are inexpensive and could potentially be used for real-time analysis, but, as a secondary data source for urban planning, it has its different methodological origin, which makes a comparison between datasets a challenge for both domain experts and data scientists. For example, as network data does not rely on self-report, trips, and mode of transport need to be inferred from waypoint traces, which is not an easy task, because of their relatively inaccurate temporal and spatial sampling, which introduces an uncertainty that was not present in this form in survey data (or at least, it does not have the same origin). We call datasets stemming from different methodologies "cross-origin".

Especially at the pilot stage, where a new dataset is being evaluated for its possible adoption and use, urbanists need to qualitatively assess the new data source. From what we have collected in interviews with experts, there are no protocols for this kind of assessment in use yet. Because official information on mobility is scarce, the travel survey is the main benchmark to which compare a dataset, which suffers from its own structural biases, and it is updated in the lapse of years.

In this unprecedented scenario, we developed Modalflow as a system for visualizing and comparing cross-origin datasets of urban mobility. Its name is derived from the two concepts that define its data workflow: flows and modality (as in modal split). Using juxtaposed and linked views in a notebook-style layout, it incorporates and adapts different visualization techniques for flow data including scatterplots, origin-destination matrices, edge bundling, flow maps (Figure 1), and ternary plots. Modalflow allows users to look into the phenomena of transport and, more importantly, to compare different sources on these phenomena, identifying each source by its methodological features. The main contributions of our work are:

•

A visualization system with coordinated views derived from a set of considerations about the nature of pervasive and traditional data sources,

•

The distribution-aware selection tooltip: an enhancement for selection techniques.

•

The sinusoidal flow encoding: a new encoding for bidirectional and multivariate flows as edges of a graph.

•

A validation of our approach with a case study using real-world cross-origin datasets. We tested Modalflow while using two datasets from the Santiago metropolitan area: the last travel survey held in the city and a mobile phone network-inferred dataset, drawing insights on their differential qualities, strengths and flaws. We hope this system will foster critical evaluation of new, non-traditional data sources and their adoption by domain experts, and also improve the communication with the field of data scientists, which produces and makes use of these datasets.

Related Work

Mobility visualization has been mostly related to the visualization subfields of Infovis and Visual Analytics [START_REF] Chen | A survey of traffic data visualization[END_REF]. Here, we review the most common visualization techniques that are used for depicting flows in geospatial contexts and classify them according to the kind of data they are meant to be used with.

Origin-Destination Matrix. Origin-Destination (OD) matrices are a common representation used in transportation planning for low granularity data (such as municipal aggregation level). From a network visualization perspective, the OD matrix is a weighted adjacency matrix, where a continuous color scale is used in order to denote the flow magnitude between each node pair. Developments in this type of visualization have focused on improving readability and spatial mapping: MapTrix [START_REF] Yang | Many-to-many geographically-embedded flow visualisation: An evaluation[END_REF] enhances the traditional OD Matrix with interactive features and a linked geographical representation; OD Map [START_REF] Wood | Visualisation of origins, destinations and flows with OD maps[END_REF] reorganizes the cells of the OD matrix to improve spatial pattern recognition; and, the OD Map can be combined with a tile map [START_REF] Mcneill | Generating tile maps[END_REF] to perform in more realistic scenarios. In spite of these improvements, OD matrices have not been used for visualizing networks of more than around a hundred nodes.

Graph. Graph-based flow visualization literature is greatly centered around reducing the hairball problem, i.e., visual clutter. We can divide them into those that operate some kind of simplification over the graph and then render the result with a linear technique [START_REF] Landesberger | Mobilitygraphs: Visual analysis of mass mobility dynamics via spatio-temporal graphs and clustering[END_REF][START_REF] Zhu | Mapping large spatial flow data with hierarchical clustering[END_REF][START_REF] Guo | Origin-destination flow data smoothing and mapping[END_REF], and those that make use of non-linear or iterative techniques for path calculation and rendering [START_REF] Graser | Untangling origin-destination flows in geographic information systems[END_REF][START_REF] Holten | Force-directed edge bundling for graph visualization[END_REF]. The techniques that were developed for this purpose rely on heavily distorting flow paths and edge appearance in order to improve readability. However, these developments have generally taken place without taking into account the particular characteristics of datasets and how they might behave on different data scenarios (e.g., do small changes in the data correspond to small changes in the result?) as it has not been studied how distribution can affect their performance at specific tasks (e.g., are scale-invariant as readable as random networks using this particular technique)?

Edge Bundling. Edge Bundling methods aim to visually simplify and aggregate trajectories, trail paths, or graph in dense visualizations. Recent surveys [START_REF] Lhuillier | Edge bundling of huge graphs by the Fast Fourier Transform[END_REF][START_REF] Zhou | Edge bundling in information visualization[END_REF] provide a global overview of existing technique assets and usages. The first bundling algorithms were based on hierarchical data structure [START_REF] Holten | Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data[END_REF]. Recent techniques capture the statistical properties of the bundling [START_REF] Hurter | Functional Decomposition for Bundled Simplification of Trail Sets[END_REF] and enable combining multiple aggregation techniques [START_REF] Wang | Interactive Structure-aware Blending of Diverse Edge Bundling Visualizations[END_REF].

Glyphs. Glyphs allow for encoding abstract flow information, confining it to a limited icon-sized space, and benefit from being visually independent from one another [START_REF] Borgo | Glyph-Based Visualization: Foundations, Design Guidelines, Techniques and Applications[END_REF]. Following this line of research, Ma et al. [START_REF] Ma | Mobility viewer: An Eulerian approach for studying urban crowd flow[END_REF] used the sunburst diagram as a model for a glyph, which encodes destination direction. In Andrienko et al. [START_REF] Andrienko | Revealing patterns and trends of mass mobility through spatial and temporal abstraction of origin-destination movement data[END_REF], radial diagrams are used to encode flow magnitude by direction and distance range. Pérez-Messina and Graells-Garrido expanded this idea to include mode of transportation [START_REF] Pérez-Messina | Visualizing Transportation Flows with Mode Split Using Glyphs[END_REF].

Other Visual Techniques. Other kinds of transport mode-specific techniques have been developed for scenarios with constrained mobility, e.g., for metro use [START_REF] Zeng | Visualizing interchange patterns in massive movement data[END_REF][START_REF] Zeng | Visualizing Waypoints-Constrained Origin-Destination Patterns for Massive Transportation Data[END_REF]. We are explicitly excluding heatmaps, which have been extensively used, as they are not able to retain network data.

Quantitative Data Source Comparison. There are studies reporting the quantitative differences between cross-origin sources: travel surveys and mobile phone data [START_REF] Wesolowski | Quantifying travel behavior for infectious disease research: A comparison of data from surveys and mobile phones[END_REF]/GPS data [START_REF] Stopher | In-depth comparison of global positioning system and diary records[END_REF][START_REF] Safi | An empirical comparison of four technology-mediated travel survey methods[END_REF]. Additionally, survey inaccuracies from misreporting [START_REF] Son | Quantifying Key Errors in Household Travel Surveys: Comparison of Random-Digit-Dial Survey and Address-Based Survey[END_REF] suggest the need for a mixed approach [START_REF] Wesolowski | Quantifying travel behavior for infectious disease research: A comparison of data from surveys and mobile phones[END_REF][START_REF] Safi | An empirical comparison of four technology-mediated travel survey methods[END_REF].

This entails that, although flows, as data, may look like and be treated as the same matter when extracted from travel surveys or mobile phone network data, they are not. They are shaped by assumptions and hegemonic views that frame their methodological workflows [START_REF] Kwan | Feminist visualization: Re-envisioning GIS as a method in feminist geographic research[END_REF][START_REF] D'ignazio | Feminist data visualization[END_REF]. This is a point that has been made by literature from critical visualization and digital humanities [START_REF] Dörk | Critical InfoVis: Exploring the politics of visualization[END_REF][START_REF] Hall | Critical visualization: A case for rethinking how we visualize risk and security[END_REF] and can be readily conceptualized by the data/capta paradigmatic opposition (data assumes information as "given", capta as "captured" and, thus, affected by our observation method) [START_REF] Drucker | Humanities approaches to graphical display[END_REF].

Design Requirements

Traditional data sources in urban planning, such as travel surveys, are grounded in self-reporting and explicit models, whereas non-traditional data sources, such as pervasive data, are grounded on unobtrusive capture and machine learning algorithms. This different epistemological status between data sources is the main concern of our design space exploration.

In our target domain, an established analytical workflow for evaluating and validating external data sources does not exist, thus visualization as a methodological approach plays a novel and central role in the solution of this problem. Here, we describe the domain problem, the considerations to approach this particular problem and the design requirements we extracted from them.

Domain Problem

In the target domain of application, there is not a standard methodology that can embrace current pervasive data sources, as these are mostly secondary sources, i.e., data that were not originally captured for the purpose of transport analysis. We consider pervasive data to be mode-unspecific and stemming from networks, such as social networks, Wi-Fi networks, and mobile phone networks. Primary sources, on the other hand, are datasets whose raw form and original purpose are inherently related to mobility (and not only as the consequence of an additional processing, as in XDR-inferred trips). There are other data sources that also enable mode-specific analysis, such as automatic passenger counting mechanisms in public transport [START_REF] Nitti | iABACUS: A Wi-Fi-Based Automatic Bus Passenger Counting System[END_REF], which, although highly granular, lose, to a certain extent, the origin and destination aspect of flows.

In the urban planning framework, there are three methodological approaches for generating primary data: qualitative, quantitative, and tracking. Qualitative methodology relies on focus groups and discourse analysis, whereas quantitative methodology relies on representative sampling, self report, and statistics. Tracking, on the other hand, relies on GPS devices that unobtrusively record an individual's path with a higher level of detail than any of the aforementioned and at a (relatively) lower cost.

Although pervasive data may seem to be more related to GPS data and tracking methodologies its coarser accuracy makes it more useful for quantitative analysis, such as reproducing travel surveys [START_REF] Alexander | Origin-destination trips by purpose and time of day inferred from mobile phone data[END_REF] or evaluating urban interventions of any kind [START_REF] Graells-Garrido | The effect of Pokémon Go on the pulse of the city: A natural experiment[END_REF]. The difficulties of working with network data are not just technical, as it is a massive data source, but also theoretical: there is an original methodological gap that separates mobile phone network data from survey data, which may, at least partially, explain its resistance to enter the traditional workflow. Recent developments show that public institutions are starting to make use of mobile phone data to understand mobility. In Spain, it is being used as a pre-census study [START_REF]Estudio EM-1 de Movilidad a Partir de la Telefonía Móvil[END_REF] and, in Chile, it is being used to complement a travel survey in a small city in a pilot study [START_REF] Graells-Garrido | Adoption-Driven Data Science for Transportation Planning: Methodology, Case Study, and Lessons Learned[END_REF]. This implies a rising need on tools that are aimed at experts to assess mobile phone data.

Considerations on Cross-Origin Dataset Comparison

Pervasive data as a secondary data source has its own qualities that sets it apart from primary source data. Here, we try to name and account for the aspects that make difficult the comparison between these sources, in the case of mobility flow data.

Trip closure. The definition of one trip does not share its origin in self-reported and predicted sources. For quantitative methodologies, what defines a trip as a unit is not part of any of these dimensions but a discursive element: the motivation of the sampled person (e.g., go to work, buy food, go for a walk, return home, etc.). Because tracking does not deal with persons but with devices, a trip is not a given entity, but it must be inferred from the data itself, usually from finding stay patterns that then become origin-destination features.

Representativeness. Surveys count with a relatively limited sample size, so sampling must be carefully orchestrated in order to achieve representativeness, the basic condition that guarantees its usefulness as a tool for urban planning. The sample is based on the most recent census or projection of the census, which is the sampling universe, and then each point amplified based on expansion factors determined by statisticians. Because representativeness can only be achieved up to a certain level of granularity, observed patterns that are beyond that level should be considered to be an artifact (i.e., a value introduced artificially by the measuring tool). Mobile phone network data, although with a much higher level of sampling, may not count with this desirable quality.

Sampling density. The number of samples can vary by orders of magnitude between surveys and network data. Can sampling differences impair comparison? This enormous distribution difference can have an important effect when visualizing at finer granularity.

Dynamic behaviour. The temporal dimension is not equally accounted for by different sources. Travel surveys have an abstract temporality: a model is produced for a 'general day', which is then extended into laboral day and weekend behaviour for summer/winter seasons. It does not capture dynamic behaviour, as network data are able to.

Modality. From a transportation analysis perspective, modality cannot be overlooked. However, it is a hard dimension for pervasive data, as it usually has to be inferred. Probably due to this, visualization literature is usually focused on single mode (or absence of modality) analysis tasks.

Requirements

When considering the above synthesis, we extract design requirements that support a comparison of cross-origin flows given these aspects of conflict.

(R1) Comparing flows as multidimensional entities. Users should be able to visually compare different datasets in an origin-independent way, i.e., having the recorded trips aggregated into the common language of flows as multidimensional points, where different capture methods are comparable without hiding their inherent differences.

(R2) Comparing flows at different aggregation levels and ranges. Users should be able to filter and select flows according to spatial dimensions, origins and destinations, quantitative dimensions, time period, and visualize flows that are aggregated at different granularities.

(R3) Comparing mode split distributions. The system should allow comparing mode of transportation distribution in geographical space and along other dimensions.

(R4) Comparing flows in time. Users should be able to compare the effect of time (period of the day) on the mobility behaviour shown by different datasets and answer questions, such as "do different datasets show the same peaks during the day?" or "are daily modal cycles equally accounted for"?

Materials and Methods

In this section, we describe our test datasets and the visualization techniques developed for the system. An online demo is also available [40].

Data

Our cross-origin datasets comprise trips in Santiago, the capital of Chile, a city with almost 8 million inhabitants in 35 administrative units denoted municipalities within its urban area, further subdivided into 735 traffic analysis zones.

We define a flow as a unique origin-destination pair within a certain period (a partition of time), which has a magnitude (number of trips observed or predicted from origin to destination for the corresponding period) and a modal partition (the proportion of the magnitude corresponding to each mode of transport). Understood as a network where nodes are georeferenced objects, a flow is a weighted directed link with a modal partition uniquely defined by an origin-destination-period tuple. We also calculate a distance feature for each flow, as the linear geographical distance between origin and destination.

Travel Survey. The main source of travel demand and characteristics information for transportation purposes is the Santiago Travel Survey (known as "Encuesta Origen-Destino" in Spanish, abbreviated EOD), which is held every ten years by the Chilean Transport Planning Secretary (SECTRA). In its last version from 2012, after surveying 100K inhabitants, the results showed that, in a typical working day, the transportation system has over 18 million trips, where walking is the most used mode of transport (34%), followed by public transport (26%), and private cars (26%) [START_REF] Universidad | Observatorio Social[END_REF]. Arguably, most of the analysis of the travel survey focuses on the origin and destinations of trips, as well as their attributes, such as mode of transportation and travel distance. Given the sample size of the survey, only flows between municipalities are considered to be representative. Note that the traffic analysis zones of the city are defined by this survey.

Mobile Phone Network Data. As input data for Modalflow, here we work with a dataset of inferred commuting trips from mobile phone network data. Specifically, we use Extended Data Detail Records (XDR), which is a type of passive data that are used by telecommunication companies for billing Internet usage from mobile phones [START_REF] Blondel | A survey of results on mobile phone datasets analysis[END_REF]. The dataset used in this paper was provided by the telecommunications company Telefónica Movistar, which had a market share of 30% in April 2017. The dataset contains trips during April 2017 for approximately 600K devices, which were extracted while using a previously published method [START_REF] Graells-Garrido | Inferring modes of transportation using mobile phone data[END_REF]. The trip distribution inferred from this dataset has been validated with experts and through comparison with a travel survey, which implied that the market share covered by the dataset is enough to measure mobility patterns in Santiago [START_REF] Graells-Garrido | Adoption-Driven Data Science for Transportation Planning: Methodology, Case Study, and Lessons Learned[END_REF].

These trips include a prediction of the several available modes in the Santiago transportation network, including bus, subway (metro), cars, and pedestrian trips. The prediction of mode of transportation for flows was made while using a variation of the model published in Ref. [START_REF] Graells-Garrido | Inferring modes of transportation using mobile phone data[END_REF], aiming at solving a limitation of the original method, namely, working with morning commuting trips for individual devices. We have updated the model to estimate modal partitions in flows between areas of the city at several periods of the day. The updated model consists of solving the following optimization problem: min

A,B W -(L A) × B 2 F ,
where:

• W is a waypoint matrix, where every column represents a directed flow between two areas of the city, and every rows represents a tower. Thus, each cell w ij contains the number of times that tower i appears in the trajectories in flow j.

•

A and B are positive low-rank matrices that express the associations between k latent dimensions and each tower (A) and flow (B).

•

L is a k-rank labeling matrix where l ij is 1 if tower i is associated to mode of transportation j, 0 otherwise. This labeling enables aligning latent dimensions with mode of transportation usage in a semi-supervised way, as some towers are strictly associated to specific modes of transportation due to urban infrastructure surrounding it (see Ref. [START_REF] Graells-Garrido | Inferring modes of transportation using mobile phone data[END_REF] for details).

•

is the Hadamard product operator.

The optimization problem can be solved while using multiplicative updates. After solving the problem, the matrices A and B contain the association between towers and flows with the k latent dimensions. These associations are interpreted as modal partitions per tower and per flow.

In this work, we average the flows per period of the day (morning peak 1, morning peak 2, afternoon valley, afternoon peak, night valley, night) in a single representative day, with a focus on working days.

General Layout

Modalflow works as a set of coordinated visualizations displayed in a notebook-style layout [START_REF] Kery | The story in the notebook: Exploratory data science using a literate programming tool[END_REF], i.e., visualizations are stacked in display and usage order from top to bottom, without constraining the layout to fit into a screen. Gleichner categorizes comparison layout strategies as juxtaposition, superposition, and explicit encoding [START_REF] Gleicher | Visual comparison for information visualization[END_REF]. We chose to use juxtaposition, because using overlay would have resulted in a cluttered view, and explicit encoding would have removed the data context [START_REF] Gleicher | Considerations for visualizing comparison[END_REF]. Each layout element is a view from the system where the different datasets are visualized in juxtaposition to ease comparison across views. Each visualization shows different dimensions of the data and acts in coordination with the rest: when a selection is created in one view of the system, it extends to the other dataset and views of the system. Note that our system is notebook-style and not a notebook, as the user interaction only happens through the coordinated visualizations.

Color Coding

To encode modal partition throughout views (R3), we decided to use a color mapping, as color is the only visual channel that can be applied invariably across representations. Using the constraint that in urbanism the complexity of transportation is categorized into three main modes (public, private and non-motorized) the modal partition could be mapped to a ternary color scale, as shown in Figure 2. Non-motorized is mapped to green, public to cyan, and private to magenta, mixed flows being a proportional combination of these hues. Thus, in the case of a totally balanced mode split, the resulting color will be gray.

To approximate the desired quality of perceptual uniformity, where all of the points have the same luminance value, we used the HSLuv color space [46], which is an HSL model version of the perceptually uniform CIELUV color space. However, as the color coding is naturally defined in a three-channel additive color model as RGB (each channel mapped to a transport mode), we devised the color transformation pipeline RGB → HSL → HSLuv → RGB to transit from a non-perceptually uniform to a (at least more) perceptually uniform RGB color code.

Ternary Plot

Ternary plots show the distribution of points in three dimensions that sum to a constant, as is the case of modal partition for flows. We encode the flows as circles and optionally encode magnitude in its area. Positioning OD flows on the ternary plot can show particular biases of the surveying or inference mechanism toward certain modes, especially when used in combination with range selections in other dimensions. Additionally, when outgoing flows are aggregated by municipality, it becomes direct to compare mean modal behaviour and observe its change over the day.

Scatterplot

For a view over the abstract (non-spatial) distribution of data, we customized a scatterplot schema over flow magnitude and distance dimensions (R2). Every OD flow is represented as a clear circle of fixed or flow magnitude-weighted radius in the two-dimensional space. Selections can be made by dragging over the plot, thus selecting a distance-flow magnitude pair range, i.e., a rectangular area. Many different selections can be maintained at the same time, which can overlap or be embedded into each other. Statistics are calculated over a new selection (number of trips, flows, total distance, and portion of the whole) and annotated on the side.

Selection ranges are also "draggable" while using right and left arrow keys. This interaction moves the selection range over the distance dimension, allowing to see the user to focus on another visualization and observe how distance correlates with the flow distribution on another view of the system.

While testing the scatterplot, we discovered that normal range selection proved to be not effective for comparing different datasets, as range selections in one dataset would probably lead to an empty selection in the other one due to the very different distributions of data. Thus, to comply with R1, we developed a distribution-aware selection tool.

As the distribution of the examined datasets proved to be different over this space, selections that were made over one dataset usually ended in an empty selection over the other one, making a the comparative approach ineffective. For this reason, we developed a distribution-aware selection tool that translates a selection over one distribution into a more alike selection over another distribution, as shown in Figure 3. It is a linear transformation of the XY space based on data distribution. This technique can be generalized to different datasets; however, a decision has to be made over the formal nature of their distribution to define the linear mapping. In this case, preliminary visualization experiments showed a power law-type distribution; thus, a measure of its powerlaw had to be taken into account (for a normal distribution, for example, its median and variance should determine the outcome mapping).

In order to determine the mapping for the distribution-aware tool, the method is as follows: (1) for each dimension, sort the data according to that dimension and determine the threshold at which the highest ranking elements are equal in value to all the others; and, (2) this threshold is then the value of the scale factor k i for dataset i. The mapping of coordinate x j from coordinate x i is given by For the particular case of mobility flows, we deemed that using this technique only in the magnitude dimension was the most sensible choice, because using distribution-aware selection over distance would change the original meaning of a selection.

x j = (x i /k i )k j .

OD Matrix

We present two optimizations, in terms of our design requirements, for the OD matrix: (1) a disaggregated layout option for showing zonal flows (R1); and, (2) a color encoding for mode split following the color map previously defined (R3).

In the disaggregated layout, each cell of the municipal OD matrix is horizontally divided by the number of zones in the destination municipality and vertically by the number of zones in the origin municipality, thus producing equally sized submatrices. At the cost of not having equally sized cells in the submatrices, this procedure preserves the space filling layout and the visual correspondence between aggregation states.

Flow Map with Sinusoidal Encoding

The flow map is the overlaying of a graph (where nodes are georeferenced points and flows are directed edges) on top of a geographic map. Its function is to reveal geospatial patterns, like sinks and sources of flows. However, as representing the flows for a whole city leads to a lot of clutter and low readability in the direction of flows, we developed a novel encoding for flows that uses a sinusoidal curve rather than an arrow or arc.

Jane Jacobs conceptualized transport as "a set of networks stitching together spaces and places, from which locations naturally emerge" [START_REF] Maheshwari | Transportation flows in future cities[END_REF]. This metaphor of transport weaving the fabric of the city is evocative of a graph-like visualization of flows. Through it, we were inspired to design a new encoding to facilitate distinguishing incoming from outgoing flows, particularly over a geographic layout. Figure 4 schematically shows the two most common encoding alternatives for links in a graph, followed by our novel sinusoidal encoding. This encoding was designed, so that it brings a new symmetry into perspective, where directed links that go through a node get immediately divided into incoming and outgoing in the vertical dimension, which makes for an intuitive way to select them, as shown in Figure 4. The sinusoidal encoding is achieved using a centripetal Catmull-Rom spline for each directed node-pair. The spline is defined by control points P 0 , P 1 , P 2 , and P 3 , where P 1 and P 2 are the position of the start node and end node, correspondingly, and P 0 = (P 1 x, P 1 y + k * distance(P 1 , P 2 )),

P 3 = (P 2 x, P 2 y -k * distance(P 2 , P 1 )),
where k is a constant that ponders the vertical elongation of the curves.

As this new edge drawing technique does not get rid of the clutter, but rather tries to improve its visual organization, two known techniques to improve readability were also implemented in the rendering of flows: edge sorting (edges representing bigger flows are drawn on the front) and transparency (edges that represent less flow magnitude are less opaque).

Edge Bundling

An edge bundled view of the flows is also available [START_REF] Scheepens | Visualization, Selection, and Analysis of Traffic Flows[END_REF]. This encoding for the flow map is used in order to produce visual structures with coarser features to show major trends in the data, particularly for mode-filtered dataset comparison (R1), and so, this is the only encoding where the modal color scale is not used, but a radial color scale here is used to encode bundled flow direction.

Taking into account our data-set specificity, we selected the most appropriate edge bundling technique, which allies computation simplicity and a sufficient visual aggregation results, which balances data distortion and visual accuracy [START_REF] Lhuillier | Edge bundling of huge graphs by the Fast Fourier Transform[END_REF]. For this reason, we applied the KDEEB technique [START_REF] Hurter | Graph Bundling by Kernel Density Estimation[END_REF].

Results

Here, we describe the insights that we, as researchers and users of the system, learned by comparing pervasive data to survey data, in a general sense, and about the particular inference model behind the XDR dataset.

The scatterplot reveals that pervasive data capture shorter and longer flows better than the survey, which has a slightly narrower distance range and is also biased towards mid-distance flows, as shown on Figure 5. This difference can have a rather important effect on the interpretation of data: a steeper, long-tailed (powerlaw) distribution of flows suggests a scale-invariant network phenomenon, while the flatter survey distribution does not, and thus surveys do not capture the full complexity of mobility.

XDR has almost total municipal origin-destination pair sampling coverage for a given period, whereas survey data do not, as shown through the OD Matrix in Figure 6. Additionally, there is an observable pattern of sampling in survey data: short active flows are unintentionally oversampled (showing in the bright diagonal). However, when flows are expanded, these flows are downplayed and overshadowed by expanded public and private mode longer-distance flows.

The geographic view of the flows is quite dissimilar for both datasets, exhibiting rather different features, as can be observed in Figure 7. Pervasive data show notorious change in behaviour during the day: in the morning, peripheral flows are directed towards the center and northeastern part of the city (the small peaks appearing on these nodes); flows in the afternoon show roughly the opposite pattern, but also an emergence of active flows around certain parts of the city; at night, short flows become totally predominant across the city. On the other hand, survey data, apart from density changes, do not exhibit a coherent structure in each period or in time, as its most prominent features are chaotic midand long-distance flows. The high density and large flows inside neighbors suggests that network-based analysis (e.g., community analysis) could be possibleusing XDR data, while, with the travel survey, a network structure does not appear so clearly, as shown by the OD matrix in Figure 8. Also, the fact that pervasive data resembles more a powerlaw mean that it could be a much better fitted by a model, e.g., the gravitational model [START_REF] Beiró | Shopping mall attraction and social mixing at a city scale[END_REF], and so it would be a better input choice for a trained model, and for network-based analysis. Regarding modal distribution, the results are less general and more specific to the particular mode of transportation inference model. This is due to the fact that the visualization reveals many features that point to an over-fitted model, which is explained by the extended context in which the model was applied (and not prepared for).

A quick observation of bundled flows on Figure 9 a particularly harsh contrast between private mode distributions, with flows in the northeastern corner of the city heavily charged towards private car usage and almost none in the rest of the city. Public transport is known to be less predominant in the northeastern area of the city, which leads to the hypothesis that the current inference model may be drifting toward extreme border conditions that are based on a small spatial trend. By looking through different periods, as in Figure 7 we observe that this spatial partitioning of the city is stable, but it has a dynamic component, as sometimes the private mode cluster changes its geographical reach (private is displaced to the southeast at Night Valley, but then goes back to its most common post).

The system is also able to reveal a strange pattern in the active flows: although they look evenly sparsed geographically, a suspicious trend appears in the relation of the distance-modal split distribution of active trips. This analytical task is achieved by dragging a narrow selection range horizontally in the scatterplot, while looking at the ternary plot. By using this interaction technique, the modal progression of the partial flow distribution as distance grows can be observed, which reveals that inferred active trips dominate the very short distance up to the limit of around 2 km, where they abruptly recede, but at all distances keeping at least one flow that is purely attributed to active mobility (a certain artifact of the model). By doing the same experiment, a heavier correlation of inferred private trips with distance is observed (compared to the survey data).

Finally, by looking at the compared modal distribution of flows that are aggregated by origin municipality in the ternary plot (see Figure 10), an overall trend towards a bigger proportion of active and public mode is observed in the XDR data. This result can be attributed to a bias in the model, but also to the fact that pervasive data are more capable of detecting these trips than the traditional survey.

Discussion

We showed Modalflow to domain experts and potential users working in Santiago through an asynchronous qualitative evaluation process lasting a month. Each week, a new view of the system would be uploaded to the demo page and iterated according to modifications that were suggested by the freely commenting participants in the online discussion room. In some occasions, the participants would even mock-up new solution and present it to the group of their own will. In total, eight people (four visualization/urban studies students and four urban planners from the private sector) voluntarily participated throughout the whole process. After this, a one-session workshop was arranged with governmental transport authorities, where five experts were shown the final system. Here, we report on the results.

Early feedback was incorporated into the design, like the use of black background, only three modes of transportation and the size of the visual elements, which can be switched between fixed and variable (dependant on encoded flow magnitude). The sinusoidal encoding of flows was deemed to be beautiful, but a bit confusing and using the more familiar arc encoding was suggested. We explain this comment based on familiarity but we are aware that a formal evaluation is needed. Interestingly, the sinusoidal encoding was more readable when dealing with XDR, rather than survey data, arguably due to the artificial modal clustering computed for the former.

Admittedly, the domain experts were deterred at a later stage by the modal distribution of the mobile phone network data, which, being still undergoing research, did not meet their expectations. It seemed hard for them to abstract the visualization tool from the data being visualized, expecting to see results rather than a tool to evaluate results by themselves. Conversely, the group of experts from the private sector received the tool with much more interest and excitement. Even though both domain expert profiles work on similar problems, experts working in the public sector seemed to be more focused on strict results that could be readily applied, whereas experts in the private sector were more open to new methodologies and how these visualizations "create" a new reality for the data that can be used to strongly communicate and innovate. This difference has implications in how we define and apply methodologies to enable collaborative work between transportation and data science, using visualization as intermediary between disciplines [START_REF] Graells-Garrido | Adoption-Driven Data Science for Transportation Planning: Methodology, Case Study, and Lessons Learned[END_REF].

The distribution-aware selector tool in the scatterplot was received as an interesting feature and its implications could be further developed, attending to the idea of an "equivalence principle" between flows of different datasets. Such an endeavour could be an interesting area of research for modelling and mixed data analysis. This also poses new questions regarding the layout of the system. Modalflow was designed with linked, juxtaposed visualizations, where the selector tool provided a way to link data semantics. However, there exist other ways of composing visualizations in layouts, such as superimposition, overloading and nesting [START_REF] Javed | Exploring the design space of composite visualization[END_REF], which would imply a different implementation of the selection, while maintaining the data-semantic approach. These layouts will be studied in future work. Because of the notebook layout, they are not exclusive-for instance, the OD matrices may be juxtaposed, whereas the flow maps may be partitioned or nested, enabling an advanced comparison and interaction with cross-origin datasets.

Other shortcomings of the design that were noted by experts were that the color encoding used is not color-blind safe (making a three-component color scale to be inclusive is a challenge by itself, which we propose as a future line of research) and that defining a three-fold categorical variable as basis for the system seems like a limited choice, as some urban planners may want to disaggregate the modes of transportation into four, or the usage of another categorical variable may need more categories (for instance, income quintiles). From a technical standpoint, our choice presents a trade-off between an overview and a detailed view of the datasets. The use of a notebook-style layout allows to dive into a deeper level of details through adding more visualizations. These improvements will be addressed in future versions of the system. Still, the use of three categories seems to be enough to already tackle on-going problems in mobility, for instance, there are several gaps in mobility that can be explored with two or three variables [START_REF] Graells-Garrido | Measuring Spatial Subdivisions in Urban Mobility with Mobile Phone Data[END_REF]; thus, Modalflow would allow for urban planners to uncover not only biases in methodological workflows, but also gaps in behaviour that are commonly hidden in traditional analyses and visualizations [START_REF] Kwan | Feminist visualization: Re-envisioning GIS as a method in feminist geographic research[END_REF][START_REF] D'ignazio | Feminist data visualization[END_REF].

Conclusions

In this paper, we have presented the Modalflow system for visualizing modal flow data in mobility, with an emphasis comparing cross-origin flow data sources. The research contribution of our paper consists of two main components: a set of considerations regarding the nature of pervasive and traditional data sources, which we then used to determine the requirements for our system design, and a set novel visualization techniques to fulfill those requirements, including a distribution-aware selection tooltip and a bidirectional flow encoding. We validated our approach with a case study while using real-world cross-origin datasets: XDR-inferred and traditional survey data of the city of Santiago.

Our aim was to create a tool that could help domain experts in urbanism to assess new datasets from non-traditional sources and hopefully incorporate them into their workflow, at the same time fostering interaction between data science and urbanism, as we saw this as an important gap to be filled by the visualization community. Having presented the tool to different groups of experts, the experts emphasised the importance of the problem addressed in this research and recognized Modalflow as a notable tool to communicate the model results across disciplines.

While there is room for improving and extending each of the techniques presented in this paper (geographical flow map with sinusoidal encoding/edge bundling, distance/magnitude scatterplot, disaggregated origin-destination matrix, and ternary modal plot), we other important aspects of future work: (1) exploring the temporal dimension: some visualizations developed point to new ways of looking at multivariate flows that could be further researched (e.g., in the ternary plot, when flows are aggregated by origin municipality, it gives a condensed image of the modal partition of the city; enhancing it with the curves that were described by each municipality in the modal space through time, an interesting research about daily mobility behaviour of cities could be conducted). ( 2) Finding ways to visualize and compare accessibility (i.e., the analytical dimension of flows in urbanism that considers the time that it takes to make a certain trip and other physical constraints) between datasets, a dimension that was not considered in our current work, which adds a new layer of complexity to the data. (3) Using the system to extend our study to different sources of pervasive data, thus developing a better understanding of their differential biases, and to leverage human critical thinking in the task of finding ways of making cross-origin datasets complement each other. We think that this paper stresses the importance of visualization as a critical tool from a human-in-the-loop perspective, particularly in complex scenarios, where no benchmark or ground truth is available, such as urban mobility.

Figure 1 .

 1 Figure 1. XDR (a) and survey (b) flows at night time.

Figure 2 .

 2 Figure 2. Ternary color scale construction schema (a) and resulting colormap (b) used to encode mode split across views.

Figure 3 .

 3 Figure 3. Selection over different datasets in the scatterplot is facilitated by our distribution-aware selection tool. A range selected in one scatterplot is not merely transposed to a, which would probably end in an empty selection, but linearly transformed into b, according to the grid automatically defined based on the distribution of each dataset.

Figure 4 .

 4 Figure 4. Sinusoidal encoding design space and working schema. Left: Bidirectional flow encoding alternatives: (a) straight; (b) arched; and, (c) sinusoidal, which projects a third dimension into perspective, differentiating in-and outflows in the vertical dimension. Right: schematic view of incoming and outgoing flows at a certain node. Flow direction becomes quickly distinguishable thanks to the sinusoidal flow encoding.

Figure 5 .

 5 Figure 5. Pervasive (a) and survey (b) flows at night time. Each circle is an origin-destination pair, its area the flow magnitude, with color coded mode split. Highlighted are the different overall shapes present in their distribution.

Figure 6 .

 6 Figure 6. XDR (a) and survey (b) flows at morning peak 1 at municipal aggregation level. Even at a time period where they show a similar total flow magnitude, the sampling density is different.

Figure 7 .

 7 Figure 7. One day of mobility according to a travel survey (EOD) and a pervasive (XDR) dataset, visualized as flow maps on Modalflow.

Figure 8 .

 8 Figure 8. Zone-level OD matrix of XDR (a) and survey (b) flows for the night valley period. Sparser measures and an over representation of intramunicipal flows can be appreciated in the survey.

Figure 9 .

 9 Figure 9. Comparison of survey (EOD) and pervasive (XDR) data with geographic bundling by mode of transportation.

Figure 10 .

 10 Figure 10. XDR (a) and survey (b) flows aggregated by origin municipality positioned on the ternary plot according to mean trip mode split (also encoded by background color), with radius encoding total magnitude.

Algorithms 2020, 13, 298; doi:10.3390/a13110298 www.mdpi.com/journal/algorithms


Clement Bessouet

Thierry Sauvage

Olivier Wendling

Aurélien Bellamy

Sylvain Lemettre

Alain Bosseboeuf

Johan Moulin

Study of thermal activation of getter binary alloy by real-time NRA technique

à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

This work shows that the real time NRA is a powerful technique to study in situ the activation threshold in temperature of getters and the sorption processes kinetics of oxygen in bulk. The in situ experiments of 16 O depth profiles were performed under degraded vacuum to simulate the residual atmosphere present into the MEMS cavity, during its sealing.

For YV, NRA analysis allows to see the surface oxygen gradient vanishing at 230°C. Also, a fast absorption of oxygen is observed at 260°C ⇒ diffusion and absorption = independent ? Activation temperature & diffusion velocity can be extracted from this real time measurement.

Multi steps in the YV & YTi saturation. This could be affected to a multiphase structure. However the pure V material is not activated at 300°C ⇒ 1 phase Y x V y and 1 phase Y ?

Crystalline state has to be investigated for this sample (real time XRD during annealing).

Samples Results

  100-x on Si 4" (20 rd/min) Thickness deposited: 200 nm Deposit speed: 0.5 nm/s Stoichiometry Y x M 100-x : {0-100, 10-90, 35-65, 65-35, 90-10, 100F. Chamssedine, T. Sauvage, S. Peuget DIADDHEM set-up: New IBA facility for studying the helium behavior in nuclear glasses Nucl. Instr. and Meth. B 268 (2010) 1862-1866 [2] A.F.Gurbich, SigmaCalc recent development and present status of the evaluated cross-sections for IBA, Nucl. Instr. and Meth. B 371 (2016) 27-32  XRD in situ measurements  New NRA analyses:  18 O in situ annealing (to discriminate the two phases of activation)  2 H (D) in situ annealing (to study the in-situ sorption and desorption processes kinetics of hydrogen in getter (for gases: CH 4 , H 2 ) Clément Bessouet 1 , T. Sauvage 2 , O. Wendling 2 , A. Bellamy 2 , S. Lemettre 1 , A. Bosseboeuf 1 , J. Moulin 1 Introduction A large set of micro and nanodevices requires hybrid vacuum packaging at the wafer-level to optimize their performances and lifetime. When the temperature of the packaging fabrication process is limited, getter films must be integrated into the packaging cavity to obtain a low and sustainable pressure. In this work, new yttrium-based getters have been studied. Thin getter films have been annealed in secondary vacuum and Ion Beam Analyses (IBA) techniques have been performed at the same time. Getter activation phenomena have been captured in real time. Oxygen absorption capacities have been quantified for different compositions of Y-based getters. ANTIBES, FRANCE 13-18 OCTOBER -Activation temperature: YV < YTi < Y < YZr -Oxygen incorporated at 300°C: YV ≫ YTi > Y (almost null) = YZr -Final oxygen incorporation: YV ≈ YTi ≈ Y > YZr -For YV and YTi alloys: saturation in many steps ⇒ sign of multigrain structure ? of light elements desorption or absorption rate by IBA technique In situ annealing of the sample with electronic bombardment furnace REAL TIME NRA : 16 O absorption in getter film as a function of T by NRA with the detection of 2.54 MeV  particles emitted from 16 O (d,) DIADDHEM device core • Motorized goniometer (two translations and one rotation) • Sample holder of 1" diameter • Electronic bombardment furnace T Max = 1400°C • Cooling exchanger and retractable grips cooled by cold N 2 T of 5.10 -6 mbar -Absence of 14 N(d,p 5 ) 15 N peak 16 O(d, α 0 ) 14 N in real time during annealing 16 O(d, α 0 ) 14 N integrated signal on temperature

C2N, Univ. Paris Sud, Univ. Paris Saclay, CNRS, UMR 9001, 10 boulevard Thomas Gobert, 91120 Palaiseau, France

CNRS-CEMHTI, Site Cyclotron, UPR

3079, 3A rue de la Férollerie, 45071 Orléans Cedex 2, France clement.bessouet@u-psud.fr


Djamel Eddine Khelladi
email: djamel-eddine.khelladi@irisa.fr

Benoit Combemale
email: benoit.combemale@irisa.fr

Mathieu Acher
email: mathieu.acher@irisa.fr

Olivier 2020 Barais
email: olivier.barais@irisa.fr

On the Power of Abstraction: a Model-Driven Co-evolution Approach of Software Code

Model-driven software engineering fosters abstraction through the use of models and then automation by transforming them into various artefacts, in particular to code, for example: 1) from architectural models to code, 2) from metamodels to API code (with EMF in Eclipse), 3) from entity models to front-end and back-end code in Web stack application (with JHispter), etc. In all these examples, the generated code is usually enriched by developers with additional code implementing advanced functionalities (e.g., checkers, recommenders, etc.) to build a full coherent system. When the system must evolve, so are the models to re-generate the code. As a result, the developers' enriched code may be impacted and thus need to co-evolve accordingly. Many approaches support the co-evolution of various artifacts, but not the co-evolution of code. This paper sheds light on this issue and envisions to fill this gap.

We formulate the hypothesis that the code co-evolution can be driven by the model changes by means of change propagation. To investigate this hypothesis, we implemented a prototype for the case of metamodels and their accompanying code in EMF Eclipse. As a preliminary evaluation, we considered the case of the OCL Pivot metamodel evolution and its code co-evolution in two projects from version 3.2.2 to 3.4.4. Preliminary results confirms our hypothesis that model-driven evolution changes can effectively drive the code co-evolution. On 562 impacts in two projects' code by 221 metamodel changes, our approach was able to reach the average of 89% and 92,5% respectively of precision and recall.

INTRODUCTION

Model-Driven Engineering (MDE) has proven to be effective in the development and maintenance of large scales systems [START_REF] Hutchinson | Model-driven engineering practices in industry[END_REF][START_REF] Hutchinson | Empirical assessment of MDE in industry[END_REF]. MDE aims to tackle increasing software development complexity by using abstraction and automation [START_REF] Kautz | Achievements, Failures, and the Future of Model-Based Software Engineering[END_REF]. Abstraction is achieved by creating and reasoning on various models expressing various concerns of a software system, e.g., structural, behavioral, requirements and business aspects. Automation is achieved by leveraging and transforming those models into various artifacts, such as models, scripts, documentation, source code, etc.

Many use cases have been reported in the literature where different types of models and of code co-exist. For example, JHipster proposes to generate, from entity models, modern web applications ICSE-NIER'20, May 23-29, 2020, Seoul, Republic of Korea 2020.

and microservices with a front-end and a back-end code. JHipster gained a lot of popularity in the last few years among developers, and more than 290 companies from all around the world adopted it, such as Google, Ericsson, HSBC, Siemens, etc 1 . Out of an entity model, numerous configuration files (e.g., Docker, pom.xml), database-specific artefacts, Java, JavaScript, HTML, and CSS code are generated. In practice, developers then face the challenge of enriching the generated code both on the client and the server side to implement new functionalities and more complex behavior.

Another example is the implementation of languages with the Eclipse Modeling Framework (EMF) 2 . Based on a metamodel, EMF supports the generation of code consisting of a core API, adapters, serialization facilities, and an editor. This code can be used to load and manipulate model instances. More importantly, it is also enriched by developers to offer additional functionalities for the software language and its tools. Today, many Eclipse projects3 leverage on the code generated by EMF to support developers in various tasks (e.g., developing advanced editors, debuggers, checkers, etc.). As a result, many languages have been developed using EMF and its ecosystem, such as BPMN [START_REF] Omg | Object Management Group. Business Process Model And Notation (BPMN)[END_REF], OCL [START_REF] Omg | Object Management Group. Object Constraints Language (OCL)[END_REF], or UML [START_REF] Omg | Object Management Group. Unified Modeling Language (UML)[END_REF]. In all these examples, developers always enriched the generated core API implementing advanced functionalities and model transformations. These are two use cases of co-existence of models and code in practical settings. Many other approaches propose to also generate code skeleton from design or architectural models [START_REF] Chauvel | Code generation from UML models with semantic variation points[END_REF][START_REF] Xu | Automated security test generation with formal threat models[END_REF][START_REF] Zolotas | From requirements to source code: a Model-Driven Engineering approach for RESTful web services[END_REF], which developers must enrich it as well.

One of the foremost challenges to deal with in MDE is the evolution of models and their impacts. As a result of a model evolution, after the originally generated code is re-generated, the additional code implemented by developers is likely to be impacted and must be co-evolved accordingly. As different kind of models with different levels of abstraction exist, code co-evolution becomes even more challenging. Hence, the few attempts in the literature [START_REF] Aldrich | ArchJava: connecting software architecture to implementation[END_REF][START_REF] Kanakis | An Empirical Study on the Impact of Inconsistency Feedback during Model and Code Co-changing[END_REF][START_REF] Van | Bidirectional Mapping between Architecture Model and Code for Synchronization[END_REF][START_REF] Riedl-Ehrenleitner | Towards model-and-code consistency checking[END_REF] to handle the code co-evolution addressed a single use case for a specific type of models and code.

This paper ambitions to address the challenge of code co-evolution with evolving models with a generic change propagation approach. Our hypothesis is that the code enriched after its generation, can be co-evolved driven by the model's evolution by means of change propagation. Thus, we leverage on the power of abstraction of models that comes with MDE for the code co-evolution. Change propagation showed to be efficient in many domains, such as in the context of artifact recommendation or co-evolution of models or transformations [START_REF] Čubranić | Hipikat: Recommending pertinent software development artifacts[END_REF][START_REF] Demuth | Co-evolution of metamodels and models through consistent change propagation[END_REF][START_REF] Djamel | Change Propagation-based and Composition-based Co-evolution of Transformations with Evolving Metamodels[END_REF]. To investigate this hypothesis on the code co-evolution, we implemented a prototype for the EMF Eclipse use case of metamodel evolution and its accompanying code co-evolution. We run an impact analysis to identify all impacts at the code level. Then, we propose resolutions that are used as a basis for our code co-evolution in response to model evolution.

As a preliminary evaluation, we considered as a case study the implementation of the OCL language [START_REF] Omg | Object Management Group. Object Constraints Language (OCL)[END_REF] in Eclipse. In particular, the case of the OCL Pivot metamodel evolution and its code co-evolution in two medium-sized projects from version 3.2.2 to 3.4.4. We evaluated to what extent our approach can correctly coevolve the projects' code in response to the metamodels' evolution. Preliminary results confirm our hypothesis that evolution changes can effectively drive the code co-evolution. On 562 impacts in two projects' code by 221 metamodel changes, Our approach was able to reach 89% and 92,5% respectively of precision and recall.

MOTIVATING EXAMPLE

In this section, we illustrate the code co-evolution challenges on two cases, namely JHipster and EMF Eclipse, while highlighting similarities and differences.

JHipster is a development platform to generate, develop and deploy modern Web applications with Spring Boot, Angular/React/Vue and Spring microservices. From a specified entity model, JHipster generates a minimal working web application ready for deployment. Developers can then extend it with new functionalities both on the back-end and front-end sides of the web application.

The Eclipse Modeling Framework (EMF) is a framework for building tools and other applications based on a structured metamodel. It follows a similar process as jHipster to generate a minimal software language from the metamodel, consisting of an API, adapters, and a basic editor. Similarly, developers herein can then extend it and code new functionalities.

Figure 1 summarizes how JHipster and EMF work. Although these two cases address different needs for developers (e.g., different types of code and artefacts are generated), they share a common challenge. When developers must evolve their code after they have spent effort to enrich the generated code, they will evolve the metamodel in the case of Eclipse EMF and the entity model for the case of JHipster. As a result of code re-generation, all additional code will likely be impacted and must be co-evolved. For instance, as Eclipse releases two versions of its IDE per year since 2018, most of the EMF Eclipse projects also release new versions. Thus, going through evolution and co-evolution frequently as well. To the best of our knowledge, unfortunately, this remains a manual task for developers, which is tedious, error-prone, and costly.

This paper aims to better support code co-evolution. Our hypothesis is that the high level information from the applied model evolution can drive the code co-evolution. In a sense, the "power of abstraction" can fill the gap: This is the basis of our proposed approach in this paper.

OVERALL APPROACH

Figure 2 gives an overview of our approach. It goes through an impact analysis phase 1 , before co-evolving the impacted code 2 + 3 . It relies on the abstraction of models and their changes to drive the co-evolution of the code. Our vision is to propose unified approach that can cope with different types of models and code, and thus handling many use cases in MDE. To this end, we design an adapter layer for both the impact analysis and the resolution.

Impact Analysis

This is an essential step to discover and locate at the code level the impacts of a given model evolution, i.e. applied changes. For this, model changes must be detected first . Numerous approaches exists in the literature to detect changes for various types of models, such as [START_REF] Cicchetti | Managing dependent changes in coupled evolution[END_REF][START_REF] Djamel | Detecting complex changes and refactorings during (meta) model evolution[END_REF][START_REF] Langer | A posteriori operation detection in evolving software models[END_REF][START_REF] Sander D Vermolen | Reconstructing complex metamodel evolution[END_REF][START_REF] James R Williams | Searching for model migration strategies[END_REF]. We define a Change interface adapter (see Figure 2) that serves to bridge existing change detection approaches with the changes specified by Herrmannsdoerfer et al. [START_REF] Herrmannsdoerfer | An Extensive Catalog of Operators for the Coupled Evolution of Metamodels and Models[END_REF]. Thus, developers could easily interchange a given detection approach with another one that better meets their needs. The change interface considers both atomic (e.g., adds, deletes) and complex (e.g., move, split) changes.

To be able to identify the impacted code elements, we must access them. For this, we parse the code to access the Abstract Syntax Tree (AST) to access all code elements. This is part of the adapter layer that allows to fine tune it for each considered code language. We then establish a mapping table 𝑚𝑡 between the model elements 𝑚𝑒 1 , ..., 𝑚𝑒 𝑛 ∈ M and the code elements as AST nodes 𝑐𝑒 1 , ..., 𝑐𝑒 𝑛 ∈ C, i.e., 𝑚𝑡 = 𝑀𝑎𝑝 < 𝑚𝑒 𝑖 , 𝐿𝑖𝑠𝑡 < 𝑐𝑒 𝑖 >>. After that, for a given model change 𝑚𝑐 𝑖 on a given 𝑚𝑒 𝑖 , we can access its impacted code elements (𝐿𝑖𝑠𝑡 < 𝑐𝑒 𝑖 >) that must be co-evolved.

Change propagation-based co-evolution

The proposed approach aims to co-evolve code by means of propagating the models changes to the code. It should to be useful in our previous works with constraints [START_REF] Djamel | A semi-automatic maintenance and co-evolution of OCL constraints with (meta) model evolution[END_REF] and transformations [START_REF] Djamel | Change Propagation-based and Composition-based Co-evolution of Transformations with Evolving Metamodels[END_REF].

It first retrieves the impacted code parts by a given model change 𝑚𝑐 𝑖 from the mapping table 𝑚𝑡 computed by our impact analysis. Then for each impact, it proposes resolutions 𝑟 1 , ..., 𝑟 𝑛 ∈ R that can propagate the impacting model change. A developer can choose among the alternative resolutions which one fits her needs. This acts as a user acceptance of the resolution to be applied. Finally, the chosen resolutions are applied on the impacted code parts.

For the purpose of change propagation, we constructed a catalogue of resolutions inspired from previous work of co-evolution, and we adapted to code co-evolution. For example, due to a move property prop (e.g., an attribute, a method, etc.) through a reference/association link in the model. A call to prop in the code is updated to link.prop. Our list of resolutions is detailed in [START_REF] Djamel | Co-Evolving Code with Evolving Metamodels[END_REF].

PRELIMINARY EVALUATION

We have instantiated our above co-evolution approach and implemented it on the use case of metamodel evolution and code co-evolution in EMF Eclipse. This section presents the preliminary results of our evaluation.

Case study and Evaluation Process

As a case study we consider the Object Constraint Language (OCL) [START_REF] Omg | Object Management Group. Object Constraints Language (OCL)[END_REF] a standard language defined by the Object Management Group (OMG) to specify first-order logic constraints. In particular, we consider the OCL language implementation in Eclipse. It has been developed and maintained since 2006 and has been evolved 45 times. We considered an original version 3.2.2 and an evolved version 3.4.4 of the case study as it covers extensive changes both at the metamodels and the code levels.

In this case study, we considered the evolution of the OCL Pivot metamodel that is well documented and consists of 221 changes. We searched for projects that depend on the OCL Pivot metamodel and we found two Java projects (i.e., projects that are dependent on the metamodels' generated core API). The two projects were impacted by the OCL Pivot metamodel evolution. We collected the original and evolved Java code of those two projects.

Table 1 details the selected OCL case study in particular about the OCL Pivot metamodel and the applied changes during evolution from version 3.2.2 to version 3.4.4. Table 2 further reports the code size of the two Java projects (referred to as P1 and P2) from the original versions that must co-evolve. The goal of this preliminary evaluation is to investigate code co-evolution with evolving models. We formulate the following hypothesis: 𝐻 𝐶𝑜-𝐸𝑣𝑜 The code enriched after its generation, can be co-evolved driven by the models applied changes by means of change propagation. To this aim, we measure the correctness of our approach by using the two metrics precision and recall that vary from 0 to 1, i.e., 0% to 100%. They are defined as follows:

𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑃𝑟𝑜𝑝𝑜𝑠𝑒𝑑𝑅𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛𝑠 ∩ 𝐸𝑥𝑝𝑒𝑐𝑡𝑒𝑑𝑅𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛𝑠 𝑃𝑟𝑜𝑝𝑜𝑠𝑒𝑑𝑅𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛𝑠 𝑟𝑒𝑐𝑎𝑙𝑙 = 𝑃𝑟𝑜𝑝𝑜𝑠𝑒𝑑𝑅𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛𝑠 ∩ 𝐸𝑥𝑝𝑒𝑐𝑡𝑒𝑑𝑅𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛𝑠 𝐸𝑥𝑝𝑒𝑐𝑡𝑒𝑑𝑅𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛𝑠
The 𝑃𝑟𝑜𝑝𝑜𝑠𝑒𝑑𝑅𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛𝑠 are the resolutions applied by our approach while the 𝐸𝑥𝑝𝑒𝑐𝑡𝑒𝑑𝑅𝑒𝑠𝑜𝑙𝑢𝑡𝑖𝑜𝑛𝑠 are the actual manually performed resolutions by developers.

Results

After running the impact analysis, we found the impacted code parts by the 221 metamodel changes for which resolutions were proposed by our co-evolution approach. To co-evolve all impacted parts, 562 resolutions were applied during the change propagation. This shows the applicability of our co-evolution approach that was able to handle all different impacts in the code caused by the metamodel evolution changes. To further assess the correctness of the performed co-evolution, we measure precision and recall.

For the project P1, measured precision and recall were both 92%, and for project P2, they were 86% and 93%. On average, our code coevolution was able to reach respectively 89% and 92,5% of precision and recall. This means that our applied co-evolution propagating the impacting metamodel changes covered the expected resolutions by the developers in 89,5% and were correct in 92,5%. This confirms our hypothesis 𝐻 𝐶𝑜-𝐸𝑣𝑜 that propagation of models changes can effectively drive the co-evolution of code. More detailed results with additional case studies are in [START_REF] Djamel | Co-Evolving Code with Evolving Metamodels[END_REF].

RELATED WORK

This section focuses on closest related work about model and code co-evolution. Kanakis et al. [START_REF] Kanakis | An Empirical Study on the Impact of Inconsistency Feedback during Model and Code Co-changing[END_REF] showed in an empirical study that reporting to developers about model-code inconsistencies increases significantly the quality of repairs compared to when they are not reported. Further, Passos et al. [START_REF] Passos | Coevolution of variability models and related software artifacts[END_REF] performed and empirical study on feature models and c code, in particular, mining variability coevolution patterns. Riedl et al. [START_REF] Riedl-Ehrenleitner | Towards model-and-code consistency checking[END_REF] proposed an approach to check the consistency between UML models and code. The goal is to identify inconsistencies that developers must repair afterward. While we focus on the direction of model to code co-evolution, they considered consistency checking in both directions. However, both do not not propose to support the repair of the code impacted parts by model changes. Similalry, Aldrich et al. [START_REF] Aldrich | ArchJava: connecting software architecture to implementation[END_REF] proposed an approach to check the consistency between architectural models with its code implementation, but without repairing them. Langhammer et al. [START_REF] Langhammer | Co-evolution of component-based architecturemodel and object-oriented source code[END_REF] also proposes to co-evolve architectural models with [START_REF] Van | Bidirectional Mapping between Architecture Model and Code for Synchronization[END_REF] further proposed an approach to synchronize architecture models (e.g., UML state machines) with generated code. However, they only focus on changes to the generated code and its structure, but not on the additional code enriching it, as in this work. Furthermore, all existing works focus on one use case of models. While we evaluated our approach's applicability on one use case of metamodels in EMF Eclipse, we aim to build on it to support other use cases of models, such as with entity models in jHipster, UML models, etc.

CONCLUSION

This paper aims to support developers in their activity of code coevolution with evolving models. It leverages on the model changes and propagates them on the code. We implemented and evaluated our approach on the use case of metamodel and EMF. On two projects from the OCL language in Eclipse, results showed to be promising by applying change propagation for code co-evolution with an average of 89% and 92,5% respectively of precision and recall. In future work, we plan to extend our approach on other use cases of models-code, such as JHipster, by implementing adapters for other types of models and code languages. Then, we plan to evaluate on more case studies while diversifying their source from different kinds of models and generated artefacts.

Figure 1 :

 1 Figure 1: The JHipster and the Eclipse EMF use cases.

Figure 2 :

 2 Figure 2: Overall approach.

Table 1 :

 1 Details of the Pivot metamodel evolution changes.

	Atomic changes	Complex changes
	Deletes: 2 classes, 16 properties, 6 super types
	Renames: 1 class, 5 properties	1 pull property
	Property changes: 4 types; 2 multiplicities	2 push properties
	Adds: 25 classes, 121 properties, 36 super types

Table 2 :

 2 Details of the projects and their impacts caused by the Pivot metamodel evolution.

	Evolved	Projects to co-evolve in response to the	𝑁 𝑜 of	𝑁 𝑜 of	𝑁 𝑜 of	𝑁 𝑜 of Impacted	𝑁 𝑜 of total
	metamodel	evolved metamodels	packages	classes	LOC	classes	impacts
	OCL	[𝑃1] ocl.examples.pivot	22	439	74002	47	532
	Pivot.ecore	[𝑃2] ocl.examples.xtext.base	12	181	17599	9	30
	code. Pham et al.

Cf. https://www.jhipster.tech/companies-using-jhipster/

Cf. https://www.eclipse.org/modeling/emf/

Cf. https://marketplace.eclipse.org

Acknowledgments This research received funding from the CNRS PEPS, and from the AIS Rennes Metropole grant no. 190270.