Marcel Suri
email: marcel.suri@jrc.it

Thomas Huld
email: thomas.huld@jrc.it

Ewan D Dunlop
email: ewan.dunlop@ec.europa.eu

Michel Albuisson
email: michel.albuisson@ensmp.fr

Mireille Lefèvre
email: mireille.lefevre@ensmp.fr

Lucien Wald
email: lucien.wald@ensmp.fr

Marcel Šúri

Uncertainties in solar electricity yield prediction from fluctuation of solar radiation

Keywords: HelioClim, PVGIS, solar radiation, interannual variability, PV yield prediction

à 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.

INTRODUCTION

Photovoltaic (PV) electricity yield prediction is often based on estimates of long-term averages of solar radiation. However, uncertainty due to year-on-year variability of solar resource should also be considered, especially for financing large PV projects and for management of electricity grids in regions with high concentration of PV. The required information includes the quantification of how much the yearly and/or seasonal values of solar radiation may vary from the long term averages.

In this paper we analyse the variability of global horizontal irradiation by comparing yearly and monthly averages to long-term average values calculated from the HelioClim-1. Geographically this study covers the regions around Mediterranean and Black Seas.

DATA AND METODS

Solar radiation database HelioClim-1

HelioClim-1 was developed from Meteosat satellite images by the application of the Heliosat-2 method [1,2]. The primary data include daily means of global horizontal irradiation, calculated over the period 1985-2005. The reduced ISCCP-B2 satellite images have been used in calculation and therefore the HelioClim-1 database is composed of pixels of approx. 5 km in size, whose centers are spaced by approx. 30 km in each direction [2]. The extent of the database corresponds to the field of view of the Meteosat Prime disc (the satellite being centered at latitude 0° and longitude 0°), however in this study we focused only on regions around the Mediterranean Sea and the Black Sea.

The accuracy of the HelioClim-1 data was assessed by comparisons with measurements of the WMO radiometric network in Europe (55 sites) and Africa (35 sites) for the period 1994-1997 [2]. The RMS error is 35 W/m 2 (17%) for daily mean irradiance, and 25 W/m 2 (12%) for monthly mean irradiance. Bias is less than 1 W/m 2 for the whole data set, but at individual sites it may range from -15 to +32 W/m 2 .

Data processing in PVGIS

The HelioClim-1 database (daily values, and averages) can be accessed through the SoDa web system [3]. However, raw data can be used only by a limited number of specialists. Therefore the daily values were integrated into the Photovoltaic Geographical Information System (PVGIS) in order to calculate longterm averages, estimate irradiation on inclined planes, and for the map analysis [START_REF] Huld | 20th European Photovoltaic Solar Energy Conference and Exhibition[END_REF]. Complementary to SoDa, the PVGIS web interface provides a number of derived parameters from the HelioClim-1 database for any chosen location [START_REF] Šúri | Proceedings of the 21st European Photovoltaic Solar Energy Conference and Exhibition[END_REF].

In this study, the daily means of global horizontal irradiation were analysed. Due to gaps in data, we have chosen a time series covering 18 complete years: 1985, 1987, and 1989-2004. For each year, we have calculated monthly and yearly averages. To quantify weather variability, we calculated standard deviation of monthly and yearly values from the long-term averages. For each pixel in the region, we have also found the extreme minimum and maximum values of monthly and yearly averages.

RESULTS

Yearly global irradiation on horizontal plane

Figure 1 shows the geographical distribution of longterm average of global horizontal irradiation representing years 1985, 1987, and 1989-2004. The highest potential for solar electricity generation is in Northern Africa, Middle East, Mediterranean islands and Southern regions of Portugal, Spain, Italy, Greece, and Turkey, with annual global irradiation higher than 1600 kWh/m 2 .

Except in the mountains, and in the North, the radiation potential is still high in the rest of the region of our interest (higher than 1200 kWh/m 2 ). In countries, such as Spain, Italy, Turkey, and even much smaller Croatia, clear North-South gradient in global irradiation can be seen.

Variability of yearly global horizontal irradiation

Standard deviation of yearly averages gives an indication of the overall variability of the solar resource in the region (Figure 2). It is not surprising that in the arid climate of Northern Africa and Middle East, the year-on-year variability is very low, with a standard deviation not exceeding 4%. Similar weather stability can be observed in Mediterranean islands, and inland of the Iberian Peninsula, and Turkey. Large parts of Europe and Turkey show standard deviation between 4% and 6%, while higher degree of variability (up to 10%) has been identified along coasts, and in mountains (where it is even more pronounced by terrain with stronger altitude gradients). However the latitudinal pattern is not as clear as in the map of long-term irradiation averages (Figure 1) as the weather variability is more determined by regional impacts of sea, land masses, and mountains.

The distribution of yearly averages is shown in Figure 3 for 11 locations in the region. The results show that the standard deviation does not always give the right impression of the possible weather extremes within the studied 18 years period. The dispersion of yearly values over time is not always distributed symmetrically along the long-term average.

Figure 4 indicates that occurrence of years with lowest or highest radiation may bias the information given by the standard deviation. For example, the sunniest year in Marrakech (Morocco; standard deviation 2.7%) was 2% above the long-term average, while in the 'worst' year the annual solar resource was 5% below. Although the amount of sunshine in Udine (Italy; standard deviation 9.6%) in the best year exceeded the deviation in the worst year by more than 4%, it has happened more often that yearly sum was below the long-term average (10 out of 18 times). Figures 5 and6 show the geographical distribution of the relative differences of lowest and highest yearly sum of global horizontal irradiation compared to the longterm average, thus identifying the deviation of the most and least sunny years from the long-term average. Within the 18 years' period, the absolute minimum yearly value rarely went below 15% from the long-term average. Low negative excursions (less than 6% down) are found in arid regions but are observed also in Europe (parts of Spain, Portugal, Italy, Romania). The deficit of the least sunny year exceeded -9% of the long-term average in few regions, including some coastal zones, the Marmara Sea, the Alps, and the Balkan mountains. The map of the deviation of the sunniest yearly values from the longterm average shows a similar pattern, although in several regions the variance from the long-term average is bigger.

Variability of global irradiation in seasons

To see climate variability in seasons, we compared monthly averages of 18 years to the long-term averages of each month in the year. The four maps below (Figures 7 to 10) show that the most stable weather is in summer with standard deviation in July rarely exceeding 12%. The least stable season is winter, with rather high variability (more than 20%, and regionally up to 36%), mainly in Eastern Turkey, Greece, Balkan countries and in high mountains. Spring and autumn show intermediate stability, again with more pronounced dynamics in the mountains and in some regions.

It should be noted that even the most stable months show much higher deviations than the entire year since the statistical base of the average is much smaller for individual months than for the whole year (about 560 days in July vs. approximately 6650 in the entire period).. Although the amount of global irradiation impinging on a horizontal plane decreases with increasing latitude, the year-to-year variability of weather does not follow this pattern. Standard deviation of yearly values typically stays below 6% in most regions around the Mediterranean and Black Seas, while in some coastal zones and in high mountains the interannual variability is higher. During the analysed 18 years the amount of solar resource in least sunny year deviated from the long-term average by more than -9% only in some coastal regions and higher mountains.

