Marco Couto
University of Minho
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Marco Couto.
International Journal on Software Tools for Technology Transfer | 2007
Ricardo J. Machado; Kristian Bisgaard Lassen; Sérgio Manuel Costa Oliveira; Marco Couto; Patrícia R. Pinto
Requirements validation is a critical task in any engineering project. The confrontation of stakeholders with static requirements models is not enough, since stakeholders with non-computer science education are not able to discover all the inter-dependencies between the elicited requirements. Even with simple unified modelling language (UML) requirements models, it is not easy for the development team to get confidence on the stakeholders’ requirements validation. This paper describes an approach, based on the construction of executable interactive prototypes, to support the validation of workflow requirements, where the system to be built must explicitly support the interaction between people within a pervasive cooperative workflow execution. A case study from a real project is used to illustrate the proposed approach.
SBLP - | 2014
Marco Couto; Tiago Carção; Jácome Miguel Costa Cunha; João Paulo Fernandes; João Saraiva
The use of powerful mobile devices, like smartphones, tablets and laptops, is changing the way programmers develop software. While in the past the primary goal to optimize software was the run time optimization, nowadays there is a growing awareness of the need to reduce energy consumption.
arXiv: Software Engineering | 2016
Rui Pereira; Marco Couto; Jácome Miguel Costa Cunha; João Paulo Fernandes; João Saraiva
This paper presents a detailed study of the energy consumptionof the different Java Collection Framework (JFC) implementations.For each method of an implementation inthis framework, we present its energy consumption whenhandling different amounts of data. Knowing the greenestmethods for each implementation, we present an energy optimizationapproach for Java programs: based on calls toJFC methods in the source code of a program, we selectthe greenest implementation. Finally, we present preliminaryresults of optimizing a set of Java programs where weobtained 6.2% energy savings.
software language engineering | 2017
Rui Pereira; Marco Couto; Francisco Ribeiro; Rui Rua; Jácome Miguel Costa Cunha; João Paulo Fernandes; João Saraiva
This paper presents a study of the runtime, memory usage and energy consumption of twenty seven well-known software languages. We monitor the performance of such languages using ten different programming problems, expressed in each of the languages. Our results show interesting findings, such as, slower/faster languages consuming less/more energy, and how memory usage influences energy consumption. Finally, we show how to use our results to provide software engineers support to decide which language to use when energy efficiency is a concern.
international conference on software engineering | 2017
Rui Pereira; Tiago Carção; Marco Couto; Jácome Miguel Costa Cunha; João Paulo Fernandes; João Saraiva
This paper briefly 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-basedfault localization, is introduced to relate energy consumption to the systems source code. The result of our technique is an energy ranking of source code fragments pointing developers to possible energy leaks in their code.
software product lines | 2017
Marco Couto; Paulo Borba; Jácome Miguel Costa Cunha; João Paulo Fernandes; Rui Pereira; João Saraiva
The optimization of software to be (more) energy efficient is becoming a major concern for the software industry. Although several techniques have been presented to measure energy consumption for software, none has addressed software product lines (SPLs). Thus, to measure energy consumption of a SPL, the products must be generated and measured individually, which is too costly. In this paper, we present a technique and a prototype tool to statically estimate the worst case energy consumption for SPL. The goal is to provide developers with techniques and tools to reason about the energy consumption of all products in a SPL, without having to produce, run and measure the energy in all of them. Our technique combines static program analysis techniques and worst case execution time prediction with energy consumption analysis. This technique analyzes all products in a feature-sensitive manner, that is, a feature used in several products is analyzed only once, while the energy consumption is estimated once per product. We implemented our technique in a tool called Serapis. We did a preliminary evaluation using a product line for image processing implemented in C. Our experiments considered 7 products from such line and our initial results show that the tool was able to estimate the worst-case energy consumption with a mean error percentage of 9.4% and standard deviation of 6.2% when compared with the energy measured when running the products.
Proceedings of the 21st Brazilian Symposium on Programming Languages | 2017
Marco Couto; Rui Pereira; Francisco Ribeiro; R Rua; João Saraiva
While in the past the primary goal to optimize software was the run time optimization, nowadays there is a growing awareness of the need to reduce energy consumption. Additionally, a growing number of developers wish to become more energy-aware when programming and feel a lack of tools and the knowledge to do so. In this paper we define a ranking of energy efficiency in programming languages. We consider a set of computing problems implemented in ten well-known programming languages, and monitored the energy consumed when executing each language. Our preliminary results show that although the fastest languages tend to be the lowest consuming ones, there are other interesting cases where slower languages are more energy efficient than faster ones.
international conference on computational science and its applications | 2016
Nuno Santos; João M. Fernandes; M. Sameiro Carvalho; Pedro Silva; Fábio Fernandes; Márcio P. Rebelo; Diogo Barbosa; Paulo Maia; Marco Couto; Ricardo J. Machado
Conducting research and development (R&D) software projects, in an environment where both industry and university collaborate, is challenging due to many factors. In fact, industrial companies and universities have generally different interests and objectives whenever they collaborate. For this reason, it is not easy to manage and negotiate the industrial companies’ interests, namely schedules and their expectations. Conducting such projects in an agile framework is expected to decrease these risks, since partners have the opportunity to frequently interact with the development team in short iterations and are constantly aware of the characteristics of the system under development. However, in this type of collaborative R&D projects, it is often advantageous to include some waterfall practices, like upfront requirements modeling using UML models, which are not commonly used in agile processes like Scrum, in order to better prepare the implementation phase of the project. This paper presents some lessons learned that result from experience of the authors in adopting some Scrum practices in a R&D project, like short iterations, backlogs, and product increments, and simultaneously using UML models, namely use cases and components.
Acta Electrotechnica et Informatica | 2018
João Saraiva; HASLab; Marco Couto; Csaba Szabó; Dávid Novák
This paper studies how the use of different coding practices when developing Android applications influence energy consumption. We consider two common Java/Android programming practices, namely string operations and (non) cached image loading, and we show the energy profile of different coding practices for doing them. With string operations, we compare the performance of the usage of the standard String class to the usage of the StringBuilder class, while with our second practice we evaluate the benefits of image caching with asynchronous loading. We externally measure energy consumption of the example applications using the Trepn profiler application by Qualcomm. Our preliminary results show that selected coding practices do significantly affect energy consumption, in the particular cases of our practice selection, this difference varies between 20% and
portuguese conference on artificial intelligence | 2015
João Pedro Teixeira; Marco Couto
Text Mining has opened a vast array of possibilities concerning automatic information retrieval from large amounts of text documents. A variety of themes and types of documents can be easily analyzed. More complex features such as those used in Forensic Linguistics can gather deeper understanding from the documents, making possible performing difficult tasks such as author identification. In this work we explore the capabilities of simpler Text Mining approaches to author identification of unstructured documents, in particular the ability to distinguish poetic works from two of Fernando Pessoas’ heteronyms: Alvaro de Campos and Ricardo Reis. Several processing options were tested and accuracies of 97% were reached, which encourage further developments.