Publications

Download BibTeX

2023
new publication
A Backend Platform for Supporting the Reproducibility of Computational Experiments.
Lázaro Costa, Susana Barbosa, Jácome Cunha.
arXiv:2308.00703
doi:10.48550/arXiv.2308.00703
PDF
2023
A Methodology for Refactoring ORM-based Monolithic Web Applications into Microservices.
Francisco Freitas, André Ferreira, Jácome Cunha.
Journal of Computer Languages (COLA), Volume 75, 2023, 101205, Elsevier.
doi:10.1016/j.cola.2023.101205
PDF
2023
Impact of Remote Work on Portuguese Software Professionals During the COVID-19 Pandemic.
Ana J. Almeida, Jácome Cunha, João M. Fernandes.
26th IberoAmerican Conference on Software Engineering (CibSE'23)
PDF
2022
Which Technologies are Most Frequently Used by Data Scientists?
Paula Pereira, João Paulo Fernandes, Jácome Cunha.
2022 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'21) , pp 1-5 doi:10.1109/VL/HCC53370.2022.9833122
PDF [poster]
2022
Energy Efficiency of Web Browsers in the Android Ecosystem.
Nélson Gonçalves, Rui Rua, Jácome Cunha, Rui Pereira, João Saraiva.
2022 Workshop on Resource AWareness of Systems and Society (RAW'22)
PDF
2021
Towards a Block-based Language for Linear Programming.
Hugo Gião, Rui Pereira, and Jácome Cunha.
Proceedings of the 2021 National Symposium of Informatics (INForum'21)
PDF [poster]
2021
Linear Programming Meets Block-based Languages.
Hugo Da Gião, Jácome Cunha, and Rui Pereira.
2021 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'21) , pp 1-3 doi:10.1109/VL/HCC51201.2021.9576449
PDF
2021
Ranking programming languages by energy efficiency.
Rui Pereira, Marco Couto, Francisco Ribeiro, Rui Rua, Jácome Cunha, João Paulo Fernandes, and João Saraiva.
Sci. Comput. Program. , pp 102609 doi:10.1016/j.scico.2021.102609
PDF
2021
Green Software Lab: Towards an Engineering Discipline for Green Software.
Rui Abreu, Marco Couto, Luís Cruz, Jácome Cunha, João Paulo Fernandes, Rui Pereira, Alexandre Perez, and João Saraiva.
CoRR
PDF
2021
Refactoring Java Monoliths into Executable Microservice-Based Applications.
Francisco Freitas, Andr{é} Ferreira, and Jácome Cunha.
25th Brazilian Symposium on Programming Languages (SBLP'21) , pp 100--107 doi:10.1145/3475061.3475086
PDF [abstract]
In the last few years we have been seeing a drastic change in the way software is developed. Large-scale software projects are being assembled by a flexible composition of many (small) components possibly written in different programming languages and deployed anywhere in the cloud -- the so-called microservice-based applications. The dramatic growth in popularity of microservice-based applications has pushed several companies to apply major refactorings to their software systems. However, this is a challenging task that may take several months or even years. We propose a methodology to automatically evolve a Java monolithic application into a microservice-based one. Our methodology receives the Java code and a proposition of microservices and refactors the original classes to make each microservice independent. Our methodology creates an API for each method call to classes that are in other services. The database entities are also refactored to be included in the corresponding service. The initial evaluation shows that our tool can successfully refactor 80% of the applications tested.
2021
Identification of microservices from monolithic applications through topic modelling.
Miguel Brito, Jácome Cunha, and João Saraiva.
36th ACM/SIGAPP Symposium on Applied Computing (SAC'21), Virtual Event, Republic of Korea, March 22-26, 2021 , pp 1409--1418 doi:10.1145/3412841.3442016
PDF
2020
Data Science For All.
Jácome Cunha, José Dias, Paula Pereira, João P. Fernandes, and Rui Pereira.
Interrogating Data Science CSCW 2020 Workshop
PDF
2020
Data Curation: Towards a Tool for All.
José Dias, Jácome Cunha, and Rui Pereira.
HCI International 2020 -- Late Breaking Posters , pp 176--183 doi:https://doi.org/10.1007/978-3-030-60700-5_23
PDF [demo youtube] [poster] [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.
2020
SPELLing out energy leaks: Aiding developers locate energy inefficient code.
Rui Pereira, Tiago Carção, Marco Couto, Jácome Cunha, João Paulo Fernandes, and João Saraiva.
Journal of Systems and Software , pp 110463 doi:https://doi.org/10.1016/j.jss.2019.110463
PDF [abstract]
Although hardware is generally seen as the main culprit for a computer's energy usage, software too has a tremendous impact on the energy spent. Unfortunately, there is still not enough support for software developers so they can make their code more energy-aware. This paper proposes a technique to detect energy inefficient fragments in the source code of a software system. Test cases are executed to obtain energy consumption measurements, and a statistical method, based on spectrum-based fault localization, is introduced to relate energy consumption to the source code. The result of our technique is an energy ranking of source code fragments pointing developers to possible energy leaks in their code. This technique was implemented in the SPELL toolkit. Finally, in order to evaluate our technique, we conducted an empirical study where we asked participants to optimize the energy efficiency of a software system using our tool, while also having two other groups using no tool assistance and a profiler, respectively. We showed statistical evidence that developers using our technique were able to improve the energy efficiency by 43% on average, and even out performing a profiler for energy optimization.
2020
Telephone-based psychological crisis intervention: the Portuguese experience with COVID-19.
Eugénia Ribeiro, Adriana Sampaio, Miguel M. Gonçalves, Maria Céu Taveira, Jácome Cunha, Angela Maia, Marlene Matos, Sónia Gonçalves, Bárbara Figueiredo, Teresa Freire, and Tércio Soares.
Counselling Psychology Quarterly 0(0) , pp 1-15 doi:10.1080/09515070.2020.1772200
[abstract]
Portugal is one of the European countries that implemented early protective measures in the context of the COVID-19 pandemic. Portugal declared a state of emergency on 18 March, and a set of regional and national preventive public health measures was progressively implemented. Studies on the psychological impact of pandemics show evidence of the negative impact on mental health. Of particular concern are individuals with previous fragility (e.g. personal, family or occupational) and those undergoing life transitions. In this paper, we present a telephone-based psychological crisis intervention that was implemented to provide brief, appropriate, and timely psychological help. This intervention follows standard models of crisis intervention and is structured in five phases and five different intervention modules to take into account the impact of the pandemic on the mental health of specific risk groups. With these support services, we hope to help our community better cope with the immediate impact of the pandemic and to contribute to preventing serious mental health problems in the medium and long term.
2020
On Understanding Data Scientists.
Paula Pereira, Jácome Cunha, and João P. Fernandes.
2020 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC) , pp 1-5 doi:https://doi.org/10.1109/VL/HCC50065.2020.9127269
PDF [slides]
2019
Watch Out for that Tree! A Tutorial on Shortcut Deforestation.
João Paulo Fernandes, Jácome Cunha, João Saraiva, and Alberto Pardo.
Central European Functional Programming School: 6th Summer School, CEFP 2015, Budapest, Hungary, July 6--10, 2015, Revised Selected Papers , pp 1--41 doi:10.1007/978-3-030-28346-9_1
PDF [abstract]
Functional programmers are strong enthusiasts of modular solutions to programming problems. Since software characteristics such as readability or maintainability are often directly proportional to modularity, this programming style naturally contributes to the beauty of functional programs. Unfortunately, in return of this beauty we often sacrifice efficiency: modular programs rely, at runtime, on the creation, use and elimination of intermediate data structures to connect its components. In this tutorial paper, we study an advanced technique that attempts to retain the best of this two worlds: (i) it allows programmers to implement beautiful, modular programs (ii) it shows how to transform such programs, in a way that can be incorporated in a compiler, into programs that do not construct any intermediate structure.
2019
Get Your Spreadsheets Under (Version) Control.
José Nuno Macedo, Ricardo Moreira, Jácome Cunha, and João Saraiva.
Proceedings of the XXII Iberoamerican Conference on Software Engineering, CIbSE 2019, La Habana, Cuba, April 22-26, 2019. , pp 100--113
PDF
2019
Towards using Memoization for Saving Energy in Android.
Rui Rua, Marco Couto, Adriano Pinto, Jácome Cunha, and João Saraiva.
Proceedings of the XXII Iberoamerican Conference on Software Engineering, CIbSE 2019, La Habana, Cuba, April 22-26, 2019. , pp 279--292
PDF
2018
November
Explaining Spreadsheets with Spreadsheets.
Jácome Cunha, Mihai Dan, Martin Erwig, Danila Fedorin, and Alex Grejuc.
Proceedings of the 17th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences (GPCE'18) , pp 161--167
PDF [poster] [slides]
2018
September
jStanley: Placing a Green Thumb on Java Collections.
Rui Pereira, Pedro Simão, Jácome Cunha, and João Saraiva.
Proceedings of the 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE'18) , pp 856--859
PDF [slides] [tool] [poster] [video]
2018
June
Typing the Evolution of Variational Software.
Luís Afonso Carvalho, João Costa Seco, and Jácome Cunha.
24th International Conference on Types for Proofs and Programs (TYPES'18)
PDF [slides]
2018
May
A Building Automation Case Study: Setup and Challenges.
João Cambeiro, Cláudio Gomes, Vasco Amaral, Armanda Rodrigues, and Jácome Cunha.
Proceedings of the 4th International Workshop on Software Engineering for Smart Cyber-Physical Systems (SEsCPS'18), an event of the 40th International Conference on Software Engineering (ICSE'18) , pp 41--44
PDF [slides]
2018
2018 IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2018, Lisbon, Portugal, October 1-4, 2018.
.
Proceedings
2017
Variability and Complexity in Software Design: Towards Quality through Modeling and Testing.
Matthias Galster, Danny Weyns, Michael Goedicke, Uwe Zdun, Jácome Cunha, and Jaime Chavarriaga.
ACM SIGSOFT Software Engineering Notes 42(4) , pp 35--37 doi:10.1145/3149485.3149524
PDF
2017
Type-Safe Evolution of Web Services.
João Campinhos, João Costa Seco, and Jácome Cunha.
2nd IEEE/ACM International Workshop on Variability and Complexity in Software Design, VACE@ICSE 2017, Buenos Aires, Argentina, May 27, 2017 , pp 20--26 doi:10.1109/VACE.2017.6
2017
Helping programmers improve the energy efficiency of source code.
Rui Pereira, Tiago Carção, Marco Couto, Jácome Cunha, João Paulo Fernandes, and João Saraiva.
Proceedings of the 39th International Conference on Software Engineering, ICSE 2017, Buenos Aires, Argentina, May 20-28, 2017 - Companion Volume , pp 238--240 doi:10.1109/ICSE-C.2017.80
2017
Towards systematic spreadsheet construction processes.
Jorge Mendes, Jácome Cunha, Francisco Duarte, Gregor Engels, João Saraiva, and Stefan Sauer.
Proceedings of the 39th International Conference on Software Engineering, ICSE 2017, Buenos Aires, Argentina, May 20-28, 2017 - Companion Volume , pp 356--358 doi:10.1109/ICSE-C.2017.141
2017
Energy efficiency across programming languages: how do energy, time, and memory relate?.
Rui Pereira, Marco Couto, Francisco Ribeiro, Rui Rua, Jácome Cunha, João Paulo Fernandes, and João Saraiva.
Proceedings of the 10th ACM SIGPLAN International Conference on Software Language Engineering, SLE 2017, Vancouver, BC, Canada, October 23-24, 2017 , pp 256--267 doi:10.1145/3136014.3136031
2017
Products go Green: Worst-Case Energy Consumption in Software Product Lines.
Marco Couto, Paulo Borba, Jácome Cunha, João Paulo Fernandes, Rui Pereira, and João Saraiva.
Proceedings of the 21st International Systems and Software Product Line Conference, SPLC 2017, Volume A, Sevilla, Spain, September 25-29, 2017 , pp 84--93 doi:10.1145/3106195.3106214
2017
Systematic spreadsheet construction processes.
Jorge Mendes, Jácome Cunha, Francisco Duarte, Gregor Engels, João Saraiva, and Stefan Sauer.
2017 IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2017, Raleigh, NC, USA, October 11-14, 2017 , pp 123--127 doi:10.1109/VLHCC.2017.8103459
PDF
2017
Grand Timely Topics in Software Engineering - International Summer School GTTSE 2015, Braga, Portugal, August 23-29, 2015, Tutorial Lectures.
.
Proceedings doi:10.1007/978-3-319-60074-1
2016
Static Energy Consumption Analysis in Variability Systems.
Marco Couto, Jácome Cunha, João Paulo Fernandes, Rui Pereira, and João Saraiva.
2nd Green in Software Engineering Workshop (GInSEng'16), an event of the 4th International Conference on ICT for Sustainability (ICT4S)
[abstract]
Energy consumption is becoming an evident concern to software developers. This is even more notorious due to the propagation of mobile devices. Such propagation of devices is also influencing software development: a software system is now developed has a set of similar products sharing common features. In this short paper, we describe our methodology aim at static and accurately predict the energy consumption of software products in such variability systems, typically called software product lines.
2016
Model inference for spreadsheets.
Jácome Cunha, Martin Erwig, Jorge Mendes, and João Saraiva.
Automated Software Engineering 23(3) , pp 361--392 doi:10.1007/s10515-014-0167-x
2016
Evaluating refactorings for spreadsheet models.
Jácome Cunha, João Paulo Fernandes, Pedro Martins, Jorge Mendes, Rui Pereira, and João Saraiva.
Journal of Systems and Software , pp 234--250 doi:10.1016/j.jss.2016.04.043
2016
The influence of the Java collection framework on overall energy consumption.
Rui Pereira, Marco Couto, João Saraiva, Jácome Cunha, and João Paulo Fernandes.
Proceedings of the 5th International Workshop on Green and Sustainable Software, GREENS@ICSE 2016, Austin, Texas, USA, May 16, 2016 , pp 15--21 doi:10.1145/2896967.2896968
PDF
2016
Modeling the Impact of UAVs in Sustainability.
José María Conejero, Isabel Sofia Brito, Ana Moreira, Jácome Cunha, and João Araújo.
24th IEEE International Requirements Engineering Conference, RE 2016, Beijing, China, September 12-16, 2016 , pp 208--216 doi:10.1109/REW.2016.044
2016
User-friendly spreadsheet querying: an empirical study.
Rui Pereira, João Saraiva, Jácome Cunha, and João Paulo Fernandes.
Proceedings of the 31st Annual ACM Symposium on Applied Computing, Pisa, Italy, April 4-8, 2016 , pp 202--204 doi:10.1145/2851613.2851910
PDF
2015
GreenDroid: A tool for analysing power consumption in the android ecosystem.
Marco Couto, Jácome Cunha, João Paulo Fernandes, Rui Pereira, and João Saraiva.
2015 IEEE 13th International Scientific Conference on Informatics , pp 73-78 doi:10.1109/Informatics.2015.7377811
PDF
2015
SpreadsheetDoc: An Excel Add-in for Documenting Spreadsheets.
Diogo Canteiro and Jácome Cunha.
Proceedings of the 6th National Symposium of Informatics (INForum'15)
2015
Embedding, Evolution, and Validation of Model-Driven Spreadsheets.
Jácome Cunha, João Paulo Fernandes, Jorge Mendes, and João Saraiva.
IEEE Trans. Software Eng. 41(3) , pp 241--263 doi:10.1109/TSE.2014.2361141
2015
Towards the Design and Implementation of Aspect-Oriented Programming for Spreadsheets.
Pedro Maia, Jorge Mendes, Jácome Cunha, Henrique Rebêlo, and João Saraiva.
Proceedings of the Second Workshop on Software Engineering Methods in Spreadsheets co-located with the 37th International Conference on Software Engineering (ICSE 2015) , Florence, Italy, May 18, 2015. (CEUR Workshop Proceedings) , pp 7--13
2015
Querying Spreadsheets: An Empirical Study.
Jácome Cunha, João Paulo Fernandes, Rui Pereira, and João Saraiva.
CoRR
2014
SSaaPP: SpreadSheets as a Programming Paradigm- Project's Final Report.
Rui Abreu, Tiago Alves, Orlando Belo, José C. Campos, Jácome Cunha, João Paulo Fernandes, Pedro Martins, Jorge Mendes, Hugo Pacheco, Christophe Peixoto, Rui Pereira, Alexandre Perez, Hugo Ribeiro, André Riboira, João Saraiva, André Silva, João Carlos Silva, and Joost Visser.
Technical Report TR-HASLab:02:2014, HASLab - High-Assurance Software Laboratory & Universidade do Minho
[abstract]
This technical report describes the research goals and results of the SpreadSheet as a Programming Paradigm research project. This was a project funded by Funda{\c c}ão para a Ciencia e Tecnologia - FCT: the Portuguese research foundation, under reference FCOMP-01-0124-FEDER-010048, that ran from May 2010 till July 2013. This report includes the complete document reporting the results achieved during the project execution, which was submitted to FCT for evaluation on October 2013. It describes the goals of the project, and the different research tasks presenting the deliver- ables of each of them. It also presents the management and result dissemination work performed during the project{\textquoteright}s execution. The document includes also a self assess- ment of the achieved results, and a complete list of scientific publications describing the contributions of the project. Finally, this document includes the FCT evaluation report.
2014
MDSheet - Model-Driven Spreadsheets.
Jácome Cunha, João Paulo Fernandes, Jorge Mendes, Rui Pereira, and João Saraiva.
Proceedings of the 1st Workshop on Software Engineering methods in Spreadsheets (SEMS'14) , pp 31-33
[abstract]
This paper showcases MDSheet, a framework aimed at improving the engineering of spreadsheets. This framework is model-driven, and has been fully integrated under a spreadsheet system. Also, its practical interest has been demonstrated by several empirical studies.
2014
Model-based programming environments for spreadsheets.
Jácome Cunha, Jorge Mendes, João Saraiva, and Joost Visser.
Sci. Comput. Program. , pp 254--275 doi:10.1016/j.scico.2014.02.002
2014
Graphical Querying of Model-Driven Spreadsheets.
Jácome Cunha, João Paulo Fernandes, Rui Pereira, and João Saraiva.
Human Interface and the Management of Information. Information and Knowledge Design and Evaluation - 16th International Conference, HCI International 2014, Heraklion, Crete, Greece, June 22-27, 2014. Proceedings, Part I (Lecture Notes in Computer Science) , pp 419--430 doi:10.1007/978-3-319-07731-4_42
2014
Smelling Faults in Spreadsheets.
Rui Abreu, Jácome Cunha, João Paulo Fernandes, Pedro Martins, Alexandre Perez, and João Saraiva.
30th IEEE International Conference on Software Maintenance and Evolution, Victoria, BC, Canada, September 29 - October 3, 2014 , pp 111--120 doi:10.1109/ICSME.2014.33
2014
FaultySheet Detective: When Smells Meet Fault Localization.
Rui Abreu, Jácome Cunha, João Paulo Fernandes, Pedro Martins, Alexandre Perez, and João Saraiva.
30th IEEE International Conference on Software Maintenance and Evolution, Victoria, BC, Canada, September 29 - October 3, 2014 , pp 625--628 doi:10.1109/ICSME.2014.111
2014
Refactoring Meets Model-Driven Spreadsheet Evolution.
Jácome Cunha, João Paulo Fernandes, Pedro Martins, Rui Pereira, and João Saraiva.
9th International Conference on the Quality of Information and Communications Technology, QUATIC 2014, Guimaraes, Portugal, September 23-26, 2014 , pp 196--201 doi:10.1109/QUATIC.2014.34
2014
Detecting Anomalous Energy Consumption in Android Applications.
Marco Couto, Tiago Carção, Jácome Cunha, João Paulo Fernandes, and João Saraiva.
Programming Languages - 18th Brazilian Symposium, SBLP 2014, Maceio, Brazil, October 2-3, 2014. Proceedings (Lecture Notes in Computer Science) , pp 77--91 doi:10.1007/978-3-319-11863-5_6
2014
Embedding model-driven spreadsheet queries in spreadsheet systems.
Jácome Cunha, João Paulo Fernandes, Jorge Mendes, Rui Pereira, and João Saraiva.
IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2014, Melbourne, VIC, Australia, July 28 - August 1, 2014 , pp 151--154 doi:10.1109/VLHCC.2014.6883039
2014
ES-SQL: Visually querying spreadsheets.
Jácome Cunha, João Paulo Fernandes, Jorge Mendes, Rui Pereira, and João Saraiva.
IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2014, Melbourne, VIC, Australia, July 28 - August 1, 2014 , pp 203--204 doi:10.1109/VLHCC.2014.6883056
2013
Spreadsheet Engineering.
Jácome Cunha, João Paulo Fernandes, Jorge Mendes, and João Saraiva.
Central European Functional Programming School - 5th Summer School, CEFP 2013, Cluj-Napoca, Romania, July 8-20, 2013, Revised Selected Papers (Lecture Notes in Computer Science) , pp 246--299 doi:10.1007/978-3-319-15940-9_6
2013
Design and Implementation of Queries for Model-Driven Spreadsheets.
Jácome Cunha, João Paulo Fernandes, Jorge Mendes, Rui Pereira, and João Saraiva.
Central European Functional Programming School - 5th Summer School, CEFP 2013, Cluj-Napoca, Romania, July 8-20, 2013, Revised Selected Papers (Lecture Notes in Computer Science) , pp 459--478 doi:10.1007/978-3-319-15940-9_13
2013
Complexity Metrics for ClassSheet Models.
Jácome Cunha, João Paulo Fernandes, Jorge Mendes, and João Saraiva.
Computational Science and Its Applications - ICCSA 2013 - 13th International Conference, Ho Chi Minh City, Vietnam, June 24-27, 2013, Proceedings, Part II (Lecture Notes in Computer Science) , pp 459--474 doi:10.1007/978-3-642-39643-4_33
2013
Querying model-driven spreadsheets.
Jácome Cunha, João Paulo Fernandes, Jorge Mendes, Rui Pereira, and João Saraiva.
2013 IEEE Symposium on Visual Languages and Human Centric Computing, San Jose, CA, USA, September 15-19, 2013 , pp 83--86 doi:10.1109/VLHCC.2013.6645247
2013
QuerySheet: A bidirectional query environment for model-driven spreadsheets.
Orlando Belo, Jácome Cunha, João Paulo Fernandes, Jorge Mendes, Rui Pereira, and João Saraiva.
2013 IEEE Symposium on Visual Languages and Human Centric Computing, San Jose, CA, USA, September 15-19, 2013 , pp 199--200 doi:10.1109/VLHCC.2013.6645267
2012
Model-based Spreadsheet Engineering: Using Relational Models to Improve Spreadsheets.
Jácome Cunha.
Book
[abstract]
Spreadsheets can be viewed as programming languages for non-professional programmers. These so-called ``end-user'' programmers vastly outnumber professional programmers creating millions of new spreadsheets every year. As a programming language, spreadsheets lack support for abstraction, testing, encapsulation, or structured programming. As a result, and as numerous studies have shown, the high rate of production is accompanied by an alarming high rate of errors. Some studies report that up to 90% of real-world spreadsheets contain errors. After their initial creation, many spreadsheets turn out to be used for storing and processing increasing amounts of data and supporting increasing numbers of users over long periods of time, making them complicated systems. An emerging solution to handle the complex and evolving software systems is Model-driven Engineering (MDE). To consider models as first class entities and any software artifact as a model or a model element is one of the basic principles of MDE. We adopted some techniques from MDE to solve spreadsheet problems. Most spreadsheets (if not all) lack a proper specification or a model. Using reverse engineering techniques we are able to derive various models from legacy spreadsheets. We use functional dependencies (a formalism that allow us to define how some column values depend on other column values) as building blocks for these models. Models can be used for several spreadsheet improvements, namely refactoring, safe evolution, migration or even generation of edit assistance. The techniques presented in this work are available under the framework HAEXCEL that we developed. It is composed of online and batch tools, reusable HASKELL libraries and OpenOffice.org extensions. A study with several end-users was organized to survey the impact of the techniques we designed. The results of this study indicate that the models can bring great benefits to spreadsheet engineering helping users to commit fewer errors and to work faster.
2012
Towards a Catalog of Spreadsheet Smells.
Jácome Cunha, João Paulo Fernandes, Hugo Ribeiro, and João Saraiva.
Computational Science and Its Applications - ICCSA 2012 - 12th International Conference, Salvador de Bahia, Brazil, June 18-21, 2012, Proceedings, Part IV (Lecture Notes in Computer Science) , pp 202--216 doi:10.1007/978-3-642-31128-4_15
2012
Bidirectional Transformation of Model-Driven Spreadsheets.
Jácome Cunha, João Paulo Fernandes, Jorge Mendes, Hugo Pacheco, and João Saraiva.
Theory and Practice of Model Transformations - 5th International Conference, ICMT 2012, Prague, Czech Republic, May 28-29, 2012. Proceedings (Lecture Notes in Computer Science) , pp 105--120 doi:10.1007/978-3-642-30476-7_7
2012
Towards an evaluation of bidirectional model-driven spreadsheets.
Jácome Cunha, João Paulo Fernandes, Jorge Mendes, and João Saraiva.
Proceedings of the First International Workshop on User Evaluation for Software Engineering Researchers, USER '12, Zurich, Switzerland, June 5, 2012 , pp 25--28 doi:10.1109/USER.2012.6226577
2012
MDSheet: A framework for model-driven spreadsheet engineering.
Jácome Cunha, João Paulo Fernandes, Jorge Mendes, and João Saraiva.
34th International Conference on Software Engineering, ICSE 2012, June 2-9, 2012, Zurich, Switzerland , pp 1395--1398 doi:10.1109/ICSE.2012.6227239
2012
A bidirectional model-driven spreadsheet environment.
Jácome Cunha, João Paulo Fernandes, Jorge Mendes, and João Saraiva.
34th International Conference on Software Engineering, ICSE 2012, June 2-9, 2012, Zurich, Switzerland , pp 1443--1444 doi:10.1109/ICSE.2012.6227073
2012
A Quality Model for Spreadsheets.
Jácome Cunha, João Paulo Fernandes, Christophe Peixoto, and João Saraiva.
8th International Conference on the Quality of Information and Communications Technology, QUATIC 2012, Lisbon, Portugal, 2-6 September 2012, Proceedings , pp 231--236 doi:10.1109/QUATIC.2012.16
2012
From relational ClassSheets to UML+OCL.
Jácome Cunha, João Paulo Fernandes, and João Saraiva.
Proceedings of the ACM Symposium on Applied Computing, SAC 2012, Riva, Trento, Italy, March 26-30, 2012 , pp 1151--1158 doi:10.1145/2245276.2231957
2012
Model-Based Programming Environments for Spreadsheets.
Jácome Cunha, João Saraiva, and Joost Visser.
Programming Languages - 16th Brazilian Symposium, SBLP 2012, Natal, Brazil, September 23-28, 2012. Proceedings (Lecture Notes in Computer Science) , pp 117--133 doi:10.1007/978-3-642-33182-4_10
2012
Extension and implementation of ClassSheet models.
Jácome Cunha, João Paulo Fernandes, Jorge Mendes, and João Saraiva.
2012 IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2012, Innsbruck, Austria, September 30 - October 4, 2012 , pp 19--22 doi:10.1109/VLHCC.2012.6344473
2012
SmellSheet detective: A tool for detecting bad smells in spreadsheets.
Jácome Cunha, João Paulo Fernandes, Pedro Martins, Jorge Mendes, and João Saraiva.
2012 IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2012, Innsbruck, Austria, September 30 - October 4, 2012 , pp 243--244 doi:10.1109/VLHCC.2012.6344535
2011
HaExcel: A Model-Based Spreadsheet Evolution System (Poster).
Jácome Cunha, João Paulo Fernandes, Jorge Mendes, and João Saraiva.
2011 IEEE Symposium on Visual Languages and Human-Centric Computing
2011
Model-Based Spreadsheet Engineering.
Jácome Cunha.
Ph.D. thesis, University of Minho
[abstract]
Spreadsheets can be viewed as programming languages for non-professional programmers. These so-called ``end-user'' programmers vastly outnumber professional programmers creating millions of new spreadsheets every year. As a programming language, spreadsheets lack support for abstraction, testing, encapsulation, or structured programming. As a result, and as numerous studies have shown, the high rate of production is accompanied by an alarming high rate of errors. Some studies report that up to 90% of real-world spreadsheets contain errors. After their initial creation, many spreadsheets turn out to be used for storing and processing increasing amounts of data and supporting increasing numbers of users over long periods of time, making them complicated systems. An emerging solution to handle the complex and evolving software systems is Model-driven Engineering (MDE). To consider models as first class entities and any software artifact as a model or a model element is one of the basic principles of MDE. We adopted some techniques from MDE to solve spreadsheet problems. Most spreadsheets (if not all) lack a proper specification or a model. Using reverse engineering techniques we are able to derive various models from legacy spreadsheets. We use functional dependencies (a formalism that allow us to define how some column values depend on other column values) as building blocks for these models. Models can be used for several spreadsheet improvements, namely refactoring, safe evolution, migration or even generation of edit assistance. The techniques presented in this work are available under the framework HAEXCEL that we developed. It is composed of online and batch tools, reusable HASKELL libraries and OpenOffice.org extensions. A study with several end-users was organized to survey the impact of the techniques we designed. The results of this study indicate that the models can bring great benefits to spreadsheet engineering helping users to commit less errors and to work faster.
2011
Type-Safe Evolution of Spreadsheets.
Jácome Cunha, Joost Visser, Tiago L. Alves, and João Saraiva.
Fundamental Approaches to Software Engineering - 14th International Conference, FASE 2011, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2011, Saarbrücken, Germany, March 26-April 3, 2011. Proceedings (Lecture Notes in Computer Science) , pp 186--201 doi:10.1007/978-3-642-19811-3_14
2011
End-Users Productivity in Model-Based Spreadsheets: An Empirical Study.
Laura Beckwith, Jácome Cunha, João Paulo Fernandes, and João Saraiva.
End-User Development - Third International Symposium, IS-EUD 2011, Torre Canne (BR), Italy, June 7-10, 2011. Proceedings (Lecture Notes in Computer Science) , pp 282--288 doi:10.1007/978-3-642-21530-8_27
2011
Embedding and evolution of spreadsheet models in spreadsheet systems.
Jácome Cunha, Jorge Mendes, João Saraiva, and João Paulo Fernandes.
2011 IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2011, Pittsburgh, PA, USA, September 18-22, 2011 , pp 179--186 doi:10.1109/VLHCC.2011.6070396
2011
An Empirical Study on End-users Productivity Using Model-based Spreadsheets.
Laura Beckwith, Jácome Cunha, João Paulo Fernandes, and João Saraiva.
CoRR
2010
Automatically Inferring ClassSheet Models from Spreadsheets.
Jácome Cunha, Martin Erwig, and João Saraiva.
IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2010, Leganés-Madrid, Spain, 21-25 September 2010, Proceedings , pp 93--100 doi:10.1109/VLHCC.2010.22
2009
From spreadsheets to relational databases and back.
Jácome Cunha, João Saraiva, and Joost Visser.
Proceedings of the 2009 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation, PEPM 2009, Savannah, GA, USA, January 19-20, 2009 , pp 179--188 doi:10.1145/1480945.1480972
2009
Discovery-based edit assistance for spreadsheets.
Jácome Cunha, João Saraiva, and Joost Visser.
IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2009, Corvallis, OR, USA, 20-24 September 2009, Proceedings , pp 233--237 doi:10.1109/VLHCC.2009.5295255
2007
A type-level approach to component prototyping.
Luís Soares Barbosa, Jácome Cunha, and Joost Visser.
Proceedings of the International Workshop on Synthesis and Analysis of Component Connectors: in conjunction with the 6th ESEC/FSE joint meeting, SYANCO 2007, Dubrovnik, Croatia, September 3-4, 2007 , pp 23--36 doi:10.1145/1294917.1294920