23 research outputs found

    PROCESSOS, MÉTODOS E PRÁTICAS DE ENGENHARIA DE SOFTWARE EM PROJETOS SOFTWARE LIVRE: UM ESTUDO DE CASO OWNCLOUD E NEXTCLOUD

    Get PDF
    Software Engineering practices aim to improve the softwares quality, which includes Open Source Software (OSS). This work aims to identify software engineering practices in the OSS projects OwnCloud e Nextcloud. We perform a scientific literature review, using digital databases such as the Google Scholar and CAPES Periodic Portal, and also search using the gray literature. We conclude that good practices of software engineering are applied into both cloud storage projects OwnCloud and Nextcloud. However, we found that the major focus is still on coding, and therefore, other development processes, such as documentation, effective control of change management and quality management processes, should receive more emphasis.As práticas da Engenharia de Software (ES) têm por fundamento tentar melhorar a qualidade dos softwares, nos quais se incluem os Open Source Software (OSS). O objetivo deste trabalho é identificar as práticas da ES implementadas nos projetos OSS OwnCloud e Nextcloud. Para tanto, realizou-se uma revisão da literatura científica, a partir de diferentes bases de dados digitais, bem como foi considerada a literatura cinza. Foi concludo que os projetos de armazenamento em nuvem OwnCloud e Nextcloud adotam boas práticas de engenharia de software. Porém, foi constatado que, o maior foco é ainda na codificação, e que, portanto, os demais processos do desenvolvimento, como as documentações, controle efetivo do gerenciamento das mudanças e processos de gestão da qualidade, devem receber mais ênfas

    PROCESSOS, MÉTODOS E PRÁTICAS DE ENGENHARIA DE SOFTWARE EM PROJETOS SOFTWARE LIVRE: UM ESTUDO DE CASO OWNCLOUD E NEXTCLOUD

    Get PDF
    Software Engineering practices aim to improve the softwares quality, which includes Open Source Software (OSS). This work aims to identify software engineering practices in the OSS projects OwnCloud e Nextcloud. We perform a scientific literature review, using digital databases such as the Google Scholar and CAPES Periodic Portal, and also search using the gray literature. We conclude that good practices of software engineering are applied into both cloud storage projects OwnCloud and Nextcloud. However, we found that the major focus is still on coding, and therefore, other development processes, such as documentation, effective control of change management and quality management processes, should receive more emphasis.As práticas da Engenharia de Software (ES) têm por fundamento tentar melhorar a qualidade dos softwares, nos quais se incluem os Open Source Software (OSS). O objetivo deste trabalho é identificar as práticas da ES implementadas nos projetos OSS OwnCloud e Nextcloud. Para tanto, realizou-se uma revisão da literatura científica, a partir de diferentes bases de dados digitais, bem como foi considerada a literatura cinza. Foi concludo que os projetos de armazenamento em nuvem OwnCloud e Nextcloud adotam boas práticas de engenharia de software. Porém, foi constatado que, o maior foco é ainda na codificação, e que, portanto, os demais processos do desenvolvimento, como as documentações, controle efetivo do gerenciamento das mudanças e processos de gestão da qualidade, devem receber mais ênfas

    CodeTF: One-stop Transformer Library for State-of-the-art Code LLM

    Full text link
    Code intelligence plays a key role in transforming modern software engineering. Recently, deep learning-based models, especially Transformer-based large language models (LLMs), have demonstrated remarkable potential in tackling these tasks by leveraging massive open-source code data and programming language features. However, the development and deployment of such models often require expertise in both machine learning and software engineering, creating a barrier for the model adoption. In this paper, we present CodeTF, an open-source Transformer-based library for state-of-the-art Code LLMs and code intelligence. Following the principles of modular design and extensible framework, we design CodeTF with a unified interface to enable rapid access and development across different types of models, datasets and tasks. Our library supports a collection of pretrained Code LLM models and popular code benchmarks, including a standardized interface to train and serve code LLMs efficiently, and data features such as language-specific parsers and utility functions for extracting code attributes. In this paper, we describe the design principles, the architecture, key modules and components, and compare with other related library tools. Finally, we hope CodeTF is able to bridge the gap between machine learning/generative AI and software engineering, providing a comprehensive open-source solution for developers, researchers, and practitioners.Comment: Ongoing work - Draft Previe

    Understanding Solidity Event Logging Practices in the Wild

    Full text link
    Writing logging messages is a well-established conventional programming practice, and it is of vital importance for a wide variety of software development activities. The logging mechanism in Solidity programming is enabled by the high-level event feature, but up to now there lacks study for understanding Solidity event logging practices in the wild. To fill this gap, we in this paper provide the first quantitative characteristic study of the current Solidity event logging practices using 2,915 popular Solidity projects hosted on GitHub. The study methodically explores the pervasiveness of event logging, the goodness of current event logging practices, and in particular the reasons for event logging code evolution, and delivers 8 original and important findings. The findings notably include the existence of a large percentage of independent event logging code modifications, and the underlying reasons for different categories of independent event logging code modifications are diverse (for instance, bug fixing and gas saving). We additionally give the implications of our findings, and these implications can enlighten developers, researchers, tool builders, and language designers to improve the event logging practices. To illustrate the potential benefits of our study, we develop a proof-of-concept checker on top of one of our findings and the checker effectively detects problematic event logging code that consumes extra gas in 35 popular GitHub projects and 9 project owners have already confirmed the detected issues.Comment: Accepted by 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE'23

    Go Static: Contextualized Logging Statement Generation

    Full text link
    Logging practices have been extensively investigated to assist developers in writing appropriate logging statements for documenting software behaviors. Although numerous automatic logging approaches have been proposed, their performance remains unsatisfactory due to the constraint of the single-method input, without informative programming context outside the method. Specifically, we identify three inherent limitations with single-method context: limited static scope of logging statements, inconsistent logging styles, and missing type information of logging variables. To tackle these limitations, we propose SCLogger, the first contextualized logging statement generation approach with inter-method static contexts. First, SCLogger extracts inter-method contexts with static analysis to construct the contextualized prompt for language models to generate a tentative logging statement. The contextualized prompt consists of an extended static scope and sampled similar methods, ordered by the chain-of-thought (COT) strategy. Second, SCLogger refines the access of logging variables by formulating a new refinement prompt for language models, which incorporates detailed type information of variables in the tentative logging statement. The evaluation results show that SCLogger surpasses the state-of-the-art approach by 8.7% in logging position accuracy, 32.1% in level accuracy, 19.6% in variable precision, and 138.4% in text BLEU-4 score. Furthermore, SCLogger consistently boosts the performance of logging statement generation across a range of large language models, thereby showcasing the generalizability of this approach.Comment: This paper was accepted by The ACM International Conference on the Foundations of Software Engineering (FSE 2024

    Characterizing and Detecting Duplicate Logging Code Smells

    Get PDF
    Developers rely on software logs for a wide variety of tasks, such as debugging, testing, program comprehension, verification, and performance analysis. Despite the importance of logs, prior studies show that there is no industrial standard on how to write logging statements. Recent research on logs often only considers the appropriateness of a log as an individual item (e.g., one single logging statement); while logs are typically analyzed in tandem. In this thesis, we focus on studying duplicate logging statements, which are logging statements that have the same static text message. Such duplications in the text message are potential indications of logging code smells, which may affect developers’ understanding of the dynamic view of the system. We manually studied over 3K duplicate logging statements and their surrounding code in four large-scale open source systems: Hadoop, CloudStack, ElasticSearch, and Cassandra. We uncovered five patterns of duplicate logging code smells. For each instance of the code smell, we further manually identify the problematic (i.e., require fixes) and justifiable (i.e., do not require fixes) cases. Then, we contact developers in order to verify our manual study result. We integrated our manual study result and developers’ feedback into our automated static analysis tool, DLFinder, which automatically detects problematic duplicate logging code smells. We evaluated DLFinder on the four manually studied systems and four additional systems: Kafka, Flink, Camel and Wicket. In total, combining the results of DLFinder and our manual analysis, we reported 91 problematic code smell instances to developers and all of them have been fixed. This thesis provides an initial step on creating a logging guideline for developers to improve the quality of logging code. DLFinder is also able to detect duplicate logging code smells with high precision and recall

    Quality Properties of Execution Tracing, an Empirical Study

    Get PDF
    The authors are grateful to all the professionals who participated in the focus groups; moreover, they also express special thanks to the management of the companies involved for making the organisation of the focus groups possible.Data are made available in the appendix including the results of the data coding process.The quality of execution tracing impacts the time to a great extent to locate errors in software components; moreover, execution tracing is the most suitable tool, in the majority of the cases, for doing postmortem analysis of failures in the field. Nevertheless, software product quality models do not adequately consider execution tracing quality at present neither do they define the quality properties of this important entity in an acceptable manner. Defining these quality properties would be the first step towards creating a quality model for execution tracing. The current research fills this gap by identifying and defining the variables, i.e., the quality properties, on the basis of which the quality of execution tracing can be judged. The present study analyses the experiences of software professionals in focus groups at multinational companies, and also scrutinises the literature to elicit the mentioned quality properties. Moreover, the present study also contributes to knowledge with the combination of methods while computing the saturation point for determining the number of the necessary focus groups. Furthermore, to pay special attention to validity, in addition to the the indicators of qualitative research: credibility, transferability, dependability, and confirmability, the authors also considered content, construct, internal and external validity
    corecore