Model Querying with Graphical Notation of QVT ...

6 downloads 5080 Views 415KB Size Report
Email: [email protected] .... code generator that can automatically generate executable XSLT [34] programs for the ..... 9) puts the result of a query into the html.
UNU-IIST International Institute for Software Technology

Model Querying with Graphical Notation of QVT Relations Dan Li, Xiaoshan Li and Volker Stolz March 2012

UNU-IIST Report No. 455

R

UNU-IIST and UNU-IIST Reports UNU-IIST (United Nations University International Institute for Software Technology) is a Research and Training Centre of the United Nations University (UNU). It is based in Macao, and was founded in 1991. It started operations in July 1992. UNU-IIST is jointly funded by the government of Macao and the governments of the People’s Republic of China and Portugal through a contribution to the UNU Endowment Fund. As well as providing twothirds of the endowment fund, the Macao authorities also supply UNU-IIST with its office premises and furniture and subsidise fellow accommodation. The mission of UNU-IIST is to assist developing countries in the application and development of software technology. UNU-IIST contributes through its programmatic activities: 1. Advanced development projects, in which software techniques supported by tools are applied, 2. Research projects, in which new techniques for software development are investigated, 3. Curriculum development projects, in which courses of software technology for universities in developing countries are developed, 4. University development projects, which complement the curriculum development projects by aiming to strengthen all aspects of computer science teaching in universities in developing countries, 5. Schools and Courses, which typically teach advanced software development techniques, 6. Events, in which conferences and workshops are organised or supported by UNU-IIST, and 7. Dissemination, in which UNU-IIST regularly distributes to developing countries information on international progress of software technology. Fellows, who are young scientists and engineers from developing countries, are invited to actively participate in all these projects. By doing the projects they are trained. At present, the technical focus of UNU-IIST is on formal methods for software development. UNU-IIST is an internationally recognised center in the area of formal methods. However, no software technique is universally applicable. We are prepared to choose complementary techniques for our projects, if necessary. UNU-IIST produces a report series. Reports are either Research R , Technical T , Compendia C or Administrative A . They are records of UNU-IIST activities and research and development achievements. Many of the reports are also published in conference proceedings and journals. Please write to UNU-IIST at P.O. Box 3058, Macao or visit UNU-IIST’s home page: http://www.iist.unu.edu, if you would like to know more about UNU-IIST and its report series.

Peter Haddawy, Director

UNU-IIST International Institute for Software Technology P.O. Box 3058 Macao

Model Querying with Graphical Notation of QVT Relations Dan Li, Xiaoshan Li and Volker Stolz

Abstract As a standard high-level model transformation language, QVT Relations defines a graphical notation, which provides a concise, intuitive way to specify transformations. However, QVT Relations relies only on the textual language OCL for model querying, leading to verbose and complicated OCL expressions. To cope with the problem, we present a graphical model query facility based on the checking semantics and pattern matching of QVT Relations. The query facility borrows from QVT Relations the graphical notation. In addition we propose an approach to map the queries into XSLT to facilitate their execution. We have developed a tool for designing the queries and automatically generating the XSLT programs. Keywords: Graphical model querying, UML, QVT, OCL, XPath

Dan Li is a PhD student of University of Macau and an associate researcher from Guizhou Academy of Sciences, China. His research interest is model driven development and model transformations. Email: [email protected] Xiaoshan Li is an associate professor of University of Macau. He research interest is in formal specification and verification. Email: [email protected] Volker Stolz is an adjunct research fellow at UNU-IIST. He is a member of the rCOS group and a principal investigator on the aˇ ˛rApplied Runtime Verificationa´ ˛s project. His interest are model driven development, and the application of formal methods to software engineering. Email: [email protected] The authors acknowledge support from the project ARV and GAVES funded by Macau Science and Technology Development Fund.

c 2012 by UNU-IIST Copyright

Contents

5

Contents 1 Introduction

7

2 Model Querying with QVT-R Graphical Notation 2.1 QVT Relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Syntax of the query facility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Semantics of the query facility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8 8 9 11

3 Mapping Queries to XPath 3.1 XPath path expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Mapping domain pattern to path expressions . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Generating XSLT functions for queries . . . . . . . . . . . . . . . . . . . . . . . . . . .

12 12 14 15

4 Tool Design 4.1 UML profile for QVT-R graphical query . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 The graphical editor and code generator . . . . . . . . . . . . . . . . . . . . . . . . . .

16 16 17

5 Case Study 5.1 The set of queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18 19 22

6 Related Work

23

7 Conclusion

24

Report No. 455, March 2012

