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
Sobre
Download foto HD

Sobre

João Saraiva é Professor Auxiliar no Departmento de Informática da Universidade do Minho em Braga, Portugal, e um investigador no  HASLab/INESC TEC. Ele obteve o grau de Mestre pela University do Minho em 1993 e o Doutoramento em Ciências da Computação pela Universidade de Utreque, Holanda em 1999. As suas maiores contribuições científicas são nas áreas de linguagens de programação, análise e transformação de programas  e na programação funcional.  Ele foi supervisor de 4 projetos de  PostDoc (financiados pela FCT), 8 projetos de doutoramento (5 concluidos e 3 em execução)  e mais de 30  teses de Mestrado  (Pos-Bologna). Ele publicou mais de 80  atigos científicos (scopus)  em conferências e revistas. Ele foi membro de mais de 60 comites de programa de eventos internacionais e ainda na avaliação de projetos de 5 agências científicas:  ANII (Uruguai), FRS-FNRS (Belgica), NWO (Holanda), FWF (Austria), e FCT (Portugal).

Ele tem experiências na participação e coordenação de projetos de investigação nas suas área de investigação, quer a nível nacional  (projectos financiados pela FCT: PURe, IVY, AMADEUS, CROSS, SSaaPP, AutoSeer, FATBIT, and GreenSwLab), quer a nível internacional com projetos financiados pela  EPSRC (UK), FLAD/NSF (USA) a pela União Europeia.

João Saraiva é um dos fundadores da pretigiada escola  verão  GTTSE - Grand Timely Topics in Software Engineering (inicialmente designada Generative and Transformational Techniques in Software Engineering), que co-organizou em  2005, 2007, 2009, 2011, and 2015 (volumes 4143, 5235, 6491, and 7680 of LNCS - Tutorial by Springer-Verlag) em  Braga. Ele foi o organizador principal  ETAPS'07, The European Joint Conferences on Theory and Practice of Software, em Braga em 2007,  e um membro do seu comité científico (2007-2012).

Tópicos
de interesse
Detalhes

Detalhes

  • Nome

    João Alexandre Saraiva
  • Cluster

    Informática
  • Cargo

    Investigador Sénior
  • Desde

    01 novembro 2011
001
Publicações

2021

Ranking programming languages by energy efficiency

Autores
Pereira, R; Couto, M; Ribeiro, F; Rua, R; Cunha, J; Fernandes, JP; Saraiva, J;

Publicação
Science of Computer Programming

Abstract
This paper compares a large set of programming languages regarding their efficiency, including from an energetic point-of-view. Indeed, we seek to establish and analyze different rankings for programming languages based on their energy efficiency. The goal of being able to rank programming languages based on their energy efficiency is both recent, and certainly deserves further studies. We have taken rigorous and strict solutions to 10 well defined programming problems, expressed in (up to) 27 programming languages, from the well known Computer Language Benchmark Game repository. This repository aims to compare programming languages based on a strict set of implementation rules and configurations for each benchmarking problem. We have also built a framework to automatically, and systematically, run, measure and compare the energy, time, and memory efficiency of such solutions. Ultimately, it is based on such comparisons that we propose a series of efficiency rankings, based on single and multiple criteria. Our results show interesting findings, such as how slower/faster languages can consume less/more energy, and how memory usage influences energy consumption. We also present a simple way to use our results to provide software engineers and practitioners support in deciding which language to use when energy efficiency is a concern. In addition, we further validate our results and rankings against implementations from a chrestomathy program repository, Rosetta Code., by reproducing our methodology and benchmarking system. This allows us to understand how the results and conclusions from our rigorously and well defined benchmarked programs compare to those based on more representative and real-world implementations. Indeed our results show that the rankings do not change apart from one programming language. © 2021 Elsevier B.V.

2021

Bringing Green Software to Computer Science Curriculum: Perspectives from Researchers and Educators

Autores
Saraiva, J; Zong, Z; Pereira, R;

