SlideShare a Scribd company logo
1 of 24
Download to read offline
Intro Proposal Results Conclusions
Domain-Specific Language for Generating
Administrative Process Applications
Antonio García-Domínguez, Ismael Jerez-Ibáñez and
Inmaculada Medina-Bulo
July 8th, 2015
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 1 / 12
Intro Proposal Results Conclusions
Motivation
Situation
Univ. of Cadiz (Spain), IT webdev+support group (5-8 people)
Need to handle demand for many “small” internal apps
Similar needs: data collection and simple processes
Restrictions
Varied backgrounds: recently standardized on Python/Django
Limited time/budget for training/consulting
Developers are moved frequently between apps
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 2 / 12
Intro Proposal Results Conclusions
Existing approaches
Full-fledged BPM systems (e.g. Bonita)
Pros: standards-based (BPMN), general-purpose
Cons: complexity, dependency on engine, seemingly “minor”
customizations are costly
Domain-based code generators (e.g. EMF Forms / Apache Isis)
Pros: simpler, easier to customize
Cons: do not take into account the underlying process
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 3 / 12
Intro Proposal Results Conclusions
Proposed approach: process category-specific DSL
Modelling requirements
1 Manage both domain and process
2 Provide role-based access control per process state
3 Support decision- and date-based transitions
4 Support process isolation between users with same roles
Technical requirements
1 Allow generator-specific annotations
2 Manageable with regular editors and VCSs
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 4 / 12
Intro Proposal Results Conclusions
Example: examination process
site School;
options { . . . }
role student;
role teacher;
process exam {
entity Ans3 { . . . }
section personal { . . . }
section test { . . . }
section evaluation { . . . }
state initial { . . . }
state part1 { . . . }
state part2 { . . . }
state evaluation { . . . }
state closed { . . . }
}
Steps
1 Student starts process
2 Exam is in 2 parts
3 Part 2 opens after date
4 Evaluation by teacher
5 Exam closed, read-only
Implementation
Parser + editor: Xtext
Code generator: Epsilon
Target framework: Django
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 5 / 12
Intro Proposal Results Conclusions
Example: examination process
site School;
options { . . . }
role student;
role teacher;
process exam {
entity Ans3 { . . . }
section personal { . . . }
section test { . . . }
section evaluation { . . . }
state initial { . . . }
state part1 { . . . }
state part2 { . . . }
state evaluation { . . . }
state closed { . . . }
}
options {
django_base_template
= "template/base.html";
django_extra_apps
= "template = https://.../";
}
Site-wide generation options
Key-value pairs
Keys not restricted by grammar
Allows generators to provide
extra functionality
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 5 / 12
Intro Proposal Results Conclusions
Example: examination process
site School;
options { . . . }
role student;
role teacher;
process exam {
entity Ans3 { . . . }
section personal { . . . }
section test { . . . }
section evaluation { . . . }
state initial { . . . }
state part1 { . . . }
state part2 { . . . }
state evaluation { . . . }
state closed { . . . }
}
entity Ans3 { string answer; }
Data entities
Objects that can be reused
across process instances
Can be site-wide or
process-specific
Example: possible answers for
question 3
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 5 / 12
Intro Proposal Results Conclusions
Example: examination process
site School;
options { . . . }
role student;
role teacher;
process exam {
entity Ans3 { . . . }
section personal { . . . }
section test { . . . }
section evaluation { . . . }
state initial { . . . }
state part1 { . . . }
state part2 { . . . }
state evaluation { . . . }
state closed { . . . }
}
section personal {
fullName studentname;
identityDocument(label="National ID:") nid;
email(label="Email") mail;
}
Sections
Divide the form for access control or
presentation.
Fields
Types are domain-specific,
beyond those of the framework
“fullName”: forename, last name
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 5 / 12
Intro Proposal Results Conclusions
Example: examination process
site School;
options { . . . }
role student;
role teacher;
process exam {
entity Ans3 { . . . }
section personal { . . . }
section test { . . . }
section evaluation { . . . }
state initial { . . . }
state part1 { . . . }
state part2 { . . . }
state evaluation { . . . }
state closed { . . . }
}
section test {
group part1 {
string(blank="True") q1;
choice(values=". . . ",blank="True") q2;
choice(table="Ans3",blank="True") q3;
}
group part2 { . . . }
. . .
}
Groups
Contain one or more fields.
Optionally, can be repeated
(e.g. order line items).
Also useful for access control.
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 5 / 12
Intro Proposal Results Conclusions
Example: examination process
site School;
options { . . . }
role student;
role teacher;
process exam {
entity Ans3 { . . . }
section personal { . . . }
section test { . . . }
section evaluation { . . . }
state initial { . . . }
state part1 { . . . }
state part2 { . . . }
state evaluation { . . . }
state closed { . . . }
}
state initial {
permissions student { editable personal; }
transition(decision_by="student",
start_date="2015/03/01−14:00:00",
end_date="2015/03/07−14:00:00",
max="1") part1;
}
Initial state
Implicit state while unstarted
Who can start the process,
when and how many times?
Here, students could start the
process once from March 1st to
March 7th at the part1 state
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 5 / 12
Intro Proposal Results Conclusions
Example: examination process
site School;
options { . . . }
role student;
role teacher;
process exam {
entity Ans3 { . . . }
section personal { . . . }
section test { . . . }
section evaluation { . . . }
state initial { . . . }
state part1 { . . . }
state part2 { . . . }
state evaluation { . . . }
state closed { . . . }
}
state part1 {
permissions teacher { viewable all; }
permissions student from initial→part1 {
editable personal, test.part1;
}
transition(start_date=". . . ") part2;
}
Permissions per state + role
View or edit form data
Delete process instance
Optional: required transitions
Restrict to participants of a specific
transition in that instance.
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 5 / 12
Intro Proposal Results Conclusions
Generated website: main page
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 6 / 12
Intro Proposal Results Conclusions
Generated website: full form
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 7 / 12
Intro Proposal Results Conclusions
Generated website: generated code
Metrics
DSL-based description: 66 lines long
Produced:
1000+ lines of Python code
400+ lines of HTML templates
264 lines of docs/support scripts
Features
Generates models, views and controllers
Generates process-oriented UI as starting point
Partial form saving (drafts)
Integrates useful Django features (admin panel, data
versioning, chained selectors, i18n...)
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 8 / 12
Intro Proposal Results Conclusions
Current status
Availability
In-house with IT staff and local contractors
Currently used to prototype four internal apps:
Budget plan tracking
Degree improvement plan tracking
Job postings management
Strategic plan definition/tracking
Maturity
Metamodel mostly stabilized, but not frozen yet
Editor is being refined with OCL constraints
Generator verified through automated functional testing
Collaborating with users on defining “protected regions”
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 9 / 12
Intro Proposal Results Conclusions
Conclusions
Proposal
Small IT group working on repetitive web apps
General purpose BPM engines too complex, form-based
frameworks do not consider the processes
Proposed middle ground: a process category-specific DSL
Results obtained
DSL (parser + editor) implemented through Xtext
Code generation with Epsilon targeting Django
Being used currently to develop four in-house apps
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 10 / 12
Intro Proposal Results Conclusions
Future work
Improvements on DSL
State preconditions/postconditions
Nested groups
Improvements on tooling
Extend current Xtend validation with OCL
Create more generators (Symfony2, BPMN?)
Graphical visualizations of the process
Create graphical editor (backed by DSL instead of XMI)
Validation
Refinements based on user feedback
Planned open source release in summer/fall 2015
Future studies on productivity/usability
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 11 / 12
Intro Proposal Results Conclusions
End of the presentation
Thank you for your attention
@antoniogado, @antoniogado_es
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 12 / 12
Abstract syntax — Application
Application Element
Options Role
name : EString
Site
name : EString
Option
name : EString
values : EString
Entity
name : EString
Process
name : EString
[0..*] elements
[0..*] elements
[0..*] properties
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 12 / 12
Abstract syntax — Process
State
name : EString
Relation
relname : EString
ProcessElementProcess
name : EString
Entity
name : EString
Section
name : EString
[0..*] elements
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 12 / 12
Abstract syntax — Sections/Entities
Field
type : EString
Group
SectionElement
name : EString
Relation
relname : EString
EntityElement
Option
name : EString
values : EString
Section
name : EString
Entity
name : EString
[0..*] elements
[0..*] options
[0..*] reloptions[0..*] options
[0..*] elements [0..*] elements
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 12 / 12
Abstract syntax — States
Permission
type : EString
PermissionAllPermissionWithTarget
State
name : EString
StateElement Transition
Points to section,
group or field.
RolePermissionsDef RequiredTransition
[0..*] elements
[0..1] name
[0..*] permissions [0..*] transitions
[0..1] from
[0..1] to
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 12 / 12
Abstract syntax — Relations
Relation
relname : EString
RelationReferenceTarget
RelationTarget
RelTailRef
RelTailRef2
ProcessOrEntity
SectionOrEntity
Group
LiteralClass
value : EString
[0..*] targets
[0..1] tail
[0..1] tail
[0..1] target
[0..1] element
[0..1] element
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 12 / 12
Example: examination process
site School;
options { . . . }
role student;
role teacher;
process exam {
entity Ans3 { . . . }
section personal { . . . }
section test { . . . }
section evaluation { . . . }
state initial { . . . }
state part1 { . . . }
state part2 { . . . }
state evaluation { . . . }
state closed { . . . }
}
state closed {
permissions teacher { viewable all; }
permissions student { viewable evaluation; }
permissions student from initial→part1 {
viewable all;
}
}
Final state(s)
States with no outgoing
transitions
A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 12 / 12

