4.1 Article

The Small Project Observatory: Visualizing software ecosystems

Journal

SCIENCE OF COMPUTER PROGRAMMING
Volume 75, Issue 4, Pages 264-275

Publisher

ELSEVIER
DOI: 10.1016/j.scico.2009.09.004

Keywords

Software evolution; Software visualization; Software ecosystems; Reverse engineering; Maintenance

Ask authors/readers for more resources

Software evolution research has focused mostly on analyzing the evolution of single software systems. However, it is rarely the case that a project exists as standalone, independent of others. Rather, projects exist in parallel within larger contexts in companies, research groups or even the open-source communities. We call these contexts software ecosystems. In this paper, we present the Small Project Observatory, a prototype tool which aims to support the analysis of software ecosystems through interactive visualization and exploration. We present a case study of exploring an ecosystem using our tool, we describe the architecture of the tool, and we distill lessons learned during the tool-building experience. (C) 2009 Elsevier B.V. All rights reserved.

Authors

I am an author on this paper
Click your name to claim this paper and add it to your profile.

Reviews

Primary Rating

4.1
Not enough ratings

Secondary Ratings

Novelty
-
Significance
-
Scientific rigor
-
Rate this paper

Recommended

Article Computer Science, Software Engineering

Quick remedy commits and their impact on mining software repositories

Fengcai Wen, Csaba Nagy, Michele Lanza, Gabriele Bavota

Summary: Most changes during software maintenance are not atomic and developers may omit needed changes, leading to technical debt or bugs. A study on quick remedy commits found that developers tend to quickly fix issues introduced by omitted changes in previous commits. These quick remedy commits are important for improving code quality and must be considered in mining software repositories for accurate findings.

EMPIRICAL SOFTWARE ENGINEERING (2022)

Article Computer Science, Software Engineering

How Software Refactoring Impacts Execution Time

Luca Traini, Daniele Di Pompeo, Michele Tucci, Bin Lin, Simone Scalabrino, Gabriele Bavota, Michele Lanza, Rocco Oliveto, Vittorio Cortellessa

Summary: This study fills the gap in understanding the impact of refactoring operations on software performance. Through a large-scale analysis, it is found that refactoring operations can significantly affect code execution time, with types aimed at decomposing complex code entities more likely to cause performance degradation, suggesting cautious consideration when refactoring performance-critical code.

ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY (2022)

Review Computer Science, Software Engineering

Opinion Mining for Software Development: A Systematic Literature Review

Bin Lin, Nathan Cassee, Alexander Serebrenik, Gabriele Bavota, Nicole Novielli, Michele Lanza

Summary: Opinion mining, also known as sentiment analysis, has gained attention in software engineering research for identifying developer emotions and extracting user criticisms in mobile apps. Through a systematic literature review of 185 papers, we provide well-defined categories of opinion mining-related software development activities, available opinion mining approaches, datasets for evaluation and tool customization, and concerns or limitations for researchers to consider when applying or customizing opinion mining techniques. Our study serves as a reference for selecting suitable opinion mining tools and provides critical insights for the further development of this technique in software engineering.

ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY (2022)

Article Computer Science, Information Systems

CodeCity: A comparison of on-screen and virtual reality

David Moreno-Lumbreras, Roberto Minelli, Andrea Villaverde, Jesus M. Gonzalez-Barahona, Michele Lanza

Summary: This comparative study aimed to investigate the suitability of virtual reality (VR) for visualizing CodeCity compared to the traditional on-screen implementation. The results showed that participants using the VR version completed the tasks much faster, while maintaining a comparable level of correctness.

INFORMATION AND SOFTWARE TECHNOLOGY (2023)

Article Computer Science, Software Engineering

A comprehensive evaluation of SZZ Variants through a developer-informed oracle

Giovanni Rosa, Luca Pascarella, Simone Scalabrino, Rosalia Tufano, Gabriele Bavota, Michele Lanza, Rocco Oliveto

Summary: Automatically linking bug-fixing changes to bug-inducing ones is a crucial step in empirical studies in software engineering. The standard method, SZZ algorithm, has been improved over time, but evaluating its performance is challenging. Previous works manually assessed the correctness of SZZ-identified bug-inducing changes or created oracles with manual determination. We propose a methodology to define a developer-informed oracle for evaluating SZZ implementations without manual inspection from the original developers. Natural Language Processing (NLP) is used to identify bug-fixing commits referencing the introduced bug. The methodology is applied to evaluate existing SZZ variants and introduce two new variants to address weaknesses in state-of-the-art implementations.

JOURNAL OF SYSTEMS AND SOFTWARE (2023)

Proceedings Paper Computer Science, Software Engineering

SYN: Ultra-Scale Software Evolution Comprehension

