10 research outputs found

    Large-scale semi-automated migration of legacy C/C++ test code

    Get PDF
    This is an industrial experience report on a large semi-automated migration of legacy test code in C and C++. The particular migration was enabled by automating most of the maintenance steps. Without automation this particular large-scale migration would not have been conducted, due to the risks involved in manual maintenance (risk of introducing errors, risk of unexpected rework, and loss of productivity). We describe and evaluate the method of automation we used on this real-world case. The benefits were that by automating analysis, we could make sure that we understand all the relevant details for the envisioned maintenance, without having to manually read and check our theories. Furthermore, by automating transformations we could reiterate and improve over complex and large scale source code updates, until they were “just right.” The drawbacks were that, first, we have had to learn new metaprogramming skills. Second, our automation scripts are not readily reusable for other contexts; they were necessarily developed for this ad-hoc maintenance task. Our analysis shows that automated software maintenance as compared to the (hypothetical) manual alternative method seems to be better both in terms of avoiding mistakes and avoiding rework because of such mistakes. It seems that necessary and beneficial source code maintenance need not to be avoided, if software engineers are enabled to create bespoke (and ad-hoc) analysis and transformation tools to support it

    Deriving behavioral specifications of industrial software components

    Get PDF

    Employing multi-modal sensors for personalised smart home health monitoring.

    Get PDF
    Smart home systems are employed worldwide for a variety of automated monitoring tasks. FITsense is a system that performs personalised smart home health monitoring using sensor data. In this thesis, we expand upon this system by identifying the limits of health monitoring using simple IoT sensors, and establishing deployable solutions for new rich sensing technologies. The FITsense system collects data from FitHomes and generates behavioural insights for health monitoring. To allow the system to expand to arbitrary home layouts, sensing applications must be delivered while relying on sparse "ground truth" data. An enhanced data representation was tested for improving activity recognition performance by encoding observed temporal dependencies. Experiments showed an improvement in activity recognition accuracy over baseline data representations with standard classifiers. Channel State Information (CSI) was chosen as our rich sensing technology for its ambient nature and potential deployability. We developed a novel Python toolkit, called CSIKit, to handle various CSI software implementations, including automatic detection for off-the-shelf CSI formats. Previous researchers proposed a method to address AGC effects on COTS CSI hardware, which we tested and found to improve correlation with a baseline without AGC. This implementation was included in the public release of CSIKit. Two sensing applications were delivered using CSIKit to demonstrate its functionality. Our statistical approach to motion detection with CSI data showed a 32% increase in accuracy over an infrared sensor-based solution using data from 2 unique environments. We also demonstrated the first CSI activity recognition application on a Raspberry Pi 4, which achieved an accuracy of 92% with 11 activity classes. An application was then trained to support movement detection using data from all COTS CSI hardware. This was combined with our signal divider implementation to compare CSI wireless and sensing performance characteristics. The IWL5300 exhibited the most consistent wireless performance, while the ESP32 was found to produce viable CSI data for sensing applications. This establishes the ESP32 as a low-cost high-value hardware solution for CSI sensing. To complete this work, an in-home study was performed using real-world sensor data. An ESP32-based CSI sensor was developed to be integrated into our IoT network. This sensor was tested in a FitHome environment to identify how the data from our existing simple sensors could aid sensor development. We performed an experiment to demonstrate that annotations for CSI data could be gathered with infrared motion sensors. Results showed that our new CSI sensor collected real-world data of similar utility to that collected manually in a controlled environment

    Techno-historical limits of the interface: the performance of interactive narrative experiences

    Get PDF
    This thesis takes the position that current analyses of digitally mediated interactive experiences that include narrative elements often lack adequate consideration of the technical and historical contexts of their production.From this position, this thesis asks the question: how is the reader/player/user's participation in interactive narrative experiences (such as hypertext fiction, interactive fiction, computer games, and electronic art) influenced by the technical and historical limitations of the interface?In order to investigate this question, this thesis develops a single methodology from relevant media and narrative theory, in order to facilitate a comparative analysis of well known exemplars from distinct categories of digitally mediated experiences. These exemplars are the interactive fiction Adventure, the interactive art work Osmose, the hypertext fiction Afternoon, a story, and the computer/video games Myst, Doom, Half Life and Everquest.The main argument of this thesis is that the technical limits of new media experiences cause significant ‘gaps’ in the reader’s experience of them, and that the cause of these gaps is the lack of a dedicated technology for new media, which instead ‘borrows’ technology from other fields. These gaps are overcome by a greater dependence upon the reader’s cognitive abilities than other media forms. This greater dependence can be described as a ‘performance’ by the reader/player/user, utilising Eco’s definition of an ‘open’ work (Eco 21).This thesis further argues that the ‘mimetic’ and ‘immersive’ ambitions of current new media practice can increases these gaps, rather than overcoming them. The thesis also presents the case that these ‘gaps’ are often not caused by technical limits in the present, but are oversights by the author/designers that have arisen as the product of a craft culture that has been subject to significant technical limitations in the past. Compromises that originally existed to overcome technical limits have become conventions of the reader/player/user’s interactive literacy, even though these conventions impinge on the experience, and are no longer necessary because of subsequent technical advances. As a result, current new media users and designers now think of these limitations as natural.This thesis concludes the argument by redefining ‘immersion’ as the investment the reader makes to overcome the gaps in an experience, and suggests that this investment is an important aspect of their performance of the work

    Dynamic Upgrade of Distributed Software Components

    Get PDF
    Die Aktualisierung von komplexen Telekommunikationssystemen, die sich durch die ihnen eigene Verteiltheit und hohe Kosten bei System-NichtverfĂŒgbarkeit auszeichnen, ist ein komplizierter und fehleranfĂ€lliger Wartungsprozess. Noch stĂ€rkere Herausforderungen bergen solche Software-Aktualisierungen, die die SystemverfĂŒgbarkeit nicht beeintrĂ€chtigen sollen. Dynamic Upgrade ist eine Wartungstechnik, die das Verwalten und die DurchfĂŒhrung von Software-Aktualisierung automatisiert und damit den Betrieb des Systems wĂ€hrend der Wartungszeit nicht unterbricht. In dieser Arbeit wird das Dynamic Upgrade als ein Sonderfall der Bereitstellung und Inbetriebnahme (Deployment) von Software betrachtet, in dem Teile der einen Dienst reprĂ€sentierenden Software durch neue Versionen im laufenden Betrieb ersetzt werden. Die Problemstellung des Dynamic Upgrade wird anhand einer vom Autor erarbeiteten Taxonomie erlĂ€utert, die die Entwurfsmöglichkeiten fĂŒr ein System zur UnterstĂŒtzung von Dynamic Upgrade hinsichtlich dreier Systemaspekte klassifiziert: Deployment, Evolution und ZuverlĂ€ssigkeit (Dependability). Mit Hilfe dieser Taxonomie lassen sich auch andere Systeme zur UnterstĂŒtzung von Dynamic Upgrade miteinander vergleichen. Aufbauend auf einem ausfĂŒhrlichen Vergleich ĂŒber existierende AnsĂ€tze zur UnterstĂŒtzung von Dynamic Upgrade, wird in der vorliegenden Arbeit eine Lösung entwickelt und dargestellt, die Dynamic Upgrade in verteilten komponentenbasierten Software-Systemen ermöglicht. Ausgehend von der Problemanalyse wird mit Hilfe des Unified Process ein als Deployment and Upgrade Facility bezeichnetes Modell entwickelt, das sowohl die benötigten LeistungsfĂ€higkeiten eines Dynamic Upgrade unterstĂŒtzenden Systems als auch Eigenschaften von aktualisierbaren Software-Komponenten beschreibt. Dieses Modell ist Plattform-unabhĂ€ngig und einsetzbar fĂŒr mehrere unterliegende Middleware-Technologien. Das Modell wird in einem Java-basierten prototypischen Rahmenwerk programmiert und um plattformspezifische Mechanismen auf der Jgroup/ARM Middleware erweitert. Das Rahmenwerk umfasst allgemeine Entwurfslösungen und ?muster, die sich fĂŒr die Konstruktion einer UnterstĂŒtzung fĂŒr Dynamic Upgrade eignen. Es erlaubt die Kontrolle der Lebenszyklen von Aktualisierungsprozessen und ihre Koordination im Zielsystem. DarĂŒber hinaus definiert es eine Reihe von UnterstĂŒtzungsmechanismen und Algorithmen fĂŒr den dynamischen Aktualisierungsprozess, der gegebenenfalls mit unterschiedlichen Zielsetzungen und unter verschiedenen Randbedingungen erfolgen soll. Insbesondere wird ein Aktualisierungsalgorithmus fĂŒr replizierte Software-Komponenten dargestellt. Das entwickelte Rahmenwerk wird zwecks PlausibilitĂ€tsprĂŒfung der dargestellten AnsĂ€tze und zur Auswertung der Auswirkungen der Dynamic Upgrade unterstĂŒtzenden Mechanismen im Hinblick auf Systemperformanz in mehreren Experimenten eingesetzt. Diese quantitative Evaluierung der Experimente fĂŒhrt zu einer Spezifikationen eines einfachen Bewertungsmaßstabs (Benchmark), der sich zum Vergleich von Dynamic Upgrade unterstĂŒtzenden Systemen eignet.Upgrading complex telecommunication software systems, characterized by their inherent distribution and a very high cost of system unavailability, is a difficult and error-prone maintenance activity. Even more challenging are such software upgrades that do not compromise the system availability. Dynamic upgrades is a technique, which automates performing and managing upgrades so that the software system remains operational during the upgrade time. In this thesis, the dynamic upgrade is considered as a special case of software deployment, in which a running service has to be replaced with its new version. The problems of dynamic upgrades are introduced using a novel taxonomy that classifies the design issues to be solved when building support for dynamic upgrade with regard to three system aspects: deployment, evolution and dependability and provides a reference to comparing other systems supporting dynamic upgrades. An extensive and thorough survey of existing approaches to dynamic upgrades follows and, furthermore, is as a starting point to designing a solution supporting dynamic upgrades in distributed component-based software systems. Derived from the problem analysis, a model called Deployment and Upgrade Facility describing the capabilities needed for managing and performing dynamic upgrades as well as properties of upgradable software components is developed using the Unified Process approach. The model is platform independent and can be used with a range of underlying middleware technologies. The model is implemented in a Java-based prototypical framework and extended with platform specific mechanisms on top of the JGroup/ARM middleware. The framework captures common design solutions and patterns for building a support for dynamic upgrade. The framework allows for controlling life-cycle and coordination of upgrade processes in the system. It also defines a number of supporting mechanisms and algorithms for the upgrade process. A special attention is drawn to an upgrade algorithm for replicated software components for achieving a synergy of replication techniques and dynamic upgrade . The developed framework is used to validate the feasibility of the approach and to measure the overhead of the mechanisms supporting dynamic upgrade with regard to the performance of the system being upgraded in a number of practical experiments. This quantitative evaluation of the experiments leads to a specification of a simple benchmark for systems supporting dynamic upgrades

    Microscopy Conference 2021 (MC 2021) - Proceedings

    Get PDF
    Das Dokument enthÀlt die Kurzfassungen der BeitrÀge aller Teilnehmer an der Mikroskopiekonferenz "MC 2021"
    corecore