Bin Lin

ORCID: 0000-0001-6307-8460
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Software Engineering Research
  • Software Reliability and Analysis Research
  • Software Engineering Techniques and Practices
  • Open Source Software Innovations
  • Software Testing and Debugging Techniques
  • Advanced Malware Detection Techniques
  • Software System Performance and Reliability
  • Sentiment Analysis and Opinion Mining
  • Embedded Systems Design Techniques
  • Topic Modeling
  • Parallel Computing and Optimization Techniques
  • Petri Nets in System Modeling
  • Formal Methods in Verification
  • Mobile Crowdsensing and Crowdsourcing
  • HIV/AIDS drug development and treatment
  • Adversarial Robustness in Machine Learning
  • Advanced Software Engineering Methodologies
  • Innovative Human-Technology Interaction
  • Real-Time Systems Scheduling
  • Advanced Sensor and Control Systems
  • Advanced Text Analysis Techniques
  • Energy Harvesting in Wireless Networks
  • Advancements in Photolithography Techniques
  • Machine Learning in Materials Science
  • Knowledge Management and Sharing

Radboud University Nijmegen
2023-2024

Università della Svizzera italiana
2017-2022

Software Engineering Institute
2021

Rathenau Instituut
2017

Portland State University
2016

Eindhoven University of Technology
2016

IMEC
2005

University of California, San Diego
2002

Sentiment analysis has been applied to various software engineering (SE) tasks, such as evaluating app reviews or analyzing developers' emotions in commit messages. Studies indicate that sentiment tools provide unreliable results when used out-of-the-box, since they are not designed process SE datasets. The silver bullet for a successful application of datasets might be their customization the specific usage context.

10.1145/3180155.3180195 article EN Proceedings of the 44th International Conference on Software Engineering 2018-05-27

Slack is a modern communication platform for teams that seeing wide and rapid adoption by software develop-ment teams. not only facilitates team messaging archiving, but it also supports plethora of inte-grations to external services bots. We have found its integrations (i.e., bots) are playing an increas-ingly significant role in development, replacing email some cases disrupting development processes. To understand how impacts dynamics, we designed exploratory study inves-tigate developers...

10.1145/2818052.2869117 article EN 2016-02-27

Large open source software projects often have a globally distributed development team. Studies shown developer turnover has significant impact on the project success. Frequent may lead to loss of productivity due lacking relevant knowledge and spending extra time learning how work. Thus, lots attention been paid which factors are related retention, however, few them focus activities individual developers. In this paper, we study five from different organizations examine whether is affected...

10.1109/icgse.2017.11 article EN 2017-05-01

Opinion mining, sometimes referred to as sentiment analysis, has gained increasing attention in software engineering (SE) studies. SE researchers have applied opinion mining techniques various contexts, such identifying developers’ emotions expressed code comments and extracting users’ critics toward mobile apps. Given the large amount of relevant studies available, it can take considerable time for developers figure out which approaches they adopt their own what perils these entail. We...

10.1145/3490388 article EN ACM Transactions on Software Engineering and Methodology 2022-03-07

Informal documentation contained in resources such as Q&A websites (e.g., Stack Overflow) is a precious resource for developers, who can find there examples on how to use certain APIs, well opinions about pros and cons of APIs. Automatically identifying classifying alleviate developers' burden performing manual searches, be used recommend APIs that are good from some points view performance), or highlight those less ideal other perspectives compatibility). We propose POME (Pattern-based...

10.1109/icse.2019.00066 article EN 2019-05-01

Software development remains a predominantly male activity, despite coordinated efforts from research, industry, and policy makers. This gender imbalance is most visible in social programming, on platforms such as Stack Overflow.

10.1145/2901739.2901777 article EN 2016-05-14

Refactoring aims at improving the maintainability of source code without modifying its external behavior. Previous works proposed approaches to recommend refactoring solutions software developers. The generation recommended is guided by metrics acting as proxy for (e.g., number smells removed solution). These ignore impact refactorings on other non-functional requirements, such performance, energy consumption, and so forth. Little known about operations requirements than maintainability. We...

10.1145/3485136 article EN ACM Transactions on Software Engineering and Methodology 2021-12-24

Fuzz testing, also known as fuzzing, is a software testing technique aimed at identifying vulnerabilities. In recent decades, fuzzing has gained increasing popularity in the research community. However, existing studies led by experts mainly focus on improving coverage and performance of techniques. That is, there still gap empirical knowledge regarding especially about challenges developers face when they adopt fuzzing. Understanding these can provide valuable insights to both practitioners...

10.1145/3611668 article EN ACM Transactions on Software Engineering and Methodology 2023-08-02

Automatic test generation plays a critical role in software quality assurance. While the recent advances Search-Based Software Testing (SBST) and Large Language Models (LLMs) have shown promise generating useful tests, these techniques still struggle to cover certain branches. Reaching hard-to-cover branches usually requires constructing complex objects resolving intricate inter-procedural dependencies branch conditions, which poses significant challenges for existing techniques. In this...

10.48550/arxiv.2404.04966 preprint EN arXiv (Cornell University) 2024-04-07

Meaningless identifiers as well inconsistent use of in the source code might hinder readability and result increased software maintenance efforts. Over past years, effort has been devoted to promoting a consistent usage across different parts system through approaches exploiting static analysis Natural Language Processing (NLP). These techniques have evaluated small-scale studies, but it is unclear how they compare each other complement other. Furthermore, full-fledged larger empirical...

10.1109/scam.2017.17 article EN 2017-09-01

