Alison Fernandez - Academia.edu (original) (raw)

Uploads

Papers by Alison Fernandez

Research paper thumbnail of A domain-specific language to visualize software evolution

Information & Software Technology, Jun 1, 2018

Context: Accurately relating code authorship to commit frequency over multiple software revisions... more Context: Accurately relating code authorship to commit frequency over multiple software revisions is a complex task. Most of the navigation tools found in common source code versioning clients are often too rigid to formulate specific queries and adequately present results of such queries. Questions related to evolution asked by software engineers are therefore challenging at answering using common Git clients. Objective: This paper explores the use of stacked adjacency matrices and a domain specific language to produce tailored interactive visualizations for software evolution exploration. We are able to support some classical software evolution tasks using short and concise scripts using our language. Method: We propose a domain-specific language to stack adjacency matrices and produce scalable and interactive visualizations. Our language and visualizations are evaluated using two independent controlled experiments and closely observing participants. Results: We made the following findings: (i) participants are able to express sophisticated queries using our domain-specific language and visualizations, (ii) participants perform better than GitHub's visualizations to answer a set of questions. Conclusion: Our visual and scripting environment performs better than GitHub's visualizations at extracting software evolution information.

Research paper thumbnail of Visualizing Memory Consumption with Vismep

2022 Working Conference on Software Visualization (VISSOFT)

Research paper thumbnail of Software Visualizations to Analyze Memory Consumption: A Literature Review

ACM Computing Surveys

Understanding and optimizing memory usage of software applications is a difficult task, usually i... more Understanding and optimizing memory usage of software applications is a difficult task, usually involving the analysis of large amounts of memory-related complex data. Over the years, numerous software visualizations have been proposed to help developers analyze the memory usage information of their programs. This article reports a systematic literature review of published works centered on software visualizations for analyzing the memory consumption of programs. We have systematically selected 46 articles and categorized them based on the tasks supported, data collected, visualization techniques, evaluations conducted, and prototype availability. As a result, we introduce a taxonomy based on these five dimensions to identify the main challenges of visualizing memory consumption and opportunities for improvement. Despite the effort to evaluate visualizations, we also find that most articles lack evidence regarding how these visualizations perform in practice. We also highlight that ...

Research paper thumbnail of Analyzing dynamic information with spy and roassal: an experience report

2015 IEEE 1st International Workshop on Software Analytics (SWAN), 2015

Dynamic analyses tools are seldom crafted by practitioners. This paper discusses the benefits of ... more Dynamic analyses tools are seldom crafted by practitioners. This paper discusses the benefits of supporting the practitioners to build their ad-hoc tool and presents our experience to lower the barrier to gather dynamic information. The experience we present is driven by the combination of the Spy profiling framework and the Roassal visualization engine, two frameworks used in industry and academia. We conclude with two question to discuss at the workshop.

Research paper thumbnail of A domain-specific language to visualize software evolution

Information and Software Technology

Context: Accurately relating code authorship to commit frequency over multiple software revisions... more Context: Accurately relating code authorship to commit frequency over multiple software revisions is a complex task. Most of the navigation tools found in common source code versioning clients are often too rigid to formulate specific queries and adequately present results of such queries. Questions related to evolution asked by software engineers are therefore challenging at answering using common Git clients. Objective: This paper explores the use of stacked adjacency matrices and a domain specific language to produce tailored interactive visualizations for software evolution exploration. We are able to support some classical software evolution tasks using short and concise scripts using our language. Method: We propose a domain-specific language to stack adjacency matrices and produce scalable and interactive visualizations. Our language and visualizations are evaluated using two independent controlled experiments and closely observing participants. Results: We made the following findings: (i) participants are able to express sophisticated queries using our domain-specific language and visualizations, (ii) participants perform better than GitHub's visualizations to answer a set of questions. Conclusion: Our visual and scripting environment performs better than GitHub's visualizations at extracting software evolution information.

Research paper thumbnail of Deviation Testing: A Test Case Generation Technique for GraphQL APIs

GraphQL is a flexible and expressive query language. With the objective to replace the flawed and... more GraphQL is a flexible and expressive query language. With the objective to replace the flawed and inefficient REST architectural style, GraphQL has been adopted by numerous online APIs and services. Despite its popularity, testing the implementation of a GraphQL schema is a crucial and still an open problem. We found that classical techniques of test generation may be efficiently applied to GraphQL server. We propose a simple but expressive technique called deviation testing that automatically searches for anomalies in the way a schema is served. We demonstrate the feasibility of our approach using an implementation of GraphQL for Pharo and VisualWorks. Running our technique on the popular Yelp and Apollo GraphQL server uncovered several anomalies in the way the schema is served. [Copyright notice will appear here once ’preprint’ option is removed.]

Research paper thumbnail of Effective Visualization of Object Allocation Sites

2018 IEEE Working Conference on Software Visualization (VISSOFT), 2018

Profiling the memory consumption of a software execution is usually carried out by characterizing... more Profiling the memory consumption of a software execution is usually carried out by characterizing calling-context trees. However, the plurality nature of this data-structure makes it difficult to adequately and efficiently exploit in practice. As a consequence, most of anomalies in memory footprints are addressed either manually or in an ad-hoc way. We propose an interactive visualization of the execution context related to object productions. Our visualization augments the traditional calling-context tree with visual cues to characterize object allocation sites.We performed a qualitative study involving eight software engineers conducting a software execution memory assessment. As a result, we found that participants find our visualization as beneficial to characterizing a memory consumption and to reducing the overall memory footprint.

