SlideShare une entreprise Scribd logo
1  sur  95
Jácome Cunha1,2
, João P.Fernandes1,3
,
João Saraiva1
1
HASLab / INESC TEC & Universidade do Minho
2
ESTGF, Instituto Politécnico do Porto
3
(rel)ease, Univ. da Beira Interior
Portugal
DSL 2013
Spreadsheet EngineeringSpreadsheet Engineering
2
This TutorialThis Tutorial
●Domain Specific Languages
●Visual Modeling Domain Specific Languages
●Embedding Domain Specific Language
●Model-Driven Engineering
●Software Evolution
●Bidirectional Software Evolution
●Empirical Studies
3
This TutorialThis Tutorial
All defined in the context of Spreadsheets
And, implemented in the Functional Programing Language
Haskell!
4
This Tutorial: PlanThis Tutorial: Plan
Part I
● Motivation
● Spreadsheet Analysis
Data Mining Techniques
● Models for Spreadsheets
ClassSheets
Embedded ClassSheet Models
● Model-driven Spreadsheets
5
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
6
Why do Spreadsheets matter?Why do Spreadsheets matter?
●Probably the Biggest Programming Language!
●Probably the Biggest Functional Programming Language!
●Probably the Biggest Domain Specific Language!
●Probably the Biggest software system!
●Probably the biggest database system!
7
Spreadsheets are great!Spreadsheets are great!
8
Why do Spreadsheets matter?Why do Spreadsheets matter?
Financial intelligence firm CODA
reports that 95% of all U.S. Firms
use spreadsheets for financial
reporting
Sarbanes-Oxley: What About all the Spreadsheets?, Raymond R.
Panko and Nicholas Ordway, 2008
9
Why do Spreadsheets matter?Why do Spreadsheets matter?
In 2004, RevenueRecognition.com
(now Softtrax) had the
International Data Corporation
interview 118 business leaders.
IDC found that 85% were using
spreadsheets in financial reporting
and forecasting.
Sarbanes-Oxley: What About all the Spreadsheets?, Raymond R.
Panko and Nicholas Ordway, 2008
10
Why do Spreadsheets matter?Why do Spreadsheets matter?
50% of all spreadsheets are the
basis for decisions.
Supporting professional spreadsheet users by generating leveled
dataflow diagrams, Felienne Hermans, Martin Pinzger and Arie van
Deursen, 2011
11
Why do Spreadsheets matter?Why do Spreadsheets matter?
They are the programming language of
choice by non-professional programmers,
a.k.a. end-users
In the U.S. alone, the number of end-
user programmers is conservatively
estimated at 11 million,
compared to only 2.75 million other,
professional programmers
Estimating the numbers of end users and end user programmers,
Christopher Scaffidi, Mary Shaw, and Brad Myers, 2005
12
Why do Spreadsheets matter?Why do Spreadsheets matter?
Why are they so popular?
Which characteristics make them so
successful?
First “empirical” study: fill in the
inquiry!
13
But, as a programming language...But, as a programming language...
Exercise: Write a program that sums a
list of integer values.
sum :: [Int] -> Int
sum [] = 0
sum (h:t) = h + sum t
14
In fact, spreadsheets lack:In fact, spreadsheets lack:
● Abstraction
● Encapsulation
● Type system
● Testing
● IDE
● ...
15
And the consequences may be...And the consequences may be...
http://www.eusprig.org/stories.htm
Economy losses of $10 billion/year!
16
I. Spreadsheet AnalysisI. Spreadsheet Analysis
17
Spreadsheet: An ExampleSpreadsheet: An Example
A flight scheduling spreadsheet.
18
Functional DependenciesFunctional Dependencies
Informally, a functional dependency
between a column A and another column
B means that the values in column A
determine the values in column B, that
is, there are no two rows in the
spreadsheet that have the same value
in column A but differ in their values
in column B.
19
Functional DependenciesFunctional Dependencies
20
Functional DependenciesFunctional Dependencies
Any more Functional Dependencies?
21
Functional DependenciesFunctional Dependencies
Usually, too many!
22
Functional DependenciesFunctional Dependencies
● We compute the business logic from the
data, by inferring Fds.
● They are the building blocks inferring
models for (legacy) spreadsheets.
● The better are the FDs we infer, the
better is the model we compute!
23
Functional DependenciesFunctional Dependencies
● We use a data mining algorithm that
produces to many accidental Fds!
● We introduce some spreadsheet specific
heuristics to filter out “accidental”
FDs
24
Functional DependenciesFunctional Dependencies
● Label semantics: often keys are labeled
“code” or “id”
● Label arrangement: we prefer FDs
respecting the order of columns
● Antecedent size: small keys are
preferable
● Ratio: small ratio between keys and non-
keys
● Single value columns: columns always
with the same value appear in too many
FDs
25
Functional DependenciesFunctional Dependencies
Functional dependencies after prunning:
26
Relational ModelRelational Model
● Having computed the FDs, we can now use
the FUN algorithm to produce a
relational model for the spreadsheet:
27
Relational ModelRelational Model
● Discovery-based Edit Assistance for
Spreadsheets, Jácome Cunha, João Saraiva, and
Joost Visser. In proceedings of 2009 IEEE
Symposium on Visual Languages and Human-Centric
Computing (VL/HCC 2009).
● From Spreadsheets to Relational Databases
and Back, Jácome Cunha, João Saraiva, and Joost
Visser. In proceedings of the 2009 ACM SIGPLAN
Symposium on Partial Evaluation and Semantics-based
Program Manipulation (PEPM 2009).
28
Spreadsheets with embedded
Relational Model
Spreadsheets with embedded
Relational Model
29
Spreadsheets with embedded
Relational Model
Spreadsheets with embedded
Relational Model
30
Spreadsheet AnalysisSpreadsheet Analysis
● Spreadsheet Querying: Rui Pereira (talk at
the students workshop)
● Spreadhseet Smells: Pedro Martins: talk at
the students workshop (not related to
spreadsheets!).
31
Spreadsheet QueryingSpreadsheet Querying
32
Spreadsheet QueryingSpreadsheet Querying
We need model-driven queries!
33
Spreadsheet SmellsSpreadsheet Smells
● We have implemented a full catalog of
smells for spreadsheets:
empty cell, pattern finder, reference to
empty cells, multiple operations,
multiple references, conditional
complexity, long calculation chain,
duplicated formulas, innapropriate
intimacy, etc
34
Still...Still...
Around 200 people who thought their only
experience of the London 2012
Olympic Games would be minor heats of
synchronised swimming have
received an unexpected upgrade to the men’s
100m final following an
embarrassing ticketing mistake.
...
Locog said the error occurred in the summer,
between the first and
second round of ticket sales, when a member of
staff made a single
keystroke mistake and entered ‘20,000’ into a
spreadsheet rather than
the correct figure of 10,000 remaining tickets.
The Telegraph, 04 January 2012
35
II. Models inSpreadsheetII. Models inSpreadsheet
36
The Contribution of ModelsThe Contribution of Models
37
ClassSheets - Models in SpreadsheetsClassSheets - Models in Spreadsheets
ClassSheets: automatic generation of spreadsheet
applications from object-oriented specifications,
Gregor Engels, Martin Erwig, ASE'05
● ClassSheets are a high-level, object-
oriented formalism to specify the
business logic of spreadsheets
38
ClassSheets - Models in SpreadsheetsClassSheets - Models in Spreadsheets
39
ClassSheets - Models in SpreadsheetsClassSheets - Models in Spreadsheets
40
ClassSheets - Models in SpreadsheetsClassSheets - Models in Spreadsheets
41
ClassSheets - Models in SpreadsheetsClassSheets - Models in Spreadsheets
42
I. ClassSheet Model InferenceI. ClassSheet Model Inference
43
I. ClassSheet Model InferenceI. ClassSheet Model Inference
Automatically Inferring ClassSheet Models from Spreadsheets, Jácome Cunha,
Martin Erwig, João Saraiva, VL/HCC'10
Data mining techniques
Database normalization theory
44
I. ClassSheet Model InferenceI. ClassSheet Model Inference
45
Still...Still...
Harvard University economists Carmen Reinhart
and Kenneth Rogoff have acknowledged making
a spreadsheet calculation mistake in a 2010
research paper, “Growth in a Time of Debt”,
which has been widely cited to justify budget-
cutting.
Business Week, 18 April 2013
In a 2010 paper* Carmen Reinhart, now a professor at
Harvard Kennedy School, and Kenneth Rogoff, an
economist at Harvard University...argued that GDP
growth slows to a snail’s pace once government-debt
levels exceed 90% of GDP. The 90% figure quickly
became ammunition in political arguments over
austerity...This week a new piece of research poured fuel
on the fire by calling the 90% finding into question..
The Economist, 17 April 2013
46
II. Embedding ClassSheets in SpreadsheetsII. Embedding ClassSheets in Spreadsheets
47
● Erwig implemented ClassSheets as a standalone
language.
● A new processor (for ClassSheets) was
developed from scratch:
Embedding ClassSheets in SpreadsheetsEmbedding ClassSheets in Spreadsheets
48
● From a ClassSheet it produces an initial
Spreadsheet with the model embedded to guide
users intorducing correct data.
Embedding ClassSheets in SpreadsheetsEmbedding ClassSheets in Spreadsheets
49
● 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
Embedding ClassSheets in SpreadsheetsEmbedding ClassSheets in Spreadsheets
50
Embedding ClassSheets in SpreadsheetsEmbedding ClassSheets in Spreadsheets
Embedding and Evolution of Spreadsheet Models in Spreadsheet Systems,
Jácome Cunha, Jorge Mendes, João P. Fernandes, João Saraiva, VL/HCC '11
Powerful interactive interface
Single environment for spreadsheet evolution
Model-instance synchronization
Syntactic restrictions
51
Vertically Expandable TablesVertically Expandable Tables
52
Horizontally Expandable TablesHorizontally Expandable Tables
53
Relationship TablesRelationship Tables
54
III.Model-driven SpreadsheetsIII.Model-driven Spreadsheets
55
ClassSheet
driven
Spreadsheet
Environment
56
Model-driven SpreadsheetsModel-driven Spreadsheets
● Type-safe Evolution of Spreadsheets,
Jácome Cunha, Joost Visser, Tiago Alves, João
Saraiva, In proceedings of the Fundamental
Approaches to Software Engineering - FASE 2011.
● MDSheet: A Framework for Model-driven
Spreadsheet Engineering, Jácome Cunha, João
Paulo Fernandes, Jorge Mendes and João
Saraiva.34th Internactional Conference on
Software Engineering (ICSE 2012).
57
MDSheet Tool Demo VideoMDSheet Tool Demo Video
http://www.youtube.com/watch?feature=player_detailpage&v=6LNdTdCpV2U
58
Still...Still...
Perante os deputados, Souto Moura relembrou
o dia em que o jornal 24 Horas divulgou a
existência de uma listagem de chamadas de
titulares de altos cargos de Estado, constantes
de disquetes anexas ao processo Casa Pia . 'Foi
um dia que nunca esquecerei, foi terrível,
dramático', sustentou o agora juiz-conselheiro
do Supremo Tribunal de Justiça. Nesse dia (13
de janeiro de 2006), diz ter chamado à PGR os
procuradores João Guerra e as procuradoras
adjuntas Paula Ferraz e Cristina Faleiro. Vistas
as disquetes - com o programa Excel, que
continha um filtro informático que ocultava parte
da informação -, a conclusão foi que não haveria
nada naquele suporte para além das listagens
de Paulo Pedroso. 'Aqui só há números do dr.
Paulo Pedroso' foi a conclusão do visionamento.
tickets.
Diário de Notícias, 10 February 2007
59
This Tutorial: PlanThis Tutorial: Plan
Part II
● Model Evolution
● Bidirectional Evolution
● Empirical Study
60
Still...Still...
http://www.eusprig.org/horror-stories.htm
● Title: Report identifies lack of spreadsheet controls, pressure to
approve
● Source:
http://files.shareholder.com/downloads/ONE/2261602328x0x628656/4c
b574a0-0bf5-4728-9582-625e4519b5ab/Task_Force_Report.pdf
● Organization: JP Morgan
● Region: EU
● Release Date:18 January 2013
● Risk: Lowering estimate of VaR in Basel II models
● Tags: Financial
● Spreadsheet Causes: Logic not reviewed, manual copy/paste
operations
61
I. Model EvolutionI. Model Evolution
FASE 2011. Type-safe Evolution of Spreadsheets, Jácome Cunha, Joost Visser,
Tiago Alves, João Saraiva
VL/HCC 2011. Embedding and Evolution of of Spreadsheet Models in Spreadsheet
Systems, Jácome Cunha, João P. Fernandes, Jorge Mendes, João Saraiva
62
63
● Suppose now you need to add new information
to the spreadsheet
● For instance, the number of passengers of
each flight
● It would require to do several error-prone tasks
● Add columns, labels, update formulas, etc.
● We can do it automatically!
Why do Spreadsheets Need Evolution?Why do Spreadsheets Need Evolution?
64
Data RefinementsData Refinements
65
Evolution StepsEvolution Steps
● Combinators: defined as helper steps
● Semantic: steps that add information to the
model
● Layout: steps that do not add information to the
model, just change its arrangement
66
Combinator StepsCombinator Steps
● Pull Up All References
– All references must be at the top level
– For instance
A×Bφ becomes (A×B)φ
● Apply After and friends
67
Semantic StepsSemantic Steps
● Insert a column
● Insert a block
● Make it expandable
● Split
68
Layout StepsLayout Steps
● Change orientation
● Normalize blocks
● Shift
● Move blocks
69
Haskell ImplementationHaskell Implementation
expandBlock :: String → Rule
expandBlock str (label : clas) | compLabel label str = do
let rep = Rep {to = id × tolist, from = id × head }
return (View rep (label : (clas)↓))
70
TOOL DEMOTOOL DEMO
71
II. Bidirectional EvolutionII. Bidirectional Evolution
ICMT 2011. Bidirectional Transformation of Model-Driven Spreadsheets, Jácome
Cunha, João P. Fernandes, Jorge Mendes, Hugo Pacheco, and João Saraiva
ICSE 2012. MDSheet: A Framework for Model-driven Spreadsheet Engineering,
Jácome Cunha, João P. Fernandes, Jorge Mendes, João Saraiva
72
● Some evolution steps are easier to perform on
the instance
● For instance, to add a column to one of the
repetition blocks
● People felt the need to evolve the data
Why do Spreadsheets Need Evolution, Again?Why do Spreadsheets Need Evolution, Again?
73
74
Bidirectional Transformation SystemBidirectional Transformation System
75
Example of a Transformation we Want:
Add a New Column
Example of a Transformation we Want:
Add a New Column
76
(Data) Operations on Instances(Data) Operations on Instances
77
(Model) Operations on ClassSheets(Model) Operations on ClassSheets
78
Bidirectional Transformation FunctionsBidirectional Transformation Functions
79
Composable
Example: Add a Column and a Class
Composable
Example: Add a Column and a Class
80
TOOL DEMOTOOL DEMO
81
● Available at http://ssaapp.di.uminho.pt
● Built out of 7886 LOC:
– 3179 in Haskell, for the evolution and inference
– 980 in Basic, for the embedding
– 2665 in C++, for gluing all components
– 340 in Perl, for compilation and setup
– 722, for makefiles
MDSheetMDSheet
ICSE 2012. MDSheet: A Framework for Model-driven Spreadsheet Engineering,
Jácome Cunha, João P. Fernandes, Jorge Mendes, João Saraiva
82
III. Empirical StudiesIII. Empirical Studies
83
● 17 student from a MSc course
● 2 different spreadsheets
– Microsoft budget
– Local company responsible for water supply of
Braga, Portugal - agere
Study SettingsStudy Settings
84
● Hypotheses:
(1) In order to perform a given set of tasks,
users spend less time when using model-
driven spreadsheets instead of plain ones.
(2) Spreadsheets developed in the model-
driven environment hold less errors than plain
ones.
Study SettingStudy Setting
85
Main ResultsMain Results
Number of tasks performed on the MS spreadsheet
86
Main ResultsMain Results
Error rate in the budget spreadsheet
87
Empirical Study with YOUEmpirical Study with YOU
88
Inquiry Results!Inquiry Results!
89
Inquiry Results!Inquiry Results!
90
Inquiry Results!Inquiry Results!
91
Inquiry Results!Inquiry Results!
92
Inquiry Results!Inquiry Results!
93
IV. ConclusionIV. Conclusion
94
MOST
IMPORTANT
ANOUNCEMENT
OF
THIS
TUTORIAL
...
MOST
IMPORTANT
ANOUNCEMENT
OF
THIS
TUTORIAL
...
95
AcknowledgmentsAcknowledgments
This work is funded by ERDF - European
Regional Development Fund through the
COMPETE Programme (operational programme
for competitiveness) and by National Funds
through the FCT - Fundação para a Ciência e a
Tecnologia (Portuguese Foundation for Science
and Technology) within project FCOMP-01-0124-
FEDER-010048.

