Cookies
O website necessita de alguns cookies e outros recursos semelhantes para funcionar. Caso o permita, o INESC TEC irá utilizar cookies para recolher dados sobre as suas visitas, contribuindo, assim, para estatísticas agregadas que permitem melhorar o nosso serviço. Ver mais
Aceitar Rejeitar
  • Menu
Publicações

Publicações por HASLab

2017

Formal Verification of ROS-based Robotic Applications using Timed-Automata

Autores
Halder, R; Proença, J; Macedo, N; Santos, A;

Publicação
2017 IEEE/ACM 5TH INTERNATIONAL FME WORKSHOP ON FORMAL METHODS IN SOFTWARE ENGINEERING (FORMALISE) PROCEEDINGS

Abstract
Robotic technologies are continuously transforming the domestic and the industrial environments. Recently the Robotic Operating System (ROS), has been widely adopted both by industry and academia, becoming one of the most popular middleware frameworks for developing robot applications. Guaranteeing the correct behaviour of robotic systems is, however, challenging due to their potential for parameterization and heterogeneity. Although different approaches exist, focusing on concrete domain spaces for specific scenarios, no general approach to reason about ROS systems has yet arisen. This paper proposes an approach to model and verify ROS systems using real time properties, focusing on one of the main features of ROS, the communication between nodes. It takes low-level parameters into account, such as queue sizes and timeouts, and uses timed automata as the modelling language. The robot Kobuki is used as a complex case study, over which properties are automatically verified using the UPPAAL model checker, enabling the identification of problematic parameter combinations.

2017

Variability and Complexity in Software Design: Towards Quality through Modeling and Testing

Autores
Galster, M; Weyns, D; Goedicke, M; Zdun, U; Cunha, J; Chavarriaga, J;

Publicação
ACM SIGSOFT Softw. Eng. Notes

Abstract
Today's software systems must accommodate a wide range of usage and deployment scenarios. The increasing size and heterogeneity of software-intensive systems, dynamic and critical operating conditions, fast moving and highly competitive markets, and increasingly powerful and versatile hardware makes it more and more difficult to handle the additional complexity in design caused by variability. This paper reports results of the Second International Workshop on Variability and Complexity in Software Design. It also outlines directions the field might move in the future.

2017

Type-Safe Evolution of Web Services

Autores
Campinhos, J; Seco, JC; Cunha, J;

Publicação
VACE@ICSE

Abstract
Applications based on micro or web services have had significant growth due to the exponential increase in the use of mobile devices. However, using such kind of loosely coupled interfaces provides almost no guarantees to the developer in terms of evolution. Changes to service interfaces can be introduced at any moment, which may cause the system to fail due to mismatches between communicating parts. In this paper, we present a programming model that allows the development of web service applications, server end-points and their clients, in such a way that the evolution of services' implementation does not cause the disruption of the client. Our approach is based on a type based code slicing technique that ensures that each version only refers to type compatible code, of the same version or of a compatible version, and that each client request is redirected to the most recent type compatible version implemented by the server. We abstract the notion of version and parametrize type compatibility on the relation between versions. The relation between versions is tagged with compatibility levels, so to capture the common conventions used in software development. Our implementation allows multiple versions of a service to be deployed simultaneously, while reusing code between versions in a type safe way. We describe a prototype framework, based on code transformation, for server-side JavaScript code, and using Flow as verification tool.

2017

Grand Timely Topics in Software Engineering

Autores
Cunha, J; Fernandes, JP; Lämmel, R; Saraiva, J; Zaytsev, V;

Publicação
Lecture Notes in Computer Science

Abstract

2017

Promoting entrepreneurship among informatics engineering students: insights from a case study

Autores
Fernandes, JM; Afonso, P; Fonte, V; Alves, V; Ribeiro, AN;

Publicação
EUROPEAN JOURNAL OF ENGINEERING EDUCATION

Abstract
Universities seek to promote entrepreneurship through effective education approaches, which need to be in permanent evolution. Nevertheless, the literature in entrepreneurship education lacks empirical evidence. This article discusses relevant issues related to promoting entrepreneurship in the software field, based on the experience of a 15-European Credit Transfer and Accumulation System course. This course seeks to instil in the students the recognition of the need to reconcile technical and business visions, organisational and commercial aspects, most of which have never been addressed previously. A series of semi-structured interviews made it possible to obtain relevant insights about the teaching-learning process underlying this course and its evolution over a seven-year period. Materials related with this course have been analysed, namely guidelines produced by the teachers and deliverables produced by the students. This article discusses the dimensions that were identified as fundamental for promoting entrepreneurship skills in the field of software, namely teamwork, project engagement, and contact with the market.

2017

Support for automatic refactoring of business logic

Autores
Fernandes, Tiago B.; Ribeiro, António Nestor; Nunes, David V.; Lourenço, Hugo R.; Santos, Luiz C.;

Publicação

Abstract
Software’s structure profoundly affects its development and maintenance costs. Poor software’s structure may lead to well-known design flaws, such as large modules or long methods. A possible ap- proach to reduce a module’s complexity is the Extract Method refactor- ing technique. This technique allows the decomposition of a large and complex method into smaller and simpler ones, while reducing the orig- inal method’s size and improving its readability and comprehension. The OutSystems platform is a low-code platform that allows the de- velopment of web and mobile applications that rely on a set of visual Domain-Specific Languages (DSLs). Even low-code languages when im- properly used can lead to software that has maintenance issues like long methods. Thus, the purpose of this paper is to present the research and devel- opment done to provide the OutSystems platform with a tool that au- tomatically suggests Extract Method refactoring opportunities. The re- search combines program slicing techniques with code complexity metrics to calculate the best refactoring opportunities that preserve programs’ functionality. The proposed approach was tested on typical OutSystems apps and was shown to be able to reduce the overall applications’ complexity.

  • 116
  • 260