No hay suficientes programadores profesionales para todo el software que necesita nuestra sociedad. Aquí propongo una serie de soluciones alternativas.
4. Nuestra misión
Interested in the broad
area of systems and
software engineering,
especially promoting the
rigorous use of software
models and engineering
principles in all software
engineering tasks.
Flickr/clement127
23. • Grady Booch – history of softwre engineering
The entire history of software engineering is that of
the rise in levels of abstraction
- Grady Booch
OBJETIVO: Escribir cada
vez menos código
25. Model
Rapid prototyping
Static analysis
Code generation
Automated testing
Refactoring/
Transformation
Documentation
[Illustration by Bernhard Rumpe]
IDM = Modelos como parte central de la
Ingeniería del Software
26. Modelo: simplificación útil de la realidad
26
Ciudad de Nantes = “system” a
modelar
Un mapa es de hecho un modelo
del sistema
La leyenda del mapa es la
gramática / metamodelo
Existen diferentes tipos mapas:
transporte, alcantarillado,…
que dan “vistas” diferentes de
la ciudad
27. Muy parecido al mundo de la
programación
MDE Grammarware
MOF
(metametamodel)
UML
(metamodel)
ABank.uml
EBNF.g
Java.g
MyProgram.java
30. Podemos añadir tanta semántica como
queramos en un generador de código
Regla de Pareto aplicada a la generación de código: el 80% del código es repetitivo
38. Low-code application platforms accelerate app
delivery by dramatically reducing the amount of
hand-coding required – Forrester Report
39. Low-code is a “style” of MDD
• Focused on specific types of applications
• Where the language/s are typically fixed and closed
It’s a marketing success
• Huge amounts of VC money for low-code tools
• All tools are rebranding themselves as low-code tools!
40.
41. Low-code is trending because
• Clearer message: Everybody understands
that low-code means “less coding”. MDD is
more confusing
• Sounds familiar, and less scary, as the
marketing msg is still focus on the code.
• Simpler pipeline, no transformation chains,
one-shot modeling.
42. Solución 2: Que desarrollen los
usuarios (citizen developers)
45. “the goal of the project is to
make the promise of
open data a reality by
giving non-technical
users tools they can use
to find and compose the
information they need”
47. In a no-code approach users
• “Develop” reusing predefined templates and services
• It’s more of configuration / plugging approach to
development
Diff with low-code
• Here we asume zero coding
• This limits creativity but still covers a good range of apps
59. Build the right
graph
for yourpurpose
On the analysis of non-coding roles in open source development
An empirical study of NPM package projects
•J.L. Cánovas Izquierdo & Jordi Cabot. Empirical Software
Engineering volume 27, Article number: 18 (2022)
60. Bus Factor
“Number of key developers who would need to be
incapacitated (hit by a bus), to send the project into
disarray that it would not be able to proceed”
71. Project myProject {
Roles: Committers
Deadlines:
myDeadline : 7 days
Rules:
myMajorityRule :
Majority {
applied to Task
when TaskReview
people Committers
range Present
minVotes 3
deadline myDeadline
}
}
All the proposals for new development tasks will be
accepted or rejected in 7 days by the committers of the
project.
Verbalization
82. La ACM ha propuesto 7
principios para la
transparencia y
responsabilidad de los
algoritmos
RESPONSABILIDAD
Las instituciones son responsables de las decisiones tomadas por sus algoritmos,
aunque no sean capaces de explicar el cómo se ha llegado a esas decisiones
85. No-work
Hay suficiente información disponible
•Para saber qué hacer y como hacerlo
•Sin que, por ejemplo, haya que formalizer los
requisitos.
•Mezcla de información de la empresa y conocimiento
general.
Ejemplo: chatbot para tienda e-Commerce
•Si tengo los datos de la tienda puedo deducir qué
conversaciones sobre esos datos hay que tener
disponibles.
•Esto permite tener un chatbot automático sin que el
propietario tenga que hacer nada. Ni low-code, ni no-
code ni nada.