SlideShare a Scribd company logo
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

Leyes inmutables del branding
Leyes inmutables del brandingLeyes inmutables del branding
Leyes inmutables del branding
Raúl Mauricio Aguilar Valencia
 
Adesla Advertising Campaign Proposal
Adesla Advertising Campaign Proposal Adesla Advertising Campaign Proposal
Adesla Advertising Campaign Proposal
Angilbeth Flores
 
Display advertising
Display advertisingDisplay advertising
Display advertising
Brox Technology
 
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
Pablo Salvatori
 
Informe Notoriedad publicitaria. Enero-Septiembre 2013
Informe Notoriedad publicitaria. Enero-Septiembre 2013Informe Notoriedad publicitaria. Enero-Septiembre 2013
Informe Notoriedad publicitaria. Enero-Septiembre 2013
22gradosº
 
Rcpower presentation original es
Rcpower presentation original esRcpower presentation original es
Rcpower presentation original es
rcpowerrd
 
Propuesta Comercial Grupo Stelphone
Propuesta Comercial Grupo StelphonePropuesta Comercial Grupo Stelphone
Propuesta Comercial Grupo Stelphone
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...
Marco A. Santiago
 
Propuesta Comercial
Propuesta ComercialPropuesta Comercial
Propuesta Comercial
emprendedoresucu
 
Modelo Oferta Power Point
Modelo Oferta Power PointModelo Oferta Power Point
Modelo Oferta Power Point
guest824ff0
 
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
AdColony
 
Glosario de Marketing Digital - IAB
Glosario de Marketing Digital - IABGlosario de Marketing Digital - IAB
Glosario de Marketing Digital - IAB
Sandra Roca Zela Prieto
 
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
Andres Gonzales Luna
 
Propuesta Comercial Amarillas Internet
Propuesta Comercial  Amarillas InternetPropuesta Comercial  Amarillas Internet
Propuesta Comercial Amarillas Internet
José Rodriguez
 
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
Fortunata Club de Marketing Turístico
 
Contoh Presentasi Powerpoint Untuk Sidang Skripsi
Contoh Presentasi Powerpoint Untuk Sidang SkripsiContoh Presentasi Powerpoint Untuk Sidang Skripsi
Contoh Presentasi Powerpoint Untuk Sidang Skripsi
Yusuf Saefudin
 
NEUROMARKETING JURGEN KLARIC
NEUROMARKETING JURGEN KLARICNEUROMARKETING JURGEN KLARIC
NEUROMARKETING JURGEN KLARIC
JurgenKlaric
 
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 SKRIPSI
Ahmad Said
 
App Marketing (ASO) & Analytics / Tracking
App Marketing (ASO) & Analytics / TrackingApp Marketing (ASO) & Analytics / Tracking
App Marketing (ASO) & Analytics / Tracking
Daniel 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 system
Md. Zahid Hasan
 
Essam Saber Anees Ambarak
Essam Saber Anees AmbarakEssam Saber Anees Ambarak
Essam Saber Anees Ambarak
Essam Saber
 
Prathap resume
Prathap resumePrathap resume
Prathap resume
PendyalaPrathapKumar
 
Bhanu prasad profile
Bhanu prasad profileBhanu prasad profile
Bhanu prasad profile
Bhanu Prasad
 
Algorithms and Application Programming
Algorithms and Application ProgrammingAlgorithms and Application Programming
Algorithms and Application Programming
ahaleemsl
 
Bhanu prasad profile
Bhanu prasad profileBhanu prasad profile
Bhanu prasad profile
Bhanu Prasad
 
Bhanu prasad profile
Bhanu prasad profileBhanu prasad profile
Bhanu prasad profile
Bhanu Prasad
 
Resume-SachinShah
Resume-SachinShahResume-SachinShah
Resume-SachinShah
Sachin Shah (Lehri)
 
Major proj term3
Major proj term3Major proj term3
Major proj term3
hccit
 