Gianlorenzo Occhipinti, Csaba Nagy, Roberto Minelli, Michele Lanza

Summary: The comprehension of large-scale software system evolution poses challenges due to the vast amount of time-based data and its complex nature. SYN is a web-based tool that utilizes versatile visualization and data processing techniques to create scalable depictions of ultra-scale software system evolution. SYN has been successfully applied to several systems on GitHub, including the 20-year history of Linux operating system with millions of commits on evolving files.

2023 IEEE/ACM 31ST INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION, ICPC (2023)

Proceedings Paper Computer Science, Software Engineering

Conversation Disentanglement As-a-Service

Edoardo Riggio, Marco Raglianti, Michele Lanza

Summary: Modern instant messaging applications provide users with real-time communication means, which are valuable for program comprehension in collaborative development. However, the interleaving of messages makes it difficult to analyze datasets, calling for better practices and tool support. CODI is a RESTful API micro-service and web interface that offers an easy way to disentangle conversation transcripts and achieve state-of-the-art performances. It can significantly improve research reusability while reducing efforts and potential mistakes. Rating: 9/10

2023 IEEE/ACM 31ST INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION, ICPC (2023)

Proceedings Paper Computer Science, Software Engineering

Uniquifying Architecture Visualization through Variable 3D Model Generation

Adrian Hoff, Christoph Seidl, Michele Lanza

Summary: Software visualization is helpful for exploring large code bases, but repetitive patterns in software structure make it difficult to distinguish different subsystems and recognize previously visited parts. By using variability-modeling techniques and custom-tailored 3D models to make visualizations of subsystems unique, this problem can be effectively addressed.

17TH INTERNATIONAL WORKING CONFERENCE ON VARIABILITY MODELLING OF SOFTWARE-INTENSIVE SYSTEMS, VAMOS 2023 (2023)

Proceedings Paper Computer Science, Software Engineering

AIP: Scalable and Reproducible Execution Traces in Energy Studies on Mobile Devices

Olivier Nourry, Yutaro Kashiwa, Bin Lin, Gabriele Bavota, Michele Lanza, Yasutaka Kamei

Summary: Energy consumption in mobile applications is an important area of software engineering studies. Several software-based energy calculation tools can provide estimates of energy consumed by mobile applications and enable large-scale studies. However, the use of randomly generated events in existing tools undermines the reproducibility and generalizability of the research.

2022 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2022) (2022)

Proceedings Paper Computer Science, Software Engineering

DiscOrDance: Visualizing Software Developers Communities on Discord

Marco Raglianti, Csaba Nagy, Roberto Minelli, Michele Lanza

Summary: New communication platforms have been developed to assist developers in finding and creating the knowledge they need for program comprehension, maintenance, and evolution. However, there is a lack of visual and interactive tools to explore these platforms.

2022 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2022) (2022)

Proceedings Paper Computer Science, Software Engineering

Can Git Repository Visualization Support Educators in Assessing Group Projects?

Mircea Lungu, Rolf-Helge Pfeiffer, Marco D'Ambros, Michele Lanza, Jesper Findahl

Summary: In recent years, numerous software visualization tools have been introduced to support the analysis of software systems and their evolution as captured in the versioning systems. This paper argues that these tools are beneficial for educators who need to evaluate the quality of software systems developed by students. Several educator needs are discussed, along with usage examples from student projects. Considerations for both educators and future tool-builders are also provided.

2022 WORKING CONFERENCE ON SOFTWARE VISUALIZATION (IEEE VISSOFT) (2022)

Proceedings Paper Computer Science, Software Engineering

A New Generation of CLASS BLUEPRINT

Nour Jihene Agouf, Stephane Ducasse, Anne Etien, Michele Lanza

Summary: This article introduces the concept and importance of classes in object-oriented programming and discusses the limitations of using the CLASS BLUEPRINT visualization tool. The authors propose a new version, BLUEPRINTV2, which enhances the visualization by identifying dead code, methods under test, and calling relationships between classes and instance-level methods. The first validation with 26 developers and 18 projects shows that BLUEPRINTV2 is effective in supporting program comprehension.

2022 WORKING CONFERENCE ON SOFTWARE VISUALIZATION (IEEE VISSOFT) (2022)

Proceedings Paper Computer Science, Software Engineering

M3triCity: Visualizing Evolving Software & Data Cities

Susanna Ardigo, Csaba Nagy, Roberto Minelli, Michele Lanza

Summary: This article explores the use of a city metaphor to visualize software systems in 3D. It introduces an interactive web application called M3TRICITY that allows visualization of object-oriented software systems, their evolution, and data access. The application can be useful for program comprehension and analysis of data-intensive software systems.

