Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
Publications

Publications by Jácome Costa Cunha

2018

Explaining Spreadsheets with Spreadsheets (Short Paper)

Authors
Cunha, J; Dan, MH; Erwig, M; Fedorin, D; Grejuc, A;

Publication
PROCEEDINGS OF THE 17TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON GENERATIVE PROGRAMMING: CONCEPTS AND EXPERIENCES (GPCE'18)

Abstract
Based on the concept of explanation sheets, we present an approach to make spreadsheets easier to understand and thus easier to use and maintain. We identify the notion of explanation soundness and show that explanation sheets which conform to simple rules of formula coverage provide sound explanations. We also present a practical evaluation of explanation sheets based on samples drawn from widely used spreadsheet corpora and based on a small user study. In addition to supporting spreadsheet understanding and maintenance, our work on explanation sheets has also uncovered several general principles of explanation languages that can help guide the design of explanations for other programming and domain-specific languages.

2019

Get Your Spreadsheets Under (Version) Control

Authors
Macedo, JN; Moreira, R; Cunha, J; Saraiva, J;

Publication
Proceedings of the XXII Iberoamerican Conference on Software Engineering, CIbSE 2019, La Habana, Cuba, April 22-26, 2019.

Abstract
Spreadsheets play a pivotal role in many organizations. They serve to store and manipulate data or forecasting, and they are often used to help in the decision process, thus directly impacting the success, or not, of organizations. As the research community already realized, spreadsheets tend to have the same problems “professional” software contain. Thus, in the past decade many software engineering techniques have been successfully proposed to aid spreadsheet developers and users. However, one of the most used mechanisms to manage software projects is still lacking in spreadsheets: a version control system. A version control system allows for collaborative development, while also allowing individual developers to explore different alternatives without compromising the main project. In this paper we present a version control system, named SheetGit, oriented for end-user programmers. It allows to graphically visualize the history of versions (including branches), to switch between different versions just by pointing and clicking, and to visualize the differences between any two versions in an animated way. To validate our approach/tool we performed an empirical evaluation which shows evidence that SheetGit can aid users when compared to other tools.

2016

Modeling the Impact of UAVs in Sustainability

Authors
Conejero, JM; Brito, IS; Moreira, A; Cunha, J; Araujo, J;

Publication
2016 IEEE 24TH INTERNATIONAL REQUIREMENTS ENGINEERING CONFERENCE WORKSHOPS (REW)

Abstract
In the last few years, sustainability has become one of the priority lines for many companies and organizations, especially public administrations. This trend has been even more evident in some regions where the preservation of natural resources is of utmost importance, not only from an environmental perspective, but also from an economic one. In this context, technology has become one of the key factors to achieve sustainability goals. An example of these technologies are Unmanned Aerial Vehicles (UAVs) which are being used more and more with sustainability purposes. However, although some efforts have been made to propose software approaches to model sustainability, some examples that model the impact of technology on sustainability are still needed. This paper presents an instance of a sustainability metamodel for the UAVs domain. This model allows to specify the impact of UAV-based processes on sustainability, and also to identify potential limitations that may hinder its applicability. Finally, the paper provides some suggestions to complete the metamodel based on the instantiation process.

2020

On Understanding Data Scientists

Authors
Pereira, P; Cunha, J; Fernandes, JP;

Publication
2020 IEEE SYMPOSIUM ON VISUAL LANGUAGES AND HUMAN-CENTRIC COMPUTING (VL/HCC 2020)

Abstract
Data is everywhere and in everything we do. Most of the time, usable information is hidden in raw data and because of that, there is an increasing demand for people capable of working creatively with it. To fully understand how we can assist data science workers to become more productive in their jobs, we first need to understand who they are, how they work, what are the skills they hold and lack, and which tools they need. In this paper, we present the results of the analysis of several interviews conducted with data scientists. Our research allowed us to conclude that the heterogeneity between these professionals is still understudied, which makes the development of methodologies and tools more challenging and error prone. The results of this research are particularly useful for both the scientific community and industry to propose adequate solutions for these professionals.

2017

Type-Safe Evolution of Web Services

Authors
Campinhos, J; Seco, JC; Cunha, J;

Publication
2nd IEEE/ACM International Workshop on Variability and Complexity in Software Design, VACE@ICSE 2017, Buenos Aires, Argentina, May 27, 2017

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 IEEE.

2020

Data Curation: Towards a Tool for All

Authors
Dias, J; Cunha, J; Pereira, R;

Publication
HCI International 2020 - Late Breaking Posters - 22nd International Conference, HCII 2020, Copenhagen, Denmark, July 19-24, 2020, Proceedings, Part I

Abstract
Data science has started to become one of the most important skills one can have in the modern world, due to data taking an increasingly meaningful role in our lives. The accessibility of data science is however limited, requiring complicated software or programming knowledge. Both can be challenging and hard to master, even for the simple tasks. With this in mind, we have approached this issue by providing a new data science platform, termed DS4All.Curation, that attempts to reduce the necessary knowledge to perform data science tasks, in particular for data cleaning and curation. By combining HCI concepts, this platform is: simple to use through direct manipulation and showing transformation previews; allows users to save time by eliminate repetitive tasks and automatically calculating many of the common analyses data scientists must perform; and suggests data transformations based on the contents of the data, allowing for a smarter environment. © 2020, Springer Nature Switzerland AG.

  • 7
  • 14