spreadsheets are models too - richard paige at sems 2014
TRANSCRIPT
![Page 1: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/1.jpg)
1
Spreadsheets are models too
Richard Paige, Dimitris Kolovos, Nicholas Matragkas Department of Computer Science
University of York @richpaige, @kolovos, @nmatragkas
![Page 2: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/2.jpg)
2 MDE
• Aims to improve the quality and efficiency of the software development process – Promotes models to first-class citizens – Reduces the need for human compilers – Models are purposeful descriptions that are
processable by automated tools. • Not restricted to a particular modelling
technology / model representation format
Skip Ad>
![Page 3: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/3.jpg)
3 Models?
EMF XML XSD
Spreadsheets Visio RDBMS
![Page 4: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/4.jpg)
4 The MDE Community
EMF XML XSD
Spreadsheets
Visio RDBMS
![Page 5: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/5.jpg)
5 Everyone else
EMF
XML XSD
Spreadsheets Visio RDBMS
![Page 6: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/6.jpg)
6 EMF Consolidation?
• Benefit from modern modelling languages, DSLs, language workbenches, tools.
• Benefit from use of generic tools for model management (e.g., for transformation, validation, migration).
• Benefit from consolidated technology platforms. – Possibly better tool interoperability.
![Page 7: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/7.jpg)
7 Spreadsheets for SE • Versatile and intuitive • Fill gaps in software development process
– When no specialised tool exist for the job – When specialised tools are too expensive/
complicated – When information needs to be collected from non-
programmers • Some problems are inherently tabular (e.g.,
certification/assurance arguments, control law modelling, data modelling, traceability).
Skip Ad>
![Page 8: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/8.jpg)
8 Spreadsheet = Model
• Spreadsheets are models with interesting (valuable) properties. – Structure is largely read-only – Fixed implicit metamodel vs variable explicit
metamodel (with EMF/Ecore) • Model editing vs metamodel then model editing.
– Specialised rather than generic tools. • Excel/Google Spreadsheets interface vs. Eclipse
interface…
![Page 9: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/9.jpg)
9 Treat Spreadsheets Like (EMF) Models?
• What are the benefits? – Use generic tools (transformation, validation,
merging, comparison) on spreadsheets. – Support richer heterogeneity in the MDE
space (not just EMF!). – Better support for early stages of SE: bridge
between early requirements and structured modelling.
– Support for large legacy models, e.g., 200 sheet x 500 row sheets, never re-engineered.
![Page 10: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/10.jpg)
10 Treat Spreadsheets Like (EMF) Models (2)
• What are the benefits? – No need to build DS(M)Ls for tabular
problems. – Synergy with existing skills. – Exploit MDE tools for pattern detection, repair/
update, …. • Sometimes a spreadsheet is all that’s
needed; EMF and DSLs are overkill.
![Page 11: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/11.jpg)
11 How?
• Injectors: – Generate models (in EMF) from
spreadsheets. – May need to generate spreadsheets
from models, i.e., some form of (partially) bidirectional transformations.
– Specification blow-up?
![Page 12: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/12.jpg)
12 How? • Model management operations for
spreadsheets. – i.e., implement typical MDE operations on
spreadsheets, using spreadsheet APIs, Google Spreadsheet Service etc.
– Transformation, code generation, validation, etc.
• Badly reinvented wheels? – Weigh against maintaining traditional
spreadsheet interface/interaction model.
![Page 13: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/13.jpg)
13 How? • Provide a spreadsheet driver for MDE
languages/tools for – Model querying – Model-to-model transformation – Model validation – Model-to-text transformation – Model comparison – Model merging
• ... so that spreadsheets can be used in any step of an MDE process
![Page 14: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/14.jpg)
14 Basic Idea?
• Spreadsheet -> Model • Worksheet -> Type • Column -> Property • Row -> Model element
modules
MSD,HCI
F
MSD,RQE
E
mt506supervisor
mt506
4 jd5023 SmithJane 22jd501 232 ThompsonJoe
D age
C lastname
Bfirstname
Aid
1
Student Staff
E
dj5123 JacksonDaniel HCImt506 MSD,RQE2 ThomasMatthew
D teaches
C lastname
Bfirstname
Aid
1
Student Staff
Module
Module
Student Staff ModuleHuman Computer Interaction Spring 4 HCI
D
RQE3 SpringRequirements EngineeringMSD2 AutumnModelling and System Design
C term
Btitle
Aid
1
Mark
Mark
Mark
E
jd5023 74ICAR jd5012 62TPOP
D C mark
Bmodule
Astudent
1
Student Staff Module Mark
![Page 15: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/15.jpg)
15 eclipse.org/Epsilon
![Page 16: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/16.jpg)
16 Example (Query)
modules
MSD,HCI
F
MSD,RQE
E
mt506supervisor
mt506
4 jd5023 SmithJane 22jd501 232 ThompsonJoe
D age
C lastname
Bfirstname
Aid
1
Student Staff
E
dj5123 JacksonDaniel HCImt506 MSD,RQE2 ThomasMatthew
D teaches
C lastname
Bfirstname
Aid
1
Student Staff
Module
Module
Student Staff ModuleHuman Computer Interaction Spring 4 HCI
D
RQE3 SpringRequirements EngineeringMSD2 AutumnModelling and System Design
C term
Btitle
Aid
1
Mark
Mark
Mark
E
jd5023 74ICAR jd5012 62TPOP
D C mark
Bmodule
Astudent
1
Student Staff Module Mark
Student.allInstances-> select(s | s.age >= 18).println();
![Page 17: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/17.jpg)
17 Example (M2T)
modules
MSD,HCI
F
MSD,RQE
E
mt506supervisor
mt506
4 jd5023 SmithJane 22jd501 232 ThompsonJoe
D age
C lastname
Bfirstname
Aid
1
Student Staff
E
dj5123 JacksonDaniel HCImt506 MSD,RQE2 ThomasMatthew
D teaches
C lastname
Bfirstname
Aid
1
Student Staff
Module
Module
Student Staff ModuleHuman Computer Interaction Spring 4 HCI
D
RQE3 SpringRequirements EngineeringMSD2 AutumnModelling and System Design
C term
Btitle
Aid
1
Mark
Mark
Mark
E
jd5023 74ICAR jd5012 62TPOP
D C mark
Bmodule
Astudent
1
Student Staff Module Mark
<ul> [%for (s in Student.allInstances){%] <li> [%=s.firstname] [%=s.lastname] [%}%] </ul>
![Page 18: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/18.jpg)
18 Example (Validation)
context Mark { constraint WithinRange { check: self.mark <= 100 and self.mark >= 0 message: “Mark ” + self.mark + “ must be between 0-100”
} }
modules
MSD,HCI
F
MSD,RQE
E
mt506supervisor
mt506
4 jd5023 SmithJane 22jd501 232 ThompsonJoe
D age
C lastname
Bfirstname
Aid
1
Student Staff
E
dj5123 JacksonDaniel HCImt506 MSD,RQE2 ThomasMatthew
D teaches
C lastname
Bfirstname
Aid
1
Student Staff
Module
Module
Student Staff ModuleHuman Computer Interaction Spring 4 HCI
D
RQE3 SpringRequirements EngineeringMSD2 AutumnModelling and System Design
C term
Btitle
Aid
1
Mark
Mark
Mark
E
jd5023 74ICAR jd5012 62TPOP
D C mark
Bmodule
Astudent
1
Student Staff Module Mark
![Page 19: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/19.jpg)
19 How?
• Develop a native spreadsheets driver for Epsilon’s pluggable type system (EMC)
• Pros – No intermediate artefacts – No stale data – Direct updates to the spreadsheet – Can leverage native querying capabilities
![Page 20: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/20.jpg)
20 Query Translation • The implementation of primitive query
operations can be overloaded. • The Google Spreadsheets driver rewrites
(EOL) queries at runtime, e.g., to: – https://spreadsheets.google.com/feeds/list/tb-
<mark-worksheet-guid>/od6/private/full?sq=mark>70
• Search is performed on the server – Composite queries are supported
![Page 21: Spreadsheets are models too - Richard Paige at Sems 2014](https://reader033.vdocuments.us/reader033/viewer/2022060120/559259631a28ab6a418b466c/html5/thumbnails/21.jpg)
21 Conclusions • How do we interface MDE approaches with
spreadsheets? – Cannot/will not be re-engineered! – Need to use “real” models in combination with
spreadsheets (and other “inferior” tech). • Currently working on extending Google
Spreadsheets work with annotations. – Health care data project (York+TU/e+Lille).
• Driver available at: https://code.google.com/p/epsilonlabs/