2022 ACM/IEEE 44TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS (ICSE-COMPANION 2022) (2022)

Proceedings Paper Computer Science, Software Engineering

Terminals All the Way Down

Michael MacInnis, Olga Baysal, Michele Lanza

Summary: The terminal has remained a relevant and efficient interface for programming activities, from its humble beginnings as a teletypewriter to the present-day windowed terminal emulators. In contrast to feature-rich IDEs, we propose using interconnected windowed terminal emulators as the foundation for a new type of distributed and language-agnostic development environment.

2022 ACM/IEEE 44TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: NEW IDEAS AND EMERGING RESULTS (ICSE-NIER 2022) (2022)

Proceedings Paper Computer Science, Software Engineering

Using Discord Conversations as Program Comprehension Aid

Marco Raglianti, Csaba Nagy, Roberto Minelli, Michele Lanza

Summary: Modern communication platforms like Discord are essential tools for conversations among developers and users in software development. However, the sheer volume, velocity, and small granularity of single messages make it difficult to find useful results. Extracting and analyzing these conversations can aid in program comprehension.

30TH IEEE/ACM INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION (ICPC 2022) (2022)

Article Computer Science, Software Engineering

A formal approach for the correct deployment of cloud applications

Amel Mammar, Meriem Belguidoum, Saddam Hocine Hiba

Summary: This paper introduces a formal EVENT-B-based approach for modeling and verifying the deployment of component-based applications. By gradually refining an abstract model, a precise specification is built, and mathematical reasoning is used to prove its correctness. The presented approach validates the deployment in a cloud environment using PROB and ensures the construction of a correct system that meets the constraints.

SCIENCE OF COMPUTER PROGRAMMING (2024)

Article Computer Science, Software Engineering

Enhancing test reuse with GUI events deduplication and adaptive semantic matching

Shuqi Liu, Yu Zhou, Longbing Ji, Tingting Han, Taolue Chen

Summary: In this paper, we propose a framework that combines GUI events deduplication with an adaptive semantic matching strategy to enhance the usability of reused tests. Experimental evaluation demonstrates that the framework improves widget mapping performance, significantly reduces event redundancy, and reduces the manual effort of creating tests for similar applications.

SCIENCE OF COMPUTER PROGRAMMING (2024)

Article Computer Science, Software Engineering

A method of test case set generation in the commutativity test of reduce functions

Xiangyu Mu, Lei Liu, Peng Zhang, Jingyao Li, Hui Li

Summary: The aim of this study is to reduce the size of the test case set required to detect the commutativity problem of the reduce function. By determining the pattern of the function and selecting corresponding test cases, the proposed test case generation strategy can achieve the same accuracy with a smaller test case set. It has been shown to be effective and has a high recall rate.

SCIENCE OF COMPUTER PROGRAMMING (2024)

Article Computer Science, Software Engineering

An industrial experience report on model-based, AI-enabled proposal development for an RFP/RFI

Padmalata Nistala, Asha Rajbhoj, Vinay Kulkarni, Sapphire Noronha, Ankit Joshi

Summary: This paper presents an automated proposal development approach using a combination of model-based and AI-enabled techniques, and discusses the successful deployment and user feedback of the system.

SCIENCE OF COMPUTER PROGRAMMING (2024)

Article Computer Science, Software Engineering

Translation certification for smart contracts

Jacco O. G. Krijnen, Manuel M. T. Chakravarty, Gabriele Keller, Wouter Swierstra

Summary: Compiler correctness is a long-standing problem, and it becomes more significant with the rise of smart contracts on blockchains. A translation certification framework can address the trust issue for low-level code on the blockchain, allowing users to have confidence in the compilation process of smart contracts.

SCIENCE OF COMPUTER PROGRAMMING (2024)

Article Computer Science, Software Engineering

OnTrack: Reflecting on domain specific formal methods for railway designs

Phillip James, Faron Moller, Filippos Pantekis

Summary: OnTrack is a tool that supports railway verification workflows using model driven engineering frameworks, allowing railway engineers to interact with verification procedures through encapsulating formal methods.

SCIENCE OF COMPUTER PROGRAMMING (2024)

Article Computer Science, Software Engineering

Generating C: Heterogeneous metaprogramming system description

Oleg Kiselyov

Summary: Heterogeneous metaprogramming systems leverage higher-level host languages to generate lower-level object language code, enabling faster production of high-performant code with correctness guarantees. This paper presents two systems with OCaml as the host language and C as the object language, discussing their implementation and applications.

SCIENCE OF COMPUTER PROGRAMMING (2024)

Article Computer Science, Software Engineering

Reasoning about logical systems in the Coq proof assistant

Conor Reynolds, Rosemary Monahan