Contenu connexe

En vedette

Spreadsheet risks & mitigation
Spreadsheet risks & mitigationSpreadsheet risks & mitigation
Spreadsheet risks & mitigationExcel
 
The Use of Spreadsheets in Commodity Trading – 2015
The Use of Spreadsheets in Commodity Trading – 2015The Use of Spreadsheets in Commodity Trading – 2015
The Use of Spreadsheets in Commodity Trading – 2015CTRM Center
 
Spreadsheet Compliance and Management in Office and SharePoint 2013 Pitch
Spreadsheet Compliance and Management in Office and SharePoint 2013 PitchSpreadsheet Compliance and Management in Office and SharePoint 2013 Pitch
Spreadsheet Compliance and Management in Office and SharePoint 2013 PitchMicleus
 
Excel In Managing Spreadsheet Risk Presentation
Excel In Managing Spreadsheet Risk PresentationExcel In Managing Spreadsheet Risk Presentation
Excel In Managing Spreadsheet Risk Presentationgreghawes
 
Managing change risk in Excel spreadsheets
Managing change risk in Excel spreadsheetsManaging change risk in Excel spreadsheets
Managing change risk in Excel spreadsheetsExcelForManagers.com
 
Improving Spreadsheet Test Practices
Improving Spreadsheet Test PracticesImproving Spreadsheet Test Practices
Improving Spreadsheet Test PracticesFelienne Hermans
 
