Invited talk at SoTeSoLa '12

3,818 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
3,818
On SlideShare
0
From Embeds
0
Number of Embeds
2,941
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

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
  • Invited talk at SoTeSoLa '12

    1. 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. 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. 3. Still... Economy losses of $10 billion/year! 3http://www.eusprig.org/stories.htm
    4. 4. The Contribution of Models 4
    5. 5. ClassSheets - Models in SpreadsheetsClassSheets: automatic generation of spreadsheet applications from 5object-oriented specifications, Gregor Engels, Martin Erwig, ASE05
    6. 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. 7. I. ClassSheet Model Inference 7
    8. 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. 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. 10. II. Embedding ClassSheets in Spreadsheets 10
    11. 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. 12. Vertically Expandable Tables 12
    13. 13. Horizontally Expandable Tables 13
    14. 14. Relationship Tables 14
    15. 15. III. Co-evolution of Models and Instances 15
    16. 16. Model-Driven Spreadsheet Environment (Model/ClassSheet Worksheet) 16
    17. 17. Model-Driven Spreadsheet Environment (Instance/Data Worksheet) 17
    18. 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. 19. Bidirectional Transformation System 19
    20. 20. Example of a Transformation we Want: Add a New Column 20
    21. 21. (Model) Operations on ClassSheets 21
    22. 22. (Data) Operations on Instances 22
    23. 23. Bidirectional Transformation Functions 23
    24. 24. Example: Add a Column and a Class 24
    25. 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. 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. 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. 28. Thank You! SSaaPP: http://ssaapp.di.uminho.pt FATBIT:http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WebHome 28

    ×