EDBT 2026 Demo / reviewers in the wild / expert
Mircea Lungu
dblp:81/188 · also Mircea Filip Lungu
· DBLP profile ↗
47ranked-venue papers
8as first author
11since 2021 · last 2024
0000-0003-3944-5261ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 43 · 7 first-author · 9 since 2021Human-computer interaction and ubiquitous computing · 10 · 2 first-author · 6 since 2021Databases, data management, data science and information retrieval · 1 · 1 first-author
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2024 | GitTruck@Duck - Interactive Time Range Selection in Hierarchy-Oriented Polymetric Visualization of Git Repository EvolutionabstractIn this work, we present GitTruck@Duck; a web-powered software visualization tool that combines hierarchical file structure with configurable software evolution and collab-oration metrics on adjustable time ranges. In an automated mining process, Git Truck aggregates a system's Git history using an in-memory relational database, along with an algorithm for detecting the renaming of files over time. Users can explore the Git history in a 2D hierarchical visualization of folders and files, where they encode evolution and collaboration metrics (e.g., top contributors or last change date) on the size and color of the marks that represent files. Users can gain fine-grain control over these metrics by specifying the time ranges for inspection. Adrian Hoff, Thomas Hoffmann Kilbak, Leonel Merino, Mircea Lungu |
ICSME | 4 |
| 2024 | Collaborative Software Exploration with Multimedia Note Taking in Virtual RealityabstractExploring and comprehending a software system, e.g., as preparation for its re-engineering, is a relevant, yet challenging endeavour often conducted by teams of engineers. Collaborative exploration tools aim to ease the process, e.g., via interactive visualizations in virtual reality (VR). However, these neglect to provide engineers with capabilities for persisting their thoughts and findings. Adrian Hoff, Mircea Lungu, Christoph Seidl 0001, Michele Lanza 0001 |
ICPC | 2 |
| 2024 | Immersive Software Archaeology: Collaborative Exploration and Note Taking in Virtual RealityabstractUnderstanding software systems is a vital task, often undertaken by teams of engineers, for the development and maintenance of systems. Collaborative software visualization tools are essential in this context, yet they are limited. Existing tools, particularly in virtual reality, allow exploration but lack the crucial feature of note-taking, which is a significant limitation. Adrian Hoff, Mircea Lungu, Christoph Seidl 0001, Michele Lanza 0001 |
ICPC | 2 |
| 2023 | Challenges and Opportunities of Using Redirection of Activity for Self-Regulation OnlineabstractThis paper explores redirection of activity as an intervention strategy for self-regulation online. We conducted an explorative study (N = 19) of the browser extension Aiki, which redirects a user from a self-defined ‘time-wasting’ website to an online platform for learning programming (Sololearn, Codecademy, or Udemy). Based on quantitative measures alone, using Aiki decreased the participants’ time spent on time-wasting websites on average, and increased programming knowledge. However, several users ended up avoiding their time-wasting websites entirely when Aiki was active, or they discontinued the use of the extension after ‘the novelty wore off’. Based on these effects, we qualitatively explored the user experiences and identified four challenges and four opportunities for using redirection of activity as an intervention strategy for self-regulation of time management in a browser. Our results suggest that this intervention strategy is promising, but careful design is necessary to strike an optimal balance between independence and regulation. Nanna Inie, Bjørn Hjorth Westh, John Henrik Muller, Mircea Lungu |
CHI | 4 |
| 2023 | Preparing Software Re-Engineering via Freehand Sketches in Virtual RealityabstractRe-architecting a software system requires significant preparation, e.g., to scope and design new modules with their boundaries and constituent classes. When planning an intended future state of a system as a re-engineering goal, engineers often fall recur to mechanisms such as freehand sketching (using a whiteboard). While this ensures flexibility and expressiveness, the sketches remain disconnected from the source code. The alternative, tool-supported diagramming on the other hand considerably restricts flexibility and impedes free-form communication.We present a method for preparing the architectural software re-engineering via freehand sketches in virtual reality (VR) that can be seamlessly integrated with the model structure of a software visualization and, thus, also the code of a system, for productive use: Engineers explore a subject system in the immersive visualization, while freehand sketching their insights and plans. Our concept automatically interprets sketched shapes and connects them to the system’s source code, and superimposes code-level references into a sketch to support engineers in reflecting on their sketches.We evaluated our method in an iterative interview-based case study with software developers from four different companies, where they planned a hypothetical re-engineering of an open-source software system. Adrian Hoff, Christoph Seidl 0001, Mircea Lungu, Michele Lanza 0001 |
ICSME | 3 |
| 2022 | Git-Truck: Hierarchy-Oriented Visualization of Git Repository EvolutionabstractThe assessment of repository evolution is particularly complex when one needs to analyze both 1) how the codebase is organized hierarchically and 2) how this codebase evolves over time. To address this problem, we developed Git Truck, a visualization tool that includes multiple views for the analysis of the evolution of hierarchically organized Git repositories. We conducted a preliminary user evaluation with 18 participants who, using a remote and asynchronous method, installed Git Truck, used it, and filled in a questionnaire to report their experience and impressions. We learned that participants consider particularly useful views that help them with understanding the contribution level of team members and views that highlight the parts of the system that change the most. The participants see Git Truck as a highly specialized tool; not for daily use but rather for a lower frequency of use. K. Højelse, Thomas Hoffmann Kilbak, J. Røssum, E. Jäpelt, Leonel Merino, Mircea Lungu |
VISSOFT | 6 |
| 2022 | Can Git Repository Visualization Support Educators in Assessing Group Projects?abstractIn the past years numerous software visualization tools have been introduced to support the analysis of software systems and their evolution as captured in the versioning systems. Usually the target audience of such tools comprises software engineering professionals. In this paper we argue that such tools are also beneficial for educators who need to evaluate the quality of software systems developed by students. However, since the needs of educators are different than those of the software engineering professionals, we discuss several educator needs first. We report several usage examples that we believe are useful for educators when using repository visualization tools. We illustrate them with examples from several student projects from different courses in two universities. We conclude with a series of considerations that should be heeded by both educators and future tool-builders. Mircea Lungu, Rolf-Helge Pfeiffer, Marco D'Ambros, Michele Lanza 0001, Jesper Findahl |
VISSOFT | 1 |
| 2021 | Aiki - Turning Online Procrastination into MicrolearningabstractThis paper presents and evaluates Aiki, a simple browser extension designed to redirect a user to a learning platform for a fixed amount of time before accessing websites defined as ’procrastination’ or ’time-wasting’ websites. The goal of the extension is to enable the user to exchange time spent on pages they believe contribute less to their own productivity for microlearning activities, defined as small or short-term learning activities. The paper describes the design and development of Aiki and evaluates the extension with a group of n = 10 participants studying the Danish language. Based on a two-week study, we conclude that this type of extension, even in its preliminary version, has the potential to improve language skills in a lightweight manner and that redirection is an important alternative to blocking for procrastination management. Nanna Inie, Mircea Lungu |
CHI | 2 |
| 2021 | Codoc: Code-driven Architectural View Specification Framework in PythonabstractArchitectural views are expensive to maintain. Software systems continuously evolve, making architectural views outdated. We present Codoc, a continuous architectural documentation system. Codoc empowers users to utilize a code-driven architectural view specification language to create views that are continuously updated and accessible. Through qualitative studies, we find code driven view specification as a promising candidate to replace manual architectural visualization in software documentation. Casper Weiss Bang, Mircea Lungu |
VISSOFT | 2 |
| 2021 | React-bratus: Visualising React Component HierarchiesabstractWe report on the development of react-bratus, a prototype providing developers with an interactive web-based component hierarchy visualization for React-based projects. We continuously evaluate react-bratus in multiple iterations with junior developers and find that component hierarchy visualizations are a promising tool for helping novice developers reverse engineer React-based applications. Stephan Boersma, Mircea Lungu |
VISSOFT | 2 |
| 2021 | Evolution of technical debt remediation in Python: A case study on the Apache Software EcosystemabstractAbstract In recent years, the evolution of software ecosystems and the detection of technical debt received significant attention by researchers from both industry and academia. While a few studies that analyze various aspects of technical debt evolution already exist, to the best of our knowledge, there is no large‐scale study that focuses on the remediation of technical debt over time in Python projects—that is, one of the most popular programming languages at the moment. In this paper, we analyze the evolution of technical debt in 44 Python open‐source software projects belonging to the Apache Software Foundation. We focus on the type and amount of technical debt that is paid back. The study required the mining of over 60K commits, detailed code analysis on 3.7K system versions, and the analysis of almost 43K fixed issues. The findings show that most of the repayment effort goes into testing, documentation, complexity, and duplication removal. Moreover, more than half of the Python technical debt is short term being repaid in less than 2 months. In particular, the observations that a minority of rules account for the majority of issues fixed and spent effort suggest that addressing those kinds of debt in the future is important for research and practice. Jie Tan 0002, Daniel Feitosa, Paris Avgeriou, Mircea Lungu |
J. Softw. Evol. Process. | 4 |
| 2020 | Unleashing the Potentials of Immersive Augmented Reality for Software EngineeringabstractIn immersive augmented reality (IAR), users can wear a head-mounted display to see computer-generated images superimposed to their view of the world. IAR was shown to be beneficial across several domains, e.g., automotive, medicine, gaming and engineering, with positive impacts on, e.g., collaboration and communication. We think that IAR bears a great potential for software engineering but, as of yet, this research area has been neglected. In this vision paper, we elicit potentials and obstacles for the use of IAR in software engineering. We identify possible areas that can be supported with IAR technology by relating commonly discussed IAR improvements to typical software engineering tasks. We further demonstrate how innovative use of IAR technology may fundamentally improve typical activities of a software engineer through a comprehensive series of usage scenarios outlining practical application. Finally, we reflect on current limitations of IAR technology based on our scenarios and sketch research activities necessary to make our vision a reality. We consider this paper to be relevant to academia and industry alike in guiding the steps to innovative research and applications for IAR in software engineering. Leonel Merino, Mircea Lungu, Christoph Seidl 0001 |
SANER | 2 |
| 2018 | As We May Study: Towards the Web as a Personalized Language TextbookabstractWe present a system designed to enable learners of a foreign language to read materials that are personally interesting to them from the web and practice vocabulary with interactive exercises based on their past readings. We report on the results of deploying the system for one month with three classes of Dutch highschool students learning French. The students and their teacher were positive about the system and in particular about the personalization aspects that the system enables. Mircea Lungu, Luc van den Brand, Dan Chirtoaca, Martin Avagyan |
CHI | 1 |
| 2018 | How do developers fix issues and pay back technical debt in the Apache ecosystem?abstractDuring software evolution technical debt (TD) follows a constant ebb and flow, being incurred and paid back, sometimes in the same day and sometimes ten years later. There have been several studies in the literature investigating how technical debt in source code accumulates during time and the consequences of this accumulation for software maintenance. However, to the best of our knowledge there are no large scale studies that focus on the types of issues that are fixed and the amount of TD that is paid back during software evolution. In this paper we present the results of a case study, in which we analyzed the evolution of fifty-seven Java open-source software projects by the Apache Software Foundation at the temporal granularity level of weekly snapshots. In particular, we focus on the amount of technical debt that is paid back and the types of issues that are fixed. The findings reveal that a small subset of all issue types is responsible for the largest percentage of TD repayment and thus, targeting particular violations the development team can achieve higher benefits. Georgios Digkas, Mircea Lungu, Paris Avgeriou, Alexander Chatzigeorgiou, Apostolos Ampatzoglou |
SANER | 2 |
| 2018 | Efficient parsing with parser combinators
Jan Kurs, Jan Vraný, Mohammad Ghafari, Mircea Lungu, Oscar Nierstrasz |
Sci. Comput. Program. | 4 |
| 2017 | The Evolution of Technical Debt in the Apache Ecosystem
Georgios Digkas, Mircea Lungu, Alexander Chatzigeorgiou, Paris Avgeriou |
ECSA | 2 |
| 2017 | A Low-Effort Analytics Platform for Visualizing Evolving Flask-Based Python Web ServicesabstractTens of thousands of web applications are written in Flask, a Python-based web framework. Despite a rich ecosystem of extensions, there is none that supports the developer in gaining insight into the evolving performance of their service. In this paper, we introduce Flask Dashboard, a library that addresses this problem. We present the ease with which the library can be integrated in an already existing web application, discuss some of the visualization perspectives that the library provides and point to some future challenges for similar libraries. Patrick Vogel, Thijs Klooster, Vasilios Andrikopoulos, Mircea Lungu |
VISSOFT | 4 |
| 2016 | Marea: A Semi-Automatic Decision Support System for Breaking Dependency CyclesabstractDependency cycles are commonly recognized as one of the most critical quality anti-patterns. Cycles compromise the modularity of a system, prevent proper reuse and increase the cost of maintenance and testing. Many tools are capable of detecting and visualizing package cycles existing within software projects. Unfortunately, detecting cycles is only half of the work. Once detected, cycles need to be removed and this typically results in a complex process that is only partially supported by current tools. We propose a tool that offers an intelligent guidance mechanism to support developers in removing package cycles. Our tool, Marea, simulates different refactoring strategies and suggests the most cost-effective sequence of refactoring operations that will break the cycle. The optimal refactoring strategy is determined based on a custom profit function. Our approach has been validated on multiple projects and executes in linear time. Andrea Caracciolo, Bledar Aga, Mircea Lungu, Oscar Nierstrasz |
SANER | 3 |
| 2016 | Tracking Null Checks in Open-Source Java SystemsabstractIt is widely acknowledged that null values should be avoided if possible or carefully used when necessary in Java code. The careless use of null has negative effects on maintainability, code readability, and software performance. However, a study on understanding null usage is still missing. In this paper we analyze null checks in 810 open-source Java systems and manually inspect 100 code samples to understand when and why developers use null. We find that 35% of all conditional statements contain null checks. A deeper investigation reveals many questionable practices with respect to using null. Uninitialized member variables, returning null in methods, and passing null as a method parameter are among the most recurrent reasons for introducing null checks. Developers often return null in methods to signal errors instead of throwing a proper exception. As a result, 71% of the values checked for null are returned from method calls. Our study provides a novel evidence of an overuse of null checks and of the null value itself in Java, and at the same time, reveals actionable recommendations to reduce this null usage. Haidar Osman, Manuel Leuenberger, Mircea Lungu, Oscar Nierstrasz |
SANER | 3 |
| 2016 | A Case Study on Type Hints in Method Argument Names in Pharo Smalltalk ProjectsabstractA common practice when writing Smalltalk source code is to name method arguments in a way that hints at their expected type (i.e., aString, anInteger, aDictionary). This practice makes code more readable, but the prevalence of this practice is unknown, thus its reliability is questionable. Tools such as the auto complete feature in the Pharo Smalltalk code editor rely on these hints to improve the developer experience. The default algorithm used in Pharo to extract type information from these hints succeeds in extracting a type in slightly over 36% of method arguments taken from 114 Pharo projects. In this paper we present the results of analyzing the failing method argument names, and provide several simple heuristics that can increase the rate of success to slightly over 50%. We also present a case study on the relation between type hints and run-time types of method arguments that shows that type hints, in a great majority of cases, reflect run-time types. Boris Spasojevic, Mircea Lungu, Oscar Nierstrasz |
SANER | 2 |
| 2015 | Polymorphism in the spotlight: studying its prevalence in Java and SmalltalkabstractSubtype polymorphism is a cornerstone of object-oriented programming. By hiding variability in behavior behind a uniform interface, polymorphism decouples clients from providers and thus enables genericity, modularity and extensibility. At the same time, however, it scatters the implementation of the behavior over multiple classes thus potentially hampering program comprehension. The extent to which polymorphism is used in real programs and the impact of polymorphism on program comprehension are not very well understood. We report on a preliminary study of the prevalence of polymorphism in several hundred open source software systems written in Smalltalk, one of the oldest object-oriented programming languages, and in Java, one of the most widespread ones. Although a large portion of the call sites in these systems are polymorphic, a majority have a small number of potential candidates. Smalltalk uses polymorphism to a much greater extent than Java. We discuss how these findings can be used as input for more detailed studies in program comprehension and for better developer support in the IDE. Nevena Milojkovic, Andrea Caracciolo, Mircea Lungu, Oscar Nierstrasz, David Röthlisberger, Romain Robbes |
ICPC | 3 |
| 2015 | Explora: A visualisation tool for metric analysis of software corporaabstractWhen analysing software metrics, users find that visualisation tools lack support for (1) the detection of patterns within metrics; and (2) enabling analysis of software corpora. In this paper we present Explora, a visualisation tool designed for the simultaneous analysis of multiple metrics of systems in software corpora. Explora incorporates a novel lightweight visualisation technique called PolyGrid that promotes the detection of graphical patterns. We present an example where we analyse the relation of subtype polymorphism with inheritance and invocation in corpora of Smalltalk and Java systems and find that (1) subtype polymorphism is more likely to be found in large hierarchies; (2) as class hierarchies grow horizontally, they also do so vertically; and (3) in polymorphic hierarchies the length of the name of the classes is orthogonal to the cardinality of the call sites. Leonel Merino, Mircea Lungu, Oscar Nierstrasz |
VISSOFT | 2 |
| 2015 | A Unified Approach to Architecture Conformance CheckingabstractSoftware erosion can be controlled by periodically checking for consistency between the de facto architecture and its theoretical counterpart. Studies show that this process is often not automated and that developers still rely heavily on manual reviews, despite the availability of a large number of tools. This is partially due to the high cost involved in setting up and maintaining tool-specific and incompatible test specifications that replicate otherwise documented invariants. To reduce this cost, our approach consists in unifying the functionality provided by existing tools under the umbrella of a common business-readable DSL. By using a declarative language, we are able to write tool-agnostic rules that are simple enough to be understood by untrained stakeholders and, at the same time, can be interpreted as a rigorous specification for checking architecture conformance. Andrea Caracciolo, Mircea Lungu, Oscar Nierstrasz |
WICSA | 2 |
| 2015 | Bounded seas
Jan Kurs, Mircea Lungu, Rathesan Iyadurai, Oscar Nierstrasz |
Comput. Lang. Syst. Struct. | 2 |
| 2014 | How Do Software Architects Specify and Validate Quality Requirements?
Andrea Caracciolo, Mircea Lungu, Oscar Nierstrasz |
ECSA | 2 |
| 2014 | Overthrowing the Tyranny of Alphabetical Ordering in Documentation SystemsabstractSoftware developers are often unsure of the exact name of the API method they need to use to invoke the desired behavior. Most state-of-the-art documentation browsers present API artefacts in alphabetical order. Albeit easy to implement, alphabetical order does not help much: if the developer knew the name of the required method, he could have just searched for it in the first place. In a context where multiple projects use the same API, and their source code is available, we can improve the API presentation by organizing the elements in the order in which they are more likely to be used by the developer. Usage frequency data for methods is gathered by analyzing other projects from the same ecosystem and this data is used then to improve tools. We present a preliminary study on the potential of this approach to improve the API presentation by reducing the time it takes to find the method that implements a given feature. We also briefly present our experience with two proof-of-concept tools implemented for Smalltalk and Java. Boris Spasojevic, Mircea Lungu, Oscar Nierstrasz |
ICSME | 2 |
| 2014 | Pangea: A Workbench for Statically Analyzing Multi-language Software CorporaabstractSoftware corpora facilitate reproducibility of analyses, however, static analysis for an entire corpus still requires considerable effort, often duplicated unnecessarily by multiple users. Moreover, most corpora are designed for single languages increasing the effort for cross-language analysis. To address these aspects we propose Pangea, an infrastructure allowing fast development of static analyses on multi-language corpora. Pangea uses language-independent meta-models stored as object model snapshots that can be directly loaded into memory and queryed without any parsing overhead. To reduce the effort of performing static analyses, Pangea provides out-of-the box support for: creating and refining analyses in a dedicated environment, deploying an analysis on an entire corpus, using a runner that supports parallel execution, and exporting results in various formats. In this tool demonstration we introduce Pangea and provide several usage scenarios that illustrate how it reduces the cost of analysis. Andrea Caracciolo, Andrei Chis, Boris Spasojevic, Mircea Lungu |
SCAM | 4 |
| 2014 | Bounded Seas - - Island Parsing Without Shipwrecks
Jan Kurs, Mircea Lungu, Oscar Nierstrasz |
SLE | 2 |
| 2014 | Evolutionary and collaborative software architecture recovery with Softwarenaut
Mircea Lungu, Michele Lanza 0001, Oscar Nierstrasz |
Sci. Comput. Program. | 1 |
| 2014 | Predicting dependences using domain-based couplingabstractSUMMARY Software dependences play a vital role in programme comprehension, change impact analysis and other software maintenance activities. Traditionally, these activities are supported by source code analysis; however, the source code is sometimes inaccessible or difficult to analyse, as in hybrid systems composed of source code in multiple languages using various paradigms (e.g. object‐oriented programming and relational databases). Moreover, not all stakeholders have adequate knowledge to perform such analyses. For example, non‐technical domain experts and consultants raise most maintenance requests; however, they cannot predict the cost and impact of the requested changes without the support of the developers. We propose a novel approach to predicting software dependences by exploiting the coupling present in domain‐level information. Our approach is independent of the software implementation; hence, it can be used to approximate architectural dependences without access to the source code or the database. As such, it can be applied to hybrid systems with heterogeneous source code or legacy systems with missing source code. In addition, this approach is based solely on information visible and understandable to domain users; therefore, it can be efficiently used by domain experts without the support of software developers. We evaluate our approach with a case study on a large‐scale enterprise system, in which we demonstrate how up to 65% of the source code dependences and 77% of the database dependences are predicted solely based on domain information. Copyright © 2013 John Wiley & Sons, Ltd. Amir Aryani, Fabrizio Perin, Mircea Lungu, Abdun Naser Mahmood, Oscar Nierstrasz |
J. Softw. Evol. Process. | 3 |
| 2013 | Answering software evolution questions: An empirical evaluation
Lile Hattori, Marco D'Ambros, Michele Lanza 0001, Mircea Lungu |
Inf. Softw. Technol. | 4 |
| 2012 | On how often code is cloned across repositoriesabstractDetecting code duplication in large code bases, or even across project boundaries, is problematic due to the massive amount of data involved. Large-scale clone detection also opens new challenges beyond asking for the provenance of a single clone fragment, such as assessing the prevalence of code clones on the entire code base, and their evolution. We propose a set of lightweight techniques that may scale up to very large amounts of source code in the presence of multiple versions. The common idea behind these techniques is to use bad hashing to get a quick answer. We report on a case study, the Squeaksource ecosystem, which features thousands of software projects, with more than 40 million versions of methods, across more than seven years of evolution. We provide estimates for the prevalence of type-1, type-2, and type-3 clones in Squeaksource. Niko Schwarz, Mircea Lungu, Romain Robbes |
ICSE | 2 |
| 2012 | Agile software assessment (Invited paper)abstractInformed decision making is a critical activity in software development, but it is poorly supported by common development environments, which focus mainly on low-level programming tasks. We posit the need for agile software assessment, which aims to support decision making by enabling rapid and effective construction of software models and custom analyses. Agile software assessment entails gathering and exploiting the broader context of software information related to the system at hand as well as the ecosystem of related projects, and beyond to include “big software data”. Finally, informed decision making entails continuous assessment by monitoring the evolving system and its architecture. We identify several key research challenges in supporting agile software assessment by focusing on customization, context and continuous assessment. Oscar Nierstrasz, Mircea Lungu |
ICPC | 2 |
| 2012 | How do developers react to API deprecation?: the case of a smalltalk ecosystemabstractWhen the Application Programming Interface (API) of a framework or library changes, its clients must be adapted. This change propagation---known as a ripple effect---is a problem that has garnered interest: several approaches have been proposed in the literature to react to these changes. Romain Robbes, Mircea Lungu, David Röthlisberger |
SIGSOFT FSE | 2 |
| 2011 | Erase and rewind - Learning by replaying examplesabstractSummary form only given. My group at Microsoft Research creates software development tools through user-centered design. This method creates a virtuous cycle: we study developers and their teams, which in turn inspires the tools we design, which we then evaluate with those developers and teams, seeking to improve the nature of their work. In this talk, we'll discuss some of the biggest problem areas we have observed, including information seeking, multitasking and disorientation, and look at some of the prototypes we have built in response. Code Canvas provides a zoomable map of a software project, allowing the programmer to zoom out to see structure and visualizations and zoom in to edit code. Debugger Canvas (a joint project with Brown University) provides a spatial representation of a programmer's task, like a debugging session, as it unfolds. Finally, Code Space uses a combination of touch screens, Kinects and mobile devices to allow fluid sharing of digital objects at development team meetings. Lile Hattori, Alberto Bacchelli, Michele Lanza 0001, Mircea Lungu |
CSEE&T | 4 |
| 2011 | A study of ripple effects in software ecosystemsabstractWhen the Application Programming Interface (API) of a framework or library changes, its clients must be adapted. This change propagation - known as a ripple effect - is a problem that has garnered interest: several approaches have been proposed in the literature to react to these changes. Romain Robbes, Mircea Lungu |
ICSE | 2 |
| 2011 | Software Evolution Comprehension: Replay to the RescueabstractDevelopers often need to find answers to questions regarding the evolution of a system when working on its code base. While their information needs require data analysis spanning over different repository types, the source code repository has a pivotal role for program comprehension tasks. However, the coarse-grained nature of the data stored by commit-based software configuration management systems often makes it challenging for a developer to search for an answer. We present Replay, an Eclipse plug-in that allows one to explore the change history of a system by capturing the changes at a finer granularity level than commits, and by replaying the past changes chronologically inside the integrated development environment with the source code at hand. We conducted a controlled experiment to empirically assess whether Replay outperforms a baseline (SVN client in Eclipse) on helping developers to answer common questions related to software evolution. The experiment shows that Replay leads to a decrease in completion time with respect to a set of software evolution comprehension tasks. Lile Hattori, Marco D'Ambros, Michele Lanza 0001, Mircea Lungu |
ICPC | 4 |
| 2011 | Flexible object layouts: enabling lightweight language extensions by intercepting slot accessabstractProgramming idioms, design patterns and application libraries often introduce cumbersome and repetitive boilerplate code to a software system. Language extensions and external DSLs (domain specific languages) are sometimes introduced to reduce the need for boilerplate code, but they also complicate the system by introducing the need for language dialects and inter-language mediation. To address this, we propose to extend the structural reflective model of the language with object layouts, layout scopes and slots. Based on the new reflective language model we can 1) provide behavioral hooks to object layouts that are triggered when the fields of an object are accessed and 2) simplify the implementation of state-related language extensions such as stateful traits. By doing this we show how many idiomatic use cases that normally require boilerplate code can be more effectively supported. Toon Verwaest, Camillo Bruni, Mircea Lungu, Oscar Nierstrasz |
OOPSLA | 3 |
| 2011 | On porting software visualization tools to the web
Marco D'Ambros, Michele Lanza 0001, Mircea Lungu, Romain Robbes |
Int. J. Softw. Tools Technol. Transf. | 3 |
| 2010 | The small project observatory: a tool for reverse engineering software ecosystemsabstractSoftware evolution researchers have focused mostly on analyzing single software systems. However, often projects are developed and co-exist within software ecosystems, i.e., the larger contexts of companies, research groups or open-source communities. We present The Small Project Observatory, a web-based analysis platform for ecosystem reverse engineering through interactive visualization and exploration. Mircea Lungu, Michele Lanza 0001 |
ICSE (2) | 1 |
| 2010 | Recovering inter-project dependencies in software ecosystemsabstractIn large software systems, knowing the dependencies between modules or components is critical to assess the impact of changes. To recover the dependencies, fact extractors analyze the system as a whole and build the dependency graph, parsing the system down to the statement level. At the level of software ecosystems, which are collections of software projects, the dependencies that need to be recovered reside not only within the individual systems, but also between the libraries, frameworks, and entire software systems that make up the complete ecosystem; scaling issues arise. In this paper we present and evaluate several variants of a lightweight and scalable approach to recover dependencies between the software projects of an ecosystem. We evaluate our recovery algorithms on the Squeak 3.10 Universe, an ecosystem containing more than 200 software projects. Categories and Subject Descriptors D.2.8 [Software Engineering]: Metrics—complexity measures, performance measures Mircea Lungu, Romain Robbes, Michele Lanza 0001 |
ASE | 1 |
| 2010 | The Small Project Observatory: Visualizing software ecosystems
Mircea Lungu, Michele Lanza 0001, Tudor Gîrba, Romain Robbes |
Sci. Comput. Program. | 1 |
| 2009 | Visualizing Gnome with the Small Project ObservatoryabstractWe analyzed the gnome family of systems with the small project observatory, our online ecosystem visualization platform. We begin by briefly introducing the model of SPO. We then observe and discuss several phases in the activity of the gnome ecosystem. We follow and look at how the contributors are distributed between writing source code and doing other activities such as internationalization. We end with a visual overview of the activity of more than 900 contributors in the 10 years of existence of gnome. Mircea Lungu, Jacopo Malnati, Michele Lanza 0001 |
MSR | 1 |
| 2009 | Visualizing Co-Change Information with the Evolution RadarabstractSoftware evolution analysis provides a valuable source of information that can be used both to understand a system's design and predict its future development. While for many program comprehension purposes, it is sufficient to model a single version of a system, there are types of information that can only be recovered when the history of a system is taken into account. Logical coupling, the implicit dependency between software artifacts that have been changed together, is an example of such information. Previous research has dealt with low-level couplings between files, leading to an explosion of the data to be analyzed, or has abstracted the logical couplings to the level of modules, leading to a loss of detailed information. In this paper, we present a visualization-based approach that integrates logical coupling information at different levels of abstraction. This facilitates an in-depth analysis of the logical couplings, and at the same time, leads to a characterization of a system's modules in terms of their logical coupling. The presented approach supports the retrospective analysis of a software system and maintenance activities such as restructuring and redocumentation. We illustrate retrospective analysis on two large open-source software systems. Marco D'Ambros, Michele Lanza 0001, Mircea Lungu |
IEEE Trans. Software Eng. | 3 |
| 2008 | A teamwork-based approach to programming fundamentals with scheme, smalltalk & javaabstractIn October 2004 the University of Lugano in southern Switzerland established a new faculty of informatics. Its founding principles are innovation in teaching and faculty participation in the research community. With respect to teaching, students spend mornings attending lectures and afternoons in an Atelier designed to support interaction both among students and with the instructors. In teaching the first year "Programming Fundamentals" courses, we took advantage of the clean slate nature of the faculty to introduce innovative teaching elements. The novel aspects include our use of Scheme, Smalltalk, and Java, our combination of individual, pair and group projects and the integration of expert lectures to introduce useful, but slightly orthogonal elements at key points in the semester. Our very positive experience is reported along with a discussion of aspects to improve in the future. Michele Lanza 0001, Amy L. Murphy, Romain Robbes, Mircea Lungu, Paolo Bonzini |
ICSE | 4 |
| 2008 | Towards reverse engineering software ecosystemsabstractReverse engineering is the process of recovering a projectpsilas components and the relationships between them with the goal of creating representations of the project at a higher level of abstraction. When dealing with the large amounts of information that are analyzed during reverse engineering visualization and exploratory navigation are important tools. However, a software system does not exist by itself. Instead, a project is part of a larger software ecosystem of projects that is developed in the context of an organization, a research group of an open-source community. In our work, we argue that reverse engineering an ecosystem is a natural and complementary extension to the traditional single system reverse engineering. We propose a methodology based on visualization, top-down exploration, architecture recovery and software evolution analysis for the reverse engineering software ecosystems. Our methodology starts with visualizing high-level structural and evolutionary aspects of the ecosystem from which the reverse engineer can navigate to views which present architectural aspects of the individual projects. To support our approach we implemented tool support for analyzing the ecosystem level as well as the intra-project level. Mircea Lungu |
ICSM | 1 |
| 2007 | An Approach to Software Evolution Based on Semantic Change
Romain Robbes, Michele Lanza 0001, Mircea Lungu |
FASE | 3 |