Excel 2010 training presentation create your first spreadsheet (revised)
Excel 2010 training presentation create your first spreadsheet (revised)Excel 2010 training presentation create your first spreadsheet (revised)
Excel 2010 training presentation create your first spreadsheet (revised)MFMinickiello
 
Visualizing the Problem Domain for Spreadsheet Users: A Mental Model Perspective
Visualizing the Problem Domain for Spreadsheet Users: A Mental Model PerspectiveVisualizing the Problem Domain for Spreadsheet Users: A Mental Model Perspective
Visualizing the Problem Domain for Spreadsheet Users: A Mental Model PerspectiveBennett Kankuzi
 

En vedette (10)

Spreadsheet risks & mitigation
Spreadsheet risks & mitigationSpreadsheet risks & mitigation
Spreadsheet risks & mitigation
 
The Use of Spreadsheets in Commodity Trading – 2015
The Use of Spreadsheets in Commodity Trading – 2015The Use of Spreadsheets in Commodity Trading – 2015
The Use of Spreadsheets in Commodity Trading – 2015
 
Spreadsheet Compliance and Management in Office and SharePoint 2013 Pitch
Spreadsheet Compliance and Management in Office and SharePoint 2013 PitchSpreadsheet Compliance and Management in Office and SharePoint 2013 Pitch
Spreadsheet Compliance and Management in Office and SharePoint 2013 Pitch
 
