Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Pain Points for Novice Programmers of Ambient Intelligence Systems: an Exploratory Study

178 views

Published on

Presentation of the paper "Pain Points for Novice Programmers of Ambient Intelligence Systems: an Exploratory Study" at the IEEE 41st Annual Computer Software and Applications Conference (COMPSAC 2017) in Torino, Italy on July 4-8, 2017

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Pain Points for Novice Programmers of Ambient Intelligence Systems: an Exploratory Study

  1. 1. e-Lite Research Group https://elite.polito.it Pain Points for Novice Programmers of Ambient Intelligence Systems: an Exploratory Study Fulvio Corno, Luigi De Russis, and Juan Pablo Sáenz Politecnico di Torino. Torino, Italy. The 41st IEEE Computer Society International Conference on Computers, Software and Applications 4-6 July 2017, Torino, Italy
  2. 2. Goal Identify the pain points that novice programmers experience, from the software engineering perspective, when developing Ambient Intelligence (AmI) systems 26.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems
  3. 3. Outline ▪ Problem statement ▪ Ambient Intelligence course ▪ Exploratory study ▪ Results and conclusions 36.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems
  4. 4. Outline ▪ Problem statement ▪ Ambient Intelligence course ▪ Exploratory study ▪ Results and conclusions 46.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems
  5. 5. Ambient Intelligence (AmI) A digital environment that proactively, but sensively, supports people in their daily lives (Cook et al, Ambient Intelligence: technologies, applications and opportunities, 2009) 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 5 Sensing Reasoning Acting Interacting How IoT systems integrate and interact with users http://www.cspnet.it
  6. 6. Ambient Intelligence (AmI) ▪ Involves mobile devices, web and mobile applications, cloud computing, wearable devices, and IoT devices ▪ Integrate various subsystems that are heterogeneous from the software and the hardware perspective ▪ From the software perspective, each subsystem has its own set of languages, protocols, devices, and communication mechanisms The development of AmI systems… 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 6 http://www.softwaretestingmagazine.com
  7. 7. Problem statement Novices There are several areas in which they are not expected to have a deep knowledge or previous experience To develop AmI systems… Besides becoming proficient in these areas separately, novices are required to orchestrate them and build a system whose components are heterogeneous from the software and the hardware perspective 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 7 Novice developers face various challenges when attempting to develop AmI systems.
  8. 8. Outline ▪ Problem statement ▪ Ambient Intelligence course ▪ Exploratory study ▪ Results and conclusions 86.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems
  9. 9. Ambient Intelligence course Since 2014, Politecnico di Torino offers a course in Ambient Intelligence. 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 9 ▪ The main topic of the course is the design and realization of AmI systems ▪ Students from three- to four- people teams are guided to define the requirements for an AmI system, and then to design and implement it
  10. 10. Ambient Intelligence course ▪ Every year a theme is chosen for the projects; in 2016 it was "Health and Well-being". In 2017 it is "Sustainability" ▪ Students are invited to present their projects to the public during a dedicated open event ▪ During the showcase the projects are voted by the public and the three most voted are awarded 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 10
  11. 11. Outline ▪ Problem statement ▪ Ambient Intelligence course ▪ Exploratory study ▪ Results and conclusions 116.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems
  12. 12. Exploratory study 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 12 ▪ To identify the pain points novices experience, an exploratory study was conducted among undergraduate students, that worked in groups for developing AmI projects during a university course ▪ Based on their own experiences, individually and as a group, the pain points were identified and prioritized over a common architecture and a set of software development activities
  13. 13. Exploratory study Represent common architectural decisions Design the questionnaire Choose the participants Apply the questionnaire 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 13
  14. 14. Exploratory study Represent common architectural decisions Design the questionnaire Choose the participants Apply the questionnaire 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 14 To gain a common understanding of the most painful issues that students across different projects experienced, common architectural decisions and development tasks were represented into a general interpretation framework ▪ Five interconnected subsystems were identified ▪ Sensors, Gateways, Back-end, Actuators, and End-user ▪ The proposed abstraction represents a reference model in which all the projects’ architectures could fit ▪ It is NOT a unique common architecture that all the projects had to implement ▪ Different projects need to implement different parts of the subsystems
  15. 15. Exploratory study Represent common architectural decisions Design the questionnaire Choose the participants Apply the questionnaire 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 15
  16. 16. Exploratory study Represent common architectural decisions Design the questionnaire Choose the participants Apply the questionnaire 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 16 Total: 5 sections, 20 tasks, and 62 sub-tasks Rank Section A: End- user Difficulty Tim e spent Develop a native end- user m obile application Become familiar with the mobile application platform-specific programming language 1 2 3 4 5 1 2 3 4 5 Configure the development environment 1 2 3 4 5 1 2 3 4 5 Develop the models' classes 1 2 3 4 5 1 2 3 4 5 Develop the controllers' classes 1 2 3 4 5 1 2 3 4 5 Develop the user interface (views) 1 2 3 4 5 1 2 3 4 5 Connect the push notification module with the platform notification service 1 2 3 4 5 1 2 3 4 5 Handle the notifications received in the end-user's smartphone 1 2 3 4 5 1 2 3 4 5 Example of a task decomposed in sub-tasks
  17. 17. Exploratory study Represent common architectural decisions Design the questionnaire Choose the participants Apply the questionnaire 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 17 Grade the development tasks according to their difficulty level and the time spent Choose and prioritize the most complex tasks of each subsystem by ranking them As a group, discuss and reach a consensus about the overall most painful points
  18. 18. Exploratory study Represent common architectural decisions Design the questionnaire Choose the participants Apply the questionnaire 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 18 ▪ In the last version of the AmI course 18 projects were developed ▪ Two of these projects were chosen to be deeply analyzed in this preliminary study ▪ The selection criteria was based on their good results at the course showcase and on the software intensive nature of their implementation
  19. 19. Exploratory study 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 19 Safety Mama ▪ The system detects when a pregnant woman becomes stressed or agitated based on her heart rate and physical activity (number of steps), in which case, a relaxing setup is deployed until the moment in which the system detects again that the stress- levels are down http://ami-2016.github.io/SMa/ Represent common architectural decisions Design the questionnaire Choose the participants Apply the questionnaire
  20. 20. Exploratory study 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 20 Emergency Quest ▪ Aimed at improving the quality of life for people suffering from mild dementia or Alzheimer, while granting them greater autonomy and allowing their caregivers to be aware of their situation ▪ By means of a wearable device, the system could constantly monitor the stress levels, location and activities performed by the patient http://ami-2016.github.io/EQ Represent common architectural decisions Design the questionnaire Choose the participants Apply the questionnaire
  21. 21. Exploratory study 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 21 ▪ The study was conducted over two separate sessions, one for Safety Mama (with 4 students), the second for Emergency Quest (2 students) ▪ The completion of the questionnaire took each student, in average, approximately 50 minutes ▪ The later discussion about the most painful issues as a group took around 20 minutes Represent common architectural decisions Design the questionnaire Choose the participants Apply the questionnaire
  22. 22. Outline ▪ Problem statement ▪ Ambient Intelligence course ▪ Exploratory study ▪ Results and conclusions 226.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems
  23. 23. Results and conclusions Three types of outcomes emerged from this exploratory study 1. The grading of each sub-task in terms of their associated difficulty level and completion time 2. The set of tasks and sub-tasks that were ranked as the most difficult and time-demanding on each subsystem 3. The perception of the group about the most complex tasks 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 23
  24. 24. Results and conclusions 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 24 1. The grading of each sub-task (difficulty & completion time) High difficulty and low time spent Barely occurred Difficult and time spending Software configuration tasks for mobile applications. Integration with notification services. Receiving and handling sensor data in real time. High time spent and low difficulty Configuration tasks difficulty time spent
  25. 25. Results 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 25 2. The set of tasks that were ranked as the most difficult End-user subsystem Become familiar with the mobile platform-specific language Connect the push notification module with the platform service Gateways subsystem (development) Develop the methods or functions required to establish the connection Set up the parameters needed to establish the connection Gateways subsystem (integration) Develop a component for receiving real-time data from the sensors Develop the methods required to handle the actuators behavior Back-end subsystem (development) Define the HTTP methods along with their URI and operation
  26. 26. Results 3. The perception of the group Safety Mama The integration between the wearable Fitbit API and the End- user mobile application due to: ▪ Difficulty to manage the views of the application (forced to re-fetch remote data) ▪ The poor or absent documentation ▪ Lack of tools or libraries that facilitate OAuth authentication 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 26
  27. 27. Results 3. The perception of the group Safety Mama The proper way to consume the RESTful web services exposed by the Gateway devices ▪ Data synchronization with the mobile application background services 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 27
  28. 28. Results 3. The perception of the group Emergency Quest 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 28 Regarding the communication between the mobile application and the main server: ▪ The request that was outgoing from the hybrid mobile application towards the main server sometimes did not received back any response ▪ Lack of a tool to debug the communication
  29. 29. Results 3. The perception of the group Emergency Quest 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 29 Dealing with the remote push notifications in the End-user hybrid mobile application: ▪ The parametrization, and the inability to test the proper functioning of the notifications
  30. 30. Conclusions 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 30 ▪ By structuring the study around the overall architecture, a system-level view of the main pain points was achieved ▪ Students perceived as extremely difficult the sub-tasks regarding: the integration of different subsystems, interaction with proprietary third-party services, and the configuration of mobile, web or hybrid applications ▪ Other sub-tasks regarding configuration of the subsystems were perceived as simple but time-demanding ▪ Future work will consist in designing and developing mechanisms (tools and methodologies) targeted at supporting novice programmers in developing Ambient Intelligence systems
  31. 31. Thank you! juan.saenz@polito.it https://elite.polito.it/ 6.07.17 Pain Points for Novice Programmers of Ambient Intelligence Systems 31

×