1,569 research outputs found
A unified approach for static and runtime verification : framework and applications
Static verification of software is becoming ever more effective
and efficient. Still, static techniques either have high precision, in which
case powerful judgements are hard to achieve automatically, or they use
abstractions supporting increased automation, but possibly losing important aspects of the concrete system in the process. Runtime verification has complementary strengths and weaknesses. It combines full
precision of the model (including the real deployment environment) with
full automation, but cannot judge future and alternative runs. Another
drawback of runtime verification can be the computational overhead of
monitoring the running system which, although typically not very high,
can still be prohibitive in certain settings. In this paper we propose a
framework to combine static analysis techniques and runtime verification with the aim of getting the best of both techniques. In particular,
we discuss an instantiation of our framework for the deductive theorem
prover KeY, and the runtime verification tool Larva. Apart from combining static and dynamic verification, this approach also combines the
data centric analysis of KeY with the control centric analysis of Larva.
An advantage of the approach is that, through the use of a single specification which can be used by both analysis techniques, expensive parts
of the analysis could be moved to the static phase, allowing the runtime
monitor to make significant assumptions, dropping parts of expensive
checks at runtime. We also discuss specific applications of our approach.peer-reviewe
Development of a web application to facilitate access to clients for catering
A web application is going to be implemented and designed in this thesis. I called
the application UCOME and it is a platform specially thought for companies that have
catering services like restaurants or cafes; or even it can be adapted to any restaurant.
The main idea is that users can seat wherever they want because the administrator of the
application configured the scenario of his local before and then, users will be able to
order food without calling the waiter through their laptops or mobile phones.
UCOME is developed with Spring Boot and it consists of three main pages:
Administrator Page: the administrator of the application will be able to configure
the scenario of the local, the login preferences (LDAP, Office 365…), the food
menu, events, social networks, statistics, etc.
Customers Page: the customers will choose the seat where they want to eat, and
they will order the food.
Employees Page: the employees of the local will receive the orders made by the
customers and they will carry the food to their seats.
All the data is stored in a MySQL database which provides the necessary capacity
for this application.IngenierĂa Informátic
Mesmerizer: A Effective Tool for a Complete Peer-to-Peer Software Development Life-cycle
In this paper we present what are, in our experience, the best
practices in Peer-To-Peer(P2P) application development and
how we combined them in a middleware platform called Mesmerizer. We explain how simulation is an integral part of
the development process and not just an assessment tool.
We then present our component-based event-driven framework for P2P application development, which can be used
to execute multiple instances of the same application in a
strictly controlled manner over an emulated network layer
for simulation/testing, or a single application in a concurrent
environment for deployment purpose. We highlight modeling aspects that are of critical importance for designing and
testing P2P applications, e.g. the emulation of Network Address Translation and bandwidth dynamics. We show how
our simulator scales when emulating low-level bandwidth
characteristics of thousands of concurrent peers while preserving a good degree of accuracy compared to a packet-level
simulator
Survey of Technologies for Web Application Development
Web-based application developers face a dizzying array of platforms,
languages, frameworks and technical artifacts to choose from. We survey,
classify, and compare technologies supporting Web application development. The
classification is based on (1) foundational technologies; (2)integration with
other information sources; and (3) dynamic content generation. We further
survey and classify software engineering techniques and tools that have been
adopted from traditional programming into Web programming. We conclude that,
although the infrastructure problems of the Web have largely been solved, the
cacophony of technologies for Web-based applications reflects the lack of a
solid model tailored for this domain.Comment: 43 page
Dynamic cache reconfiguration based techniques for improving cache energy efficiency
Modern multicore processors are employing large last-level caches, for
example Intel's E7-8800 processor uses 24MB L3 cache. Further, with each CMOS
technology generation, leakage energy has been dramatically increasing and
hence, leakage energy is expected to become a major source of energy
dissipation, especially in last-level caches (LLCs). The conventional schemes
of cache energy saving either aim at saving dynamic energy or are based on
properties specific to first-level caches, and thus these schemes have limited
utility for last-level caches. Further, several other techniques require
offline profiling or per-application tuning and hence are not suitable for
product systems. In this research, we propose novel cache leakage energy saving
schemes for single-core and multicore systems; desktop, QoS, real-time and
server systems. We propose software-controlled, hardware-assisted techniques
which use dynamic cache reconfiguration to configure the cache to the most
energy efficient configuration while keeping the performance loss bounded. To
profile and test a large number of potential configurations, we utilize
low-overhead, micro-architecture components, which can be easily integrated
into modern processor chips. We adopt a system-wide approach to save energy to
ensure that cache reconfiguration does not increase energy consumption of other
components of the processor. We have compared our techniques with the
state-of-art techniques and have found that our techniques outperform them in
their energy efficiency. This research has important applications in improving
energy-efficiency of higher-end embedded, desktop, server processors and
multitasking systems. We have also proposed performance estimation approach for
efficient design space exploration and have implemented time-sampling based
simulation acceleration approach for full-system architectural simulators.Comment: PhD thesis, dynamic cache reconfiguratio
CoAP Infrastructure for IoT
The Internet of Things (IoT) can be seen as a large-scale network of billions of smart devices. Often IoT
devices exchange data in small but numerous messages, which requires IoT services to be more scalable and
reliable than ever. Traditional protocols that are known in the Web world does not fit well in the constrained
environment that these devices operate in. Therefore many lightweight protocols specialized for the IoT have
been studied, among which the Constrained Application Protocol (CoAP) stands out for its well-known REST
paradigm and easy integration with existing Web. On the other hand, new paradigms such as Fog Computing
emerges, attempting to avoid the centralized bottleneck in IoT services by moving computations to the edge
of the network. Since a node of the Fog essentially belongs to relatively constrained environment, CoAP fits
in well. Among the many attempts of building scalable and reliable systems, Erlang as a typical concurrency-oriented programming (COP) language has been battle tested in the telecom industry, which has similar requirements
as the IoT. In order to explore the possibility of applying Erlang and COP in general to the IoT, this thesis
presents an Erlang based CoAP server/client prototype ecoap with a flexible concurrency model that can
scale up to an unconstrained environment like the Cloud and scale down to a constrained environment like
an embedded platform. The flexibility of the presented server renders the same architecture applicable from
Fog to Cloud. To evaluate its performance, the proposed server is compared with the mainstream CoAP
implementation on an Amazon Web Service (AWS) Cloud instance and a Raspberry Pi 3, representing the
unconstrained and constrained environment respectively. The ecoap server achieves comparable throughput,
lower latency, and in general scales better than the other implementation in the Cloud and on the Raspberry
Pi. The thesis yields positive results and demonstrates the value of the philosophy of Erlang in the IoT space
The role of concurrency in an evolutionary view of programming abstractions
In this paper we examine how concurrency has been embodied in mainstream
programming languages. In particular, we rely on the evolutionary talking
borrowed from biology to discuss major historical landmarks and crucial
concepts that shaped the development of programming languages. We examine the
general development process, occasionally deepening into some language, trying
to uncover evolutionary lineages related to specific programming traits. We
mainly focus on concurrency, discussing the different abstraction levels
involved in present-day concurrent programming and emphasizing the fact that
they correspond to different levels of explanation. We then comment on the role
of theoretical research on the quest for suitable programming abstractions,
recalling the importance of changing the working framework and the way of
looking every so often. This paper is not meant to be a survey of modern
mainstream programming languages: it would be very incomplete in that sense. It
aims instead at pointing out a number of remarks and connect them under an
evolutionary perspective, in order to grasp a unifying, but not simplistic,
view of the programming languages development process
- …