Excel In Managing Spreadsheet Risk Presentation
Excel In Managing Spreadsheet Risk PresentationExcel In Managing Spreadsheet Risk Presentation
Excel In Managing Spreadsheet Risk Presentation
 
Managing change risk in Excel spreadsheets
Managing change risk in Excel spreadsheetsManaging change risk in Excel spreadsheets
Managing change risk in Excel spreadsheets
 
Infinite Spreadsheet
Infinite SpreadsheetInfinite Spreadsheet
Infinite Spreadsheet
 
Improving Spreadsheet Test Practices
Improving Spreadsheet Test PracticesImproving Spreadsheet Test Practices
Improving Spreadsheet Test Practices
 
Excel 2010 training presentation create your first spreadsheet (revised)
Excel 2010 training presentation create your first spreadsheet (revised)Excel 2010 training presentation create your first spreadsheet (revised)
Excel 2010 training presentation create your first spreadsheet (revised)
 
The devil's guide to spreadsheet creation
The devil's guide to spreadsheet creationThe devil's guide to spreadsheet creation
The devil's guide to spreadsheet creation
 
Visualizing the Problem Domain for Spreadsheet Users: A Mental Model Perspective
Visualizing the Problem Domain for Spreadsheet Users: A Mental Model PerspectiveVisualizing the Problem Domain for Spreadsheet Users: A Mental Model Perspective
Visualizing the Problem Domain for Spreadsheet Users: A Mental Model Perspective
 

Similaire à Summer School DSL 2013 - SpreadSheet Engineering

Spreadsheet Engineering @ OSU - EECS Colloquium - 02/24/14
Spreadsheet Engineering @ OSU - EECS Colloquium - 02/24/14Spreadsheet Engineering @ OSU - EECS Colloquium - 02/24/14
Spreadsheet Engineering @ OSU - EECS Colloquium - 02/24/14Jácome Cunha
 
Model-Driven Spreadsheet Development
Model-Driven Spreadsheet DevelopmentModel-Driven Spreadsheet Development
Model-Driven Spreadsheet DevelopmentJácome Cunha
 
Invited talk at SoTeSoLa '12
Invited talk at SoTeSoLa '12Invited talk at SoTeSoLa '12
Invited talk at SoTeSoLa '12Jácome Cunha
 
Model-driven Spreadsheets
Model-driven SpreadsheetsModel-driven Spreadsheets
Model-driven SpreadsheetsJácome Cunha
 
When Scientific Software Meets (Model-Driven) Software Engineering
When Scientific Software Meets (Model-Driven) Software EngineeringWhen Scientific Software Meets (Model-Driven) Software Engineering
When Scientific Software Meets (Model-Driven) Software EngineeringBenoit Combemale
 
Eng Cal Reduced1
Eng Cal Reduced1Eng Cal Reduced1
Eng Cal Reduced1rtmote
 
Industry-Academia Communication In Empirical Software Engineering
Industry-Academia Communication In Empirical Software EngineeringIndustry-Academia Communication In Empirical Software Engineering
Industry-Academia Communication In Empirical Software EngineeringPer Runeson
 
Talk at the Joint SSaaPP/FATBIT 2012 Workshop
Talk at the Joint SSaaPP/FATBIT 2012 WorkshopTalk at the Joint SSaaPP/FATBIT 2012 Workshop
Talk at the Joint SSaaPP/FATBIT 2012 WorkshopJácome Cunha
 
Synergy of Human and Artificial Intelligence in Software Engineering
Synergy of Human and Artificial Intelligence in Software EngineeringSynergy of Human and Artificial Intelligence in Software Engineering
Synergy of Human and Artificial Intelligence in Software EngineeringTao Xie
 
Introduction to architectures based on models, models and metamodels. model d...
Introduction to architectures based on models, models and metamodels. model d...Introduction to architectures based on models, models and metamodels. model d...
Introduction to architectures based on models, models and metamodels. model d...Vicente García Díaz
 
Software Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesSoftware Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesAron Ahmadia
 
Stefan Geissler kairntech - SDC Nice Apr 2019
Stefan Geissler kairntech - SDC Nice Apr 2019 Stefan Geissler kairntech - SDC Nice Apr 2019
Stefan Geissler kairntech - SDC Nice Apr 2019 Stefan Geißler
 
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar Poster
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar PosterCritiquing CS Assessment from a CS for All lens: Dagstuhl Seminar Poster
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar PosterMark Guzdial
 
The Future is Big Graphs: A Community View on Graph Processing Systems
The Future is Big Graphs: A Community View on Graph Processing SystemsThe Future is Big Graphs: A Community View on Graph Processing Systems
The Future is Big Graphs: A Community View on Graph Processing SystemsNeo4j
 
IC-SDV 2019: Down-to-earth machine learning: What you always wanted your data...
IC-SDV 2019: Down-to-earth machine learning: What you always wanted your data...IC-SDV 2019: Down-to-earth machine learning: What you always wanted your data...
IC-SDV 2019: Down-to-earth machine learning: What you always wanted your data...Dr. Haxel Consult
 
Notes on data-intensive processing with Hadoop Mapreduce
Notes on data-intensive processing with Hadoop MapreduceNotes on data-intensive processing with Hadoop Mapreduce
Notes on data-intensive processing with Hadoop MapreduceEvert Lammerts
 

