SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
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/

Mais conteúdo relacionado

Semelhante a Spreadsheets are models too - Richard Paige at Sems 2014

Eng Cal Reduced1
Eng Cal Reduced1Eng Cal Reduced1
Eng Cal Reduced1rtmote
 
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.pdfB.T.L.I.T
 
Model Driven Architectures
Model Driven ArchitecturesModel Driven Architectures
Model Driven ArchitecturesLalit Kale
 
Lightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringLightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringJordi 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
 
SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02SodiusWillert
 
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 MDDJohan 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 ModelingJordi Cabot
 
Innovation in model driven software
Innovation in model driven softwareInnovation in model driven software
Innovation in model driven softwareSagi Schliesser
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools researchRoger 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 DevelopmentDavid 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 2012Marc Dutoo
 
Model-Driven Spreadsheet Development
Model-Driven Spreadsheet DevelopmentModel-Driven Spreadsheet Development
Model-Driven Spreadsheet DevelopmentJácome Cunha
 

Semelhante a 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
 

Último

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Último (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

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/