Ideally, the results should be cross-compared with ground-based measurements, but long-term, high-quality measurements were not at our disposal. It is known that satellite-derived irradiances in the mountainous regions have a tendency of underestimation due to problems of terrain dynamics and cloud/snow detection. Therefore results over mountains need more rigorous validation.

The standard deviation of yearly values indicates the possible uncertainty of estimated long-term averages of global horizontal irradiation a user can experience when consulting various solar radiation databases, see e.g. [START_REF] Šúri | Solar resource data and tools for an assessment of photovoltaic systems[END_REF]. This analysis shows that one of the reasons is that the various databases are developed from different data sources covering different time periods. Large excursions in even a single year can give a significant contribution to differences in long-term averages, depending on whether that year is included in the average or not.

The weather is more stable in summer with 3-6 times more solar resource available compared to winter. This gives good prospects for reliable prediction and management of distributed electricity generation in the studied region. However, once penetration of solar photovoltaics is higher, fluctuations of weather in some regions will call for deeper analysis, based on the use of hourly radiation data.

The year-on-year variability of global horizontal irradiation indicates the uncertainty of cash flow for investors financing larger PV projects. It should be noted that year-to-year variability of yields from PV systems with fixed-inclined or tracking modules might be slightly higher as these configurations favour direct component of global radiation over diffuse. The other sources of higher uncertainty are mathematical models that estimate direct and diffuse radiation for inclined surfaces. These topics have to be analysed further.

Figure 1 :

 1 Figure 1: Long-term average of yearly sums of global horizontal irradiation (kWh/m 2 , time series representing years 1985,1987, and 1989-2004)

Figure 2 :Figure 3 :

 23 Figure 2: Standard deviation (in %) of yearly sums of global horizontal irradiation(years 1985, 1987, and 1989-2004)

Figure 4 :

 4 Figure 4: Relative difference of years with lowest and highest sum of global horizontal irradiation in relation to the longterm average. For comparison, the relative standard deviation is shown after the name of each city.

Figure 5 :

 5 Figure 5: Relative difference of the lowest yearly sum of global horizontal irradiation in relation to the long-term average (in %).

Figure 6 :

 6 Figure 6: Relative difference of the highest yearly sum of global horizontal irradiation in relation to the long-term average (in %).

Figure 7 :Figure 8 :Figure 9 :Figure 10 :

 78910 Figure 7: Standard deviation (in %) of monthly averages of global horizontal irradiation -March(years 1985, 1987, and 1989-2004)


Noémie Gaudio
email: noemie.gaudio@cemagref.fr

Philippe Balandier

Gwenael Philippe

Yann Dumas

Frédéric Jean

Christian Ginisty

Light-mediated influence of three

Keywords: Pteridium aquilinum, Regeneration, competition, light, Scots pine, vegetation type

Introduction

Pinus sylvestris is a light-requiring pioneer species. Therefore, its natural regeneration may be jeopardized by some forest understorey species that can intercept a significant amount of light depending on their development, which is also affected by light availability (Balandier et al. 2006, Gaudio et al. 2008). Although the negative effect of underground competition for resources was often highlighted (Nambiar and Sands 1993), the literature does not offer much information on the growth response of Scots pine seedlings to different kinds of vegetation relative to light. The study focused on three common understorey species in acid temperate forests: Calluna vulgaris, Pteridium aquilinum and Molinia caerulea. Our objectives were (i) to quantify their impact on light quantity and quality according to their density, (ii) to record pine seedlings growth and morphology accordingly, and (iii) to compare the interactive effects of those three species. Our assumptions were that Pteridium has the worst impact on both light quality and quantity and, therefore, on pine seedlings growth and morphology, followed by Molinia and then by Calluna.

Materials and methods

An experiment that mimics early competition of weeds and pine seedlings in a forest gap was set up in a nursery in spring 2007. Two factors were studied: the understorey species (Calluna C, Pteridium P and Molinia M) crossed with the density at planting (0, 10, 16, 33, 57 young individuals harvested in forest per m²) defining 15 modalities replicated in three complete blocks. In each of the resulting 45 plots (2 m² large), 50 pine seedlings (2 week-old) were planted at 20 cm intervals among the vegetation. Vegetation development (height and cover, i.e. percentage of the ground area occupied par the vertical projection of the foliage), pine growth (diameter, height and leaf mass area) and light quantity (PAR, 400-700 nm) and quality (Red: Far Red ratio, R:FR, 660:730 nm) were measured in 2007 and 2008. The data were analysed by variance analyses and simple regressions using Statgraphics software.

Results and discussion

Cover of C, P and M increased logarithmically with density, with a higher increase for P and M than for C (Fig. 1a). Vegetation height did not vary with density, P and M being higher than C that had approximately the same height as pine seedlings (Fig. 1b). At both highest vegetation densities, the light available at pine seedlings apex was reduced by 60% under P and M (Fig. 2) whereas there was no statistical difference among densities for C.

Regarding light quality, R:FR was significantly reduced only under P cover (1.20 and 0.14 for densities 0 and 57 plants m -2 , respectively).

The increase in vegetation density caused a decrease in pine seedlings diameter (p<0.0001, R²=56%) without any pronounced effect on seedling height. As a result, the height / diameter stem ratio (H/D) increased with vegetation density. However, year and species effects were observed (Fig. 3). In 2007, pine seedlings in P had the highest H/D and those in C the lowest one. In the second year, H/D slightly increased or remained stable in C and M whereas it significantly decreased in P (Fig. 3c).

Leaf mass on an area basis (LMA) has been reported as a functional trait of acclimation to light in the sense that shaded plants tend to increase their light interception area per biomass unit (King 2003). In accordance with measured light, such an effect was recorded in this experiment with a decrease of pine LMA with increasing vegetation density (p<0.0001, R²=68%, Fig. 4). For all the densities, LMA was systematically higher for seedlings growing in C than in P and M. At low densities, LMA was higher beneath M than beneath P whereas it was the contrary for the highest density (p=0.0204) where pine needles were thinner (p=0.007) and lighter (p=0.0008) beneath M. This effect could be attributed to competition for underground resources, i.e. water and/or nutrients, in addition to light (Provendier and Balandier 2008). P reduced the quantity of light available for pine and modified the light quality whereas C that was characterized by the same height as pine seedlings had only a limited impact. M greatly decreased light available for pine seedlings, whereas it had no effect on light quality. This result came probably from floral stalks that represent two-third of plant height for a negligible contribution to photosynthesis (i.e. they intercepted light without modifying its quality) whereas the leaf tuft had nearly the same height than pine seedlings. As a consequence, the three weeds affected the pine diameter but with a strong species effect. P strongly decreased the pine diameter growth in the first year and also height growth in the second year. The main effect of M and C was delayed to the second year, particularly for C. However, it is noteworthy that C had an impact on pine seedlings diameter growth without any pronounced effect on light availability. This result suggested that others factors than light are involved in the effect of C. With a fast development of its aerial part and an important cover, P is the most competitive species for light. At high density, M also seems to play a role via belowground resources in addition to light. LMA is confirmed to be a functional treat accounting for the effects of competition between species.