More Related Content

Viewers also liked

Adesla Advertising Campaign Proposal
Adesla Advertising Campaign Proposal Adesla Advertising Campaign Proposal
Adesla Advertising Campaign Proposal Angilbeth Flores
 
El desafío de los medios editoriales
El desafío de los medios editorialesEl desafío de los medios editoriales
El desafío de los medios editorialesPablo Salvatori
 
Informe Notoriedad publicitaria. Enero-Septiembre 2013
Informe Notoriedad publicitaria. Enero-Septiembre 2013Informe Notoriedad publicitaria. Enero-Septiembre 2013
Informe Notoriedad publicitaria. Enero-Septiembre 201322gradosº
 
Rcpower presentation original es
Rcpower presentation original esRcpower presentation original es
Rcpower presentation original esrcpowerrd
 
Propuesta Comercial Grupo Stelphone
Propuesta Comercial Grupo StelphonePropuesta Comercial Grupo Stelphone
Propuesta Comercial Grupo StelphoneGrupo Stelphone
 
Propuesta comercial a empresas 2014 para publicitarse en programa de TV por I...
Propuesta comercial a empresas 2014 para publicitarse en programa de TV por I...Propuesta comercial a empresas 2014 para publicitarse en programa de TV por I...
Propuesta comercial a empresas 2014 para publicitarse en programa de TV por I...Marco A. Santiago
 
