SlideShare a Scribd company logo
1 of 46
Download to read offline
Ademar Aguiar

Software Engineering Research Group, FEUP
Liveness

a Trampoline to Ultimate Technical Agility

SGRio 2019 | 28 June 2019 | Rio de Janeiro, Brazil
© 2019 Ademar Aguiar, FEUP. All rights reserved
Ademar...
© 2019 Ademar Aguiar, FEUP. All rights reserved
Software Knowledge Management
patterns
wikis
agile
© 2019 Ademar Aguiar, FEUP. All rights reserved
continuously and iteratively
“Software Development”is all about“Knowledge Evolution”
Communicating and sharing
knowledge and experience
Formalising 

information
Collaborating
© 2019 Ademar Aguiar, FEUP. All rights reserved
Software Development Lifecycle
Spiral [Boehm, 1986]Waterfall [Royce, 1970]
Agile: ASD, Crystal Clear, Scrum, XP…
© 2019 Ademar Aguiar, FEUP. All rights reserved
Agile is all about
tightening feedback loops!
© 2019 Ademar Aguiar, FEUP. All rights reserved
© 2019 Ademar Aguiar, FEUP. All rights reserved
• test-driven development provides
developers with quicker feedback about
the correctness of the code that they are
writing 

• continuous integration provides feedback
about integrability and integrity with that
of fellow team members

• continuous delivery allows quicker
product feedback from customers and
users, about fitness, back to developers

• information radiators allow teams to have
a quick feedback on the status of the
software development process as a whole
Tightening feedback loops, technical ones too!
© 2019 Ademar Aguiar, FEUP. All rights reserved
Software Developer as“Archer with Bow and Arrow”
[Christopher Hancock 2003]
© 2019 Ademar Aguiar, FEUP. All rights reserved
[Christopher Hancock 2003]
[Restivo 2019]
Software Developer as“Archer with Bow and Arrow”
© 2019 Ademar Aguiar, FEUP. All rights reserved
• External releases: from many months to continuum…

• Integration: from many weeks to continuum…

• Iterations: few weeks…

• Tasks: from days to hours…

• Programming episodes: from days to minutes

• Spikes|Explorations|Experiments: from days to seconds
Feedback loops: from months to minutes
© 2019 Ademar Aguiar, FEUP. All rights reserved
How to be even more agile?
© 2019 Ademar Aguiar, FEUP. All rights reserved
We are looking for even shorter feedback loops…
which new practices
and tools do we need?
to develop faster, better, and safer?
to reduce accidental complexity?
© 2019 Ademar Aguiar, FEUP. All rights reserved
Software Developer as“Waterer with a hose”
[Christopher Hancock 2003]
[Restivo 2019]
© 2019 Ademar Aguiar, FEUP. All rights reserved
Aims at providing real-time feedback to programmers, turning the traditional
three-phase edit-compile-run cycle into a continuum, accelerating the process
of finding the right solution.
Live Programming
aka Exploratory, Interactive, Dynamic, Prototyping…
[ElmLangHotswapping]
© 2019 Ademar Aguiar, FEUP. All rights reserved
What’s new and powerful?
[Restivo 2019]
inspection
exploration injection
© 2019 Ademar Aguiar, FEUP. All rights reserved
Feedback is nearly instantaneous and evaluation is always available.
“Liveness”
[Tanimoto 2013]
• Level 1. Informative: a model (can be code) 

• Level 2. Significant: an executable model

• Level 3. Responsive: edit-triggered updates

• Level 4. Live: stream-triggered updates

• Level 5. Tactically Predictive: programming from
predictive behaviors

• Level 6. Strategically Predictive: inference of gross
functionality
© 2019 Ademar Aguiar, FEUP. All rights reserved
• Programming is just a part of the full software lifecycle. 

• We believe that increasing liveness along all entire software
lifecycle would improve most — if not all — development
activities in a number of ways.
• We aim to extend this approach to more software development
activities.
What about liveness beyond Live Programming?
Ademar Aguiar , Hugo Sereno, Filipe Correia, André Restivo 

Software Engineering Research Group, FEUP
Live Software Development
© 2019 Ademar Aguiar, FEUP. All rights reserved
• Live Software Development — LiveSD — strives to achieve
liveness in every activity, as much as possible and useful.

