18 research outputs found
Stereo: editing clones refactored as code generators
International audienceClone detection is a largely mature technology able to detect many code duplications, also called clones, in software systems of practically any size. The classic approaches to clone management are either clone removal, which consists in refactoring clones as an available language abstraction, or clone tracking, using a so-called linked editor, able to propagate changes between clone instances. However, past studies have shown that clone removal is not always feasible due to the limited expressiveness of language abstractions, or not desirable because of the abstraction overhead or the risks inherent to the refactoring. Linked editors, on the other hand, provide costless abstraction at no risk, but have their own issues, such as limited expressiveness, scalability, and controllability. This paper presents a new approach in which clones are safely refactored as code generators, but the unmodified code is presented to the maintainers with the same look-and-feel as in a linked editor. This solution has good expressiveness, scalability, and controllability properties. A prototype such editor is presented along with a first application within an industrial project
Towards Smart and Sustainable Multimodal Public Transports Based on a Participatory Ecosystem
International audienceLeveraging on the recent availability of open data about public transports, the last generation of smartphone applications provide highly personalised guidance to passengers during their trips. This smart assistance definitely improves the passenger comfort and streamlines their trips, especially in case of infrastructure incidents and/or multimodal trips. However, there are important limitations stemming from the unidirectional flow of information going from transport operators to passengers: (1) waste of computing resources, partially defeating the purpose of sustainability, and (2) missed opportunities of optimisations by the transport operators, which do not exploit detailed real-time passengers information. This paper presents ongoing work towards smarter and more sustainable multimodal transports based on a full-duplex ecosystem in which passengers and transport operators actively exchange information and react correspondingly. As first steps in this direction, we show how this integration can lead to greener computing applications by varying the balance between the smartphone and the cloud, and present a few concrete optimisations enabled in this model, during the trip itself or on a longer term by improving the transport infrastructure. We illustrate this ecosystem with a smartphone/cloud application prototype, and elaborate the remaining challenges for fully implementing this vision, including issues like interoperability, scalability, and acceptability
Leveraging Declarations over the Lifecycle of Large-Scale Sensor Applications
International audienceMasses of sensors and actuators are being deployed in our daily environments to provide innovative services for such spaces as parking lots, buildings, and railway networks. Yet, to realize the full potentials of these sensor network infrastructures, services need to be developed. Service development raises a number of challenges due to existing approaches that are often low level and network/hardware-centric. This paper proposes a high-level approach to the development of large-scale orchestrating applications. It revolves around a declaration language that allows to express the sensor-network dimensions of an application (sensor discovery, delivery models, actuation process). These declarations define the behavior of an application with respect to the sensor network infrastructure. We demonstrate the key relevance of these declarations at every stage of an application lifecycle, from design to runtime. In doing so, declarations allow to match the sensor-network behavior of an application to the target infrastructure. Our approach summarizes and puts in perspective our development of industrial case studies and our experience in using a commercially-operated sensor infrastructure
An Evaluation of the DiaSuite Toolset by Professional Developers: Learning Cost and Usability
International audienceThis paper evaluates a design-driven, tool-based approach, named DiaSuite, dedicated to developing applications involving sensors and actuators. Specifically, we evaluate the usability and the learning cost of DiaSuite as a first step to assess the potential for transferring this technology to the industrial practice of this domain. We assess the cost of learning DiaSuite by involving four professional programmers in a usability study involving a software engineering task. This experiment brings preliminary evidence that the DiaSuite technology can be used effectively by professional developers after only half a day of training. We then present qualitative data about the usage and usability of DiaSuite, collected from developers, via questionnaires and interviews. Finally, we discuss lessons learned from this work
A Domain-Specific Approach To Unifying The Many Dimensions of Context-Aware Home Service Development
The complete proceedings are available at http://www.smart-world.org/2018/uic/conferenceProceedings.phpInternational audienceDeveloping context-aware homes involves a range of stakeholders, addressing many dimensions such as service design and development, infrastructure deployment, and maintenance. Such a variety of dimensions often translate into heterogeneous, low-level, silo-based processing of sensor data to extract context information. This paper analyzes a range of existing data processing layers in the domain of aging in place to identify key concepts and operations specific to context-aware processing. Based on this analysis, we introduce a context-aware, domain-specific language and its software architecture, which allow to put in synergy the stakeholders of a context-aware home by providing them with a unified approach to designing and developing services. Our approach offers context aware-specific abstractions and notations, within a data-centric and data-driven paradigm. We have validated our approach by applying it to an assisted living platform for aging in place, deployed in the home of 129 users. In particular, we used our domain-specific language to re-implement 53 existing services, originating from the stakeholders of the assisted living platform. These services were deployed and successfully tested for their effectiveness in performing the specific tasks of the stakeholders, such as detection of daily activities, user risk situations, or sensor failures
A Tool-Based Methodology For Long-Term Activity Monitoring
International audienceIn recent years, remarkable progress has been reported in the field of activity monitoring. However, despite significant breakthroughs in recognizing activities from sensor data, there is still a great deal more to accomplish, especially compared to fields pursuing related goals, such as computer vision and speech recognition. A key factor to move activity monitoring forward, is to enable researchers to build on each other's work more systematically via reproducible research. Besides providing sensor data, reproducibility in activity monitoring requires all aspects of a result to be available to the research community, including collection, processing and interpretation of measurements. This paper presents a tool-based methodology, dedicated to monitor the activities of daily living of older adults, that supports reproducible research. This methodology covers the key steps to defining a monitoring process of these activities, from sensor measurements to actionable activity information. These steps are uniformly described with concise and high-level rules. Additionally, to allow caregivers to monitor older adults' functional decline and to determine what assisting support is needed, our methodology includes a visualization tool, dedicated to handling user activities longitudinally. The proposed approach is validated by a set of rules dedicated to monitor activities of community-dwelling, older adults in their sensor-equipped homes. A preliminary study has been conducted to evaluate the intra-and inter-participant consistency of the results produced by our methodology, using longitudinal datasets, collected over several months. Using Signal Detection Theory, it has shown that our monitoring rules mostly produced the same interpretations as an expert in activity analysis, who manually analyzed the sensor datasets
Improving the Reliability of Pervasive Computing Applications By Continuous Checking of Sensor Readings
International audienceThis paper shows that context-aware applications commonly make implicit assumptions about a sensor infrastructure. Because context-awareness critically relies on these assumptions, the developer typically need to ensure their validity by encoding them in the application code, polluting it with non-functional concerns. This defensive programming approach can be avoided by formulating these assumptions aside from the application, thus factorizing them as an explicit model of the sensor infrastructure. This model can be expressed as a set of rules and can be checked automatically and continuously to ensure the reliability of a sensor infrastructure, both at installation time and during normal functioning. The usefulness of our approach is demonstrated in the domain of assisted living for seniors. We applied it to sensor data collected in the context of a 9-month field study of an assisted living platform, deployed at the home of 24 seniors. We show that several kinds of sensor malfunctions could have been identified upon their occurrence, thanks for our continuous checking, and resolved
Empowering Caregivers To Customizing The Assistive Computing Support of Older Adults - An End-User Domain-Specific Approach
International audienceSmart homes are a promising infrastructure to support assistive services that can prolong independent living of older adults. However, smart homes are mostly developed using a technology-centered approach, raising challenges for users to comprehend the purpose of smart home services and anticipate their behavior. These challenges are more acute when services are to be deployed in homes of older adults, preventing the expert knowledge of their caregivers to be leveraged. This paper presents a user study that assesses the comprehensibility of an end-user language, named Maloya, dedicated to developing assistive services. Participants (9 professional caregivers) are presented with services written in Maloya and must determine whether they detect scenarios of daily living. Our results show that Maloya is well-understood by participants; they successfully determine whether a service detects a scenario (success rate of 94%) and substantiate their answers with consistent explanations. As such, Maloya should be effective in empowering caregivers to select appropriate services for their care-receivers and to accurately anticipate the service behavior
A Language for Online State Processing of Binary Sensors, Applied to Ambient Assisted Living
International audienceThere is a large variety of binary sensors in use today, and useful context-aware services can be defined using such binary sensors. However, the currently available approaches for programming context-aware services do not conveniently support binary sensors. Indeed, no existing approach simultaneously supports a notion of state, central to binary sensors, offers a complete set of operators to compose states, allows to define reusable abstractions by means of such compositions, and implements efficient online processing of these operators. This paper proposes a new language for event processing specifically targeted to binary sensors. The central contributions of this language are a native notion of state and semi-causal operators for temporal state composition including: Allen's interval relations generalized for handling multiple intervals, and temporal filters for handling delays. Compared to other approaches such as CEP (complex event processing), our language provides less discontinued information, allows less restricted compositions, and supports reusable abstractions. We implemented an interpreter for our language and applied it to successfully rewrite a full set of real Ambient Assisted Living services. The performance of our prototype interpreter is shown to compete well with a commercial CEP engine when expressing the same services
The Impact of Generic Data Structures: Decoding the Role of Lists in the Linux Kernel
International audienceThe increasing adoption of the Linux kernel has been sustained by a large and constant maintenance effort, performed by a wide and heterogeneous base of contributors. One important problem that maintainers face in any code base is the rapid understanding of complex data structures. The Linux kernel is written in the C language, which enables the definition of arbitrarily uninformative datatypes, via the use of casts and pointer arithmetic, of which doubly linked lists are a prominent example. In this paper, we explore the advantages and disadvantages of such lists, for expressivity, for code understanding, and for code reliability. Based on our observations, we have developed a toolset that includes inference of descriptive list types and a tool for list visualization. Our tools identify more than 10,000 list fields and variables in recent Linux kernel releases and succeeds in typing 90%. We show how these tools could have been used to detect previously fixed bugs and identify 6 new ones