The 26th GRACE Seminar on Advanced Software Science and Engineering

Time: 13:00-15:00, Oct. 23rd, 2009
Place: Lecture Room 1 (2005), 20F, National Institute of Informatics
Inquiry: Kenji Tei (
Fee: Free
You need to register your name, affiliation and e-mail address in
advance. Please send a mail titled “26th Grace Seminar” including
the information to
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

First Speaker: Bo Wang, Peking University

Title: Transform Requirements from Use Cases to Feature Models

Domain analysis, the first phase of domain engineering, is the process of analyzing related software systems in a domain to find the common and variable assets. In recent years, feature-oriented domain analysis has been widely adopted to capture commonality and variability of the requirements in a domain. The construction of feature models is the key activity in feature-oriented domain analysis. In this talk, I will give a brief description of some recent research on feature-oriented domain analysis and introduce our recent work, which help construct feature models by analyzing the common and variable requirements in use cases.


Second Speaker: Soichiro Hidaka, National Institute of Informatics

Title: Bidirectional graph transformation based on structural recursion

Data processing like query-execution can be captured as
transformation from source (database) to target (view). Since this
kind of transformation involves extraction of information of interest
or user-friendly formatting, it may be easier to make updates on the
target side rather than on the source, and propagate the update back
to source automatically.

Bidirectional transformation is a key for this propagation, and has
been extensively studied in the context of synchronization of
distributed documents and data, as well as in view updates in
traditional databases. Despite promising results on these area,
bidirectional GRAPH transformation remains a non-trivial problem.

In model-driven software development, various software artifacts are
produced as intermediate results from high level design to low level
implementation via model transformation. It is desirable to reflect
modification upstream when defects are encountered downstream.
Since graph is suited to represent these artifacts, bidirectional
graph transformation will be the basis of such reflection.

Graph generalizes strings and trees that had been the scope of
previous research, and capable of directly representing relationships
between various entities. However, confluence and cycles might make
graph processing difficult especially in bidirectional settings.

In this presentation, we propose the first language-based solution —
building a bigger transformation from fixed number of operators —
towards solving this challenging problem. Our approach is based on
extension of existing graph query language UnQL that has solid formal
(unidirectional) semantics. In particular, we give a well-behaved
bidirectional semantics for structural recursion on graphs, the most
essential construct in UnCAL which is the underlying graph algebra
for UnQL.

We carefully refine the existing forward evaluation of structural
recursion so that it can produce useful trace information for later
backward evaluation, and extending the bulk semantics of structural
recursion — individual edge and reachable parts thereof can be
independently transformed to reorganize the result — from forward
evaluation to backward evaluation.

We have formally proved the well-behavedness of our bidirectional
semantics, fully implemented bidirectional transformation engine for
UnQL, and confirmed the effectiveness of our approach through many
non-trivial examples including typical transformation in database and
software engineering.

This entry was posted in Research, Seminar. Bookmark the permalink.

Comments are closed.