talk at ictm '12

Download Talk at ICTM '12

If you can't read please download the document

Upload: jacome-cunha

Post on 16-Apr-2017

3.981 views

Category:

Technology


1 download

TRANSCRIPT

Jcome Cunha1, Joo P. Fernandes12, Jorge Mendes1, Hugo Pacheco1, Joo Saraiva1

1 HASLab / INESC TEC & Universidade do Minho, Portugal2 Universidade do Porto, Portugal

ICMT 2012

Bidirectional Transformation
of
Model-Driven Spreadsheets

IntroductionClassSheets as Spreadsheet Models

Bidirectional Spreadsheet Evolution EnvironmentMDSheet Framework

Implementation

Conclusions and Future Work

Agenda

Introduction

Highly flexible end-users programming environmenthighly error prone

Widely used for decision makingpotential negative economic impact

Do you agree?

Spreadsheets

http://www.wiscnews.com/baraboonewsrepublic/news/local/article_7672b6c6-22d5-11e1-8398-001871e3ce6c.html

http://www.sltrib.com/sltrib/news/53893888-78/state-error-office-education.html.csp http://www.sltrib.com/sltrib/news/54128921-78/session-education-special-lawmakers.html.csp

EuSpRIG Original Horror Storieshttp://www.eusprig.org/stories.htm

Many More Horror Stories

In many cases spreadsheets start simple

They get bigger and bigger

Many rows, columns, worksheets, dependencies, etc.

Harder and harder to understand

Why Spreadsheet Models?

Models allow to abstract and better understand the underlying problem

ClassSheet models allow to specify spreadsheets

Introduced by Engels and Erwig to model the business logic of spreadsheet data

They allow to model spreadsheets using object-oriented concepts

Why Spreadsheet Models?

We infer models from spreadsheet data (VL/HCC '10)

We embed such models in OpenOffice/LibreOffice providing a MDE environment (VL/HCC '11, ICSE '12)

Conforms ClassSheet Spreadsheet data

Overview of our Solution

ModelInstance

Model-Driven Spreadsheet Environment
(Instance/Data Worksheet)

Model-Driven Spreadsheet Environment
(Model/ClassSheet Worksheet)

This generated spreadsheet guides users in introducing correct dataThe spreadsheet includes mechanisms that guarantee that the spreadsheet data always conforms to the model after an user update

In previous work we used data refinement to allow model evolution and co-evolution of data (FASE '11 / VL/HCC '11)

In this paper:We define a bidirectional transformational system to allow both model and instance evolution and co-evolution

Our Work

ClassSheets as Spreadsheet Models

Vertically Expandable Tables

ClassSheet Model

Spreadsheet Data

Horizontally Expandable Tables

ClassSheet Model

Spreadsheet Data

Relationship Tables

ClassSheet Model

Spreadsheet Data

It is not possible to edit/evolve the data structureToo restrictive to regular spreadsheet users

Some transformations are not easy to perform on the modelChanging the data and inferring a new model is easier

Limitations

The MDSheet Framework

Embedding of ClassSheet models

Framework for bidirectional transformations

Extending OpenOffice/LibreOffice

Combining Techniques

Bidirectional Transformation System

Architecture

Example of a Transformation we Want:
Add a New Column

(Model) Operations on ClassSheets

(Data) Operations on Instances

Bidirectional Transformation Functions

Baseado em haskell

Integrado no OO

Clicanca-se em botoes

Espetacular

Basic

Example: Add a Column and a Class

Correctness

Hippocraticness (from)

Invertibillity (to)

History ignorance

Bidirectional Transformation Properties

Correctness: we generate models and instances that always keep the conformance relationship

Hippcraticness: if we change de data and the data still conforms to the model, then we don't change the model

Invertibility: literal

History ignorance: each update is context independent, that is, there is no specific semantic for one update or one update after another

Conclusions and Future Work

Conclusions

Framework for bidirectional transformationsWhen evolving the data a new model is inferred

When evolving the model the data changes

The data always conforms to the model

Available as a OpenOffice/LibreOffice extensionTool demo next week at ICSE

Future Work

We want to consider more than one instance of each model

Use automata to formalize ClassSheetsCreate an algebra

Check model properties

Evolve in a specified direction

Thank you!

http://ssaapp.di.uminho.pt
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WebHome