In the light of these results, identifying the vegetation type and thus its effect on resource availability and then on seedlings growth and morphology seems to be a key factor to consider in order to improve forest vegetation management.

  Light-mediated influence of three understorey species (Calluna vulgaris, Pteridium aquilinum, Molinia caerulea) on growth and morphology of Pinus sylvestris seedlings Noémie Gaudio, Philippe Balandier, Gwenaël Philippe, Yann Dumas, F. Jean, Christian Ginisty To cite this version: Noémie Gaudio, Philippe Balandier, Gwenaël Philippe, Yann Dumas, F. Jean, et al.. Light-mediated influence of three understorey species (Calluna vulgaris, Pteridium aquilinum, Molinia caerulea) on growth and morphology of Pinus sylvestris seedlings. Final COST E47 conference Forest vegetation management towards environmental sustainability, May 2009, Vejle, Denmark. p. 70 -p. 72. hal-

Figure 1 :

 1 Figure 1: Vegetation cover (Cveg) (a) and vegetation and pine height (H) (b) according to density of C, P and M. b) a)

Figure 2 :

 2 Figure 2: Light quantity (%PAR) available at the pine seedlings apex according to density of the three species in the second year.

Figure 3 :

 3 Figure 3: Height/diameter stem ratio (H/Dpine) in 2007 (a) and 2008 (b) and H/Dpine increment (c) according to density of C, P and M.

Figure 4 :

 4 Figure 4: Leaf mass on an area basis (LMApine) of the pine seedlings according to density of C, P and M.


Benoit Baudry
email: bbaudry@irisa.fr

Testing Model Transformations: A case for Test Generation from Input Domain Models

Keywords: test input generation, input domain modelling, metamodel-based test generation, test adequacy criteria, combinatorial testing

Model transformations can automate critical tasks in model-driven development. Thorough validation techniques are required to ensure their correctness. In this lecture we focus on testing model transformations. In particular, we present an approach for systematic selection of input test data. This approach is based on a key characteristic of model transformations: their input domain is formally captured in a metamodel. A major challenge for test generation is that metamodels usually model an infinite set of possible input models for the transformation.

We start with a general motivation of the need for specific test selection techniques in the presence of very large and possibly infinite input domains. We also present two existing black-box strategies to systematically select test data: category-partition and combinatorial interaction testing. Then, we detail specific criteria based on metamodel coverage to select data for model transformation testing. We introduce object and model fragments to capture specific structural constraints that should be satisfied by input test data. These fragments are the basis for the definition of coverage criteria and for automatic generation of test data. They also serve to drive the automatic generation of models for testing.

Introduction

Model transformation is a key mechanism when building distributed real-time systems (DRES) with model-driven development (MDD). It is used to automatically perform a large number of tasks in the development of DRES. The DOC group at Vanderbilt University has extensively investigated MDD for DRES. In this context, Madl et al. (Madl et al. '06) use model transformations in order to apply model checking techniques on early design models, Gokhale et al (Gokhale et al. '08) develop model transformations that automate deployment tasks of component-based DRES and Shankaran et al. (Shankaran et al. '09) use model transformations to dynamically adapt a DRES when its environment changes. The ACCORD/UML (Gérard et al. '00) methodology developed by CEA also makes an extensive use of model transformations for a model-driven development of DRES. Model transformations encapsulate specific steps in the development methodology and generate optimized code. Airbus develops large model transformations that automatically generate optimized embedded code for the A380 from SCADE models.

Due to the critical role that model transformations play in the development of DRES, thorough validation techniques are required to ensure their correctness. A fault in a transformation can introduce a fault in the transformed model, which, if undetected and not removed, can propagate to other models in successive development steps. As a fault propagates further, it becomes more difficult to detect and isolate. Since model transformations are meant to be reused, faults present in them may result in many faulty models. Several studies have investigated static verification techniques for model transformations. For example, Küster (Küster '06), focuses on the formal proof of the termination and confluence of graph transformation, or Anastasakis et al (Anastasakis et al. '07) analyze properties on a formal specification of the transformation in Alloy.

