Model-based     Spreadsheet Engineering                  Jácome Cunhaand the other team members of the SSaaPP and FATBIT  ...
Why do Spreadsheets Matter?               95% of all U.S. firms          90% of all analysts in industry50% of all spreads...
Still...                                                3http://www.eusprig.org/stories.htm
The Contribution of Models                             4
ClassSheets - Models in SpreadsheetsClassSheets: automatic generation of spreadsheet applications from                    ...
Model-based Spreadsheet Engineering      I. ClassSheet Model Inference          [PEPM 09, VL/HCC 10]II. Embedding ClassShe...
I. ClassSheet Model Inference                                7
I. ClassSheet Model Inference                   Data mining techniques                Database normalization theoryAutomat...
Pruning Functional Dependencies●   Label semantics: usually keys are labeled    “code” or “id”●   Label arrangement: we pr...
II. Embedding ClassSheets in Spreadsheets                                        10
II. Embedding ClassSheets in Spreadsheets                    Powerful interactive interface                    Single envi...
Vertically Expandable Tables                               12
Horizontally Expandable Tables                                 13
Relationship Tables                      14
III. Co-evolution of Models and Instances                                            15
Model-Driven Spreadsheet Environment   (Model/ClassSheet Worksheet)                                       16
Model-Driven Spreadsheet Environment      (Instance/Data Worksheet)                                       17
Type-safe Evolution of Spreadsheets, Jácome Cunha, Joost Visser, TiagoAlves, João Saraiva, FASE11                         ...
Bidirectional Transformation System                                      19
Example of a Transformation we Want:         Add a New Column                                       20
(Model) Operations on ClassSheets                                    21
(Data) Operations on Instances                                 22
Bidirectional Transformation Functions                                         23
Example: Add a Column and a Class                                    24
MDSheet ●   Available at http://ssaapp.di.uminho.pt ●   Built out of ~7200 LOC:         ●             ~3700   in Haskell, ...
Conclusions●   We created a technique to infer ClassSheet    models from legacy spreadsheets●   We have embedded a visual ...
Conclusions●   Framework for bidirectional transformations       ●   When evolving the data a new model is inferred       ...
Thank You!         SSaaPP:http://ssaapp.di.uminho.pt          FATBIT: http://fatbit.di.uminho.pt                          ...
Upcoming SlideShare
Loading in …5
×

Talk at the Joint SSaaPP/FATBIT 2012 Workshop

3,599 views
3,620 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,599
On SlideShare
0
From Embeds
0
Number of Embeds
2,847
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
  • Talk at the Joint SSaaPP/FATBIT 2012 Workshop

    1. 1. Model-based Spreadsheet Engineering Jácome Cunhaand the other team members of the SSaaPP and FATBIT research projects HASLab / INESC TEC & Universidade do Minho FATBIT/SSaaPP Workshop 2012 17-18 September
    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... 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://fatbit.di.uminho.pt 28

    ×