Modelo Oferta Power Point
Modelo Oferta Power PointModelo Oferta Power Point
Modelo Oferta Power Pointguest824ff0
 
Top 10 Mobile User Acquisition Trends - AdColony
Top 10 Mobile User Acquisition Trends - AdColonyTop 10 Mobile User Acquisition Trends - AdColony
Top 10 Mobile User Acquisition Trends - AdColonyAdColony
 
Presentación sobre Branding y las 22 leyes de marcas exitosas
Presentación sobre Branding y las 22 leyes de marcas exitosasPresentación sobre Branding y las 22 leyes de marcas exitosas
Presentación sobre Branding y las 22 leyes de marcas exitosasAndres Gonzales Luna
 
Propuesta Comercial Amarillas Internet
Propuesta Comercial  Amarillas InternetPropuesta Comercial  Amarillas Internet
Propuesta Comercial Amarillas InternetJosé Rodriguez
 
Contoh Presentasi Powerpoint Untuk Sidang Skripsi
Contoh Presentasi Powerpoint Untuk Sidang SkripsiContoh Presentasi Powerpoint Untuk Sidang Skripsi
Contoh Presentasi Powerpoint Untuk Sidang SkripsiYusuf Saefudin
 
NEUROMARKETING JURGEN KLARIC
NEUROMARKETING JURGEN KLARICNEUROMARKETING JURGEN KLARIC
NEUROMARKETING JURGEN KLARICJurgenKlaric
 
Power point seminar proposal yunita rahmah
Power point seminar proposal yunita rahmahPower point seminar proposal yunita rahmah
Power point seminar proposal yunita rahmahYunitha Rahmah
 
Contoh Powerpoint ppt PRESENTASI SIDANG UJIAN SKRIPSI
Contoh Powerpoint ppt PRESENTASI SIDANG UJIAN SKRIPSIContoh Powerpoint ppt PRESENTASI SIDANG UJIAN SKRIPSI
Contoh Powerpoint ppt PRESENTASI SIDANG UJIAN SKRIPSIAhmad Said
 
App Marketing (ASO) & Analytics / Tracking
App Marketing (ASO) & Analytics / TrackingApp Marketing (ASO) & Analytics / Tracking
App Marketing (ASO) & Analytics / TrackingDaniel Peris Molina
 

Viewers also liked (20)

Leyes inmutables del branding
Leyes inmutables del brandingLeyes inmutables del branding
Leyes inmutables del branding
 