Similaire à Summer School DSL 2013 - SpreadSheet Engineering (20)

Spreadsheet Engineering @ OSU - EECS Colloquium - 02/24/14
Spreadsheet Engineering @ OSU - EECS Colloquium - 02/24/14Spreadsheet Engineering @ OSU - EECS Colloquium - 02/24/14
Spreadsheet Engineering @ OSU - EECS Colloquium - 02/24/14
 
Model-Driven Spreadsheet Development
Model-Driven Spreadsheet DevelopmentModel-Driven Spreadsheet Development
Model-Driven Spreadsheet Development
 
Invited talk at SoTeSoLa '12
Invited talk at SoTeSoLa '12Invited talk at SoTeSoLa '12
Invited talk at SoTeSoLa '12
 
Model-driven Spreadsheets
Model-driven SpreadsheetsModel-driven Spreadsheets
Model-driven Spreadsheets
 
When Scientific Software Meets (Model-Driven) Software Engineering
When Scientific Software Meets (Model-Driven) Software EngineeringWhen Scientific Software Meets (Model-Driven) Software Engineering
When Scientific Software Meets (Model-Driven) Software Engineering
 
Talk at VL/HCC '12
Talk at VL/HCC '12Talk at VL/HCC '12
Talk at VL/HCC '12
 
Eng Cal Reduced1
Eng Cal Reduced1Eng Cal Reduced1
Eng Cal Reduced1
 
Talk at QUATIC '12
Talk at QUATIC '12Talk at QUATIC '12
Talk at QUATIC '12
 
Industry-Academia Communication In Empirical Software Engineering
Industry-Academia Communication In Empirical Software EngineeringIndustry-Academia Communication In Empirical Software Engineering
Industry-Academia Communication In Empirical Software Engineering
 
Talk at the Joint SSaaPP/FATBIT 2012 Workshop
Talk at the Joint SSaaPP/FATBIT 2012 WorkshopTalk at the Joint SSaaPP/FATBIT 2012 Workshop
Talk at the Joint SSaaPP/FATBIT 2012 Workshop
 
Synergy of Human and Artificial Intelligence in Software Engineering
Synergy of Human and Artificial Intelligence in Software EngineeringSynergy of Human and Artificial Intelligence in Software Engineering
Synergy of Human and Artificial Intelligence in Software Engineering
 
Introduction to architectures based on models, models and metamodels. model d...
Introduction to architectures based on models, models and metamodels. model d...Introduction to architectures based on models, models and metamodels. model d...
Introduction to architectures based on models, models and metamodels. model d...
 
Software Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical SciencesSoftware Carpentry for the Geophysical Sciences
Software Carpentry for the Geophysical Sciences
 
Stefan Geissler kairntech - SDC Nice Apr 2019
Stefan Geissler kairntech - SDC Nice Apr 2019 Stefan Geissler kairntech - SDC Nice Apr 2019
Stefan Geissler kairntech - SDC Nice Apr 2019
 
Msr2021 tutorial-di penta
Msr2021 tutorial-di pentaMsr2021 tutorial-di penta
Msr2021 tutorial-di penta
 
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar Poster
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar PosterCritiquing CS Assessment from a CS for All lens: Dagstuhl Seminar Poster
Critiquing CS Assessment from a CS for All lens: Dagstuhl Seminar Poster
 
The Future is Big Graphs: A Community View on Graph Processing Systems
The Future is Big Graphs: A Community View on Graph Processing SystemsThe Future is Big Graphs: A Community View on Graph Processing Systems
The Future is Big Graphs: A Community View on Graph Processing Systems
 
IC-SDV 2019: Down-to-earth machine learning: What you always wanted your data...
IC-SDV 2019: Down-to-earth machine learning: What you always wanted your data...IC-SDV 2019: Down-to-earth machine learning: What you always wanted your data...
IC-SDV 2019: Down-to-earth machine learning: What you always wanted your data...
 
Notes on data-intensive processing with Hadoop Mapreduce
Notes on data-intensive processing with Hadoop MapreduceNotes on data-intensive processing with Hadoop Mapreduce
Notes on data-intensive processing with Hadoop Mapreduce
 
Hadoop.mapreduce
Hadoop.mapreduceHadoop.mapreduce
Hadoop.mapreduce
 

Plus de Jácome Cunha

Energy Efficiency Across 
Programming Languages
Energy Efficiency Across 
Programming LanguagesEnergy Efficiency Across 
Programming Languages
Energy Efficiency Across 
Programming LanguagesJácome Cunha
 
Explaining Spreadsheets with Spreadsheets
Explaining Spreadsheets with SpreadsheetsExplaining Spreadsheets with Spreadsheets
Explaining Spreadsheets with SpreadsheetsJácome Cunha
 
Automatically Inferring ClassSheet Models from Spreadsheets
Automatically Inferring ClassSheet Models from SpreadsheetsAutomatically Inferring ClassSheet Models from Spreadsheets
Automatically Inferring ClassSheet Models from SpreadsheetsJácome Cunha
 
On Understanding Data Scientists
On Understanding  Data ScientistsOn Understanding  Data Scientists
On Understanding Data ScientistsJácome Cunha
 
Systematic Spreadsheet Construction Processes @ VL/HCC 2017
Systematic Spreadsheet Construction Processes @ VL/HCC 2017Systematic Spreadsheet Construction Processes @ VL/HCC 2017
Systematic Spreadsheet Construction Processes @ VL/HCC 2017Jácome Cunha
 
jStanley: Placing a Green Thumb on Java Collections
jStanley: Placing a Green Thumb on  Java CollectionsjStanley: Placing a Green Thumb on  Java Collections
jStanley: Placing a Green Thumb on Java CollectionsJácome Cunha
 
Type-Safe Evolution of 
Web Services
Type-Safe Evolution of 
Web ServicesType-Safe Evolution of 
Web Services
Type-Safe Evolution of 
Web ServicesJácome Cunha
 
MDSheet – Model-Driven Spreadsheets
MDSheet – Model-Driven SpreadsheetsMDSheet – Model-Driven Spreadsheets
MDSheet – Model-Driven SpreadsheetsJácome Cunha
 
Talk SAC '12 - SE Track
Talk SAC '12 - SE TrackTalk SAC '12 - SE Track
Talk SAC '12 - SE TrackJácome Cunha
 

Plus de Jácome Cunha (16)

