SlideShare a Scribd company logo
1
Spreadsheets are models too
Richard Paige, Dimitris Kolovos, Nicholas Matragkas
Department of Computer Science
University of York
@richpaige, @kolovos, @nmatragkas
2MDE
•  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>
3Models?
EMF
XML XSD
Spreadsheets
Visio RDBMS
4The MDE Community
EMF
XML XSD
Spreadsheets
Visio
RDBMS
5Everyone else
EMF
XML XSD
Spreadsheets
Visio RDBMS
6EMF 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.
7Spreadsheets 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>
8Spreadsheet = 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…
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.
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.
11How?
•  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?
12How?
•  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.
13How?
•  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
14Basic Idea?
•  Spreadsheet -> Model
•  Worksheet -> Type
•  Column -> Property
•  Row -> Model element
modules
MSD,HCI
F
MSD,RQE
E
mt506
supervisor
mt506
4
jd5023 SmithJane 22
jd501 232 ThompsonJoe
D
age
C
lastname
B
firstname
A
id1
Student Staff
ED
teaches
C
lastname
B
firstname
A
id1
Module Mark
15eclipse.org/Epsilon
16Example (Query)
modules
MSD,HCI
F
MSD,RQE
E
mt506
supervisor
mt506
4
jd5023 SmithJane 22
jd501 232 ThompsonJoe
D
age
C
lastname
B
firstname
A
id1
Student Staff
E
dj5123 JacksonDaniel HCI
mt506 MSD,RQE2 ThomasMatthew
D
teaches
C
lastname
B
firstname
A
id1
Student Staff
Module
Module
Student Staff Module
Human Computer Interaction Spring4 HCI
D
RQE3 SpringRequirements Engineering
MSD2 AutumnModelling and System Design
C
term
B
title
A
id1
Mark
Mark
Mark
Student.allInstances->
select(s | s.age >= 18).println();
17Example (M2T)
modules
MSD,HCI
F
MSD,RQE
E
mt506
supervisor
mt506
4
jd5023 SmithJane 22
jd501 232 ThompsonJoe
D
age
C
lastname
B
firstname
A
id1
Student Staff
E
dj5123 JacksonDaniel HCI
mt506 MSD,RQE2 ThomasMatthew
D
teaches
C
lastname
B
firstname
A
id1
Student Staff
Module
Module
Student Staff Module
Human Computer Interaction Spring4 HCI
D
RQE3 SpringRequirements Engineering
MSD2 AutumnModelling and System Design
C
term
B
title
A
id1
Mark
Mark
Mark
<ul>
[%for (s in Student.allInstances){%]
<li> [%=s.firstname] [%=s.lastname]
[%}%]
</ul>
18Example (Validation)
context Mark {
constraint WithinRange {
check: self.mark <= 100 and
self.mark >= 0
message: “Mark ” + self.mark +
“ must be between 0-100”
}
}
Student Staff Module
Human Computer Interaction Spring4 HCI
D
RQE3 SpringRequirements Engineering
MSD2 AutumnModelling and System Design
C
term
B
title
A
id1
Mark
E
jd5023 74ICAR
jd5012 62TPOP
DC
mark
B
module
A
student1
Student Staff Module Mark
19How?
•  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
20Query 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
21Conclusions
•  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/

More Related Content

Similar to Spreadsheets are models too - Richard Paige at Sems 2014

Eng Cal Reduced1
Eng Cal Reduced1Eng Cal Reduced1
Eng Cal Reduced1
rtmote
 
MDE in Practice
MDE in PracticeMDE in Practice
MDE in Practice
Abdalmassih Yakeen
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
B.T.L.I.T
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven Architectures
Lalit Kale
 
Lightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringLightweight Model-Driven Engineering
Lightweight Model-Driven Engineering
Jordi Cabot
 
Domain specific modelling (DSM)
Domain specific modelling (DSM)Domain specific modelling (DSM)
Domain specific modelling (DSM)
PG Scholar
 
Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?
Jordi Cabot
 
Sodius cassidian mdday2010
Sodius cassidian mdday2010Sodius cassidian mdday2010
Sodius cassidian mdday2010MD DAY
 
NEXiDA at OMG June 2009
NEXiDA at OMG June 2009NEXiDA at OMG June 2009
NEXiDA at OMG June 2009
Claudio Rubbiani
 
SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02
SodiusWillert
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDD
Johan den Haan
 
Future Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingFuture Trends on Software and Systems Modeling
Future Trends on Software and Systems Modeling
Jordi Cabot
 
Innovation in model driven software
Innovation in model driven softwareInnovation in model driven software
Innovation in model driven software
Sagi Schliesser
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
Roger Xia
 
Educating in MDE
Educating in MDE Educating in MDE
Educating in MDE
Jordi Cabot
 
Enriching Tool Support for Model-Driven Software Development
Enriching Tool Support for Model-Driven Software DevelopmentEnriching Tool Support for Model-Driven Software Development
Enriching Tool Support for Model-Driven Software Development
David Méndez-Acuña
 
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012
Marc Dutoo
 