• It requires expertise on different areas related with software and its
engineering: Software Engineering (SE), Human-computer Interaction
(HCI), Artificial Intelligence (AI), and User Experience (UX).

• Key research question: 

How much liveness will help on other activities of software
development?

• Expected benefits: immediacy, exploration, observability, control.
The Case for Live Software Development
© 2019 Ademar Aguiar, FEUP. All rights reserved
• abstracting the many elements of software development;

• enabling developers manipulating abstractions instead of the
artifacts that they represent;

• enabling the system to be constructed live — i.e., developers can
see the effects of their actions directly on a running system as those
actions are performed.
What do we need to have Live SD?
© 2019 Ademar Aguiar, FEUP. All rights reserved
• Liveness gaps
• A conceptual framework for LiveSD spanning key software development activities
and application domains to assess current level of liveness, identify relevant liveness
gaps, and outline ways to take them to the next levels.

• Representations
• Abstractions, models and human-centered metaphors that will improve the
developer experience and the transition between non-live to live software
development.

• Tools
• A Live Software Development Environment capable of providing multiple
perspectives over software systems, and targeting specific domains. 

• Blending both existing and new features from visual editors, interactive technologies,
and several tools, such as debugging, refactoring, versioning, instrumentation,
experimentation, monitoring, and operations.
Research Focus
© 2019 Ademar Aguiar, FEUP. All rights reserved
2017-18

• Towards a Live Software Development Environment

• A Software Repository for Live Software Development
Environments

• Towards a Live Development of IoT systems

• Towards a Live Management of Cloud Infrastructures

• A Live Approach for Developing IoT Systems

2018-19

● Towards Live Refactoring of Software Systems

● Live web prototypes from hand-drawn mockups

● Live Automatic Bug Fixing

● Live Syntax-agnostic Collaboration

● A Live IDE for Deep Learning Architectures

● Two-way real-time integration of IoT devices in VPLs

● Live Software Architecture Refactoring

● Programming Language-Agnostic Live Playgrounds
Past and present
© 2019 Ademar Aguiar, FEUP. All rights reserved
© 2019 Ademar Aguiar, FEUP. All rights reserved
Software systems as cities (Wettel et al.)
Metaphor“Software Systems as Cities”
© 2019 Ademar Aguiar, FEUP. All rights reserved
JUnit 4
© 2019 Ademar Aguiar, FEUP. All rights reserved
AMBIENTE VIRTUAL

_________
Towards	a	Live	Software	Development	Environment
© 2019 Ademar Aguiar, FEUP. All rights reserved
JUnit 4
Composite:Component
Composite:Leaf
Composite:Composite
© 2019 Ademar Aguiar, FEUP. All rights reserved
© 2019 Ademar Aguiar, FEUP. All rights reserved
© 2019 Ademar Aguiar, FEUP. All rights reserved
Solution
How we intend to solve the problem
© 2019 Ademar Aguiar, FEUP. All rights reserved
Solution
How we intend to solve the problem
© 2019 Ademar Aguiar, FEUP. All rights reserved
© 2019 Ademar Aguiar, FEUP. All rights reserved
“Supporting software development through live static metrics visualization”

Sara Couto, André Restivo, Ademar Aguiar



When developers have constant exposure

to software metrics, does that influence 

the form and final results of their solutions?
Live Software Metrics
© 2019 Ademar Aguiar, FEUP. All rights reserved
“Live Web Prototypes from Hand-Drawn Mockups”

João Ferreira, André Restivo, Hugo Sereno Ferreira

Speeding up web development by reducing 

the feedback loop between designers 

and developers.
Live Web Prototypes
© 2019 Ademar Aguiar, FEUP. All rights reserved
“Tests as Specifications towards better Code Completion”

Diogo Campos, André Restivo, Hugo Sereno Ferreira

Shorten the development cycle by providing 

the developer with relevant suggestions that 

fixes not only syntactic errors but semantic 

ones as well.
Automatic Program Repair
© 2019 Ademar Aguiar, FEUP. All rights reserved
“A Live IDE for Deep Learning Architectures”

Mário Gustavo, Hugo Sereno Ferreira, André Restivo

Speeding up deep learning development in 

Keras using a Live Visual Programming 

Language.
Keras Live Editor
© 2019 Ademar Aguiar, FEUP. All rights reserved
• Steven L. Tanimoto. Viva: A visual language for image processing. Journal of Visual Languages and Computing,
1(2):12, June 1990.