Energy Efficiency Across 
Programming Languages
Energy Efficiency Across 
Programming LanguagesEnergy Efficiency Across 
Programming Languages
Energy Efficiency Across 
Programming Languages
 
LMCC - 30 Anos
LMCC - 30 AnosLMCC - 30 Anos
LMCC - 30 Anos
 
Explaining Spreadsheets with Spreadsheets
Explaining Spreadsheets with SpreadsheetsExplaining Spreadsheets with Spreadsheets
Explaining Spreadsheets with Spreadsheets
 
Automatically Inferring ClassSheet Models from Spreadsheets
Automatically Inferring ClassSheet Models from SpreadsheetsAutomatically Inferring ClassSheet Models from Spreadsheets
Automatically Inferring ClassSheet Models from Spreadsheets
 
On Understanding Data Scientists
On Understanding  Data ScientistsOn Understanding  Data Scientists
On Understanding Data Scientists
 
Systematic Spreadsheet Construction Processes @ VL/HCC 2017
Systematic Spreadsheet Construction Processes @ VL/HCC 2017Systematic Spreadsheet Construction Processes @ VL/HCC 2017
Systematic Spreadsheet Construction Processes @ VL/HCC 2017
 
jStanley: Placing a Green Thumb on Java Collections
jStanley: Placing a Green Thumb on  Java CollectionsjStanley: Placing a Green Thumb on  Java Collections
jStanley: Placing a Green Thumb on Java Collections
 
Type-Safe Evolution of 
Web Services
Type-Safe Evolution of 
Web ServicesType-Safe Evolution of 
Web Services
Type-Safe Evolution of 
Web Services
 
MDSheet – Model-Driven Spreadsheets
MDSheet – Model-Driven SpreadsheetsMDSheet – Model-Driven Spreadsheets
MDSheet – Model-Driven Spreadsheets
 
Talk
TalkTalk
Talk
 
Talk at IS-EUD '11
Talk at IS-EUD '11Talk at IS-EUD '11
Talk at IS-EUD '11
 
Talk at EUSPRIG '11
Talk at EUSPRIG '11Talk at EUSPRIG '11
Talk at EUSPRIG '11
 
Talk at VL/HCC '11
Talk at VL/HCC '11Talk at VL/HCC '11
Talk at VL/HCC '11
 
Talk SAC '12 - SE Track
Talk SAC '12 - SE TrackTalk SAC '12 - SE Track
Talk SAC '12 - SE Track
 
Talk at ICTM '12
Talk at ICTM '12Talk at ICTM '12
Talk at ICTM '12
 
Talk at VL/HCC '11
Talk at VL/HCC '11Talk at VL/HCC '11
Talk at VL/HCC '11
 

Dernier

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 