Model-Driven Spreadsheet Development
Model-Driven Spreadsheet DevelopmentModel-Driven Spreadsheet Development
Model-Driven Spreadsheet Development
Jácome Cunha
 

Similar to Spreadsheets are models too - Richard Paige at Sems 2014 (20)

ALT
ALTALT
ALT
 
Eng Cal Reduced1
Eng Cal Reduced1Eng Cal Reduced1
Eng Cal Reduced1
 
MDE in Practice
MDE in PracticeMDE in Practice
MDE in Practice
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven Architectures
 
Lightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringLightweight Model-Driven Engineering
Lightweight Model-Driven Engineering
 
Domain specific modelling (DSM)
Domain specific modelling (DSM)Domain specific modelling (DSM)
Domain specific modelling (DSM)
 
Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?
 
Sodius cassidian mdday2010
Sodius cassidian mdday2010Sodius cassidian mdday2010
Sodius cassidian mdday2010
 
NEXiDA at OMG June 2009
NEXiDA at OMG June 2009NEXiDA at OMG June 2009
NEXiDA at OMG June 2009
 
SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDD
 
Future Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingFuture Trends on Software and Systems Modeling
Future Trends on Software and Systems Modeling
 
Innovation in model driven software
Innovation in model driven softwareInnovation in model driven software
Innovation in model driven software
 
Cg 2011
Cg 2011Cg 2011
Cg 2011
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
 
Educating in MDE
Educating in MDE Educating in MDE
Educating in MDE
 
Enriching Tool Support for Model-Driven Software Development
Enriching Tool Support for Model-Driven Software DevelopmentEnriching Tool Support for Model-Driven Software Development
Enriching Tool Support for Model-Driven Software Development
 
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012
From Eclipse to Document Management - Eclipse DemoCamp Grenoble 2012
 
Model-Driven Spreadsheet Development
Model-Driven Spreadsheet DevelopmentModel-Driven Spreadsheet Development
Model-Driven Spreadsheet Development
 

Recently uploaded

Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
Globus
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 

Recently uploaded (20)

Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Enhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZEnhancing Performance with Globus and the Science DMZ
Enhancing Performance with Globus and the Science DMZ
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 

Spreadsheets are models too - Richard Paige at Sems 2014

  • 1. 1 Spreadsheets are models too Richard Paige, Dimitris Kolovos, Nicholas Matragkas Department of Computer Science University of York @richpaige, @kolovos, @nmatragkas
  • 2. 2MDE •  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>
  • 4. 4The MDE Community EMF XML XSD Spreadsheets Visio RDBMS
  • 6. 6EMF 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.
  • 7. 7Spreadsheets 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>
  • 8. 8Spreadsheet = 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…
  • 9. 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.
  • 10. 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.
  • 11. 11How? •  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?
  • 12. 12How? •  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.
  • 13. 13How? •  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
  • 14. 14Basic Idea? •  Spreadsheet -> Model •  Worksheet -> Type •  Column -> Property •  Row -> Model element modules MSD,HCI F MSD,RQE E mt506 supervisor mt506 4 jd5023 SmithJane 22 jd501 232 ThompsonJoe D age C lastname B firstname A id1 Student Staff ED teaches C lastname B firstname A id1 Module Mark
  • 16. 16Example (Query) modules MSD,HCI F MSD,RQE E mt506 supervisor mt506 4 jd5023 SmithJane 22 jd501 232 ThompsonJoe D age C lastname B firstname A id1 Student Staff E dj5123 JacksonDaniel HCI mt506 MSD,RQE2 ThomasMatthew D teaches C lastname B firstname A id1 Student Staff Module Module Student Staff Module Human Computer Interaction Spring4 HCI D RQE3 SpringRequirements Engineering MSD2 AutumnModelling and System Design C term B title A id1 Mark Mark Mark Student.allInstances-> select(s | s.age >= 18).println();
  • 17. 17Example (M2T) modules MSD,HCI F MSD,RQE E mt506 supervisor mt506 4 jd5023 SmithJane 22 jd501 232 ThompsonJoe D age C lastname B firstname A id1 Student Staff E dj5123 JacksonDaniel HCI mt506 MSD,RQE2 ThomasMatthew D teaches C lastname B firstname A id1 Student Staff Module Module Student Staff Module Human Computer Interaction Spring4 HCI D RQE3 SpringRequirements Engineering MSD2 AutumnModelling and System Design C term B title A id1 Mark Mark Mark <ul> [%for (s in Student.allInstances){%] <li> [%=s.firstname] [%=s.lastname] [%}%] </ul>
  • 18. 18Example (Validation) context Mark { constraint WithinRange { check: self.mark <= 100 and self.mark >= 0 message: “Mark ” + self.mark + “ must be between 0-100” } } Student Staff Module Human Computer Interaction Spring4 HCI D RQE3 SpringRequirements Engineering MSD2 AutumnModelling and System Design C term B title A id1 Mark E jd5023 74ICAR jd5012 62TPOP DC mark B module A student1 Student Staff Module Mark
  • 19. 19How? •  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
  • 20. 20Query 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
  • 21. 21Conclusions •  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/