Publicação
ITiCSE 2021: 26th ACM Conference on Innovation and Technology in Computer Science Education, Virtual Event, Germany, June 26 - July 1, 2021.

Abstract

2021

Identification of microservices from monolithic applications through topic modelling

Autores
Brito, M; Cunha, J; Saraiva, J;

Publicação
SAC '21: The 36th ACM/SIGAPP Symposium on Applied Computing, Virtual Event, Republic of Korea, March 22-26, 2021

Abstract
Microservices emerged as one of the most popular architectural patterns in the recent years given the increased need to scale, grow and flexibilize software projects accompanied by the growth in cloud computing and DevOps. Many software applications are being submitted to a process of migration from its monolithic architecture to a more modular, scalable and flexible architecture of microservices. This process is slow and, depending on the project's complexity, it may take months or even years to complete. This paper proposes a new approach on microservice identification by resorting to topic modelling in order to identify services according to domain terms. This approach in combination with clustering techniques produces a set of services based on the original software. The proposed methodology is implemented as an open-source tool for exploration of monolithic architectures and identification of microservices. A quantitative analysis using the state of the art metrics on independence of functionality and modularity of services was conducted on 200 open-source projects collected from GitHub. Cohesion at message and domain level metrics' showed medians of roughly 0.6. Interfaces per service exhibited a median of 1.5 with a compact interquartile range. Structural and conceptual modularity revealed medians of 0.2 and 0.4 respectively. Our first results are positive demonstrating beneficial identification of services due to overall metrics' results. © 2021 ACM.

2021

Statically analyzing the energy efficiency of software product lines

Autores
Couto, M; Fernandes, JP; Saraiva, J;

Publicação
Journal of Low Power Electronics and Applications

Abstract
Optimizing software to become (more) energy efficient is an important concern for the software industry. Although several techniques have been proposed to measure energy consumption within software engineering, little work has specifically addressed Software Product Lines (SPLs). SPLs are a widely used software development approach, where the core concept is to study the systematic development of products that can be deployed in a variable way, e.g., to include different features for different clients. The traditional approach for measuring energy consumption in SPLs is to generate and individually measure all products, which, given their large number, is impractical. We present a technique, implemented in a tool, to statically estimate the worst-case energy consumption for SPLs. The goal is to reason about energy consumption in all products of a SPL, without having to individually analyze each product. Our technique combines static analysis and worst-case prediction with energy consumption analysis, in order to analyze products in a feature-sensitive manner: a feature that is used in several products is analyzed only once, while the energy consumption is estimated once per product. This paper describes not only our previous work on worst-case prediction, for comprehensibility, but also a significant extension of such work. This extension has been realized in two different axis: firstly, we incorporated in our methodology a simulated annealing algorithm to improve our worst-case energy consumption estimation. Secondly, we evaluated our new approach in four real-world SPLs, containing a total of 99 software products. Our new results show that our technique is able to estimate the worst-case energy consumption with a mean error percentage of 17.3% and standard deviation of 11.2%. © 2021 by the authors. Licensee MDPI, Basel, Switzerland.

2020

SPELLing out energy leaks: Aiding developers locate energy inefficient code

Autores
Pereira, R; Carcao, T; Couto, M; Cunha, J; Fernandes, JP; Saraiva, J;

Publicação
Journal of Systems and Software

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. © 2019 Elsevier Inc.

Teses
supervisionadas

2020

Energy-aware Software Product Lines

Autor
Marco Rafael Linhares Couto

Instituição
UM

2020

Green Software in the Large: Energy-driven Techniques, Tools and Repositories

Autor
Rui António Ramada Rua

Instituição
UP-FCUP

2020

Explaining Software Faults in Source Code

Autor
Francisco José Torres Ribeiro

Instituição
UP-FCUP

2020

Energy Debt - Applying Technical Debt to Energy Consumption

Autor
Daniel Fernandes Veiga Maia

Instituição
UM

2020

Automatic generation of program executions

Autor
José Nuno Castro de Macedo

Instituição
UP-FCUP