Summary: This paper provides a detailed approach to formalize a fragment of the theory of institutions in the Coq proof assistant. The approach is illustrated and evaluated by instantiating the framework with specific institution examples.

SCIENCE OF COMPUTER PROGRAMMING (2024)

Article Computer Science, Software Engineering

Stochastic formal model of PI3K/mTOR pathway in Alzheimer's disease for drug repurposing: An evaluation of rapamycin, LY294002, and NVP-BEZ235

Herbert Rausch Fernandes, Giovanni Freitas Gomes, Antonio Carlos Pinheiro de Oliveira, Sergio Vale Aguiar Campos

Summary: Alzheimer's disease is a common form of dementia with no effective drug treatment available. In this study, a statistical model checking approach was used to analyze protein and drug interactions and evaluate the effects of different drugs on the components contributing to Alzheimer's disease. The results showed that rapamycin could slow down the biological process causing neuronal death, while LY294002 and NVP-BEZ235 may increase tau phosphorylation. These findings provide important insights for the scientific community and raise awareness about potential side effects of PI3K inhibitor drugs.

SCIENCE OF COMPUTER PROGRAMMING (2024)

Article Computer Science, Software Engineering

Denotational and operational semantics for interaction languages: Application to trace analysis

Erwan Mahe, Christophe Gaston, Pascale Le Gall

Summary: This paper presents an Interaction Language to encode Sequence Diagrams (SD) and associates it with three different formal semantics. This allows for direct formal verification of SD, while preserving traceability of SD concepts and executed actions, and addressing the translation of problematic operators.

SCIENCE OF COMPUTER PROGRAMMING (2024)

Article Computer Science, Software Engineering

DescribeML: A dataset description tool for machine learning

Joan Giner-Miguelez, Abel Gomez, Jordi Cabot

Summary: Datasets are crucial for training and evaluating machine learning models, but they can also lead to undesirable behaviors like biased predictions. To tackle this issue, the machine learning community suggests adopting consistent guidelines for dataset descriptions. However, these guidelines rely on natural language descriptions, which hinder automated computation and analysis. To overcome this, we present DescribeML, a language engineering tool that provides precise, structured descriptions of machine learning datasets, including their composition, provenance, and social concerns.

SCIENCE OF COMPUTER PROGRAMMING (2024)

Article Computer Science, Software Engineering

An iterative approach for model-based requirements engineering in large collaborative projects: A detailed experience report

Andrey Sadovykh, Bilal Said, Dragos Truscan, Hugo Bruneliere

Summary: In this paper, the authors report on their 7 years of practical experience with an iterative Model-based Requirements Engineering (MBRE) approach and language in five large European collaborative projects. They demonstrate through significant data sets that this model-based approach provides interesting benefits in terms of scalability, heterogeneity, adaptability, traceability, automation, consistency and quality, and usefulness or usability. Concrete examples from these projects are provided to illustrate the application of the MBRE approach and language, and the authors discuss the general benefits and limitations of using such an approach, as well as the lessons learned over the years.

SCIENCE OF COMPUTER PROGRAMMING (2024)

Article Computer Science, Software Engineering

Exploring complex models with picto web

Alfa Yohannis, Dimitris Kolovos, Antonio Garcia-Dominguez

Summary: Picto Web is a multi-tenant web-based tool that allows exploration of complex models by transforming them into various transient web-based views using rule-based transformations. It uses a lazy view computation approach to efficiently support large models and complex transformations, and includes monitoring and push notification facilities for automatic recomputation of views and updated delivery to clients.

SCIENCE OF COMPUTER PROGRAMMING (2024)

Article Computer Science, Software Engineering

GaMoVR: Gamification-based UML learning environment in virtual reality

Enes Yigitbas, Maximilian Schmidt, Antonio Bucchiarone, Sebastian Gottschalk, Gregor Engels

Summary: UML has become a popular modeling language used in computer science courses, and various interactive learning applications have been developed to improve student engagement and learning outcomes. However, these applications have not successfully created immersive environments for students. Therefore, this study introduces GaMoVR, a VR-based and gamified learning environment, which provides an interactive and fun learning experience for students learning about UML modeling.

SCIENCE OF COMPUTER PROGRAMMING (2024)

Article Computer Science, Software Engineering

How accessibility affects other quality attributes of software? A case study of GitHub

Yaxin Zhao, Lina Gong, Wenhua Yang, Yu Zhou

Summary: Accessible design aims to enable as many people as possible to access software products and services. This study investigates the interaction between accessibility issues and other factors affecting software performance. By analyzing a large number of accessibility issues, the study reveals the characteristics of these issues and their relationship with software quality attributes.

SCIENCE OF COMPUTER PROGRAMMING (2024)