Adesla Advertising Campaign Proposal
Adesla Advertising Campaign Proposal Adesla Advertising Campaign Proposal
Adesla Advertising Campaign Proposal
 
Display advertising
Display advertisingDisplay advertising
Display advertising
 
El desafío de los medios editoriales
El desafío de los medios editorialesEl desafío de los medios editoriales
El desafío de los medios editoriales
 
Informe Notoriedad publicitaria. Enero-Septiembre 2013
Informe Notoriedad publicitaria. Enero-Septiembre 2013Informe Notoriedad publicitaria. Enero-Septiembre 2013
Informe Notoriedad publicitaria. Enero-Septiembre 2013
 
Rcpower presentation original es
Rcpower presentation original esRcpower presentation original es
Rcpower presentation original es
 
Propuesta Comercial Grupo Stelphone
Propuesta Comercial Grupo StelphonePropuesta Comercial Grupo Stelphone
Propuesta Comercial Grupo Stelphone
 
Propuesta comercial a empresas 2014 para publicitarse en programa de TV por I...
Propuesta comercial a empresas 2014 para publicitarse en programa de TV por I...Propuesta comercial a empresas 2014 para publicitarse en programa de TV por I...
Propuesta comercial a empresas 2014 para publicitarse en programa de TV por I...
 
Propuesta Comercial
Propuesta ComercialPropuesta Comercial
Propuesta Comercial
 
Modelo Oferta Power Point
Modelo Oferta Power PointModelo Oferta Power Point
Modelo Oferta Power Point
 
Top 10 Mobile User Acquisition Trends - AdColony
Top 10 Mobile User Acquisition Trends - AdColonyTop 10 Mobile User Acquisition Trends - AdColony
Top 10 Mobile User Acquisition Trends - AdColony
 
Glosario de Marketing Digital - IAB
Glosario de Marketing Digital - IABGlosario de Marketing Digital - IAB
Glosario de Marketing Digital - IAB
 
Presentación sobre Branding y las 22 leyes de marcas exitosas
Presentación sobre Branding y las 22 leyes de marcas exitosasPresentación sobre Branding y las 22 leyes de marcas exitosas
Presentación sobre Branding y las 22 leyes de marcas exitosas
 
Propuesta Comercial Amarillas Internet
Propuesta Comercial  Amarillas InternetPropuesta Comercial  Amarillas Internet
Propuesta Comercial Amarillas Internet
 
Informe Fortunata Notoriedad de marca Q2 2016
Informe Fortunata Notoriedad de marca Q2 2016Informe Fortunata Notoriedad de marca Q2 2016
Informe Fortunata Notoriedad de marca Q2 2016
 
Contoh Presentasi Powerpoint Untuk Sidang Skripsi
Contoh Presentasi Powerpoint Untuk Sidang SkripsiContoh Presentasi Powerpoint Untuk Sidang Skripsi
Contoh Presentasi Powerpoint Untuk Sidang Skripsi
 
NEUROMARKETING JURGEN KLARIC
NEUROMARKETING JURGEN KLARICNEUROMARKETING JURGEN KLARIC
NEUROMARKETING JURGEN KLARIC
 
Power point seminar proposal yunita rahmah
Power point seminar proposal yunita rahmahPower point seminar proposal yunita rahmah
Power point seminar proposal yunita rahmah
 
Contoh Powerpoint ppt PRESENTASI SIDANG UJIAN SKRIPSI
Contoh Powerpoint ppt PRESENTASI SIDANG UJIAN SKRIPSIContoh Powerpoint ppt PRESENTASI SIDANG UJIAN SKRIPSI
Contoh Powerpoint ppt PRESENTASI SIDANG UJIAN SKRIPSI
 
App Marketing (ASO) & Analytics / Tracking
App Marketing (ASO) & Analytics / TrackingApp Marketing (ASO) & Analytics / Tracking
App Marketing (ASO) & Analytics / Tracking
 

Similar to BMSD 2015 slides (revised)

University online course registration system
University online course registration systemUniversity online course registration system
University online course registration systemMd. Zahid Hasan
 
Essam Saber Anees Ambarak
Essam Saber Anees AmbarakEssam Saber Anees Ambarak
Essam Saber Anees AmbarakEssam Saber
 
Bhanu prasad profile
Bhanu prasad profileBhanu prasad profile
Bhanu prasad profileBhanu Prasad
 
Algorithms and Application Programming
Algorithms and Application ProgrammingAlgorithms and Application Programming
Algorithms and Application Programmingahaleemsl
 
Bhanu prasad profile
Bhanu prasad profileBhanu prasad profile
Bhanu prasad profileBhanu Prasad
 
