Invited talk at SoTeSoLa '12

Uploaded on


More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    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


  • 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! 3
  • 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 ● 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: FATBIT: 28