Software development... for all? (keynote at ICSOFT'2024)
miso_uam
98 views
67 slides
Jul 08, 2024
Slide 1 of 67
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
About This Presentation
Our world runs on software. It governs all major aspects of our life. It is an enabler for research and innovation, and is critical for business competitivity. Traditional software engineering techniques have achieved high effectiveness, but still may fall short on delivering software at the acceler...
Our world runs on software. It governs all major aspects of our life. It is an enabler for research and innovation, and is critical for business competitivity. Traditional software engineering techniques have achieved high effectiveness, but still may fall short on delivering software at the accelerated pace and with the increasing quality that future scenarios will require.
To attack this issue, some software paradigms raise the automation of software development via higher levels of abstraction through domain-specific languages (e.g., in model-driven engineering) and empowering non-professional developers with the possibility to build their own software (e.g., in low-code development approaches). In a software-demanding world, this is an attractive possibility, and perhaps -- paraphrasing Andy Warhol -- "in the future, everyone will be a developer for 15 minutes". However, to make this possible, methods are required to tweak languages to their context of use (crucial given the diversity of backgrounds and purposes), and the assistance to developers throughout the development process (especially critical for non-professionals).
In this keynote talk at ICSOFT'2024 I presented enabling techniques for this vision, supporting the creation of families of domain-specific languages, their adaptation to the usage context; and the augmentation of low-code environments with assistants and recommender systems to guide developers (professional or not) in the development process.
Size: 2.1 MB
Language: en
Added: Jul 08, 2024
Slides: 67 pages
Slide Content
SOFTWARE DEVELOPMENT…
FOR ALL?
ComputerScience Department
Universidad Autónoma de Madrid (Spain)
http://miso.es
@miso_uam
Juan de Lara
SOFTWARE, SOFTWARE,
SOFTWARE…
Importance of software nowadays
Enabler for most aspects of our daily live
•Energy systems
•Transportation
•Communications
•Work
•Leisure
“Our civilization runs on software”
“Our civilization is as reliant on software as it is on water”
—Bjarne Stroustrup
(creator of C++)
2
MORE SOFTWARE…
FASTER
Increasing demand for software
Professional software
•All sort of devices, IoT
•Apps on mobiles
•Web applications
•Desktop applications
Develop more software, faster, with higher quality
•More automation
•More powerful languages and frameworks (higher level of abstraction)
•Better tools
3
MORE SOFTWARE…
BY MORE PEOPLE
“Do-It-Yourself” (DIY) software
•Spreadsheets
•IFTT automation flows
•…
•Low-code platforms
Make software construction accessible to more profiles
•Lower the entry barrier to software development
•Make software development environments adaptable to the profile
in the future, everyone will be a developer for 15 minutes
—Andy Warhol (sortof…)
4
IN THIS TALK…
Overview techniques for
•automation in software development (to developsoftware faster)
and
•democratization of software development (to enablemore peopledevelopsoftware)
Founded on
•Model-driven engineering
•Low-code development
•Software product lines
•Conversational assistants and LLMs
5
SOFTWARE ENGINEERING :
THETRADITIONAL WAY
6
Programming
General Purpose
Programming Language (e.g., Java)
Specification
Mechanism
(Solution space)
Requirements (NL, notations)
Specification
Mechanism
(Problem space)
(and lots of testing)
(and iterations and increments)
clients, users
analysts
SW designers,
architects
programmers
manual work
manual work
General Purpose
Design notation (e.g., UML)
AUTOMATION
(OLDFASHIONED: OMG’sMDA)
7
analysts
(less) programmers
code generator
Programming
General Purpose
Programming Language (e.g., Java)
General Purpose
Design notation (e.g., UML)
Specification
Mechanism
(Solution space)
Requirements (NL, notations)
Specification
Mechanism
(Problem space)
manual work
Model-driven Architecture (MDA):
•Inflexibility of code generators
•Low gain: now UML is the programming language (not invented for that!)
•Not very agile
clients, users
SW designers,
architects
AUTOMATION :
DOMAIN-SPECIFICLANGUAGES (DSLs)
8
Programming
Specification
Mechanism
(Solution space)
Specification
Mechanism
(Problem space)
Verylarge gap
(this is done manually)
Smallergap (this is done automatically)
General Purpose
Design notation (e.g., UML)
Requirements (NL, notations)
General Purpose
Programming Language (e.g., Java)
9
Programming
General Purpose
Programming Language (e.g., Java)
Specification
Mechanism
(Solution space)
Specification
Mechanism
(Problem space)
Domain-specific
notation
Make the gap smaller
Automating this bigger gap
yields bigger gains
Requirements (NL, notations)
AUTOMATION :
DOMAIN-SPECIFICLANGUAGES (DSLs)
10
Programming
General Purpose
Programming Language (e.g., Java)
Specification
Mechanism
(Solution space)
Specification
Mechanism
(Problem space)
Domain-specific
notation
Make the gap smaller
Automating this bigger gap
yields bigger gains
Requirements (NL, notations)
(no need to look at this code)
AUTOMATION :
DOMAIN-SPECIFICLANGUAGES (DSLs)
11
Specification
Mechanism
(Solution space)
Specification
Mechanism
(Problem space)
Domain-specific
notation
Make the gap smaller
Requirements (NL, notations)
interpreter
AUTOMATION :
DOMAIN-SPECIFICLANGUAGES (DSLs)
AUTOMATION …
FORMORE PEOPLE?
12
Specification
Mechanism
(Solution space)
Specification
Mechanism
(Problem space)
Domain-specific
notation
Make the gap smaller
Requirements (NL, notations)
interpreter
domain experts
Domain-specific modelling:
•For specific, well-understood domains
•High investment in build DSLs and infrastructure
•High gain by automation
DSLsAND MDE
Modelling languages
•Abstract syntax: meta-models
•Concrete syntax: textual, graphical, tabular, AR
•Semantics: code generation, interpreter
Models
Model transformations
•Model-to-model (in-place, out-place)
•Model-to-text
•Text-to-model
13
Language
engineering
DSL service
development
DSL use
DSL
DSL-based
automation
solution
Language
engineers
Domain
experts
programmers
Language
engineers
Domain
experts
META-MODELS
AND MODELS
14
Task
name: String
start: Date
duration: int
coding1: Task
name=“codeM1”
start= 8/7/24
duration=5
meta-model
model
*
next
testing: Task
name=“test M1”
start= 15/7/24
duration=10
previous
coding2: Task
name=“codeM2”
start= 8/7/24
duration=12
:next
:next
:previous
:previous
«conforms to»
Meta-model
•Primitivesofthelanguage,properties,relations
•Conceptualmodelofthedomain
•classdiagram(classes,attributes,associations)
Model
•Instanceofthemeta-model
•objectdiagram(objects,slots,links)
0..1
FULLY PRECISE AT ALL TIMES:
OCL INTEGRITY CONSTRAINTS
15
Meta-model
•Integrityconstraints,invariants
•ObjectConstraintLanguage
(OCL)
Task
name: String
start: Date
duration: int
coding1: Task
name=“codeM1”
start= 8/7/24
duration=5
meta-model
model
*
next
testing: Task
name=“test M1”
start= 15/7/24
duration=10
previous
coding2: Task
name=“codeM2”
start= 8/7/24
duration=12
:next
:next
:previous
:previous
«conforms to»
0..1
someInitial inv:
Task.allInstances()exists(e|
e.previousisEmpty())
nextAfter inv:
nextforAll(n|n.start>start)
16
Meta-model
•Integrityconstraints,invariants
•ObjectConstraintLanguage
(OCL)
Model
•Needstosatisfyalinvariants
Task
name: String
start: Date
duration: int
coding1: Task
name=“codeM1”
start= 8/7/24
duration=5
meta-model
model
*
next
testing: Task
name=“test M1”
start= 15/7/24
duration=10
previous
coding2: Task
name=“codeM2”
start= 8/7/24
duration=12
:next
:next
:previous
:previous
«conforms to»
0..1
someInitial inv:
Task.allInstances()exists(e|
e.previousisEmpty())
nextAfter inv:
nextforAll(n|n.start>start)
FULLY PRECISE AT ALL TIMES:
OCL INTEGRITY CONSTRAINTS
DSL-BASED AUTOMATION
SOLUTIONS
19
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
DSL-BASED AUTOMATION
SOLUTIONS
20
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
Model (Time Petri Nets)
code M2
test M1
code M1
[5, 5]
complete
code M1
complete
test M1
complete
code M2
[10,10]
[12,12]
M2M
transformation
Petri nets tool
DSL-BASED AUTOMATION
SOLUTIONS
21
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
Model (Time Petri Nets)
code M2
test M1
code M1
[5, 5]
complete
code M1
complete
test M1
complete
code M2
[10,10]
[12,12]
M2M
transformation
Petri nets tool
DSL-BASED AUTOMATION
SOLUTIONS
22
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
Model (Time Petri Nets)
code M2
test M1
code M1
[5, 5]
complete
code M1
complete
test M1
complete
code M2
[10,10]
[12,12]
M2M
transformation
Petri nets tool
DSL-BASED AUTOMATION
SOLUTIONS
23
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
Model (Time Petri Nets)
code M2
test M1
code M1
[5, 5]
complete
code M1
complete
test M1
complete
code M2
[10,10]
[12,12]
M2M
transformation
Petri nets tool
DSL-BASED AUTOMATION
SOLUTIONS
24
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
Model (Time Petri Nets)
code M2
test M1
code M1
[5, 5]
complete
code M1
complete
test M1
complete
code M2
[10,10]
[12,12]
M2M
transformation
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
M2M
transformation
(in-place)
date=8/7/24
Simulator
DSL-BASED AUTOMATION
SOLUTIONS
25
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
Model (Time Petri Nets)
code M2
test M1
code M1
[5, 5]
complete
code M1
complete
test M1
complete
code M2
[10,10]
[12,12]
M2M
transformation
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
M2M
transformation
(in-place)
date=15/7/24
Simulator
DSL-BASED AUTOMATION
SOLUTIONS
26
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
Model (Time Petri Nets)
code M2
test M1
code M1
[5, 5]
complete
code M1
complete
test M1
complete
code M2
[10,10]
[12,12]
M2M
transformation
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
M2M
transformation
(in-place)
date=25/7/24
Simulator
DSL-BASED AUTOMATION
SOLUTIONS
27
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
Model (Time Petri Nets)
code M2
test M1
code M1
[5, 5]
complete
code M1
complete
test M1
complete
code M2
[10,10]
[12,12]
M2M
transformation
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
M2M
transformation
(in-place)
date=27/7/24
Simulator
DSL-BASED AUTOMATION
SOLUTIONS
28
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
Model (Time Petri Nets)
code M2
test M1
code M1
[5, 5]
complete
code M1
complete
test M1
complete
code M2
[10,10]
[12,12]
M2M
transformation
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
M2M
transformation
(in-place)
date=8/7/24
Text/Code
M2text
transformation
The following is a project plan:
Task “code M1” starts July 8
th
2024, lasts 5 days.
After “code M1”, both tasks “test M1” and “code M2”
can start.
Task “test M1” starts July 15
th
2024, lasts 10 days.
Task “code M2” starts July 15
th
2024, lasts 12 days.
DSL-BASED AUTOMATION
SOLUTIONS
29
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
Model (Time Petri Nets)
code M2
test M1
code M1
[5, 5]
complete
code M1
complete
test M1
complete
code M2
[10,10]
[12,12]
M2M
transformation
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
M2M
transformation
(in-place)
date=8/7/24
Text/Code
M2text
transformation
The following is a project plan:
Task “code M1” starts July 8
th
2024, lasts 5 days.
After “code M1”, both tasks “test M1” and “code M2”
can start.
Task “test M1” starts July 15
th
2024, lasts 10 days.
Task “code M2” starts July 15
th
2024, lasts 12 days.
Conversational
assistant
When was M1 coded?
DSL-BASED AUTOMATION
SOLUTIONS
30
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
Model (Time Petri Nets)
code M2
test M1
code M1
[5, 5]
complete
code M1
complete
test M1
complete
code M2
[10,10]
[12,12]
M2M
transformation
code M1
8/7/24 (5)
test M1
15/7/24 (10)
code M2
15/7/24 (12)
Model
M2M
transformation
(in-place)
date=8/7/24
Text/Code
M2text
transformation
The following is a project plan:
Task “code M1” starts July 8
th
2024, lasts 5 days.
After “code M1”, both tasks “test M1” and “code M2”
can start.
Task “test M1” starts July 15
th
2024, lasts 10 days.
Task “code M2” starts July 15
th
2024, lasts 12 days.
Conversational
assistant
Task "code M1" was scheduled to
start on July 8, 2024, and lasted for 5
days, meaning it was coded from July
8, 2024, to July 12, 2024.
MDE: THEGOOD
Many examples of success
Reported productivity improvements
31
[1] Buezas, Guerra, de Lara, Martín, Monforte, Mori, Ogallar, Pérez, Sánchez Cuadrado: Umbra Designer: Graphical
ModellingforTelephonyServices. ECMFA 2013: 179-191
[1]
MDE: THEBAD
MDE solutionsare oftenverytechnical, hardto use
Frequently, orientedto developers
•ManydeployedonEclipse
•Installation, dependencies, etc
Rigidityof thesolution
EvolvinganMDE solutionishard
•EvolvingtheDSLs
•Co-evolutionof alltheassociatedartefacts
32
Bucchiarone, Cabot, Paige, Pierantonio: Grand challenges in model-driven engineering: an analysis of the state of
the research. Softw. Syst. Model. 19(1): 5-13 (2020)
LOW-CODE…
OLD WINEIN NEW BOTTLES?
34
D. Di Ruscio, D. Kolovos, J. de Lara, A. Pierantonio, M. Tisi, M. Wimmer: Low-codedevelopmentand model-driven
engineering: Twosidesof thesamecoin? Software and SystemsMoeling21(2): 437-446 (2022)
Many vendors of MDE solutions just rebranded as “low-code” tools
There are differences, though:
LOW-CODESOFTWARE DEVELOPMENT …
OLD WINEIN NEW BOTTLES?
35
D. Di Ruscio, D. Kolovos, J. de Lara, A. Pierantonio, M. Tisi, M. Wimmer: Low-codedevelopmentand model-driven
engineering: Twosidesof thesamecoin? Software and SystemsMoeling21(2): 437-446 (2022)
Many vendors of MDE solutions just rebranded as “low-code” tools
There are differences, though:
MDE for automating
tasks like simulation,
formal verification,
software optimization,
or reverse engineering
LOW-CODESOFTWARE DEVELOPMENT …
OLD WINEIN NEW BOTTLES?
36
D. Di Ruscio, D. Kolovos, J. de Lara, A. Pierantonio, M. Tisi, M. Wimmer: Low-codedevelopmentand model-driven
engineering: Twosidesof thesamecoin? Software and SystemsMoeling21(2): 437-446 (2022)
Many vendors of MDE solutions just rebranded as “low-code” tools
There are differences, though:
models to reduce the
code required (e.g. via
generation or
interpretation) but
without offering
deployment or lifecycle
management capabilities
for the produced system
LOW-CODESOFTWARE DEVELOPMENT …
OLD WINEIN NEW BOTTLES?
37
D. Di Ruscio, D. Kolovos, J. de Lara, A. Pierantonio, M. Tisi, M. Wimmer: Low-codedevelopmentand model-driven
engineering: Twosidesof thesamecoin? Software and SystemsMoeling21(2): 437-446 (2022)
Many vendors of MDE solutions just rebranded as “low-code” tools
There are differences, though:
models and offer
deployment/lifecycle
management
capabilities for the
produced system
LOW-CODESOFTWARE DEVELOPMENT …
OLD WINEIN NEW BOTTLES?
38
D. Di Ruscio, D. Kolovos, J. de Lara, A. Pierantonio, M. Tisi, M. Wimmer: Low-codedevelopmentand model-driven
engineering: Twosidesof thesamecoin? Software and SystemsMoeling21(2): 437-446 (2022)
Many vendors of MDE solutions just rebranded as “low-code” tools
There are differences, though:
models not used, but offer
deployment/lifecycle
management capabilities
for the produced system
LOW-CODESOFTWARE DEVELOPMENT …
OLD WINEIN NEW BOTTLES?
39
D. Di Ruscio, D. Kolovos, J. de Lara, A. Pierantonio, M. Tisi, M. Wimmer: Low-codedevelopmentand model-driven
engineering: Twosidesof thesamecoin? Software and SystemsMoeling21(2): 437-446 (2022)
Many vendors of MDE solutions just rebranded as “low-code” tools
There are differences, though:
models not used, and do not
offer deployment/lifecycle
management capabilities for
the produced system
LOW-CODE…
FORALL?
Notevery(citizenorprofessional) developerhas
•thesamebackground…
•thesameknowledgeand skills…
•thesameinterest…
•thesamedevice
ButinteractswiththeIDE in thesameway
•Frequently, as requiredfromthemostexpertuser
•Onemodellinglanguageshouldfitallusersand scenarios
•“visual monolinguism” [1]
40
[1] Daniel L. Moody: The “Physics” of Notations: Toward a Scientific Basis for Constructing Visual Notations in
Software Engineering. IEEE Trans. Software Eng. 35(6): 756-779 (2009)
FROMLANGUAGES TO
LANGUAGE FAMILIES
Define languagevariants, appropriatefor
•Differentuserskillsand backgrounds
Example: Classdiagramswithdifferentlevelsofsophistication
•Differentexpressivity: modellingpurpose, analyses
Example: Petri nets withinhibitor, readarcs, time, colours
•Differentcontextsofuse
Example: DSL withdifferentsyntaxdependingondevice
•Differentprojectstages(levelsofprecision)
Example: Fromsketch-likediagramstofullyprecise models
•People withdifferentroles in theproject
Example: DSL presentingdifferentinformationdependingontherole
•…
41
LANGUAGE FAMILIES:
NAIVEAPPROACH
Example: variantsof classdiagrams
•differentskills(w/woaggregation, composition, associativeclasses, …)
•differenttarget programminglanguages(w/womultipleinheritance, interfaces, …)
•differentprojectphases(w/womethods)
“Clone and own”
•Onemeta-modelper variant
Hundredsorthousandsof variants
•Exponentialnumberof languageswiththenumberof features 42
(1) (2)
…
(288)
MDE+PRODUCT LINES=
LANGUAGE FAMILIES
43
Variability
•Describe thevariabilityof thelanguagefamily
•Featuresand theirrelations
Mapping
•Mapfeaturesto languageelements
Configuration
•A validset of features
•Specifiesa languagewithinthefamily
Derivation
•Extractingthelanguageassociatedto a configuration
VARIABILITY:
FEATUREMODEL
44
alternative
(exactlyone)
or
(at leastone)
mandatoryoptional
Configuration: set of features satisfying all constraints
Admits 288 configurations, like
•
A= {Multi, FullAssoc, Decorations, Card}
•
D= {Methods, Multi, FullAssoc, Decorations, Comp, Aggr, Navig, Card}
•
J= {Methods, Single, Ref, Interfaces, Decorations, Comp, Aggr, Navig, Card}
MAPPINGFEATURES TO
LANGUAGE ELEMENTS
45
Annotative approach [1]
•150% meta-model
•Presence conditions
Modular approach [2]
•Language modules
•Composition mechanism
[1] Guerra, de Lara, Chechik, Salay: Property Satisfiability
Analysis for Product Lines of Modelling Languages. IEEE
Trans. Software Eng. 48(2): 397-416 (2022)
[2] de Lara, Guerra, Bottoni. Modular Language
Product Lines: Concept, Tool and Analysis. 2024.
Software and Systems Modeling, Vol in press (2024)
Class
name: String
isAbstract: boolean
Attribute
name: String
type: String
*
attributes
ClassDiagram
Class
Method
name: String
methods
* Class
parents
*
Class parent
0..1
Class
… …Methods
Multi Single No
SELECTING LANGUAGES
FROMTHEFAMILY
46
A configuration extracts a
language from the family
•Derivation
Annotative approach
•Delete elements with
presence condition false
Compositional approach
•Compose the selected
fragments within modules
Class
name: String
isAbstract: boolean
Attribute
name: String
type: String
*
attributes
Association
name: String
Role
name: String
min: int= 0
max: int=-1
roles2
*
playedBy
parents
*
A= {Multi, FullAssoc, Decorations, Card}
LANGUAGE FAMILIES:
SEMANTICS
47
Rules to express behaviour
•In-place transformation
•Graph transformation
:Message
ack= false
n1 :Node
broken= false
n2 :Node
broken= false
n3 :Node
broken= false
linkedTo linkedTo
from
to
at
Meta-model
Model «conforms to»
LANGUAGE FAMILIES:
SEMANTICS
48
Rules to express behaviour
•In-place transformation
•Graph transformation
:Message
ack= false
n1 :Node
broken= false
n2 :Node
broken= false
n3 :Node
broken= false
linkedTo linkedTo
from
to
at
Meta-model
Model «conforms to»
match
LANGUAGE FAMILIES:
SEMANTICS
49
Rules to express behaviour
•In-place transformation
•Graph transformation
Meta-model
:Message
ack= false
n1 :Node
broken= false
n2 :Node
broken= false
n3 :Node
broken= false
linkedTo linkedTo
from
to
at
Model «conforms to»
rule application
LANGUAGE FAMILIES:
SEMANTICS
50
Compositional approach
•Rules
•Extension rules
LANGUAGE FAMILIES:
SEMANTICS
51
Behavioural derivation
LANGUAGE FAMILIES:
CONCRETE SYNTAX
52
Extend modules with Concrete Syntax Specification
These are models, conformant to a meta-model
Product Lines of Graphical Modelling Languages. Garmendia, Guerra, de Lara. Proc MODELS’2024
LANGUAGE FAMILIES:
CONCRETE SYNTAX
53
Extend modules with Concrete Syntax Specification
Product Lines of Graphical Modelling Languages. Garmendia, Guerra, de Lara. Proc MODELS’2024
CAPONE: TOOLSUPPORT FOR
LANGUAGE FAMILIES
54https://capone-pl.github.io/
ADAPTIVE LANGUAGES :
BEYONDLANGUAGE FAMILIES
56
Triggers
•Reconfiguration of the language
•Manual or based on model analysis
Model migration
•Update the current model to the new
language variant
AIASSISTANTS…
FORPROFESSIONAL PROGRAMMERS
58
(but also helps in other tasks, like testing, debugging, documentation, etc)
Programming
General Purpose
Programming
Language (e.g., Java)
Specification
Mechanism
(Solution space)
Requirements (NL, notations)
Specification
Mechanism
(Problem space)
clients, users
analysts
SW designers,
architects
programmers
manual work
General Purpose
Design notation (e.g., UML)
code
NL
AI assistant
AIASSISTANTS: THEBAD
Trustworthyness
•Quality assurance for the proposed code
AI-aware IDEs!
•Integration with the IDE, not just text & copy-paste
•Context
•Integration of multiple assistants, for multiple tasks?
•Extension to other tasks?
•Traceability?
59
EXTENSIBLE AI-ASSISTANCE
ARCHITECTURE FORIDES
60
Contreras, Guerra, de Lara: Conversational Assistants for Software Development: Integration, Traceability and
Coordination. Proc. ENASE 2024: 27-38
AITRACEABILITY
61
Annotations in generated code
https://caretpro.github.io/
CHALLENGE: AI-ASSISTANTS
FORCITIZENDEVELOPERS !
63
Specification
Mechanism
(Solution space)
Specification
Mechanism
(Problem space)
Domain-specific
notation
Requirements (NL, notations)
domain experts
NL
notation
AI assistant
AI assistant
Domain-specific languages and tools
•Not trained on such DSLs!
•Makes assistance difficult
•Few shot learners
64
CHALLENGE: AI-ASSISTANTS
FORCITIZENDEVELOPERS !
Severallow-codeplatformsincludeassistants
•Microsoft powerapps(Copilot)
•Mendix(Maia)
•..
Still, largeroomforimprovement!
•Notnearlyas impressiveas LLMsforcode
LLMsvs conversationalsyntaxforDSLs[1]
[1] Sara Pérez-Soler, Mario González-Jiménez, Esther Guerra, Juan de Lara: Towards Conversational Syntax for
Domain-Specific Languages using Chatbots. J. Object Technol. 18(2): 5:1-21 (2019)
WRAPPING UP…
Respondtheincreasingdemandforsoftware
•Howtodevelopsoftware faster, bymore people?
Professional vs. Amateur (“DIY”) programming
•Codevs. DSLs
•TraditionalIDEsvs Low-codeplatforms(web)
Onelanguagedoesnotfitall
•Familiesof(domain-specific) languages
•Languagescan be adaptive, too!
AI assistants
•Currently, mostlyforprofessionals(currentorfuture)
65
SO WHAT’SAHEAD?
Adaptive modellinglanguages
•Makelanguagesand IDEsmore awareofusagecontext(pragmatics)
AI assistantsforprofessionals
•More streamlinedintegrationwith: IDEs, languages, devprocesses
•ImpactofAI assistantsonIDEs, languagesand processes?
AI assistantsforcitizendevelopers
•AI assistantswithinlow-codeplatforms
•Democratizesoftware development
66