Anmol_Garg_Resume1
Anmol_Garg_Resume1Anmol_Garg_Resume1
Anmol_Garg_Resume1
ANMOL GARG
 
Feature driven development
Feature driven developmentFeature driven development
Feature driven development
Ruhaim Izmeth
 
Salim_Ahmed_gp_latest
Salim_Ahmed_gp_latestSalim_Ahmed_gp_latest
Salim_Ahmed_gp_latest
Mohammad Salim Ahmed
 
SRS Project Report by Foysal
SRS Project Report by FoysalSRS Project Report by Foysal
SRS Project Report by Foysal
Foysal 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 Balava
Ajay Balava
 
Online Examination Java Projectreport.docx
Online Examination Java Projectreport.docxOnline Examination Java Projectreport.docx
Online Examination Java Projectreport.docx
TanishaPatil4
 
Online_Examination
Online_ExaminationOnline_Examination
Online_Examination
Rupam Dey
 
CV_Swatibatra
CV_SwatibatraCV_Swatibatra
CV_Swatibatra
Swati Batra
 
9 project planning
9 project planning9 project planning
9 project planning
randhirlpu
 
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
Corinne Carriero
 
Software development slides
Software development slidesSoftware development slides
Software development slides
iarthur
 

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
 
MODELS 2022 Picto Web tool demo
MODELS 2022 Picto Web tool demoMODELS 2022 Picto Web tool demo
MODELS 2022 Picto Web tool demo
Antonio García-Domínguez
 
EduSymp 2022 slides (The Epsilon Playground)
EduSymp 2022 slides (The Epsilon Playground)EduSymp 2022 slides (The Epsilon Playground)
EduSymp 2022 slides (The Epsilon Playground)
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 AutoFeedback
Antonio 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 patterns
Antonio 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 tables
Antonio 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 service
Antonio 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 models
Antonio 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 NoSQL
Antonio García-Domínguez
 
Software and product quality for videogames
Software and product quality for videogamesSoftware and product quality for videogames
Software and product quality for videogames
Antonio 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: TestLang
Antonio 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
 
ECMFA 2016 slides
ECMFA 2016 slidesECMFA 2016 slides
ECMFA 2016 slides
Antonio García-Domínguez
 
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
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ádiz
Antonio 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

INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLESINTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
anfaltahir1010
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
ervikas4
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
Quarter 3 SLRP grade 9.. gshajsbhhaheabh
Quarter 3 SLRP grade 9.. gshajsbhhaheabhQuarter 3 SLRP grade 9.. gshajsbhhaheabh
Quarter 3 SLRP grade 9.. gshajsbhhaheabh
aisafed42
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
ISH Technologies
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
The Third Creative Media
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
gapen1
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
Kubernetes at Scale: Going Multi-Cluster with Istio
Kubernetes at Scale:  Going Multi-Cluster  with IstioKubernetes at Scale:  Going Multi-Cluster  with Istio
Kubernetes at Scale: Going Multi-Cluster with Istio
Severalnines
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Paul Brebner
 

Recently uploaded (20)

INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLESINTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
INTRODUCTION TO AI CLASSICAL THEORY TARGETED EXAMPLES
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptxMigration From CH 1.0 to CH 2.0 and  Mule 4.6 & Java 17 Upgrade.pptx
Migration From CH 1.0 to CH 2.0 and Mule 4.6 & Java 17 Upgrade.pptx
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
Quarter 3 SLRP grade 9.. gshajsbhhaheabh
Quarter 3 SLRP grade 9.. gshajsbhhaheabhQuarter 3 SLRP grade 9.. gshajsbhhaheabh
Quarter 3 SLRP grade 9.. gshajsbhhaheabh
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
如何办理(hull学位证书)英国赫尔大学毕业证硕士文凭原版一模一样
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
Kubernetes at Scale: Going Multi-Cluster with Istio
Kubernetes at Scale:  Going Multi-Cluster  with IstioKubernetes at Scale:  Going Multi-Cluster  with Istio
Kubernetes at Scale: Going Multi-Cluster with Istio
 
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
 

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