Your SlideShare is downloading. ×
Invited talk at SoTeSoLa '12
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Invited talk at SoTeSoLa '12

2,797
views

Published on

Published in: Technology, Business

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,797
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • This generated spreadsheet guides users in introducing correct data The spreadsheet includes mechanisms that guarantee that the spreadsheet data always conforms to the model after an user update
  • Baseado em haskell Integrado no OO Clicanca-se em botoes Espetacular Basic
  • Transcript

    • 1. Model-based Spreadsheet Engineering Jácome Cunha1,2, João P. Fernandes1, and the other team members of the SSaaPP and FATBIT research projects1 HASLab / INESC TEC & Universidade do Minho, Portugal 2 Instituto Politécnico do Porto, Portugal, and Oregon State University, USA SoTeSoLa 2012
    • 2. Why do Spreadsheets Matter? 95% of all U.S. firms 90% of all analysts in industry50% of all spreadsheets are the basis for decisions 2
    • 3. Still... Economy losses of $10 billion/year! 3http://www.eusprig.org/stories.htm
    • 4. The Contribution of Models 4
    • 5. ClassSheets - Models in SpreadsheetsClassSheets: automatic generation of spreadsheet applications from 5object-oriented specifications, Gregor Engels, Martin Erwig, ASE05
    • 6. Model-based Spreadsheet Engineering I. ClassSheet Model Inference [PEPM 09, VL/HCC 10]II. Embedding ClassSheets in Spreadsheets [VL/HCC 11, SAC 12] III. Co-evolution of Models and Instances [FASE 11, ICMT 12, ICSE 12] 6
    • 7. I. ClassSheet Model Inference 7
    • 8. I. ClassSheet Model Inference Data mining techniques Database normalization theoryAutomatically Inferring ClassSheet Models from Spreadsheets, Jácome Cunha,Martin Erwig, João Saraiva, VL/HCC10 8
    • 9. Pruning Functional Dependencies● Label semantics: usually keys are labeled “code” or “id”● Label arrangement: we prefer FDs respecting the order of columns● Antecedent size: small keys are preferable● Ratio: small antecedents and big consequents● Single value columns: columns always with the same value are too intrusive 9
    • 10. II. Embedding ClassSheets in Spreadsheets 10
    • 11. II. Embedding ClassSheets in Spreadsheets Powerful interactive interface Single environment for spreadsheet evolution Model-instance synchronization Syntactic restrictions Embedding and Evolution of Spreadsheet Models in Spreadsheet Systems, Jácome Cunha, Jorge Mendes, João P. Fernandes, João Saraiva, VL/HCC 11 11
    • 12. Vertically Expandable Tables 12
    • 13. Horizontally Expandable Tables 13
    • 14. Relationship Tables 14
    • 15. III. Co-evolution of Models and Instances 15
    • 16. Model-Driven Spreadsheet Environment (Model/ClassSheet Worksheet) 16
    • 17. Model-Driven Spreadsheet Environment (Instance/Data Worksheet) 17
    • 18. Type-safe Evolution of Spreadsheets, Jácome Cunha, Joost Visser, TiagoAlves, João Saraiva, FASE11 18Bidirectional Transformation of Model-Driven Spreadsheets, Jácome Cunha,João P. Fernandes, Jorge Mendes, Hugo Pacheco, and João Saraiva, ICMT 11
    • 19. Bidirectional Transformation System 19
    • 20. Example of a Transformation we Want: Add a New Column 20
    • 21. (Model) Operations on ClassSheets 21
    • 22. (Data) Operations on Instances 22
    • 23. Bidirectional Transformation Functions 23
    • 24. Example: Add a Column and a Class 24
    • 25. MDSheet ● Available at http://ssaapp.di.uminho.pt ● Built out of ~7200 LOC: ● ~3700 in Haskell, for the evolution and inference ● ~600 in Basic, for the embedding ● ~2880 in C++, for gluing all componentsMDSheet: A Framework for Model-driven Spreadsheet Engineering, Jácome 25Cunha, João P. Fernandes, Jorge Mendes, João Saraiva, ICSE 12
    • 26. Conclusions● We created a technique to infer ClassSheet models from legacy spreadsheets● We have embedded 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 co-evolution steps● The model and its instances are always synchronized 26
    • 27. Conclusions● Framework for bidirectional transformations ● When 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 extension 27
    • 28. Thank You! SSaaPP: http://ssaapp.di.uminho.pt FATBIT:http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WebHome 28