Upload
misouam
View
171
Download
0
Embed Size (px)
Citation preview
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
DRIVERLESS CARS
2
DRIVERLESS CARS
• Will humans be allowed to drive in the future?
• Humans make mistakes
• Decide where to go, supervision 3
DRIVERLESS CARS
4
• Will humans be allowed to drive in the future?
• Humans make mistakes
• Decide where to go, supervision
PROGRAMMERLESS
PROGRAMMING?
5
• Will humans be allowed to (write safety-critical) code
in the future?
• Humans make mistakes
• Decide what to do, supervision
PROGRAMMERLESS
PROGRAMMING?
6
is programming like driving?
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)
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
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.
APPLE’S SIRI
10
Q/A system based on natural language
Now [June 2016] open to third-party developers
PROGRAMMING IN
NATURAL LANGUAGE?
11
“Projects promoting programming in
natural language are intrinsically
doomed to fail”.
Edsger Dijkstra
[1930—2002]
12
PROGRAMMING IN
NATURAL LANGUAGE?
PROGRAMMING
ASSISTANTS
13
• Code (API) recommenders
• Better quick fix proposals
• Better code completion
• Machine learning (Watson-like) +
• Stackoverflow
• Static analysis
• Automated testing
• Automated debugging
• Automated program repair
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
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/)
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
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
THANKS!
STAF’2016, Viena
Juan de Lara
Modelling&Software Engineering Research Group
http://miso.es
@miso_uam