Dernier (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

Summer School DSL 2013 - SpreadSheet Engineering

  • 1. Jácome Cunha1,2 , João P.Fernandes1,3 , João Saraiva1 1 HASLab / INESC TEC & Universidade do Minho 2 ESTGF, Instituto Politécnico do Porto 3 (rel)ease, Univ. da Beira Interior Portugal DSL 2013 Spreadsheet EngineeringSpreadsheet Engineering
  • 2. 2 This TutorialThis Tutorial ●Domain Specific Languages ●Visual Modeling Domain Specific Languages ●Embedding Domain Specific Language ●Model-Driven Engineering ●Software Evolution ●Bidirectional Software Evolution ●Empirical Studies
  • 3. 3 This TutorialThis Tutorial All defined in the context of Spreadsheets And, implemented in the Functional Programing Language Haskell!
  • 4. 4 This Tutorial: PlanThis Tutorial: Plan Part I ● Motivation ● Spreadsheet Analysis Data Mining Techniques ● Models for Spreadsheets ClassSheets Embedded ClassSheet Models ● Model-driven Spreadsheets
  • 5. 5 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
  • 6. 6 Why do Spreadsheets matter?Why do Spreadsheets matter? ●Probably the Biggest Programming Language! ●Probably the Biggest Functional Programming Language! ●Probably the Biggest Domain Specific Language! ●Probably the Biggest software system! ●Probably the biggest database system!
  • 8. 8 Why do Spreadsheets matter?Why do Spreadsheets matter? Financial intelligence firm CODA reports that 95% of all U.S. Firms use spreadsheets for financial reporting Sarbanes-Oxley: What About all the Spreadsheets?, Raymond R. Panko and Nicholas Ordway, 2008
  • 9. 9 Why do Spreadsheets matter?Why do Spreadsheets matter? In 2004, RevenueRecognition.com (now Softtrax) had the International Data Corporation interview 118 business leaders. IDC found that 85% were using spreadsheets in financial reporting and forecasting. Sarbanes-Oxley: What About all the Spreadsheets?, Raymond R. Panko and Nicholas Ordway, 2008
  • 10. 10 Why do Spreadsheets matter?Why do Spreadsheets matter? 50% of all spreadsheets are the basis for decisions. Supporting professional spreadsheet users by generating leveled dataflow diagrams, Felienne Hermans, Martin Pinzger and Arie van Deursen, 2011
  • 11. 11 Why do Spreadsheets matter?Why do Spreadsheets matter? They are the programming language of choice by non-professional programmers, a.k.a. end-users In the U.S. alone, the number of end- user programmers is conservatively estimated at 11 million, compared to only 2.75 million other, professional programmers Estimating the numbers of end users and end user programmers, Christopher Scaffidi, Mary Shaw, and Brad Myers, 2005
  • 12. 12 Why do Spreadsheets matter?Why do Spreadsheets matter? Why are they so popular? Which characteristics make them so successful? First “empirical” study: fill in the inquiry!
  • 13. 13 But, as a programming language...But, as a programming language... Exercise: Write a program that sums a list of integer values. sum :: [Int] -> Int sum [] = 0 sum (h:t) = h + sum t
  • 14. 14 In fact, spreadsheets lack:In fact, spreadsheets lack: ● Abstraction ● Encapsulation ● Type system ● Testing ● IDE ● ...
  • 15. 15 And the consequences may be...And the consequences may be... http://www.eusprig.org/stories.htm Economy losses of $10 billion/year!
  • 16. 16 I. Spreadsheet AnalysisI. Spreadsheet Analysis
  • 17. 17 Spreadsheet: An ExampleSpreadsheet: An Example A flight scheduling spreadsheet.
  • 18. 18 Functional DependenciesFunctional Dependencies Informally, a functional dependency between a column A and another column B means that the values in column A determine the values in column B, that is, there are no two rows in the spreadsheet that have the same value in column A but differ in their values in column B.
  • 22. 22 Functional DependenciesFunctional Dependencies ● We compute the business logic from the data, by inferring Fds. ● They are the building blocks inferring models for (legacy) spreadsheets. ● The better are the FDs we infer, the better is the model we compute!
  • 23. 23 Functional DependenciesFunctional Dependencies ● We use a data mining algorithm that produces to many accidental Fds! ● We introduce some spreadsheet specific heuristics to filter out “accidental” FDs
  • 24. 24 Functional DependenciesFunctional Dependencies ● Label semantics: often keys are labeled “code” or “id” ● Label arrangement: we prefer FDs respecting the order of columns ● Antecedent size: small keys are preferable ● Ratio: small ratio between keys and non- keys ● Single value columns: columns always with the same value appear in too many FDs
  • 26. 26 Relational ModelRelational Model ● Having computed the FDs, we can now use the FUN algorithm to produce a relational model for the spreadsheet:
  • 27. 27 Relational ModelRelational Model ● Discovery-based Edit Assistance for Spreadsheets, Jácome Cunha, João Saraiva, and Joost Visser. In proceedings of 2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC 2009). ● From Spreadsheets to Relational Databases and Back, Jácome Cunha, João Saraiva, and Joost Visser. In proceedings of the 2009 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation (PEPM 2009).
  • 28. 28 Spreadsheets with embedded Relational Model Spreadsheets with embedded Relational Model
  • 29. 29 Spreadsheets with embedded Relational Model Spreadsheets with embedded Relational Model
  • 30. 30 Spreadsheet AnalysisSpreadsheet Analysis ● Spreadsheet Querying: Rui Pereira (talk at the students workshop) ● Spreadhseet Smells: Pedro Martins: talk at the students workshop (not related to spreadsheets!).
  • 33. 33 Spreadsheet SmellsSpreadsheet Smells ● We have implemented a full catalog of smells for spreadsheets: empty cell, pattern finder, reference to empty cells, multiple operations, multiple references, conditional complexity, long calculation chain, duplicated formulas, innapropriate intimacy, etc
  • 34. 34 Still...Still... Around 200 people who thought their only experience of the London 2012 Olympic Games would be minor heats of synchronised swimming have received an unexpected upgrade to the men’s 100m final following an embarrassing ticketing mistake. ... Locog said the error occurred in the summer, between the first and second round of ticket sales, when a member of staff made a single keystroke mistake and entered ‘20,000’ into a spreadsheet rather than the correct figure of 10,000 remaining tickets. The Telegraph, 04 January 2012
  • 35. 35 II. Models inSpreadsheetII. Models inSpreadsheet
  • 36. 36 The Contribution of ModelsThe Contribution of Models
  • 37. 37 ClassSheets - Models in SpreadsheetsClassSheets - Models in Spreadsheets ClassSheets: automatic generation of spreadsheet applications from object-oriented specifications, Gregor Engels, Martin Erwig, ASE'05 ● ClassSheets are a high-level, object- oriented formalism to specify the business logic of spreadsheets
  • 38. 38 ClassSheets - Models in SpreadsheetsClassSheets - Models in Spreadsheets
  • 39. 39 ClassSheets - Models in SpreadsheetsClassSheets - Models in Spreadsheets
  • 40. 40 ClassSheets - Models in SpreadsheetsClassSheets - Models in Spreadsheets
  • 41. 41 ClassSheets - Models in SpreadsheetsClassSheets - Models in Spreadsheets
  • 42. 42 I. ClassSheet Model InferenceI. ClassSheet Model Inference
  • 43. 43 I. ClassSheet Model InferenceI. ClassSheet Model Inference Automatically Inferring ClassSheet Models from Spreadsheets, Jácome Cunha, Martin Erwig, João Saraiva, VL/HCC'10 Data mining techniques Database normalization theory
  • 44. 44 I. ClassSheet Model InferenceI. ClassSheet Model Inference
  • 45. 45 Still...Still... Harvard University economists Carmen Reinhart and Kenneth Rogoff have acknowledged making a spreadsheet calculation mistake in a 2010 research paper, “Growth in a Time of Debt”, which has been widely cited to justify budget- cutting. Business Week, 18 April 2013 In a 2010 paper* Carmen Reinhart, now a professor at Harvard Kennedy School, and Kenneth Rogoff, an economist at Harvard University...argued that GDP growth slows to a snail’s pace once government-debt levels exceed 90% of GDP. The 90% figure quickly became ammunition in political arguments over austerity...This week a new piece of research poured fuel on the fire by calling the 90% finding into question.. The Economist, 17 April 2013
  • 46. 46 II. Embedding ClassSheets in SpreadsheetsII. Embedding ClassSheets in Spreadsheets
  • 47. 47 ● Erwig implemented ClassSheets as a standalone language. ● A new processor (for ClassSheets) was developed from scratch: Embedding ClassSheets in SpreadsheetsEmbedding ClassSheets in Spreadsheets
  • 48. 48 ● From a ClassSheet it produces an initial Spreadsheet with the model embedded to guide users intorducing correct data. Embedding ClassSheets in SpreadsheetsEmbedding ClassSheets in Spreadsheets
  • 49. 49 ● 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 Embedding ClassSheets in SpreadsheetsEmbedding ClassSheets in Spreadsheets
  • 50. 50 Embedding ClassSheets in SpreadsheetsEmbedding ClassSheets in Spreadsheets Embedding and Evolution of Spreadsheet Models in Spreadsheet Systems, Jácome Cunha, Jorge Mendes, João P. Fernandes, João Saraiva, VL/HCC '11 Powerful interactive interface Single environment for spreadsheet evolution Model-instance synchronization Syntactic restrictions
  • 56. 56 Model-driven SpreadsheetsModel-driven Spreadsheets ● Type-safe Evolution of Spreadsheets, Jácome Cunha, Joost Visser, Tiago Alves, João Saraiva, In proceedings of the Fundamental Approaches to Software Engineering - FASE 2011. ● MDSheet: A Framework for Model-driven Spreadsheet Engineering, Jácome Cunha, João Paulo Fernandes, Jorge Mendes and João Saraiva.34th Internactional Conference on Software Engineering (ICSE 2012).
  • 57. 57 MDSheet Tool Demo VideoMDSheet Tool Demo Video http://www.youtube.com/watch?feature=player_detailpage&v=6LNdTdCpV2U
  • 58. 58 Still...Still... Perante os deputados, Souto Moura relembrou o dia em que o jornal 24 Horas divulgou a existência de uma listagem de chamadas de titulares de altos cargos de Estado, constantes de disquetes anexas ao processo Casa Pia . 'Foi um dia que nunca esquecerei, foi terrível, dramático', sustentou o agora juiz-conselheiro do Supremo Tribunal de Justiça. Nesse dia (13 de janeiro de 2006), diz ter chamado à PGR os procuradores João Guerra e as procuradoras adjuntas Paula Ferraz e Cristina Faleiro. Vistas as disquetes - com o programa Excel, que continha um filtro informático que ocultava parte da informação -, a conclusão foi que não haveria nada naquele suporte para além das listagens de Paulo Pedroso. 'Aqui só há números do dr. Paulo Pedroso' foi a conclusão do visionamento. tickets. Diário de Notícias, 10 February 2007
  • 59. 59 This Tutorial: PlanThis Tutorial: Plan Part II ● Model Evolution ● Bidirectional Evolution ● Empirical Study
  • 60. 60 Still...Still... http://www.eusprig.org/horror-stories.htm ● Title: Report identifies lack of spreadsheet controls, pressure to approve ● Source: http://files.shareholder.com/downloads/ONE/2261602328x0x628656/4c b574a0-0bf5-4728-9582-625e4519b5ab/Task_Force_Report.pdf ● Organization: JP Morgan ● Region: EU ● Release Date:18 January 2013 ● Risk: Lowering estimate of VaR in Basel II models ● Tags: Financial ● Spreadsheet Causes: Logic not reviewed, manual copy/paste operations
  • 61. 61 I. Model EvolutionI. Model Evolution FASE 2011. Type-safe Evolution of Spreadsheets, Jácome Cunha, Joost Visser, Tiago Alves, João Saraiva VL/HCC 2011. Embedding and Evolution of of Spreadsheet Models in Spreadsheet Systems, Jácome Cunha, João P. Fernandes, Jorge Mendes, João Saraiva
  • 62. 62
  • 63. 63 ● Suppose now you need to add new information to the spreadsheet ● For instance, the number of passengers of each flight ● It would require to do several error-prone tasks ● Add columns, labels, update formulas, etc. ● We can do it automatically! Why do Spreadsheets Need Evolution?Why do Spreadsheets Need Evolution?
  • 65. 65 Evolution StepsEvolution Steps ● Combinators: defined as helper steps ● Semantic: steps that add information to the model ● Layout: steps that do not add information to the model, just change its arrangement
  • 66. 66 Combinator StepsCombinator Steps ● Pull Up All References – All references must be at the top level – For instance A×Bφ becomes (A×B)φ ● Apply After and friends
  • 67. 67 Semantic StepsSemantic Steps ● Insert a column ● Insert a block ● Make it expandable ● Split
  • 68. 68 Layout StepsLayout Steps ● Change orientation ● Normalize blocks ● Shift ● Move blocks
  • 69. 69 Haskell ImplementationHaskell Implementation expandBlock :: String → Rule expandBlock str (label : clas) | compLabel label str = do let rep = Rep {to = id × tolist, from = id × head } return (View rep (label : (clas)↓))
  • 71. 71 II. Bidirectional EvolutionII. Bidirectional Evolution ICMT 2011. Bidirectional Transformation of Model-Driven Spreadsheets, Jácome Cunha, João P. Fernandes, Jorge Mendes, Hugo Pacheco, and João Saraiva ICSE 2012. MDSheet: A Framework for Model-driven Spreadsheet Engineering, Jácome Cunha, João P. Fernandes, Jorge Mendes, João Saraiva
  • 72. 72 ● Some evolution steps are easier to perform on the instance ● For instance, to add a column to one of the repetition blocks ● People felt the need to evolve the data Why do Spreadsheets Need Evolution, Again?Why do Spreadsheets Need Evolution, Again?
  • 73. 73
  • 75. 75 Example of a Transformation we Want: Add a New Column Example of a Transformation we Want: Add a New Column
  • 76. 76 (Data) Operations on Instances(Data) Operations on Instances
  • 77. 77 (Model) Operations on ClassSheets(Model) Operations on ClassSheets
  • 79. 79 Composable Example: Add a Column and a Class Composable Example: Add a Column and a Class
  • 81. 81 ● Available at http://ssaapp.di.uminho.pt ● Built out of 7886 LOC: – 3179 in Haskell, for the evolution and inference – 980 in Basic, for the embedding – 2665 in C++, for gluing all components – 340 in Perl, for compilation and setup – 722, for makefiles MDSheetMDSheet ICSE 2012. MDSheet: A Framework for Model-driven Spreadsheet Engineering, Jácome Cunha, João P. Fernandes, Jorge Mendes, João Saraiva
  • 82. 82 III. Empirical StudiesIII. Empirical Studies
  • 83. 83 ● 17 student from a MSc course ● 2 different spreadsheets – Microsoft budget – Local company responsible for water supply of Braga, Portugal - agere Study SettingsStudy Settings
  • 84. 84 ● Hypotheses: (1) In order to perform a given set of tasks, users spend less time when using model- driven spreadsheets instead of plain ones. (2) Spreadsheets developed in the model- driven environment hold less errors than plain ones. Study SettingStudy Setting
  • 85. 85 Main ResultsMain Results Number of tasks performed on the MS spreadsheet
  • 86. 86 Main ResultsMain Results Error rate in the budget spreadsheet
  • 87. 87 Empirical Study with YOUEmpirical Study with YOU
  • 95. 95 AcknowledgmentsAcknowledgments This work is funded by ERDF - European Regional Development Fund through the COMPETE Programme (operational programme for competitiveness) and by National Funds through the FCT - Fundação para a Ciência e a Tecnologia (Portuguese Foundation for Science and Technology) within project FCOMP-01-0124- FEDER-010048.

Notes de l'éditeur

  1. 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
  2. Intended to be used by trained person Professional on Spreadsheet models/ClassSheets Not by instance/data end users
  3. 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
  4. Baseado em haskell Integrado no OO Clicanca-se em botoes Espetacular Basic