1. HUMANS IN THE LOOP?
THE ROLE OF HUMANS IN
PROVIDING HIGH-QUALITY
SOFTWARE SYSTEMS
STAF’2016, Viena
Juan de Lara
Modelling&Software Engineering Research Group
http://miso.es
@miso_uam
7. IS PROGRAMMING LIKE
PLAYING CHESS?
7
1996: Deep-blue – Kasparov (Kasparov won 4-2)
1997: Deep-blue – Kasparov (Deep-blue won 2.5-3.5)
8. IS PROGRAMMING LIKE
PLAYING GO?
8
In March 2016, AlphaGo
beat Lee Sedol (4—1), one
of the best Go players in
the world
Monte-Carlo tree search
combined with deep
neural networks
9. JEOPARDY!
IBM WATSON
9
• Q/A system in natural language, based on machine
learning
• Won Jeopardy! (a US quizz show) in 2011
• Used in e.g., healthcare, marketing, etc.
14. PROGRAMMING
ASSISTANTS
14
It looks you are
writing a program
Would you like help?
• Code (API) recommenders
• Better quick fix proposals
• Better code completion
• Machine learning (Watson-like) +
• Stackoverflow
• Static analysis
• Automated testing
• Automated debugging
• Automated program repair
15. SOCIALLY ENHANCED
PROGRAMMING
15
• Development taking advantage of social networks
• Technical problems
• Crowdsourcing
• Small programming tasks (e.g., https://bountify.co/)
• Testing (e.g., https://bugcrowd.com/, https://www.utest.com/)
16. SOCIALLY ENHANCED
PROGRAMMING
16
• Development taking advantage of social networks
• Technical problems
• Crowdsourcing
• Small programming tasks (e.g., https://bountify.co/)
• Testing (e.g., https://bugcrowd.com/, https://www.utest.com/)
• Can design be crowdsourced?
• No
17. NOT ONLY PROFESSIONAL
DEVELOPERS…
“In the future, everyone will be a developer for 15 minutes”
End-user development
• Spreadsheets
• IFTTT
• …
Powerful DSLs
• Mobile
• Web
• Social
17