Embedding and Evolution of Spreadsheet Models in Spreadsheet...
Transcript of Embedding and Evolution of Spreadsheet Models in Spreadsheet...
Jácome Cunha, Jorge Mendes, João Saraiva
Universidade do Minho
Portugal
João Paulo Fernandes
Universidade do Minho & Universidade do Porto
Portugal
VL/HCC 2011
September 18-22, Pittsburgh, PA, USA
Embedding and Evolution of Spreadsheet Models in Spreadsheet Systems
Embedding and Evolution of Spreadsheet Models in Spreadsheet Systems
2
Agenda
● Introduction
● Embedding ClassSheets into Spreadsheet Systems
● Co-Evolution of Spreadsheet Models and Data
● Conclusions and Future Work
3
IntroductionIntroduction
4
Spreadsheets are widely usedSpreadsheets are widely used
Image taken from http://www.flickr.com/photos/cosmosfan/2414002070/Image taken from http://www.flickr.com/photos/cosmosfan/2414002070/
Spreadsheets are widely usedSpreadsheets are widely usedSpreadsheets are widely usedSpreadsheets are widely used
5
Spreadsheets contain many errorsSpreadsheets contain many errors
Image taken from http://www.computerrepairmaintenance.com/secrets-to-fixing-computer-problems/Image taken from http://www.computerrepairmaintenance.com/secrets-to-fixing-computer-problems/
6
An ExampleAn Example
7
Model-based approach promises good resultsModel-based approach promises good results
Images taken from http://www.getopt.org/ecimf/contrib/onto/REA/REA-UML.gif and http://www.telecom-lille1.eu/people/Vanwormhoudt/siteEMFOCL/tutoriel/TutorialEMFOCL1.htm and http://weblogs.asp.net/scottgu/archive/2006/07/12/Tip_2F00_Trick_3A00_-Online-Database-Schema-Samples-Library.aspxImages taken from http://www.getopt.org/ecimf/contrib/onto/REA/REA-UML.gif and http://www.telecom-lille1.eu/people/Vanwormhoudt/siteEMFOCL/tutoriel/TutorialEMFOCL1.htm and http://weblogs.asp.net/scottgu/archive/2006/07/12/Tip_2F00_Trick_3A00_-Online-Database-Schema-Samples-Library.aspx
8
ClassSheets to the rescue!ClassSheets to the rescue!
9
Embedding ClassSheets into
Spreadsheet Systems
Embedding ClassSheets into
Spreadsheet Systems
10
● Embedding DSLs in general purpose programming languages is a recurring strategy
– systems inherit all the power of the host language
– implementation effort is much reduced
● We will present the embedding of the ClassSheet (DSL) model in traditional spreadsheet systems
11
Vertically Expandable TablesVertically Expandable Tables
12
Horizontally Expandable TablesHorizontally Expandable Tables
13
Relationship TablesRelationship Tables
14
Co-Evolution of Spreadsheet Models and Data
Co-Evolution of Spreadsheet Models and Data
15
Data Refinements - 2LTData Refinements - 2LT
16
seq2index ['a', 'z'] = {1 → 'a', 2 → 'z'}
list {1 → 'a', 2 → 'z'} = ['a', 'z']
Data Refinements - 2LTData Refinements - 2LT
17
Co-Evolution RulesCo-Evolution Rules
● Combinator rules: after, before, at
● Semantic rules: insert a column, make it expandable
● Layout rules: change orientation (transpose)
18
Add/Remove Column RuleAdd/Remove Column Rule
19
20
Solving the ProblemSolving the Problem
21
ConclusionsConclusions
● We have shown how to embed a visual DSL into a traditional spreadsheet system
● This allows user to create models and instances in the same environment
● We used a formal framework to design and implement evolution steps
● The model and its instances are always synchronized
22
Future WorkFuture Work
● Evaluate the embedded modeling language● Evaluate the impact of the new environment in
efficiency (time) and effectiveness (errors)
● Extend the ClassSheet model with restrictions● Allow users to change data and infer the “best”
evolved ClassSheet model