In this lecture we are interested in adapting software testing techniques to validate model transformations. In particular, we focus on the generation and qualification of test data for model transformations. To test a model transformation, a tester will usually provide a set of test models, run the transformation with these models and check the correctness of the result. While it is fairly easy to provide some input models, qualifying the relevance of these models for testing is an important challenge in the context of model transformations. As for any testing task, it is important to have precise adequacy criteria that can qualify a set of test data (Baudry et al. '09).

Model transformations specify how elements from the source metamodel are transformed in elements of the target metamodel. The source metamodel completely specifies the input domain of the transformation: the set of licit input models. In this context, the idea is to evaluate the adequacy of test models with respect to their coverage of the source metamodel. For instance, test models should instantiate each class and each relation of the source metamodel at least once. In the following we present test adequacy criteria based on the coverage of the source metamodel. We also discuss the automatic generation of test models that satisfy these criteria.

Before presenting the specific generation of test data for model transformation, we recall general techniques and current challenges for test generation from a model of the input domain. We briefly introduce category-partition testing (Ostrand et al. '88) and combinatorial interaction testing (Cohen et al. '97) the third approach, while in this lecture we will introduce techniques related to the first approach. Ammann et al (Ammann et al. '08) propose another classification of structures from which it is possible to design test cases: graphs, logic, input domain, syntax. According to this taxonomy, the techniques introduced in this lecture are related to the last two structures: design of test data from an input domain model and from a model of the syntax (e.g., the source metamodel for a model transformation).

Challenges for testing systems with large input domains

One important aspect of the growing complexity of software systems is that these systems tend to be more and more open to their environment. In particular, this means that many systems can operate on a very large number of information provided by the user and/or offer mechanisms for dynamic reconfiguration. In both cases, these systems are characterized by a very large domain on which they have to run. It is usually not possible to test these systems with all possible input and in all possible configurations. The challenge for test data generation is to propose criteria to systematically select a subset of data that will still ensure a certain level of trust in the system under test.

In this section we present several examples where such issues occur for test generation.

Large Set of Input data

The first category of systems that has a large input domain is the set of all programs that process a large set of data. These data can be provided by other software components or by users. Examples of these systems are all the web applications that process user input provided through a form. Figure 1 displays an example of such a form that a user must fill in order to register to a conference online. On this simple, very usual form, there are 18 variables. Some of these variables can take an infinitely large number of values (all the fields that require a String value such as address, name, etc.), and some others have a finite domain: the combobox for states defines 72 values, 228 values for country, 4 values for special needs and a binary value for IEEE contact. In addition to the large domains for each variable, the global input domain for this page is the total number of combinations of values for each variable. This number is 72 * 229 * 4 * 2 * 14 #String values . It is important to notice that there exist some constraints between the fields that reduce the number of combinations. For example, if the country is neither Canada nor the USA, there is no need to provide a value for the Province /State field. In order to test this registration system, it is necessary to select a subset of all possible input values. In particular, it is necessary; first to reduce the set of all possible String values to a finite set of test data; second to select a small number of configurations of data.

Configurable systems

Highly configurable and adaptive systems represent a second category of systems that are characterized by large domains. Microsoft Internet Explorer is an example of such a system. It has 31 configurable options on the security tab. There are around 19 trillion possible configurations for this tab (Cohen et al. '06) and the system should behave correctly in all these conditions. An emerging trend in embedded systems is the ability to adapt to changes in the environment at runtime. In this case, the set of all possible environment settings represents the set of all configurations under which the system is expected to work. In the context of the DiVA project (DiVA '08), the CAS company develops a customer relationship management system. The requirements for this system describe 23 environmental properties which represents 10 7 possible combinations and as much different environments to which the system is expected to adapt. The variables for configuring the system usually have a finite domain. The challenge for testing is thus to select a minimal set of configurations to test the system.

2.3

Grammarware and Model Transformations

An interesting category of system with a large domain consists of all the systems which input data is modelled with a grammar or a metamodel. The programs which input domain can be described with a grammar are known as grammarware (Hennessy et al. '05;Klint et al. '05), and usually have an infinite domain. These applications include parsers, refactoring tools, programs analyzers, etc. For example, Figure 2 displays an excerpt of the grammar for the Alloy analyzer (Jackson '06). The first rule states that a specification in Alloy is composed of a number of open and paragraph constructs. Because of the '*' symbol, there can be between 0 and an infinite number of open and paragraph. This means that the input domain for the Alloy analyzer is infinite since there can be an infinite number of specifications that conform to the rules in the grammar. Concerning systems which input domain is modelled with a metamodel, we call theses systems model transformations. They are similar to grammarware programs since their input domain is potentially an infinite set of models that are licit input data for the transformation. What is interesting with grammarware and model transformations is that their input domain is explicitly captured in a finite model that can be leveraged for the definition of test adequacy criteria and to systematically identify a finite set of test data.

Since this lecture focuses on testing model transformations, we provide a detailed example of a metamodel in the following. Figure 3 displays a metamodel for a simple class diagram modelling language. This metamodel specifies a class model as being a set of CLASSIFIERs and ASSOCIATIONs. A CLASSIFIER is either a CLASS that can have a parent CLASS, a set of ATTRIBUTEs and that can be persistent, or a PRIMITIVEDATATYPE. ATTRIBUTEs can be primary, they have a name and a type. ASSOCIATIONs have a name and destination and source CLASS.

All the concepts for this simplified class diagram language are represented by classes in the metamodel. These classes have properties that are either attributes of primitive type (e.g., the name attribute in the ASSOCIATION class) or references to other classes. The references have a role name and a multiplicity. For example, the reference from CLASSMODEL to ASSOCIATION has the role name association and a multiplicity * which means that a CLASSMODEL contains a set of zero or many ASSOCIATIONs. Constraints to restrict the set of licit class models are captured by references and multiplicities on the references.

Classes and properties are usually not expressive enough to specify all constraints on the structure of the modeling language. The Object Constraint Language (OCL) can be used to add constraints and allow us to build a more precise model of the domain. For example, Figure 4 displays additional invariants on the simple class diagram metamodel of Figure 3, expressed in OCL. The first one specifies that there must be no cycle in the parent relationship between a CLASS and another one, which means that a class cannot inherit of itself or one of its parents.

Figure 4. Additional constraints on the metamodel

A metamodel defines the input domain of a model transformation. Thus it defines the set of models that can be passed as input to the transformations. Since the metamodel is defined as a set of classes and properties, a model is a graph of objects. The objects in this graph are instances of the classes defined in the metamodel. The structure of the graph is constrained by the multiplicities on references and by all additional constraints defined on the metamodel.

The metamodel of Figure 3 models the input domain for any transformation that manipulates simple class diagrams. This metamodel can serve as a basis for the generation of a set of test data. However, the '*' on the cardinality for the set of attributes in a CLASS or the set of associations in a CLASSMODEL, means that there is potentially an infinite number of models that conform to this metamodel. More precisely, the size of the set of classes in a model is between 0 and maxInt. This cardinality alone indicates that the total number of class models that satisfy the structure defined by the metamodel can be very large. The set of classifiers in the model and the set of attributes in a class have the same multiplicity. Thus the total number of models that combine these three properties only is maxInt 3 which is 21 474 836 48 3 for a machine that encodes integers on 32 bits.

Testing Challenges

In all the above examples, it appears that, even with small domain models (5 classes in a metamodel or 18 fields in a web form) the number of input data and combinations of data can be very large or even infinite. It is thus impossible to test these systems with all possible data. The issue for test data generation is then to select a subset of test data in the input domain according to systematic criteria and that cover all relevant sub-domains in that domain.

Selecting test data in large domains

In this section we introduce category-partition testing (Ostrand et al. '88) and combinatorial testing strategies (Cohen et al. '96) that can be used separately or conjointly to systematically select a subset of test data in large input domains.

Category partition

The basic idea of category-partition testing strategies (Ostrand et al. '88) is to divide the input domain into sub-domains called ranges. This division is based on specific knowledge of the domain and consists in identifying subsets of values that are equivalent with respect to the behavior of the program under test. The ranges for an input domain define a partition of the input domain and thus should not overlap. Once the partitions and ranges are defined, the test generation consists in selecting one test data in each range. Boundary testing consists in selecting test data at the boundary of the ranges.

Definition -Partition.

A partition for a variable's domain of elements is a collection of n ranges R 1 , …, R n such that R 1 , …, R n do not overlap and the union of all subsets forms the domain. These subsets are called ranges.

In order to use category-partition for test generation, the first step consists in identifying all the variables that define the input domain of the system under test.

These variables can be input parameters for methods, variables that represent the state of the program, environment variables, fields in a form, options to configure the system, or properties in a metamodel. Once these variables are well identified, the domain of each variable must be divided in a set of ranges that form a partition. The process of partitions construction is critical: the more the values for range boundaries are representative, the more relevant are the partitions and thus the more relevant is the test data. On the other hand, there exist no techniques to automatically identify relevant ranges.

In their introduction to software testing, Amman and Offutt (Ammann et al. '08) provide two different approaches for the identification of variables that characterize the input domain and the relevant values for partitioning this domain. The first approach is based on the interface of the system and considers all the variables in isolation. The main benefit of this approach is that it is simple and thus very straightforward to apply, but this might lead to an incomplete domain model (missing links between variables). The second approach is called the 'functionalitybased approach'. In this case, the variables are identified according to the expected functionalities of the system. In particular, the variables can be identified in the requirements documents. In this case, the input domain model can be richer and thus more precise.

The construction of partitions for the domains of all variables is the key creative part of this testing approach. The boundaries for ranges in the partition capture representative values for which the system is supposed to behave in a specific way. These values are manually identified. We distinguish between knowledge-based and default partitioning. Knowledge for knowledge-based partitioning can be found -in the requirements. For example, the requirements of the form in Figure 1 should specify the expected format of phone number or fax numbers. These formats would allow partitioning the domain of integers for these two variables. -in the interface design. For example, in Figure 1, the variables which domain is captured in a combobox, each value in the combobox is a representative value. Here the ranges in the partition are simple ranges that contain one value each. -in the pre and post conditions of methods if the system is deigned by contract. The values in the precondition restrict the input domain for an operation. For example, a pre condition that specifies that an integer parameter should be greater than 5, this indicates that the domain of this variable can be divided in two ranges: greater than 5 and lower or equal than 5. Similarly post conditions can provide information on ranges of values that are expected to produce results that satisfy a property. -in the code itself. Controls on the values of input variables for the system usually capture representative values for these variables. For example, an if statement can capture a different behaviour for the system according to the value of the variable Default partitioning can be used when no information is available on representative values. This consists in defining default ranges to partition the domain for primitive data types. For example, the domain of strings can be partitioned in two ranges: the range that contains the empty string and the range that contains all the non-empty strings. This partition can then guide the selection of String values for the name and organization fields in the form of Figure 1. An empty string for these fields is expected to raise an exception since these fields are mandatory in this form.

In In section 4 we show how we adapted category-partition for the definition of test coverage criteria on metamodels (Fleurey et al. '07).

Combinatorial interaction testing

We have seen how category partition is a possible technique to reduce infinite domains of variables in a finite set of ranges in which the variables should take at least one value. When all the variables have a finite domain (either using categorypartition or because the domain is an enumeration), there remains one issue for the selection of test input: the selection of a subset of all possible combinations of variables. As we have seen in the example of the web form or of adaptable systems, an important factor for the explosion of the size of the input domain is the number of combination of variables. In this section we introduce combinatorial interaction testing (CIT) (Cohen et al. '97;Cohen et al. '96) as a possible approach to select a subset of all combinations while still guaranteeing a certain level of coverage.

CIT is based on the observation that most of the faults are triggered by interactions between a small number of variables (Kuhn et al. '04). This has led to the definition of pairwise testing, or 2-way testing. This technique samples the set of all combinations in such a way that all possible pairs of variable values are included in the set of test data. Pairwise testing has been generalized to t-way testing which samples the input domain to cover all t-way combinations.

For example, let us consider a simple model for a cashier at a movie theatre. The variables and the possible values are summarized in Table 1. There are 4 types of clients, three periods with different fares, three types of guidance for movies (G for no restriction, PG13 for guidance for children below 13 and R for restriction for children below 17) and three payment methods.

There are 128 possible combinations of values with all the four variables in this simple example. Pairwise testing suggests selecting a subset of all combinations in which all the combinations of pairs of variables are present. A possible solution for pairwise testing with our movie example is displayed in Table 1. All the pairs of variables are present, but there are only 12 combinations of input data. This solution is generated by the TConfig tool provided by Alan Williams (Williams '08). From the definition of a covering array, the strength t of the array is the parameter that allows achieving 2-way (pairwise), 3-way or t-way combinations. The k columns on this array correspond to all the variables in the input domain. As it is defined here, all the variables in the array must have the same number v of possible values. Since variables usually do not have the same number of values (e.g., the variables in the movie cashier example have 3 or 4 values), there exist a more general structure called a mixed level covering array. This array also has k columns, but the variables of each column do not necessarily have the same number of values.

The problem of generating a minimal covering array for a set of variables is a complex optimization problem that has been studied in a large number of work (Cohen et al. '97;Cohen et al. '08;Shiba et al. '04;Williams et al. '01). There exist several tools that implement these solution for CIT automatic generation (Czerwonka '08;Utting et al. '07a).

It is important to notice that there exist very few work that have tackled the automatic generation of CIT in the presence of constraints between variables. In our example, there are at least two combinations in Table 1 that should raise an exception in the system: the second combination tests the system with a child who sees a PG13 film and the third combination tests it with a child who sees an R film. In order to include properties that forbid combinations of these values, CIT generation techniques have to allow the introduction of constraints in the algorithms that generate covering array. Recent work by Cohen et al tackles this specific issue (Cohen et al. '08).

Metamodel-based test input generation

Models in model-driven development are productive assets for the development of software systems. This means that models are built in such a way that they can be automatically manipulated by programs. The structure and semantics of models are captured in a metamodel and the programs that manipulate models are referred to as model transformations. The metamodel is thus a model of the input domain for a model transformation.

In Fleurey et al (Fleurey et al. '07), we have proposed several coverage criteria over a metamodel in order to select and qualify a set of models for testing. These criteria are based on the notion of object and model fragments that define constraints on objects and models that must be present in a set of models adequate for testing. The models that serve as test data for a model transformation are called test models.

In this section we introduce how we have adapted category-partition on metamodels to limit the input domain for test models. Then we define the notions of object and model fragments used to define coverage criteria. We also discuss possible strategies to automatically generate models that satisfy these criteria.

Metamodel coverage criteria

In section 2.3 we showed that the size of the domain for a model transformation can be very large because of * multiplicities for some properties of the metamodel. In order to restrict the size of the space that has to be explored for test models generation, we define partitions on the domain and/or multiplicity of each property in a metamodel.

Notation -Default Partition. values is specified by a regular expression. For example {{""}, {".+"}} designates a partition with two ranges: a range which contains the empty string and a range which contains all strings with one or more character.

In the regular expression language, "." designates any character and "+" specifies that the preceding symbol can be repeated once or more.

Figure 5 displays default partitions and ranges for the simple class diagram metamodel of Figure 3 (partitions on the multiplicity of a property are denoted with #). These default partitions, based on the types of properties, are automatically generated for any metamodel by the MMCC tool (MMCC '08). Yet, if there are other representative values in the context of the transformation under test, the tester can enrich the partitions to ensure that they are used in the test models. Based on this partitioning we can define a simple test adequacy criterion that specifies that each range in each partition should be covered by one test model at least. For example, the {{""}, {".+"}} for the name attribute of ASSOCIATION specifies that there should be one test model that contains an ASSOCIATION with any name that is a non-empty String and another ASSOCIATION that has an empty name. Similarly, the {{0}, {1}, {x | x > 1}} partition for the multiplicity of the association reference of CLASSMODEL specifies that there should be a test model that has no association, another model that exactly one association and another model that has more than 1 association.

Stronger adequacy criteria should require specific combinations of values or ranges of values. A naïve strategy would consist in requiring one test model for each combination of ranges, but even in the simple case of the class diagram language, this would mean generating 1296 test models. This represents a very large number of models considering the small number of concepts in the metamodel. We thus have defined criteria that limit the number of combinations that have to be covered while ensuring the coverage of the metamodel (Fleurey et al. '07).

Model and object fragments for test adequacy criteria

A model, instance of a metamodel, can be seen as graph of objects that are instances of the classes in the metamodel. The adequacy criteria on a set of test models are defined as constraints on the objects in a test model. We capture the notion of constraint on one object in an object fragment. An object fragment constrains the values of certain properties by specifying in which range the property should take its value. It is important to note that an object fragment does not necessarily define constraints for all the properties of a class, but can partially constrain the properties (like a template).

In order to define constraints on the combination of object fragments in complete models, we define the notion of model fragment. A model fragment is a collection of object fragments. A model fragment is a constraint that should be satisfied by one test model. specifies that there should be an instance of CLASS in one test model such that the property is_persistent takes its values in the range {true} and the property attrs has a multiplicity in the range {x | x>1}. There is no constraint on the multiplicity of the parents property of the object. The second object fragment specifies that there should be a CLASSMODEL such that the number of classifiers is in the range {1}. There is no constraint on the multiplicity of the association reference of CLASSMODEL. The model fragment specifies that there should be one test model that contains two objects that satisfy both object fragments.

The test adequacy criteria for test models are defined as a set of model fragments that combine ranges of values for the properties according to different strategies. Each criterion specifies a set of model fragments that should be satisfied by a set of test models in order to fulfil the criterion.

Test criterion for metamodel coverage : A test criterion specifies a set of model fragments for a particular source metamodel. These model fragments are built to guarantee class and range coverage as defined in the following rules.

Rule 1-Class coverage: Each concrete class must be instantiated in at least one model fragment.

Rule 2 -Range coverage: Each range of each partition for all properties of the metamodel must be used in at least one model fragment. The weakest coverage criteria we propose are called AllRanges and AllPartitions. They both ensure range coverage by combining property constraints in two different manners. AllRanges enforces the two rules defined above. AllPartitions is a little stronger, as it requires values from all ranges of a property to be used simultaneously in a single test model.

In a metamodel, properties are encapsulated into classes. Based on this structure and on the way metamodels are designed, it is natural that properties of a single class have a stronger semantic relationship with each other than with properties of other classes. To leverage this, we propose four criteria that combine ranges class by class. These criteria differ on the one hand by the number of ranges combinations they require and on the other hand by the way combinations are grouped into model fragments. The formal definition of the four criteria CombΣ, ClassΣ, CombΠ, ClassΠ is provided in (Fleurey et al. '07).

We have built a metamodel (Fleurey et al. '07) that formally captures the notions of partition for properties in a metamodel, of object and model fragment. This metamodel is the basis for the construction of the MMCC tool (MMCC '08). MMCC can generate partitions for the properties of a metamodel, compute the set of object and model fragments according to an adequacy criterion and check whether a set of models satisfies the criterion.

Discussion

A first important point that has to be noted is that the criteria defined previously are based only on the MOF description of the metamodel. However, the input domain of a transformation is usually modeled with additional constraints. For examples, the constraints of Figure 4 restrict the set of possible class diagrams. The pre condition displayed in Figure 7 further restricts the input domain of a model transformation with a pre condition on the class diagram metamodel. Since the definition of model and object fragments does not consider these constraints, some test criteria will require a model fragment in which there is only one class and that this class has only one attribute which in not primary. However this contradicts the pre condition of the transformation. Thus, the test criteria might specify uncoverable model fragments. This is a general issue with test adequacy criteria: they define some objectives that cannot be satisfied by any test case. For example, structural test criteria for programs specify infeasible paths (Adrio et al. '82), or mutation analysis produces equivalent mutants (Offutt et al. '97). Another point worth mentioning is the similarities between the coverage criteria on a metamodel and some criteria that have been studied to generate test data for grammarware programs. Amman et Offutt (Ammann et al. '08) propose simple criteria to ensure 'terminal symbol coverage' and 'production coverage' which are very close to the simplest criteria for metamodel coverage: instantiated each metaclass and each association between these classes. Once these minimal criteria are satisfied by data that cover a grammar, more complex criteria consist in combining complex terms to form larger data that test the interactions between rules. In that case, there is the same combinatorial issue than for metamodels. Lämmel et al (Lämmel et al. '06) directly address this issue and propose 'control mechanisms' to limit the explosion. Hennessy et al (Hennessy et al. '05) study different strategies to limit this explosion and compare them in terms of code coverage and fault detection. In Baudry et al (Baudry et al. '05) we proposed a technique driven by mutation analysis in order to limit the generation of test data to data that can kill mutants.

Automatic synthesis of test models

We can expect several benefits from automatic generation of test models. This can save time and effort during the development of a model transformation. This can help when the transformation evolves or the source metamodel changes to take new concepts into account. It can also assist the manual construction of test models with a tool that automatically completes a model to make conform to the metamodel.

There are two major challenges for the automatic generation of test models 1 Heterogeneous constraints. The constraints that define the input domain and coverage criteria are defined by different actors using different languages. The metamodel is defined by language designers, the restrictions on a metamodel for a specific transformation are defined by transformation developers, test criteria and test objectives are defined by testers. These different models and constraints are expressed with various formalisms: EMOF and OCL for the metamodel, OCL or patterns for the restriction on the input domain, model fragments for test criteria. 2 Automatic constraint solving. Adequate test models are defined by a large set of constraints that have to be considered as a whole in order to generate a correct model. In Sen et al.(Sen et al. '08;Sen et al. '07) we proposed to transform all the different constraints to a common formalism compatible with automatic constraints solving techniques. First we proposed a methodology using constraint logic programming. We present a transformation from a metamodel, constraints, fragments and a partial model to a constraint logic program (CLP). We solve/query the CLP to obtain value assignments for undefined properties in the partial model. In a second approach (Sen et al. '08) we proposed to combine all constraints in an Alloy model. Alloy is a lightweight formal modelling language that allows automatic analysis. In particular it is connected to several SAT solvers that can automatically solve a set of constraints and generate instances in the search space.

Other approaches tackle the automatic generation of models to test a model transformation. Two constructive approaches propose to generate models first and check the constraints afterwards. Brottier et al. (Brottier et al. '06) consider only the class diagram definition of the source metamodel to generate objects and assemble them according to adequacy criteria based on model fragments in order to build complete models. Ehrig et al. (Ehrig et al. '06) analyze the metamodel to generate rules that create instances of all non-abstract classes and links between the instances. The major limitation of these approaches is that they do not consider all the additional constraints on the input domain in the generation process. As a consequence, a large number of generated models do not satisfy the complete set of constraints and thus the transformation cannot process them for testing.

Conclusion

Automatic model transformations are essential assets in the model-driven development of embedded systems. In this lecture we have focused on testing as a possible approach to assess their quality. In particular we have presented the issues related to the selection of test models in the large space of input models for a transformation.

We have first discussed general issues related to testing systems characterized by large domains. We have introduced category-partition and combinatorial interaction testing (CIT) as two existing techniques to limit the combinatorial explosion test data in the presence of a very large input domain. Then, we have focused on the notion of model and object fragments to define test criteria on a metamodel that models the input domain of a model transformation. These criteria aim at selecting test models in the possibly infinite set of input models for a transformation. We also briefly discussed the challenges for automatic generation of models according to these criteria and possible solution.

There remain many challenges for an efficient selection of test data in large domains. Concerning CIT we mentioned that it is important to integrate constraints between variables in the generation of testing configurations in order to obtain licit and meaningful combinations. Similarly, the automatic generation of test models must integrate all the constraints on the input domain in order to generate models that can be processed by the transformation. A related issue is the definition of a precise model for the input domain: it is important that all constraints are captured when building this model to allow automatic analysis and effective test generation. Automatic generation of test models also faces usual issues for automatic test generation: interpretation of the test data, management of these data (priorities, regression testing selection, etc.). More generally, there remain important issues for model transformation testing (Baudry et al. '09). The work presented here on selection criteria is a necessary step towards a global solution.

Figure 1 .

 1 Figure 1. An example of a large domain: a web form

Figure 2 .

 2 Figure 2. Excerpt from Alloy grammar

Figure 3 .

 3 Figure 3. Simple UML Class Diagram Metamodel

  model-driven development, partition testing has been adapted to test executable UML models by Andrews et al. (Andrews et al. '03). They consider a class diagram, OCL pre and post conditions (OMG '03) for methods and activity diagrams to specify the behaviour of each method. From this model, the authors generate an executable form of the model, which can be tested. Dinh-Trong et al. (Dinh-Trong et al. '05) then propose to model test cases using UML2.0 sequence diagrams. From these test cases specifications and the class diagram, they generate a graph that corresponds to all possible execution paths defined in the different scenarios. The authors then use test criteria defined in (Andrews et al. '03) and automatically generate test data and an initial system configuration to cover each execution path.

Figure 5 .

 5 Figure 5. Partitions for the simple CD metamodel

Figure 6 .

 6 Figure 6. Example of object and model fragment Figure 6 displays an example of a model fragment that includes two object fragments. One object fragment [Class::is_persistent {true} Class::#attrs {x | x>1}]specifies that there should be an instance of CLASS in one test model such that the property is_persistent takes its values in the range {true} and the property attrs has a multiplicity in the range {x | x>1}. There is no constraint on the multiplicity of the parents property of the object. The second object fragment specifies that there should be a CLASSMODEL such that the number of classifiers is in the range {1}. There is no constraint on the multiplicity of the association reference of CLASSMODEL. The model fragment specifies that there should be one test model that contains two objects that satisfy both object fragments.The test adequacy criteria for test models are defined as a set of model fragments that combine ranges of values for the properties according to different strategies. Each criterion specifies a set of model fragments that should be satisfied by a set of test models in order to fulfil the criterion.Test criterion for metamodel coverage : A test criterion specifies a set of model fragments for a particular source metamodel. These model fragments are built to guarantee class and range coverage as defined in the following rules.

Figure 7 .

 7 Figure 7. Pre condition for a transformation on class diagrams

  as two black-box techniques for the systematic selection of a subset of values in large domains. These techniques are a specific case of model-based testing. Utting et al (Utting et al. '07b) identify four different approaches to model-based testing: generation of test data from a domain model, generation of test cases from an environmental model, generation of test cases with oracle from a behaviour model, generation of test scripts form abstract tests. Utting et al.'s book focuses mainly on

Table 1 .

 1 Input domain for movie cashier

		Client	Period	Parental Guidance	Payment
		Child	Week	G	Cash
	Possible	Adult	Week-end	PG-13	Debit card
	values	Senior	Holiday	R	Credit card
		Student

Table 2 .

 2 Pairwise data for movie cashier

	Client	Period	Parental Guidance	Payment
	Child	week	G	Cash
	Child	week-end	PG13	Debit card
	Child	Holiday	R	CreditCard
	Adult	Week	PG13	Credi card
	Adult	Week-end	R	Cash
	Adult	Holiday	G	Debit card
	Senior	Week	R	Debit card
	Senior	Week-end	G	Credit card
	Senior	Holiday	PG13	Cash
	Student	Week	G	Cash
	Student	Week-end	PG13	Debit card
	Student	Holiday	R	Credit card
	The generation of T-way CIT is based on the generation of a mathematical object
	called a covering array.

Definition -Covering array. A covering array

CA (N; t, k, v)

is a N × k array on v symbols with the property that every N × t sub-array contains all ordered subsets of size t from v symbols at least once.

Acknowledgements. This work has been partially supported by the European project DiVA (EU FP7 STREP). I am also extremely grateful to Franck Fleurey, Jean-Marie Mottu and Sagar Sen whose PhD work has largely contributed to the understanding of model transformation testing as presented here and to Yves Le Traon for the numerous fruitful discussions on software testing.


Robert France
email: france@cs.colostate.edu

Jean-Marc Jézéquel
email: jezequel@irisa.fr

Editorial for the Special Issue on Aspects and Model-Driven Engineering

Introduction

Model-Driven Engineering (MDE) is an approach to software development in which models are used to drive the development of all software artifacts, from code to documentation to tests. MDE is gaining acceptance in several software domains with demonstrated benefits such as cost reduction and quality improvement.

Modeling is not just about expressing a solution at a higher abstraction level than code. This limited view on modeling has been useful in the past (e.g., assembly languages abstracting away from machine code, 3GL abstracting over assembly languages) and it is still useful today, but much more can be accomplished using modeling techniques.

A model can be an abstraction of an aspect of a system (existing or under development) that handles a given concern. Complex systems typically give rise to more than one model because many aspects must be considered when addressing all relevant software development concerns. These models may be expressed with a general purpose modeling language such as the UML, or with Domain Specific Languages when they are deemed more appropriate.

From a modeling point of view, the terms aspect and model can be considered synonymous. This notion of aspect goes beyond the usual meaning found in the Aspect Oriented Programming community where an aspect is often narrowly defined as the modularization of a cross-cutting concern. Given a "main" decomposition paradigm (such as object orientation), there are many classes of concerns (e.g., security, mobility, availability, distribution) for which clear allocation into modules is not possible (i.e., they are "cross-cutting" concerns).

However, the growing uptake of the term aspect outside of the programming world, has resulted in a growing acceptance of a broader definition in which an aspect is a concern that can be modularized. Work on aspect-oriented techniques above the code level is concerned with the systematic identification, modularization, representation, and composition of concerns. The goal of work in this area is to improve our ability to reason about the problem domain and the corresponding solution, thereby reducing the size of software models and application code, development costs, and maintenance time.

From the above, an important software development activity is the separation of concerns in problem domains. This activity is called analysis. If solutions to these concerns can be described as aspects, the design process can then be characterized as a weaving of these aspects into a base design model. This is not new: designers have been doing this for some time. However, the various aspects are often not explicitly defined, and when they are, it is done informally. Currently, designers do the weaving mentally (i.e., in their heads), and then produce the resulting detailed design as a tangled structure of design elements. This may work for small problems, but it introduces significant accidental complexities when tackling larger problems.

Note that the real challenge here is not how to design the system to take a particular aspect into account: there is significant design know-how in industry on this and it is often captured in the form of design patterns. Taking into account more than one aspect can be a little harder, but many large scale successful projects in industry provide some evidence that engineers know how different concerns should be handled. The real challenge is reducing the effort that the engineer has to expend when grappling with many inter-dependent concerns. For example, in a product-line context, when an engineer wants to replace a variant of an aspect used in a system, she should be able to do this cheaply, quickly and safely. Manually weaving every aspect is not an option.

Unlike many models used in the sciences, models in software and in linguistics have the same nature as the things they model. In software, this provides an opportunity to automatically derive software from its model, that is, to automate the weaving process. This requires models to be formal, and the weaving process be described as a program (i.e., an executable meta-model) manipulating models to produce a detailed design. The detailed design produced by the weaving process can ultimately be transformed to code or at least test suites.

In the above, we make the case that aspects are at the core of Model Driven Engineering. From this perspective, work on aspect-oriented approaches to modeling is important because it can yield significant insights into how the MDE vision of software development can be realized. There is thus a growing community interested in the convergence of Aspect-Oriented Software Development (AOSD) and MDE ideas. In this issue, we present papers that provide good examples of how AOSD and MDE ideas can be integrated to produce techniques that manage software complexity.

Content of this Special Issue

The papers in this issue cover a number of issues including the following:

-Methods and techniques supporting separation, composition, and evolution of aspects identified in different development phases (e.g., requirements, architecture, detailed design, deployment). -Simulating runtime weaving of aspects using aspect-oriented models.

-Techniques for verifying and validating aspect-oriented models.

-AOM case studies that provide significant insights into how aspect-oriented modeling techniques can be applied across the development life-cycle. -Providing tool support for use of integrated AOSD and MDE techniques.

-Providing language support for aspect-oriented modeling.

Submissions

Dynamic Weaving of Aspect-Oriented Executable UML models In this paper, the authors, Lidia Fuentes and Pablo Sanchez, present a model weaver that can be used to simulate runtime weaving of aspects at design time. This allows designers to identify and correct errors that can arise as a result of dynamic weaving before expending significant effort and cost on implementing the design. The ideas are illustrated using a location-aware intelligent transportation system.

On Language-Independent Model Modularisation In this paper, the authors, Florian Heidenreich, Jakob Henriksson, Jendrik Johannes, and Steffen Zschaler, present a generic approach to modularizing and composing models. The approach can be adapted to construct language-and purpose-specific composition techniques for specific modelling languages. The authors claim that the approach can be used as (1) a tool for developing specific model modularisation and composition techniques, and (2) a research instrument for studying properties and concepts of model modularisation.

Aspects across Software Life Cycle: A Goal-Driven Approach

In this paper, the authors, Nan Niu, Yijun Yu, Bruno Gonzalez-Baixauli, Neil Ernst, Julio Cesar Sampaio do Prado Leite, and John Mylopoulos, propose a modeldriven framework for tracing aspects from requirements to testing and implementation. In the framework, goal models are engineering assets and model-to-code transformations are used to bridge the gap between domain concepts and implementation technologies. The frameworks applicability and usefulness is evaluated using an open-source e-commerce platform case study.

Aspect-Oriented Model-Driven Software Product Line Engineering

In this paper, the authors, Iris Groher and Markus Voelter, present an integrated AOSD and MDE approach to variability implementation, management, and tracing in product-line development of software. Features are modeled separately and the models are composed using aspect-oriented composition techniques. Model transformations are used to transform problem models to solution models. The ideas presented in the paper are illustrated using a home automation system case study.

Constraint-based ModelWeaving

In this paper, the authors, Jules White, Jeff Gray, and Douglas C. Schmidt, present a constraint-based weaving technique that reduces model weaving to a constraint satisfaction problem (CSP). A constraint solver is used to deduce an appropriate weaving strategy. The paper also presents the results of a case study in which the constraint-based weaving technique is applied to an enterprise Java application. The evaluation showed that use of the technique resulted in a reduction of manual effort.

MATA: A Unified Approach for Composing UML Aspect Models based on Graph Transformation

In this paper, the authors, Jon Whittle, Praveen Jayaraman, Ahmed Elkhodary, Ana Moreira and Joo Arajo, describe an aspect-oriented modeling technique called MATA (Modeling Aspects Using a Transformation Approach). MATA uses graph transformations to specify and compose aspects. In MATA, any model element can be a join point and composition is a special case of model transformation. MATA has been applied to a number of realistic case studies and is supported by a tool built on top of IBM Rational Software Modeler.

Model Driven Theme/UML In this paper, the authors, Andrew Carton, Cormac Driver, Andrew Jackson and Siobhan Clarke, describe how the Theme/UML approach to modularizing and composing concerns can be integrated with MDE techniques. The resulting method includes a tool-supported technique for transforming platform-independent models to platform-specific models. The transformation tool utilizes standards defined in the Object Management Group's Model Driven Architecture. The paper also describes a process that guides the use of the MDE/AOSD techniques. The utility of the approach is demonstrated through a case study.

Biographies

Robert France: Professor Robert France is a full professor in the Department of Computer Science at Colorado State University. He is actively engaged in research on object-oriented (OO) modeling, aspect-oriented modeling, model transformations, and formal description techniques. He is an editor-in-chief for the journal on Software and System Modeling (SoSyM) and is an Software Area Editor for the IEEE Computer. He was organizing chair for the Second Conference on the UML, past chair of the UML Conference steering committee and member of the MoDELS Conference steering committee.

Jean-Marc Jézéquel: Prof. Jean-Marc Jezequel received an engineering degree in Telecommunications from the ENSTB in 1986, and a Ph.D. degree in Computer Science from the University of Rennes, France, in 1989. He first worked in Telecom industry (at Transpac) before joining the CNRS (Centre National de la Recherche Scientifique) in 1991. Since October 2000, he is a Professor at the University of Rennes, leading an INRIA research team called Triskell. His interests include model driven software engineering based on object oriented technologies for telecommunications and distributed systems. He is the author of the books "Object-Oriented Software Engineering with Eiffel" and "Design Patterns and Contracts" (Addison-Wesley 1996 and1999), and of more than 100 publications in international journals and conferences. He is a member of the steering committees of the AOSD and the MODELS/UML conference series. He also served on the editorial boards of IEEE Transactions on Software Engineering and on the Journal on Software and System Modeling: SoSyM and the Journal of Object Technology: JOT.

For more information please visit http://www.irisa.fr/prive/jezequel