Bhanu prasad profile
Bhanu prasad profileBhanu prasad profile
Bhanu prasad profileBhanu Prasad
 
Major proj term3
Major proj term3Major proj term3
Major proj term3hccit
 
Anmol_Garg_Resume1
Anmol_Garg_Resume1Anmol_Garg_Resume1
Anmol_Garg_Resume1ANMOL GARG
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven developmentRuhaim Izmeth
 
SRS Project Report by Foysal
SRS Project Report by FoysalSRS Project Report by Foysal
SRS Project Report by FoysalFoysal Mahmud
 
Student faculty document sharing | SFDS | Ajay Balava
Student faculty document sharing | SFDS | Ajay BalavaStudent faculty document sharing | SFDS | Ajay Balava
Student faculty document sharing | SFDS | Ajay BalavaAjay Balava
 
Online Examination Java Projectreport.docx
Online Examination Java Projectreport.docxOnline Examination Java Projectreport.docx
Online Examination Java Projectreport.docxTanishaPatil4
 
Online_Examination
Online_ExaminationOnline_Examination
Online_ExaminationRupam Dey
 
9 project planning
9 project planning9 project planning
9 project planningrandhirlpu
 
Asset Conf HHH and Lexmark Mar 2009
Asset Conf HHH and Lexmark Mar 2009Asset Conf HHH and Lexmark Mar 2009
Asset Conf HHH and Lexmark Mar 2009Corinne Carriero
 
Software development slides
Software development slidesSoftware development slides
Software development slidesiarthur
 

Similar to BMSD 2015 slides (revised) (20)

University online course registration system
University online course registration systemUniversity online course registration system
University online course registration system
 
Essam Saber Anees Ambarak
Essam Saber Anees AmbarakEssam Saber Anees Ambarak
Essam Saber Anees Ambarak
 
Prathap resume
Prathap resumePrathap resume
Prathap resume
 
Bhanu prasad profile
Bhanu prasad profileBhanu prasad profile
Bhanu prasad profile
 
Algorithms and Application Programming
Algorithms and Application ProgrammingAlgorithms and Application Programming
Algorithms and Application Programming
 
Bhanu prasad profile
Bhanu prasad profileBhanu prasad profile
Bhanu prasad profile
 
Bhanu prasad profile
Bhanu prasad profileBhanu prasad profile
Bhanu prasad profile
 
Resume-SachinShah
Resume-SachinShahResume-SachinShah
Resume-SachinShah
 
Major proj term3
Major proj term3Major proj term3
Major proj term3
 
Anmol_Garg_Resume1
Anmol_Garg_Resume1Anmol_Garg_Resume1
Anmol_Garg_Resume1
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
 
Salim_Ahmed_gp_latest
Salim_Ahmed_gp_latestSalim_Ahmed_gp_latest
Salim_Ahmed_gp_latest
 
SRS Project Report by Foysal
SRS Project Report by FoysalSRS Project Report by Foysal
SRS Project Report by Foysal
 
Student faculty document sharing | SFDS | Ajay Balava
Student faculty document sharing | SFDS | Ajay BalavaStudent faculty document sharing | SFDS | Ajay Balava
Student faculty document sharing | SFDS | Ajay Balava
 
Online Examination Java Projectreport.docx
Online Examination Java Projectreport.docxOnline Examination Java Projectreport.docx
Online Examination Java Projectreport.docx
 
Online_Examination
Online_ExaminationOnline_Examination
Online_Examination
 
CV_Swatibatra
CV_SwatibatraCV_Swatibatra
CV_Swatibatra
 
9 project planning
9 project planning9 project planning
9 project planning
 
Asset Conf HHH and Lexmark Mar 2009
Asset Conf HHH and Lexmark Mar 2009Asset Conf HHH and Lexmark Mar 2009
Asset Conf HHH and Lexmark Mar 2009
 
Software development slides
Software development slidesSoftware development slides
Software development slides
 

More from Antonio García-Domínguez

MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...
MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...
MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...Antonio García-Domínguez
 
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...Antonio García-Domínguez
 
Boosting individual feedback with AutoFeedback
Boosting individual feedback with AutoFeedbackBoosting individual feedback with AutoFeedback
Boosting individual feedback with AutoFeedbackAntonio García-Domínguez
 
MODELS 2019: Querying and annotating model histories with time-aware patterns
MODELS 2019: Querying and annotating model histories with time-aware patternsMODELS 2019: Querying and annotating model histories with time-aware patterns
MODELS 2019: Querying and annotating model histories with time-aware patternsAntonio García-Domínguez
 
