Mario Linares-Vásquez

Dr. Mario Linares-Vásquez


Research Focus & Metrics

Academic Career Length

16Years (2011-Present)

(Calculated once Scilit publication data is synced: current year − year of first publication + 1)

Representative Publications

View All Publications
1 May 2015
Verified
Conference Paper
Closed access
MWMartin White
Martin White
CVChristopher Vendome
Christopher Vendome
MLMario Linares-Vásquez
Mario Linares-Vásquez
DPDenys Poshyvanyk
Denys Poshyvanyk
Deep learning subsumes algorithms that automatically learn compositional representations. The ability of these models to generalize well has ushered in tremendous advances in many fields such as natural language processing (NLP). Recent research in the software engineering (SE) community has demonstrated the usefulness of applying NLP techniques to software corpora. Hence, we motivate deep learning for software language modeling, highlighting fundamental differences between state-of-the-practice software language models and connectionist models. Our deep learning models are applicable to source code files (since they only require lexically analyzed source code written in any programming language) and other types of artifacts. We show how a particular deep learning model can remember its state to effectively model sequential data, e.g., Streaming software tokens, and the state is shown to be much more expressive than discrete tokens in a prefix. Then we instantiate deep learning models and show that deep learning induces high-quality models compared to n-grams and cache-based n-grams on a corpus of Java projects. We experiment with two of the models' hyper parameters, which govern their capacity and the amount of context they use to inform predictions, before building several committees of software language models to aid generalization. Then we apply the deep learning models to code suggestion and demonstrate their effectiveness at a real SE task compared to state-of-the-practice models. Finally, we propose avenues for future work, where deep learning can be brought to bear to support model-based testing, improve software lexicons, and conceptualize software artifacts. Thus, our work serves as the first step toward deep learning software repositories.

18 August 2013
Verified
Conference Paper
Open access
PDF file
MLMario Linares-Vásquez
Mario Linares-Vásquez
GBGabriele Bavota
Gabriele Bavota
CBCarlos Bernal-Cárdenas
Carlos Bernal-Cárdenas
MPMassimiliano Di Penta
Massimiliano Di Penta
RORocco Oliveto
Rocco Oliveto
DPDenys Poshyvanyk
Denys Poshyvanyk

4 November 2014 in IEEE Transactions on Software Engineering
Verified
Journal Article
Open access
GBGabriele Bavota
Gabriele Bavota
MLMario Linares-Vásquez
Mario Linares-Vásquez
CBCarlos Eduardo Bernal-Cardenas
Carlos Eduardo Bernal-Cardenas
MPMassimiliano Di Penta
Massimiliano Di Penta
RORocco Oliveto
Rocco Oliveto
DPDenys Poshyvanyk
Denys Poshyvanyk
The mobile apps market is one of the fastest growing areas in the information technology. In digging their market share, developers must pay attention to building robust and reliable apps. In fact, users easily get frustrated by repeated failures, crashes, and other bugs; hence, they abandon some apps in favor of their competition. In this paper we investigate how the fault- and change-proneness of APIs used by Android apps relates to their success estimated as the average rating provided by the users to those apps. First, in a study conducted on 5,848 (free) apps, we analyzed how the ratings that an app had received correlated with the fault- and change-proneness of the APIs such app relied upon. After that, we surveyed 45 professional Android developers to assess (i) to what extent developers experienced problems when using APIs, and (ii) how much they felt these problems could be the cause for unfavorable user ratings. The results of our studies indicate that apps having high user ratings use APIs that are less fault- and change-prone than the APIs used by low rated apps. Also, most of the interviewed Android developers observed, in their development experience, a direct relationship between problems experienced with the adopted APIs and the users’ ratings that their apps received.

31 May 2014
Verified
Conference Paper
Open access
PDF file
MLMario Linares-Vásquez
Mario Linares-Vásquez
GBGabriele Bavota
Gabriele Bavota
CBCarlos Bernal-Cárdenas
Carlos Bernal-Cárdenas
RORocco Oliveto
Rocco Oliveto
MPMassimiliano Di Penta
Massimiliano Di Penta
DPDenys Poshyvanyk
Denys Poshyvanyk

1 September 2015
Verified
Conference Paper
Closed access
FPFabio Palomba
Fabio Palomba
MLMario Linares-Vásquez
Mario Linares-Vásquez
GBGabriele Bavota
Gabriele Bavota
RORocco Oliveto
Rocco Oliveto
MPMassimiliano Di Penta
Massimiliano Di Penta
ALAndrea De Lucia
Andrea De Lucia
Nowadays software applications, and especially mobile apps, undergo frequent release updates through app stores. After installing/updating apps, users can post reviews and provide ratings, expressing their level of satisfaction with apps, and possibly pointing out bugs or desired features. In this paper we show-by performing a study on 100 Android apps-how developers addressing user reviews increase their app's success in terms of ratings. Specifically, we devise an approach, named CRISTAL, for tracing informative crowd reviews onto source code changes, and for monitoring the extent to which developers accommodate crowd requests and follow-up user reactions as reflected in their ratings. The results indicate that developers implementing user reviews are rewarded in terms of ratings. This poses the need for specialized recommendation systems aimed at analyzing informative crowd reviews and prioritizing feedback to be satisfied in order to increase the apps success.

1 April 2016
Verified
Conference Paper
Closed access
KMKevin Moran
Kevin Moran
MLMario Linares-Vásquez
Mario Linares-Vásquez
CBCarlos Bernal-Cardenas
Carlos Bernal-Cardenas
CVChristopher Vendome
Christopher Vendome
DPDenys Poshyvanyk
Denys Poshyvanyk
Mobile developers face unique challenges when detecting and reporting crashes in apps due to their prevailing GUI event-driven nature and additional sources of inputs (e.g., sensor readings). To support developers in these tasks, we introduce a novel, automated approach called CRASHSCOPE. This tool explores a given Android app using systematic input generation, according to several strategies informed by static and dynamic analyses, with the intrinsic goal of triggering crashes. When a crash is detected, CRASHSCOPE generates an augmented crash report containing screenshots, detailed crash reproduction steps, the captured exception stack trace, and a fully replayable script that automatically reproduces the crash on a target device(s). We evaluated CRASHSCOPE's effectiveness in discovering crashes as compared to five state-of-the-art Android input generation tools on 61 applications. The results demonstrate that CRASHSCOPE performs about as well as current tools for detecting crashes and provides more detailed fault information. Additionally, in a study analyzing eight real-world Android app crashes, we found that CRASHSCOPE's reports are easily readable and allow for reliable reproduction of crashes by presenting more explicit information than human written reports.