• Steven L. Tanimoto. A perspective on the evolution of live programming. Proceedings of the 1st International
Workshop on Live Programming, page 4, May 2013.

• Kenneth J. Goldman. Live software development with dynamic classes. Technical report, Department of Computer
Science and Engineering Washington University in St. Louis, August 2004.

• Richard Wettel. Software Systems as Cities. PhD thesis, Faculty of Informatics of the Universit`a della Svizzera
Italiana, September 2010.

• J. Vincur, P. Navrat and I. Polasek, VR City: Software Analysis in Virtual Reality Environment, 2017 IEEE International
Conference on Software Quality, Reliability and Security Companion (QRS-C), Prague, 2017, pp. 509-516.

• Ademar Aguiar, André Restivo, Filipe Figueiredo Correia, Hugo Sereno Ferreira, and João Pedro Dias. Live Software
Development: Tightening the feedback loops. Companion of the 3rd International Conference on Art, Science, and
Engineering of Programming, Programming 2019 Companion (To Appear).

• Diogo Amaral, Gil Domingues, João Pedro Dias, Hugo Sereno Ferreira, Ademar Aguiar, Rui Nóbrega. Live Software
Development Environment for Java using Virtual Reality. Proceedings of the 14th International Conference on
Evaluation of Novel Approaches to Software Engineering 2019 (To Appear).

• Pedro Lourenço, João Pedro Dias, Ademar Aguiar, Hugo Sereno Ferreira. CloudCity: A Live Environment for the
Management of Cloud Infrastructures. Proceedings of the 14th International Conference on Evaluation of Novel
Approaches to Software Engineering 2019 (To Appear).
References
© 2019 Ademar Aguiar, FEUP. All rights reserved
So…
© 2019 Ademar Aguiar, FEUP. All rights reserved
• Many times we need to explore the solution space, to learn more
and faster, and the cycle edit-compile-run may not be enough.

• Live Programming proved to be useful: the liveness factor.

• Live Software Development — LiveSD — strives to achieve
liveness in every activity, as much as possible and useful.

• LiveSD blends expertise from different areas related with software
and its engineering: Software Engineering (SE), Human-computer
Interaction (HCI), Artificial Intelligence (AI), and User Experience (UX).

• We are looking for more cases and collaborations! Contact us!
Live Software Development
https://2020.programming-conference.org
© 2019 Ademar Aguiar, FEUP. All rights reserved
Muito obrigado!
ademar.aguiar@fe.up.pt

Software Engineering Research Group, FEUP

More Related Content

Similar to Live software development @ SGRio 2019

IRJET - Survey Paper on Tools Used to Enhance User's Experience with Cons...
IRJET -  	  Survey Paper on Tools Used to Enhance User's Experience with Cons...IRJET -  	  Survey Paper on Tools Used to Enhance User's Experience with Cons...
IRJET - Survey Paper on Tools Used to Enhance User's Experience with Cons...IRJET Journal
 
Why an Innovative Mobile Strategy Requires a Robust API
Why an Innovative Mobile Strategy Requires a Robust API Why an Innovative Mobile Strategy Requires a Robust API
Why an Innovative Mobile Strategy Requires a Robust API Software AG
 
Mse sept13 (3/3)
Mse sept13 (3/3)Mse sept13 (3/3)
Mse sept13 (3/3)IIITA
 
IRJET- Build a Secure Web based Code Editor for C Programming Language
IRJET-  	  Build a Secure Web based Code Editor for C Programming LanguageIRJET-  	  Build a Secure Web based Code Editor for C Programming Language
IRJET- Build a Secure Web based Code Editor for C Programming LanguageIRJET Journal
 
TOP 5 TECHNOLOGIES TO CREATE A COMPETENT ANDROID APP IN 2019
TOP 5 TECHNOLOGIES TO CREATE A COMPETENT ANDROID APP IN 2019TOP 5 TECHNOLOGIES TO CREATE A COMPETENT ANDROID APP IN 2019
TOP 5 TECHNOLOGIES TO CREATE A COMPETENT ANDROID APP IN 2019upssingh
 
Voice Controlled News Web Based Application With Speech Recognition Using Ala...
Voice Controlled News Web Based Application With Speech Recognition Using Ala...Voice Controlled News Web Based Application With Speech Recognition Using Ala...
Voice Controlled News Web Based Application With Speech Recognition Using Ala...IRJET Journal
 
API's for innovative cloud and mobile apps
API's for innovative cloud and mobile appsAPI's for innovative cloud and mobile apps
API's for innovative cloud and mobile appsManmohan Gupta
 
IRJET- Cross Platform User Compatible System with Specific Application
IRJET- Cross Platform User Compatible System with Specific ApplicationIRJET- Cross Platform User Compatible System with Specific Application
IRJET- Cross Platform User Compatible System with Specific ApplicationIRJET Journal
 
Software Engineering chapter_1_5.ppt
Software Engineering chapter_1_5.pptSoftware Engineering chapter_1_5.ppt
Software Engineering chapter_1_5.pptHammad Ahmad
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringGregory Herrera
 
IRJET- Voice Controlled Personal Assistant Bot with Smart Storage
IRJET- Voice Controlled Personal Assistant Bot with Smart StorageIRJET- Voice Controlled Personal Assistant Bot with Smart Storage
IRJET- Voice Controlled Personal Assistant Bot with Smart StorageIRJET Journal
 
6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdf
6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdf6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdf
6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdfDianApps Technologies
 
Virtual Personal Assistant
Virtual Personal AssistantVirtual Personal Assistant
Virtual Personal AssistantIRJET Journal
 
software engineering documents.pptx
software engineering documents.pptxsoftware engineering documents.pptx
software engineering documents.pptxMakinde Akindeji
 
LANGUAGE TRANSLATOR APP
LANGUAGE TRANSLATOR APPLANGUAGE TRANSLATOR APP
LANGUAGE TRANSLATOR APPIRJET Journal
 

Similar to Live software development @ SGRio 2019 (20)

IRJET - Survey Paper on Tools Used to Enhance User's Experience with Cons...
IRJET -  	  Survey Paper on Tools Used to Enhance User's Experience with Cons...IRJET -  	  Survey Paper on Tools Used to Enhance User's Experience with Cons...
IRJET - Survey Paper on Tools Used to Enhance User's Experience with Cons...
 
Why an Innovative Mobile Strategy Requires a Robust API
Why an Innovative Mobile Strategy Requires a Robust API Why an Innovative Mobile Strategy Requires a Robust API
Why an Innovative Mobile Strategy Requires a Robust API
 
Mse sept13 (3/3)
Mse sept13 (3/3)Mse sept13 (3/3)
Mse sept13 (3/3)
 
IRJET- Build a Secure Web based Code Editor for C Programming Language
IRJET-  	  Build a Secure Web based Code Editor for C Programming LanguageIRJET-  	  Build a Secure Web based Code Editor for C Programming Language
IRJET- Build a Secure Web based Code Editor for C Programming Language
 
TOP 5 TECHNOLOGIES TO CREATE A COMPETENT ANDROID APP IN 2019
TOP 5 TECHNOLOGIES TO CREATE A COMPETENT ANDROID APP IN 2019TOP 5 TECHNOLOGIES TO CREATE A COMPETENT ANDROID APP IN 2019
TOP 5 TECHNOLOGIES TO CREATE A COMPETENT ANDROID APP IN 2019
 
Voice Controlled News Web Based Application With Speech Recognition Using Ala...
Voice Controlled News Web Based Application With Speech Recognition Using Ala...Voice Controlled News Web Based Application With Speech Recognition Using Ala...
Voice Controlled News Web Based Application With Speech Recognition Using Ala...
 
API's for innovative cloud and mobile apps
API's for innovative cloud and mobile appsAPI's for innovative cloud and mobile apps
API's for innovative cloud and mobile apps
 
Lecture-1-3.pptx
Lecture-1-3.pptxLecture-1-3.pptx
Lecture-1-3.pptx
 
IRJET- Cross Platform User Compatible System with Specific Application
IRJET- Cross Platform User Compatible System with Specific ApplicationIRJET- Cross Platform User Compatible System with Specific Application
IRJET- Cross Platform User Compatible System with Specific Application
 
chapter_1_5.ppt
chapter_1_5.pptchapter_1_5.ppt
chapter_1_5.ppt
 
Software Engineering chapter_1_5.ppt
Software Engineering chapter_1_5.pptSoftware Engineering chapter_1_5.ppt
Software Engineering chapter_1_5.ppt
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
Android @ Neev
Android @ NeevAndroid @ Neev
Android @ Neev
 
SAP Mobile Platform: Virtual Bootcamp – How to build your Enterprise Mobile A...
SAP Mobile Platform: Virtual Bootcamp – How to build your Enterprise Mobile A...SAP Mobile Platform: Virtual Bootcamp – How to build your Enterprise Mobile A...
SAP Mobile Platform: Virtual Bootcamp – How to build your Enterprise Mobile A...
 
IRJET- Voice Controlled Personal Assistant Bot with Smart Storage
IRJET- Voice Controlled Personal Assistant Bot with Smart StorageIRJET- Voice Controlled Personal Assistant Bot with Smart Storage
IRJET- Voice Controlled Personal Assistant Bot with Smart Storage
 
6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdf
6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdf6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdf
6722_AS_ Top 8 Flutter app development tools to consider in 2024.pdf
 
Future Role of the Architect
Future Role of the ArchitectFuture Role of the Architect
Future Role of the Architect
 
Virtual Personal Assistant
Virtual Personal AssistantVirtual Personal Assistant
Virtual Personal Assistant
 
software engineering documents.pptx
software engineering documents.pptxsoftware engineering documents.pptx
software engineering documents.pptx
 
LANGUAGE TRANSLATOR APP
LANGUAGE TRANSLATOR APPLANGUAGE TRANSLATOR APP
LANGUAGE TRANSLATOR APP
 

Recently uploaded

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 

Recently uploaded (20)

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 

Live software development @ SGRio 2019

  • 1.
  • 2. Ademar Aguiar
 Software Engineering Research Group, FEUP Liveness
 a Trampoline to Ultimate Technical Agility SGRio 2019 | 28 June 2019 | Rio de Janeiro, Brazil
  • 3. © 2019 Ademar Aguiar, FEUP. All rights reserved Ademar...
  • 4. © 2019 Ademar Aguiar, FEUP. All rights reserved Software Knowledge Management patterns wikis agile
  • 5. © 2019 Ademar Aguiar, FEUP. All rights reserved continuously and iteratively “Software Development”is all about“Knowledge Evolution” Communicating and sharing knowledge and experience Formalising 
 information Collaborating
  • 6. © 2019 Ademar Aguiar, FEUP. All rights reserved Software Development Lifecycle Spiral [Boehm, 1986]Waterfall [Royce, 1970]
  • 7. Agile: ASD, Crystal Clear, Scrum, XP…
  • 8.
  • 9. © 2019 Ademar Aguiar, FEUP. All rights reserved Agile is all about tightening feedback loops!
  • 10. © 2019 Ademar Aguiar, FEUP. All rights reserved
  • 11. © 2019 Ademar Aguiar, FEUP. All rights reserved • test-driven development provides developers with quicker feedback about the correctness of the code that they are writing • continuous integration provides feedback about integrability and integrity with that of fellow team members • continuous delivery allows quicker product feedback from customers and users, about fitness, back to developers • information radiators allow teams to have a quick feedback on the status of the software development process as a whole Tightening feedback loops, technical ones too!
  • 12. © 2019 Ademar Aguiar, FEUP. All rights reserved Software Developer as“Archer with Bow and Arrow” [Christopher Hancock 2003]
  • 13. © 2019 Ademar Aguiar, FEUP. All rights reserved [Christopher Hancock 2003] [Restivo 2019] Software Developer as“Archer with Bow and Arrow”
  • 14. © 2019 Ademar Aguiar, FEUP. All rights reserved • External releases: from many months to continuum… • Integration: from many weeks to continuum… • Iterations: few weeks… • Tasks: from days to hours… • Programming episodes: from days to minutes • Spikes|Explorations|Experiments: from days to seconds Feedback loops: from months to minutes
  • 15. © 2019 Ademar Aguiar, FEUP. All rights reserved How to be even more agile?
  • 16. © 2019 Ademar Aguiar, FEUP. All rights reserved We are looking for even shorter feedback loops… which new practices and tools do we need? to develop faster, better, and safer? to reduce accidental complexity?
  • 17. © 2019 Ademar Aguiar, FEUP. All rights reserved Software Developer as“Waterer with a hose” [Christopher Hancock 2003] [Restivo 2019]
  • 18. © 2019 Ademar Aguiar, FEUP. All rights reserved Aims at providing real-time feedback to programmers, turning the traditional three-phase edit-compile-run cycle into a continuum, accelerating the process of finding the right solution. Live Programming aka Exploratory, Interactive, Dynamic, Prototyping… [ElmLangHotswapping]
  • 19. © 2019 Ademar Aguiar, FEUP. All rights reserved What’s new and powerful? [Restivo 2019] inspection exploration injection
  • 20. © 2019 Ademar Aguiar, FEUP. All rights reserved Feedback is nearly instantaneous and evaluation is always available. “Liveness” [Tanimoto 2013] • Level 1. Informative: a model (can be code) • Level 2. Significant: an executable model • Level 3. Responsive: edit-triggered updates • Level 4. Live: stream-triggered updates • Level 5. Tactically Predictive: programming from predictive behaviors • Level 6. Strategically Predictive: inference of gross functionality
  • 21. © 2019 Ademar Aguiar, FEUP. All rights reserved • Programming is just a part of the full software lifecycle. • We believe that increasing liveness along all entire software lifecycle would improve most — if not all — development activities in a number of ways. • We aim to extend this approach to more software development activities. What about liveness beyond Live Programming?
  • 22. Ademar Aguiar , Hugo Sereno, Filipe Correia, André Restivo 
 Software Engineering Research Group, FEUP Live Software Development
  • 23.
  • 24. © 2019 Ademar Aguiar, FEUP. All rights reserved • Live Software Development — LiveSD — strives to achieve liveness in every activity, as much as possible and useful. • It requires expertise on different areas related with software and its engineering: Software Engineering (SE), Human-computer Interaction (HCI), Artificial Intelligence (AI), and User Experience (UX). • Key research question: 
 How much liveness will help on other activities of software development?
 • Expected benefits: immediacy, exploration, observability, control. The Case for Live Software Development
  • 25. © 2019 Ademar Aguiar, FEUP. All rights reserved • abstracting the many elements of software development; • enabling developers manipulating abstractions instead of the artifacts that they represent; • enabling the system to be constructed live — i.e., developers can see the effects of their actions directly on a running system as those actions are performed. What do we need to have Live SD?
  • 26. © 2019 Ademar Aguiar, FEUP. All rights reserved • Liveness gaps • A conceptual framework for LiveSD spanning key software development activities and application domains to assess current level of liveness, identify relevant liveness gaps, and outline ways to take them to the next levels. • Representations • Abstractions, models and human-centered metaphors that will improve the developer experience and the transition between non-live to live software development. • Tools • A Live Software Development Environment capable of providing multiple perspectives over software systems, and targeting specific domains. • Blending both existing and new features from visual editors, interactive technologies, and several tools, such as debugging, refactoring, versioning, instrumentation, experimentation, monitoring, and operations. Research Focus
  • 27. © 2019 Ademar Aguiar, FEUP. All rights reserved 2017-18 • Towards a Live Software Development Environment • A Software Repository for Live Software Development Environments • Towards a Live Development of IoT systems • Towards a Live Management of Cloud Infrastructures • A Live Approach for Developing IoT Systems 2018-19 ● Towards Live Refactoring of Software Systems ● Live web prototypes from hand-drawn mockups ● Live Automatic Bug Fixing ● Live Syntax-agnostic Collaboration ● A Live IDE for Deep Learning Architectures ● Two-way real-time integration of IoT devices in VPLs ● Live Software Architecture Refactoring ● Programming Language-Agnostic Live Playgrounds Past and present
  • 28. © 2019 Ademar Aguiar, FEUP. All rights reserved
  • 29. © 2019 Ademar Aguiar, FEUP. All rights reserved Software systems as cities (Wettel et al.) Metaphor“Software Systems as Cities”
  • 30. © 2019 Ademar Aguiar, FEUP. All rights reserved JUnit 4
  • 31. © 2019 Ademar Aguiar, FEUP. All rights reserved AMBIENTE VIRTUAL
 _________ Towards a Live Software Development Environment
  • 32. © 2019 Ademar Aguiar, FEUP. All rights reserved JUnit 4 Composite:Component Composite:Leaf Composite:Composite
  • 33. © 2019 Ademar Aguiar, FEUP. All rights reserved
  • 34. © 2019 Ademar Aguiar, FEUP. All rights reserved
  • 35. © 2019 Ademar Aguiar, FEUP. All rights reserved Solution How we intend to solve the problem
  • 36. © 2019 Ademar Aguiar, FEUP. All rights reserved Solution How we intend to solve the problem
  • 37. © 2019 Ademar Aguiar, FEUP. All rights reserved
  • 38. © 2019 Ademar Aguiar, FEUP. All rights reserved “Supporting software development through live static metrics visualization”
 Sara Couto, André Restivo, Ademar Aguiar 
 When developers have constant exposure
 to software metrics, does that influence 
 the form and final results of their solutions? Live Software Metrics
  • 39. © 2019 Ademar Aguiar, FEUP. All rights reserved “Live Web Prototypes from Hand-Drawn Mockups”
 João Ferreira, André Restivo, Hugo Sereno Ferreira Speeding up web development by reducing 
 the feedback loop between designers 
 and developers. Live Web Prototypes
  • 40. © 2019 Ademar Aguiar, FEUP. All rights reserved “Tests as Specifications towards better Code Completion”
 Diogo Campos, André Restivo, Hugo Sereno Ferreira Shorten the development cycle by providing 
 the developer with relevant suggestions that 
 fixes not only syntactic errors but semantic 
 ones as well. Automatic Program Repair
  • 41. © 2019 Ademar Aguiar, FEUP. All rights reserved “A Live IDE for Deep Learning Architectures”
 Mário Gustavo, Hugo Sereno Ferreira, André Restivo Speeding up deep learning development in 
 Keras using a Live Visual Programming 
 Language. Keras Live Editor
  • 42. © 2019 Ademar Aguiar, FEUP. All rights reserved • Steven L. Tanimoto. Viva: A visual language for image processing. Journal of Visual Languages and Computing, 1(2):12, June 1990. • Steven L. Tanimoto. A perspective on the evolution of live programming. Proceedings of the 1st International Workshop on Live Programming, page 4, May 2013. • Kenneth J. Goldman. Live software development with dynamic classes. Technical report, Department of Computer Science and Engineering Washington University in St. Louis, August 2004. • Richard Wettel. Software Systems as Cities. PhD thesis, Faculty of Informatics of the Universit`a della Svizzera Italiana, September 2010. • J. Vincur, P. Navrat and I. Polasek, VR City: Software Analysis in Virtual Reality Environment, 2017 IEEE International Conference on Software Quality, Reliability and Security Companion (QRS-C), Prague, 2017, pp. 509-516. • Ademar Aguiar, André Restivo, Filipe Figueiredo Correia, Hugo Sereno Ferreira, and João Pedro Dias. Live Software Development: Tightening the feedback loops. Companion of the 3rd International Conference on Art, Science, and Engineering of Programming, Programming 2019 Companion (To Appear). • Diogo Amaral, Gil Domingues, João Pedro Dias, Hugo Sereno Ferreira, Ademar Aguiar, Rui Nóbrega. Live Software Development Environment for Java using Virtual Reality. Proceedings of the 14th International Conference on Evaluation of Novel Approaches to Software Engineering 2019 (To Appear). • Pedro Lourenço, João Pedro Dias, Ademar Aguiar, Hugo Sereno Ferreira. CloudCity: A Live Environment for the Management of Cloud Infrastructures. Proceedings of the 14th International Conference on Evaluation of Novel Approaches to Software Engineering 2019 (To Appear). References
  • 43. © 2019 Ademar Aguiar, FEUP. All rights reserved So…
  • 44. © 2019 Ademar Aguiar, FEUP. All rights reserved • Many times we need to explore the solution space, to learn more and faster, and the cycle edit-compile-run may not be enough. • Live Programming proved to be useful: the liveness factor. • Live Software Development — LiveSD — strives to achieve liveness in every activity, as much as possible and useful. • LiveSD blends expertise from different areas related with software and its engineering: Software Engineering (SE), Human-computer Interaction (HCI), Artificial Intelligence (AI), and User Experience (UX). • We are looking for more cases and collaborations! Contact us! Live Software Development
  • 46. © 2019 Ademar Aguiar, FEUP. All rights reserved Muito obrigado! ademar.aguiar@fe.up.pt
 Software Engineering Research Group, FEUP