Knowledge transfer is one of the main goals modern code review, as shown by several studies that surveyed and interviewed developers. While knowledge a clear expectation review process, there are no analytical using data mined from software repositories to assess effectiveness in "training" developers improve their skills over time. We present mining-based study investigating how whether process helps contributions open source projects analyze 32,062 peer-reviewed pull requests (PRs) made...

10.1145/3387904.3389270 article EN 2020-07-13

Deep sub-micron processing technologies have enabled the implementation of new application-specific embedded architectures that integrate multiple software programmable processors (e.g. DSPs, microcontrollers) and dedicated hardware components together onto a single cost-efficient IC. These are emerging as key design solution to today's microelectronics problems, which being driven by applications in areas wireless communication, broadband networking, multimedia computing. However...

10.1109/dac.1996.545631 article EN 33rd Design Automation Conference Proceedings, 1996 2005-08-24

Modern software is developed under considerable time pressure, which implies that developers more often than not have to resort compromises when it comes code well written and just does the job. This has led over past decades concept of "technical debt", a short-term hack potentially generates long-term maintenance problems. Self-admitted technical debt (SATD) particular form debt: consciously perform but also document in by adding comments as reminder (or an admission guilt). We focus on...

10.1109/scam51674.2020.00011 article EN 2020-09-01

Refactoring, the process of improving internal code structure a software system without altering its external behavior, is widely applied during development. Understanding how developers refactor source can help gain better understanding development and relationship between various versions system. Refactoring detection tools have been developed for many popular programming languages, such as Java (e.g., REFACTORINGMINER REF-FINDER) but, quite surprisingly, this not case Python, used...

10.1109/scam52516.2021.00025 article EN 2021-09-01

Career perspectives are known to motivate software engineers. However, so far, career have been mostly studied within traditional development companies. In our work we take a complementary approach and study paths of open source developers, focusing on their advancement through the code review hierarchy, from developers reviewers further core reviewers.To gain understanding conduct an exploratory case OpenStack community. Based publicized anonymized research data formulated four hypotheses...

10.1109/icsme.2017.25 article EN 2017-09-01

Recent studies have demonstrated that software is natural, is, its source code highly repetitive and predictable like human languages. Also, previous suggested the existence of a relationship between quality naturalness, presenting empirical evidence showing buggy "less natural" than non-buggy code. We conjecture this qualitynaturalness could be exploited to support refactoring activities (e.g., locate areas in need refactoring). perform first step direction by analyzing whether can improve...

10.1109/saner.2019.8667992 article EN 2019-02-01

Meaningful, expressive identifiers in source code can enhance the readability and reduce comprehension efforts. Over past years, researchers have devoted considerable effort to understanding improving naming quality of code. However, little attention has been given test code, an important resource during program activities. To better grasp identifier we conducted a survey involving manually written automatically generated cases from ten open software projects. The results indicate that...

10.1109/scam.2019.00031 article EN 2019-09-01

Software engineering researchers have used sentiment analysis for various purposes, such as analyzing app reviews and detecting developers' emotions. However, most existing tools do not achieve satisfactory performance when in software-related contexts, there are many ready-to-use datasets this domain. To facilitate the emergence of better sufficient validation techniques, we present two with labeled sentiments, which extracted from mobile Stack Overflow discussions, respectively. The web...

10.1109/icsme.2018.00084 article EN 2018-09-01

Code redundancy widely occurs in software projects. Researchers have investigated the existence, causes, and impacts of code redundancy, showing that it can be put to good use, for example context completion. When analyzing source previous studies considered projects as sequences tokens, neglecting role syntactic structures enforced by programming languages. However, differences such may jeopardize performance applications leveraging redundancy. We present a study several types constructs...

10.1109/icpc.2017.36 article EN 2017-05-01

Refactoring operations are behavior-preserving changes aimed at improving source code quality. While refactoring is largely considered a good practice, proposals in pull requests often rejected after the review. Understanding reasons behind rejection of contributions can shed light on how such be improved, essentially benefiting software This article reports study which we manually coded inferred from 330 refactoring-related 207 open-source Java projects. We surveyed 267 developers to assess...

10.1145/3487062 article EN ACM Transactions on Software Engineering and Methodology 2021-12-24

Refactoring as a process is aimed at improving the quality of software system while preserving its external behavior. In practice, refactoring comes in form many specific and diverse operations, which have different scopes thus potential impact on both production test code. We present large-scale quantitative study complemented by qualitative analysis involving 615,196 cases to understand how what extent operations system's suites. Our findings show that vast majority do not or very seldom...

10.1109/icsme52107.2021.00022 article EN 2021-09-01

Recently virtual platforms and prototyping techniques have been widely applied for accelerating software development in electronics companies. It has proved that these can greatly shorten time-to-market improve product quality. One challenge is how to test validate a prototype. In this paper, we present conduct regression testing of prototypes different versions using symbolic execution. Suppose old new prototype, first apply execution the version collect all path constraints. Then collected...

10.48550/arxiv.1601.05850 preprint EN other-oa arXiv (Cornell University) 2016-01-01

10.1109/iccad.1994.629751 article EN IEEE/ACM International Conference on Computer-Aided Design 2005-08-24

Code metrics can be used to assess the internal quality of software systems, and in particular their adherence good design principles. While providing hints about code quality, are difficult interpret. Indeed, they take a component as input attribute (e.g., readability) by number output. However, it might unclear for developers whether that value should considered or bad specific at hand. We present RETICULA (REal TIme qUaLity Assessment), plugin IntelliJ IDE assist perceiving during...

10.1109/saner.2018.8330256 article EN 2018-03-01
Coming Soon ...