Research paper thumbnail of A domain-specific language to visualize software evolution

Information & Software Technology, Jun 1, 2018

Context: Accurately relating code authorship to commit frequency over multiple software revisions... more Context: Accurately relating code authorship to commit frequency over multiple software revisions is a complex task. Most of the navigation tools found in common source code versioning clients are often too rigid to formulate specific queries and adequately present results of such queries. Questions related to evolution asked by software engineers are therefore challenging at answering using common Git clients. Objective: This paper explores the use of stacked adjacency matrices and a domain specific language to produce tailored interactive visualizations for software evolution exploration. We are able to support some classical software evolution tasks using short and concise scripts using our language. Method: We propose a domain-specific language to stack adjacency matrices and produce scalable and interactive visualizations. Our language and visualizations are evaluated using two independent controlled experiments and closely observing participants. Results: We made the following findings: (i) participants are able to express sophisticated queries using our domain-specific language and visualizations, (ii) participants perform better than GitHub's visualizations to answer a set of questions. Conclusion: Our visual and scripting environment performs better than GitHub's visualizations at extracting software evolution information.

Research paper thumbnail of Visualizing Memory Consumption with Vismep

2022 Working Conference on Software Visualization (VISSOFT)

Research paper thumbnail of Software Visualizations to Analyze Memory Consumption: A Literature Review

ACM Computing Surveys

Understanding and optimizing memory usage of software applications is a difficult task, usually i... more Understanding and optimizing memory usage of software applications is a difficult task, usually involving the analysis of large amounts of memory-related complex data. Over the years, numerous software visualizations have been proposed to help developers analyze the memory usage information of their programs. This article reports a systematic literature review of published works centered on software visualizations for analyzing the memory consumption of programs. We have systematically selected 46 articles and categorized them based on the tasks supported, data collected, visualization techniques, evaluations conducted, and prototype availability. As a result, we introduce a taxonomy based on these five dimensions to identify the main challenges of visualizing memory consumption and opportunities for improvement. Despite the effort to evaluate visualizations, we also find that most articles lack evidence regarding how these visualizations perform in practice. We also highlight that ...

Research paper thumbnail of Analyzing dynamic information with spy and roassal: an experience report

2015 IEEE 1st International Workshop on Software Analytics (SWAN), 2015

Dynamic analyses tools are seldom crafted by practitioners. This paper discusses the benefits of ... more Dynamic analyses tools are seldom crafted by practitioners. This paper discusses the benefits of supporting the practitioners to build their ad-hoc tool and presents our experience to lower the barrier to gather dynamic information. The experience we present is driven by the combination of the Spy profiling framework and the Roassal visualization engine, two frameworks used in industry and academia. We conclude with two question to discuss at the workshop.

Research paper thumbnail of A domain-specific language to visualize software evolution

Information and Software Technology

Context: Accurately relating code authorship to commit frequency over multiple software revisions... more Context: Accurately relating code authorship to commit frequency over multiple software revisions is a complex task. Most of the navigation tools found in common source code versioning clients are often too rigid to formulate specific queries and adequately present results of such queries. Questions related to evolution asked by software engineers are therefore challenging at answering using common Git clients. Objective: This paper explores the use of stacked adjacency matrices and a domain specific language to produce tailored interactive visualizations for software evolution exploration. We are able to support some classical software evolution tasks using short and concise scripts using our language. Method: We propose a domain-specific language to stack adjacency matrices and produce scalable and interactive visualizations. Our language and visualizations are evaluated using two independent controlled experiments and closely observing participants. Results: We made the following findings: (i) participants are able to express sophisticated queries using our domain-specific language and visualizations, (ii) participants perform better than GitHub's visualizations to answer a set of questions. Conclusion: Our visual and scripting environment performs better than GitHub's visualizations at extracting software evolution information.

Research paper thumbnail of Deviation Testing: A Test Case Generation Technique for GraphQL APIs

GraphQL is a flexible and expressive query language. With the objective to replace the flawed and... more GraphQL is a flexible and expressive query language. With the objective to replace the flawed and inefficient REST architectural style, GraphQL has been adopted by numerous online APIs and services. Despite its popularity, testing the implementation of a GraphQL schema is a crucial and still an open problem. We found that classical techniques of test generation may be efficiently applied to GraphQL server. We propose a simple but expressive technique called deviation testing that automatically searches for anomalies in the way a schema is served. We demonstrate the feasibility of our approach using an implementation of GraphQL for Pharo and VisualWorks. Running our technique on the popular Yelp and Apollo GraphQL server uncovered several anomalies in the way the schema is served. [Copyright notice will appear here once ’preprint’ option is removed.]

Research paper thumbnail of Effective Visualization of Object Allocation Sites

2018 IEEE Working Conference on Software Visualization (VISSOFT), 2018

Profiling the memory consumption of a software execution is usually carried out by characterizing... more Profiling the memory consumption of a software execution is usually carried out by characterizing calling-context trees. However, the plurality nature of this data-structure makes it difficult to adequately and efficiently exploit in practice. As a consequence, most of anomalies in memory footprints are addressed either manually or in an ad-hoc way. We propose an interactive visualization of the execution context related to object productions. Our visualization augments the traditional calling-context tree with visual cues to characterize object allocation sites.We performed a qualitative study involving eight software engineers conducting a software execution memory assessment. As a result, we found that participants find our visualization as beneficial to characterizing a memory consumption and to reducing the overall memory footprint.