Tips and resources for publication-grade figures and tables
Tips and resources for publication-grade figures and tablesTips and resources for publication-grade figures and tables
Tips and resources for publication-grade figures and tablesAntonio García-Domínguez
 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceAntonio García-Domínguez
 
MRT 2018: reflecting on the past and the present with temporal graph models
MRT 2018: reflecting on the past and the present with temporal graph modelsMRT 2018: reflecting on the past and the present with temporal graph models
MRT 2018: reflecting on the past and the present with temporal graph modelsAntonio García-Domínguez
 
Hawk: indexado de modelos en bases de datos NoSQL
Hawk: indexado de modelos en bases de datos NoSQLHawk: indexado de modelos en bases de datos NoSQL
Hawk: indexado de modelos en bases de datos NoSQLAntonio García-Domínguez
 
OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?Antonio García-Domínguez
 
Developing a new Epsilon Language through Annotations: TestLang
Developing a new Epsilon Language through Annotations: TestLangDeveloping a new Epsilon Language through Annotations: TestLang
Developing a new Epsilon Language through Annotations: TestLangAntonio García-Domínguez
 
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...Antonio García-Domínguez
 
Software libre para la integración de información en la Universidad de Cádiz
Software libre para la integración de información en la Universidad de CádizSoftware libre para la integración de información en la Universidad de Cádiz
Software libre para la integración de información en la Universidad de CádizAntonio García-Domínguez
 

More from Antonio García-Domínguez (17)

MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...
MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...
MODELS 2022 Journal-First presentation: ETeMoX - explaining reinforcement lea...
 
MODELS 2022 Picto Web tool demo
MODELS 2022 Picto Web tool demoMODELS 2022 Picto Web tool demo
MODELS 2022 Picto Web tool demo
 
EduSymp 2022 slides (The Epsilon Playground)
EduSymp 2022 slides (The Epsilon Playground)EduSymp 2022 slides (The Epsilon Playground)
EduSymp 2022 slides (The Epsilon Playground)
 
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...
History-Aware Explanations: Towards Enabling Human-in-the-Loop in Self-Adapti...
 
Boosting individual feedback with AutoFeedback
Boosting individual feedback with AutoFeedbackBoosting individual feedback with AutoFeedback
Boosting individual feedback with AutoFeedback
 
MODELS 2019: Querying and annotating model histories with time-aware patterns
MODELS 2019: Querying and annotating model histories with time-aware patternsMODELS 2019: Querying and annotating model histories with time-aware patterns
MODELS 2019: Querying and annotating model histories with time-aware patterns
 
Tips and resources for publication-grade figures and tables
Tips and resources for publication-grade figures and tablesTips and resources for publication-grade figures and tables
Tips and resources for publication-grade figures and tables
 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
 
MRT 2018: reflecting on the past and the present with temporal graph models
MRT 2018: reflecting on the past and the present with temporal graph modelsMRT 2018: reflecting on the past and the present with temporal graph models
MRT 2018: reflecting on the past and the present with temporal graph models
 
Hawk: indexado de modelos en bases de datos NoSQL
Hawk: indexado de modelos en bases de datos NoSQLHawk: indexado de modelos en bases de datos NoSQL
Hawk: indexado de modelos en bases de datos NoSQL
 
Software and product quality for videogames
Software and product quality for videogamesSoftware and product quality for videogames
Software and product quality for videogames
 
OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?OCL'16 slides: Models from Code or Code as a Model?
OCL'16 slides: Models from Code or Code as a Model?
 
Developing a new Epsilon Language through Annotations: TestLang
Developing a new Epsilon Language through Annotations: TestLangDeveloping a new Epsilon Language through Annotations: TestLang
Developing a new Epsilon Language through Annotations: TestLang
 
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
MoDELS'16 presentation: Integration of a Graph-Based Model Indexer in Commerc...
 
ECMFA 2016 slides
ECMFA 2016 slidesECMFA 2016 slides
ECMFA 2016 slides
 
Elaboración de un buen póster científico
Elaboración de un buen póster científicoElaboración de un buen póster científico
Elaboración de un buen póster científico
 
Software libre para la integración de información en la Universidad de Cádiz
Software libre para la integración de información en la Universidad de CádizSoftware libre para la integración de información en la Universidad de Cádiz
Software libre para la integración de información en la Universidad de Cádiz
 

Recently uploaded

Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 

Recently uploaded (20)

Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 