UNU-IIST, P.O. Box 3058, Macao

Introduction

7

1 Introduction Over the last decade, model-driven development (MDD) has emerged as a promising paradigm in software engineering to cope with the increasing complexity and shorter life cycle of software development. MDD promotes the use of models, instead of program code, as primary artifacts in the software development. Complete models for large-scale systems are among the most complex information structures, because they capture the relevant aspects of a system from different perspectives and at different levels of abstraction. Thus the MDD paradigm poses a set of challenges to software engineering for model manipulation, including how to precisely and effectively analyze and transform models. For that, a facility to retrieve information from models, such as model querying, is a prerequisite. To address the need for standardization in model manipulation, the Object Management Group (OMG) has proposed a set of standards. Among them, the Unified Modeling Language (UML) [13] is a visual language for defining models, and the Meta Object Facility (MOF) [23] is another visual language to define the abstract syntax of modeling languages. In addition the MOF 2.0 Query/View/Transformation (QVT) [25] is a standard for model transformations and model querying. For defining metamodels and models, OMG adopts a graphical notation, which is visually attractive since this provides a significant advantage in clarifying understanding and intention among participants of software development [32]. The QVT consists of two user-level languages, QVT-Operational Mappings and QVT Relations (QVTR), and a low-level language, QVT-Core. QVT-R allows for specifying model transformations declaratively, and thus is more user-friendly than the other QVT languages in our opinion, and enables formal reasoning about transformations. Moreover, QVT-R has another distinguishing feature: it has two concrete syntax styles: textual and graphical. In its graphical notation, UML object diagrams are used to define the structural matching patterns of transformation rules. The graphical notation of QVT-R provides a concise, intuitive and yet powerful way to define model transformations. However, QVT-R only uses the graphical notation to specify transformation rules. The QVT specification does not provide any facility to visually querying models. Instead, QVT-R heavily relies on a textual language, the Object Constraint Language (OCL) [26], for defining model queries. OCL is the de-facto standard for expressing complex properties of UML models, and its ability to navigate models and to form collections of objects also make it suitable as a query language. Even it has enough expressive power, OCL suffers from several shortcomings for model querying. First, the standard OCL expressions are claimed to be too verbose, even defining simple queries quickly leads to complex query statements [27]. One of the reasons for that is the strong typing of OCL. Type conversions are frequently used in the expressions. Secondly, OCL lacks some features such as using wildcards likes "∗" or "?" to match textual attributes. It also lacks basic statistical functions, such as avg(). Furthermore, OCL expressions are defined on the visual representations of metamodels and models, textually specifying the connections between model elements and what properties they refer to are tedious, difficult and error-prone. To overcome these limitations, supporting visual model querying is inevitable for QVT-R to drive for success. The query facility will help designers in the constructions of a query by graphically selecting model elements from the metamodels, and give them a visual conception of the query. A graphical visualization would facilitate their intuitive comprehension on where a QVT-R rule will actually modify

Report No. 455, March 2012

UNU-IIST, P.O. Box 3058, Macao

Model Querying with QVT-R Graphical Notation

8

the models. Meanwhile, features needed in model querying will be reinforced in the facility. In [17], we reported the QVTR-XSLT, a tool for supporting the graphical notation of QVT-R. The tool provides a graphical editor in which a transformation can be specified using the graphical syntax, and a code generator that can automatically generate executable XSLT [34] programs for the transformation. Features like transformation inheritance, in-place transformations, multiple source and target models and additional transformation parameters are supported by the tool. In this paper, we present a graphical model query facility by extending the graphical notation of QVT-R. It has been implemented on the basis of the QVTR-XSLT tool. Thus the queries can be graphically specified, and become executable as XSLT programs. The remainder of the paper is structured as follows. In Section 2, after briefly reviewing the basic concepts of QVT Relations, we describe the syntax and semantics of the graphical model query facility. We discuss the techniques to implement the query facility in Section 3, and Section 4 presents the design of the supporting tool. Section 5 gives a case study for using the tool to query the model of UML superstructure. Finally, we discuss related work in Section 6 and draw conclusions in Section 7.

2 Model Querying with QVT-R Graphical Notation In this section we first briefly review QVT Relations with a simple example, and then introduce the abstract syntax, concrete syntax and semantics of the graphical model query facility.

