79 research outputs found
Lifestate: Event-Driven Protocols and Callback Control Flow
Developing interactive applications (apps) against event-driven software frameworks such as Android is notoriously difficult. To create apps that behave as expected, developers must follow complex and often implicit asynchronous programming protocols. Such protocols intertwine the proper registering of callbacks to receive control from the framework with appropriate application-programming interface (API) calls that in turn affect the set of possible future callbacks. An app violates the protocol when, for example, it calls a particular API method in a state of the framework where such a call is invalid. What makes automated reasoning hard in this domain is largely what makes programming apps against such frameworks hard: the specification of the protocol is unclear, and the control flow is complex, asynchronous, and higher-order. In this paper, we tackle the problem of specifying and modeling event-driven application-programming protocols. In particular, we formalize a core meta-model that captures the dialogue between event-driven frameworks and application callbacks. Based on this meta-model, we define a language called lifestate that permits precise and formal descriptions of application-programming protocols and the callback control flow imposed by the event-driven framework. Lifestate unifies modeling what app callbacks can expect of the framework with specifying rules the app must respect when calling into the framework. In this way, we effectively combine lifecycle constraints and typestate rules. To evaluate the effectiveness of lifestate modeling, we provide a dynamic verification algorithm that takes as input a trace of execution of an app and a lifestate protocol specification to either produce a trace witnessing a protocol violation or a proof that no such trace is realizable
Leveraging Program Analysis to Reduce User-Perceived Latency in Mobile Applications
Reducing network latency in mobile applications is an effective way of
improving the mobile user experience and has tangible economic benefits. This
paper presents PALOMA, a novel client-centric technique for reducing the
network latency by prefetching HTTP requests in Android apps. Our work
leverages string analysis and callback control-flow analysis to automatically
instrument apps using PALOMA's rigorous formulation of scenarios that address
"what" and "when" to prefetch. PALOMA has been shown to incur significant
runtime savings (several hundred milliseconds per prefetchable HTTP request),
both when applied on a reusable evaluation benchmark we have developed and on
real applicationsComment: ICSE 201
Self-service kiosk-based anamnesis system for emergency departments
Dissertação de mestrado integrado em Engenharia InformáticaEmergency departments have a higher number of visits compared to other hospital de partments. Technology has played a crucial role in promoting improvements in hospital
management and clinical performance. The number of visits to emergency departments has
increased considerably, giving rise to crowding situations that cause several adverse effects.
This situation negatively affects the provision of emergency services, impairs the quality of
health care and increases the time patients wait for medical check-up. One of the leading
causes contributing to the crowding is the high number of patients with low severity clinical
condition. These are referred to as non-urgent or inappropriate patients, whose clinical
situation should be taken care through self-care or primary health care.
It is the responsibility of the institutions to analyse and quantify the possible causes of
crowding to find the best solution to mitigate the adverse effects caused. It is believed that
non-urgent patients can use the time spent in the waiting room more productively, namely
by using a self-service kiosk to which they can provide valuable information to facilitate and
accelerate the clinical processing.
This work proposes a solution to be used in the waiting room of emergency departments,
which aims to reduce the period of medical check-up. The solution uses a self-service kiosk
for the patient to provide relevant clinical data that would otherwise have to be collected
by the physician during the clinical observation process. In particular, the kiosk will collect
vital signs, past medical history, main complaint and usual medication. This data will
be processed and provided to the physician in a structured and uniform way before each
medical check-up. The primary purpose of this solution is to reduce the period of patients’
medical check-up and thus improve the response capacity of the emergency departments
with the same resources.
During the Master’s work period, an Android application was implemented for patients
to enter the clinical data mentioned above, and a Web application for physicians to access it.
Additionally, a data warehouse was implemented to store the data in a consolidated way
to discover hidden relationships and patterns in the data. The first moment of evaluation,
undertaken in a non-hospital facility, shows positive acceptability by participants, with a
large majority considering the system user-friendly. Due to the pandemic, it was impossible
to perform the second planned evaluation moment in a real emergency environment.Os serviços de urgência apresentam um número de visitas superior em comparação com
outros serviços presentes nas instituições hospitalares. A afluência aos serviços de urgências
tem vindo a aumentar consideravelmente, dando origem a situações de lotação que provocam
diversos efeitos negativos nas instituições hospitalares. No geral, este fenômeno afeta
negativamente a prestação dos serviços de urgência, prejudica a qualidade dos cuidados
de saúde e faz aumentar o tempo que os doentes aguardam pela observação clínica na
sala de espera. Uma das principais causas apontadas para o surgimento da lotação é o
elevado número de doentes com condição clínica de baixa gravidade. Estes são designados
como doentes não-urgentes ou inapropriados, cuja condição clínica poderia ser resolvida,
idealmente, com recurso ao auto-cuidado ou a cuidados de saúde primários.
É da responsabilidade das instituições analisar e quantificar as possíveis causas de lotação,
de forma a encontrar a melhor solução para atenuar os efeitos negativos provocados.
Acredita-se que os doentes não-urgentes tenham a capacidade de utilizar o tempo na sala
de espera de forma mais produtiva, através da utilização de um quiosque self-service.
Neste sentido e aliada à tecnologia, esta dissertação contextualiza uma solução para ser
utilizada na sala de espera dos serviços de urgência, visando reduzir o período de observação
clínico. Esta solução vem complementar a realização do procedimento inicial efetuado pelo
médico, no consultório, através do uso de um quiosque. Assim, a recolha dos sinais vitais,
história médica prévia, queixa principal e medicação habitual será efetuada pelos doentes
no quiosque. Estes dados vão ser fornecidos de forma estruturada e organizada ao médico
antes da realização da consulta. O objetivo principal desta solução é reduzir o período de
observação clínico e assim melhorar a capacidade de resposta dos serviços de urgência com
os mesmos recursos hospitalares.
Durante o período da dissertação, foi implementada uma aplicação Android para os
pacientes registarem os dados clínicos acima mencionados, e uma aplicação Web para os
médicos acederem aos mesmos. Foi implementado também um data warehouse para a
descoberta de relações e padrões escondidos nos dados. O primeiro momento de avaliação,
realizado num ambiente não hospitalar, mostrou uma aceitabilidade positiva pelos partici pantes, com grande maioria a considerar o sistema user-friendly. Devido à pandemia, não
foi possível realizar o segundo momento de avaliação planeado num serviço de urgências
GAINDroid: General Automated Incompatibility Notifier for Android Applications
With the ever-increasing popularity of mobile devices over the last decade, mobile apps and the frameworks upon which they are built frequently change. This rapid evolution leads to a confusing jumble of devices and applications utilizing differing features even within the same framework. For Android apps and devices, representing over 80% of the market share, mismatches between the version of the Android operating system installed on a device and the version of the app installed, can lead to several run-time crashes, providing a poor user experience.
This thesis presents GAINDroid, an analysis approach, backed with a classloader based program analyzer, that automatically detects three types of mismatches to which an app may be vulnerable across versions of the Android API it supports. Unlike all prior techniques that focus on identifying a particular problem, such as callback APIs issues, GAINDroid has the potential to greatly increase the scope of the analysis by automatically and effectively analyzing various sources of incompatibilities that may lead an app to crash at run-time. We applied GAINDroid to 3,590 real-world apps and compared the results of our analysis against state-of-the-art tools. The experimental results demonstrate its ability to outperform the existing analysis techniques in terms of both the number and type of mismatches correctly identified as well as run-time performance of the analysis.
Adviser: Hamid Bagher
Taming the Static Analysis Beast
While industrial-strength static analysis over large, real-world codebases has become commonplace, so too have difficult-to-analyze language constructs, large libraries, and popular frameworks. These features make constructing and evaluating a novel, sound analysis painful, error-prone, and tedious. We motivate the need for research to address these issues by highlighting some of the many challenges faced by static analysis developers in today\u27s software ecosystem. We then propose our short- and long-term research agenda to make static analysis over modern software less burdensome
- …