BMSD 2015 slides (revised)

  • 1. Intro Proposal Results Conclusions Domain-Specific Language for Generating Administrative Process Applications Antonio García-Domínguez, Ismael Jerez-Ibáñez and Inmaculada Medina-Bulo July 8th, 2015 A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 1 / 12
  • 2. Intro Proposal Results Conclusions Motivation Situation Univ. of Cadiz (Spain), IT webdev+support group (5-8 people) Need to handle demand for many “small” internal apps Similar needs: data collection and simple processes Restrictions Varied backgrounds: recently standardized on Python/Django Limited time/budget for training/consulting Developers are moved frequently between apps A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 2 / 12
  • 3. Intro Proposal Results Conclusions Existing approaches Full-fledged BPM systems (e.g. Bonita) Pros: standards-based (BPMN), general-purpose Cons: complexity, dependency on engine, seemingly “minor” customizations are costly Domain-based code generators (e.g. EMF Forms / Apache Isis) Pros: simpler, easier to customize Cons: do not take into account the underlying process A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 3 / 12
  • 4. Intro Proposal Results Conclusions Proposed approach: process category-specific DSL Modelling requirements 1 Manage both domain and process 2 Provide role-based access control per process state 3 Support decision- and date-based transitions 4 Support process isolation between users with same roles Technical requirements 1 Allow generator-specific annotations 2 Manageable with regular editors and VCSs A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 4 / 12
  • 5. Intro Proposal Results Conclusions Example: examination process site School; options { . . . } role student; role teacher; process exam { entity Ans3 { . . . } section personal { . . . } section test { . . . } section evaluation { . . . } state initial { . . . } state part1 { . . . } state part2 { . . . } state evaluation { . . . } state closed { . . . } } Steps 1 Student starts process 2 Exam is in 2 parts 3 Part 2 opens after date 4 Evaluation by teacher 5 Exam closed, read-only Implementation Parser + editor: Xtext Code generator: Epsilon Target framework: Django A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 5 / 12
  • 6. Intro Proposal Results Conclusions Example: examination process site School; options { . . . } role student; role teacher; process exam { entity Ans3 { . . . } section personal { . . . } section test { . . . } section evaluation { . . . } state initial { . . . } state part1 { . . . } state part2 { . . . } state evaluation { . . . } state closed { . . . } } options { django_base_template = "template/base.html"; django_extra_apps = "template = https://.../"; } Site-wide generation options Key-value pairs Keys not restricted by grammar Allows generators to provide extra functionality A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 5 / 12
  • 7. Intro Proposal Results Conclusions Example: examination process site School; options { . . . } role student; role teacher; process exam { entity Ans3 { . . . } section personal { . . . } section test { . . . } section evaluation { . . . } state initial { . . . } state part1 { . . . } state part2 { . . . } state evaluation { . . . } state closed { . . . } } entity Ans3 { string answer; } Data entities Objects that can be reused across process instances Can be site-wide or process-specific Example: possible answers for question 3 A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 5 / 12
  • 8. Intro Proposal Results Conclusions Example: examination process site School; options { . . . } role student; role teacher; process exam { entity Ans3 { . . . } section personal { . . . } section test { . . . } section evaluation { . . . } state initial { . . . } state part1 { . . . } state part2 { . . . } state evaluation { . . . } state closed { . . . } } section personal { fullName studentname; identityDocument(label="National ID:") nid; email(label="Email") mail; } Sections Divide the form for access control or presentation. Fields Types are domain-specific, beyond those of the framework “fullName”: forename, last name A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 5 / 12
  • 9. Intro Proposal Results Conclusions Example: examination process site School; options { . . . } role student; role teacher; process exam { entity Ans3 { . . . } section personal { . . . } section test { . . . } section evaluation { . . . } state initial { . . . } state part1 { . . . } state part2 { . . . } state evaluation { . . . } state closed { . . . } } section test { group part1 { string(blank="True") q1; choice(values=". . . ",blank="True") q2; choice(table="Ans3",blank="True") q3; } group part2 { . . . } . . . } Groups Contain one or more fields. Optionally, can be repeated (e.g. order line items). Also useful for access control. A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 5 / 12
  • 10. Intro Proposal Results Conclusions Example: examination process site School; options { . . . } role student; role teacher; process exam { entity Ans3 { . . . } section personal { . . . } section test { . . . } section evaluation { . . . } state initial { . . . } state part1 { . . . } state part2 { . . . } state evaluation { . . . } state closed { . . . } } state initial { permissions student { editable personal; } transition(decision_by="student", start_date="2015/03/01−14:00:00", end_date="2015/03/07−14:00:00", max="1") part1; } Initial state Implicit state while unstarted Who can start the process, when and how many times? Here, students could start the process once from March 1st to March 7th at the part1 state A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 5 / 12
  • 11. Intro Proposal Results Conclusions Example: examination process site School; options { . . . } role student; role teacher; process exam { entity Ans3 { . . . } section personal { . . . } section test { . . . } section evaluation { . . . } state initial { . . . } state part1 { . . . } state part2 { . . . } state evaluation { . . . } state closed { . . . } } state part1 { permissions teacher { viewable all; } permissions student from initial→part1 { editable personal, test.part1; } transition(start_date=". . . ") part2; } Permissions per state + role View or edit form data Delete process instance Optional: required transitions Restrict to participants of a specific transition in that instance. A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 5 / 12
  • 12. Intro Proposal Results Conclusions Generated website: main page A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 6 / 12
  • 13. Intro Proposal Results Conclusions Generated website: full form A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 7 / 12
  • 14. Intro Proposal Results Conclusions Generated website: generated code Metrics DSL-based description: 66 lines long Produced: 1000+ lines of Python code 400+ lines of HTML templates 264 lines of docs/support scripts Features Generates models, views and controllers Generates process-oriented UI as starting point Partial form saving (drafts) Integrates useful Django features (admin panel, data versioning, chained selectors, i18n...) A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 8 / 12
  • 15. Intro Proposal Results Conclusions Current status Availability In-house with IT staff and local contractors Currently used to prototype four internal apps: Budget plan tracking Degree improvement plan tracking Job postings management Strategic plan definition/tracking Maturity Metamodel mostly stabilized, but not frozen yet Editor is being refined with OCL constraints Generator verified through automated functional testing Collaborating with users on defining “protected regions” A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 9 / 12
  • 16. Intro Proposal Results Conclusions Conclusions Proposal Small IT group working on repetitive web apps General purpose BPM engines too complex, form-based frameworks do not consider the processes Proposed middle ground: a process category-specific DSL Results obtained DSL (parser + editor) implemented through Xtext Code generation with Epsilon targeting Django Being used currently to develop four in-house apps A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 10 / 12
  • 17. Intro Proposal Results Conclusions Future work Improvements on DSL State preconditions/postconditions Nested groups Improvements on tooling Extend current Xtend validation with OCL Create more generators (Symfony2, BPMN?) Graphical visualizations of the process Create graphical editor (backed by DSL instead of XMI) Validation Refinements based on user feedback Planned open source release in summer/fall 2015 Future studies on productivity/usability A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 11 / 12
  • 18. Intro Proposal Results Conclusions End of the presentation Thank you for your attention @antoniogado, @antoniogado_es A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 12 / 12
  • 19. Abstract syntax — Application Application Element Options Role name : EString Site name : EString Option name : EString values : EString Entity name : EString Process name : EString [0..*] elements [0..*] elements [0..*] properties A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 12 / 12
  • 20. Abstract syntax — Process State name : EString Relation relname : EString ProcessElementProcess name : EString Entity name : EString Section name : EString [0..*] elements A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 12 / 12
  • 21. Abstract syntax — Sections/Entities Field type : EString Group SectionElement name : EString Relation relname : EString EntityElement Option name : EString values : EString Section name : EString Entity name : EString [0..*] elements [0..*] options [0..*] reloptions[0..*] options [0..*] elements [0..*] elements A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 12 / 12
  • 22. Abstract syntax — States Permission type : EString PermissionAllPermissionWithTarget State name : EString StateElement Transition Points to section, group or field. RolePermissionsDef RequiredTransition [0..*] elements [0..1] name [0..*] permissions [0..*] transitions [0..1] from [0..1] to A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 12 / 12
  • 23. Abstract syntax — Relations Relation relname : EString RelationReferenceTarget RelationTarget RelTailRef RelTailRef2 ProcessOrEntity SectionOrEntity Group LiteralClass value : EString [0..*] targets [0..1] tail [0..1] tail [0..1] target [0..1] element [0..1] element A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 12 / 12
  • 24. Example: examination process site School; options { . . . } role student; role teacher; process exam { entity Ans3 { . . . } section personal { . . . } section test { . . . } section evaluation { . . . } state initial { . . . } state part1 { . . . } state part2 { . . . } state evaluation { . . . } state closed { . . . } } state closed { permissions teacher { viewable all; } permissions student { viewable evaluation; } permissions student from initial→part1 { viewable all; } } Final state(s) States with no outgoing transitions A. García-Domínguez et al. Domain-Specific Language for Generating Administrative Process Applications 12 / 12