2.1 QVT Relations QVT Relations (QVT-R) is a high-level, user friendly declarative model transformation language. In QVT-R, a model transformation is defined as a set of rules called relations. A transformation has one or more typed models, which are instances of the metamodels. Moreover, a transformation may own functions and queries, which are side-effect-free operations defined using OCL. A relation specifies a set of domains, one for each participating typed model, relates to each others. A domain is defined by a domain pattern that can be viewed as an object diagram of object nodes, their properties and links originating from the metamodels. In addition, free variables can be declared and bound to the objects or the values of properties. In fact, it is the free variables that make a pattern different from a normal object diagram. A domain can be marked as checkonly or enforced. Optionally, a relation may have primitive domains, a when and a where clause. The primitive domains serve as parameters of the relation. The when clause indicates the conditions under which the relation holds, and the where clause provides additional conditions, apart from the ones expressed by the domain patterns themselves, that must be satisfied by all pattern elements in the relation [25]. New variables can defined in the where clause. Furthermore functions, queries and relations can be called from the clauses.

Report No. 455, March 2012

UNU-IIST, P.O. Box 3058, Macao

Model Querying with QVT-R Graphical Notation

9

Figure 1: Example QVT relation in graphical notation Fig. 1 shows an example of QVT relation ClassToTable in graphical notation. It consists of two domains. The domain in left, which concerns the typed model uml, is a checkonly domain, while the domain in the right is enforced and comes from typed model rdbms. When the relation is executed in the direction of rdbms, we first ensure the elements p and s are bound as specified in the when clause. Then the checkonly domain pattern is searched in the source model under the context of p by way of pattern matching. If a matching is found, variables declared in the domain pattern and the where clause, such as c, cn and prefix in the example, are bound to objects or properties of the source model. Next, the enforced domain pattern acts as a template to create the corresponding objects and links in the target model under the context of s using the bound variables. For example, an element t of type table is created and its name property is assigned the value of variable cn. Finally, the relations called in the where clause, such as AttibuteToColumn, are invoked. The model transformation terminates as soon as none of the relations is applicable on the source model.

2.2 Syntax of the query facility A QVT-R transformation may contain a set of queries, each has an OCL expression as the body. By evaluating the OCL expression, a query retrieves information from a model, as a collection of model elements with desired properties or statistical data of the model. Very much like the role the source domain pattern plays in a relation, a query uses the pattern matching mechanism to search for model elements that conform to the structural pattern and attribute constraints given by the OCL expression. This inspires us that a query can be expressed like a relation with only one domain pattern using the graphical notation. Naturally, our approach still depends on OCL, as the graphical notation mostly covers structural aspects of a query. Operations related to iteration and aggregation will be specified textually either in OCL or XSLT-functions. We define the abstract syntax of the graphical query facility using the metamodel shown in Fig. 2. The metamodel is adapted from the QVT Relations package [25] by adding two metaclasses, Query and Parameter. The metaclasses in light yellow boxes are imported from EMOF specification [23]. In the metamodel, a query consists of:

Report No. 455, March 2012

UNU-IIST, P.O. Box 3058, Macao

Model Querying with QVT-R Graphical Notation

10

Query

when

Pattern

0..1 where 0..1 0..*

parameter predicate 0..*

Parameter

Predicate type 1

domain 0..1

Type

Domain 1 conditionExp OclExpression

pattern 1

0..1

DomainPattern

templateExp

TemplateExp

1 result 0..1 rootVariable 0..1

Variable 1

bindsTo

bindsTo

CollectionTemplateExp

type 1 referredClass

member 1..*

ObjectTemplateExp

OclExpression

forAllSub : Boolean

Class

Type

PrimitiveType value 1

part *

referredProperty

PropertyTemplateItem

0..*

Property

Figure 2: Metamodel of the model query • a domain defined by a domain pattern that consists of a set of linked template expressions (templateExp), each of them can be an object template expression (objectTemp) or a collection template expression. The former specifies a pattern that refers to a class of the corresponding metamodel. An objectTemp may contain a collection of property template items (propertyTemp) corresponding to the properties of the referred class. A collection template expression specifies a pattern that matches a collection of elements. Note the templateExp itself is also an OCL expression, it may be hierarchically contained in other templateExps. The forAllSub attribute of the objectTemp indicates whether we want to search all contained child at any level of depth in the hierarchy of a mode. A templateExp or a propertyTemp may declare a variable and bind to it. We denote all variables declared in the domain as a set Vd . In addition, a propertyTemp can be bound to an OCL expression which contains no variables. • a when clause is a pattern that consists of set of predicates separated by the semicolon ";". A predicate here is a boolean expression in the form of hvarihopihexpi, where var ∈ Vd , exp is an OCL expression which involves only variables defined in the where clause or parameters, and op ∈ {=,,>,>=,

Suggest Documents