People in the Machine:
Human-centred Software Engineering for Smart Systems
The growth in ubiquitous computing technologies has created ever greater opportunities to use the data gathered by these technologies to develop ‘smart systems’ that enhance a range of human activities, from health and wellbeing to transportation, agriculture, and sustainable living. These 'smart systems' depend on software as the thread that weaves together a variety of underlying technologies from distributed sensors and middleware for data fusion, to machine learning, data visualisation, and multi-modal user interfaces. The software delivers the functionality of the smart systems while maintaining key qualities such as performance, dependability, security, and usability. Since humans are an integral part of these systems, software engineering for smart systems needs to acknowledge the role of the “people in the machine”. In a bid to manage complexity or minimise failures, significant software engineering effort has focused on enhancing or replacing human involvement in these systems. However, there remain challenges in integrating people into the design, construction, and use of smart software systems and this talk will present some of the challenges of achieving this integration. It will also describe work that has been done to address these challenges in the context of secure, adaptive and usable software for cyber-physical security and privacy, and resilient healthcare solutions.