Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Boyang Li 0002

dblp:70/1211-2 · DBLP profile ↗
← Back
16ranked-venue papers
6as first author
0since 2021 · last 2018
—ORCID · conflict

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 12 · 6 first-authorHuman-computer interaction and ubiquitous computing · 2Computer networks · 1Security and privacy · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
4 papers
Program verification · 33% Software maintenance and evolution · 31% Software testing · 22%
Human-computer interaction and pervasive computing
2 papers
Ubiquitous computing and smart environments · 53% Human-robot interaction · 39% Collaborative and social computing · 8%

Topics — the 11 heaviest of 13, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Human-robot interaction › robot programming
robot programming interfaces
0.312018
Evaluating CoBlox: A Comparative Study of Robotics Programming Environments for Adult Novices · CHI 2018
Software testing
GUI testing
0.312018
Automated reporting of GUI design violations for mobile apps · ICSE 2018
Ubiquitous computing and smart environments › pervasive displays
ambient display
0.312017
Reducing Interruptions at Work: A Large-Scale Field Study of FlowLight · CHI 2017
Software maintenance and evolution
program comprehension
0.212016
Documenting database usages and schema constraints in database-centric applications · ISSTA 2016
Empirical software engineering
mining software repositories
0.212015
How do Developers Document Database Usages in Source Code? (N) · ASE 2015
Software maintenance and evolution
software documentation
0.212015
How do Developers Document Database Usages in Source Code? (N) · ASE 2015
Program verification › program logic
hoare logic
0.212013
Inductive invariant generation via abductive inference · OOPSLA 2013
Program verification › invariant generation
loop invariant generation
0.212013
Inductive invariant generation via abductive inference · OOPSLA 2013
Program verification › deductive verification
verification condition generation
0.212013
Inductive invariant generation via abductive inference · OOPSLA 2013
Human-robot interaction › human-robot collaboration
collaborative robot
0.112018
Evaluating CoBlox: A Comparative Study of Robotics Programming Environments for Adult Novices · CHI 2018
Collaborative and social computing
workplace collaboration
0.112017
Reducing Interruptions at Work: A Large-Scale Field Study of FlowLight · CHI 2017

Methods — techniques the papers use, named apart from their topics

usability study · 0.3comparative study · 0.3field study · 0.3static analysis · 0.2call-chain propagation · 0.2survey · 0.2repository mining · 0.2quantifier elimination · 0.2backtracking search · 0.2abductive inference · 0.2
YearPublicationVenuePosition
2018 Evaluating CoBlox: A Comparative Study of Robotics Programming Environments for Adult Novices
abstract
A new wave of collaborative robots designed to work alongside humans is bringing the automation historically seen in large-scale industrial settings to new, diverse contexts. However, the ability to program these machines often requires years of training, making them inaccessible or impractical for many. This paper rethinks what robot programming interfaces could be in order to make them accessible and intuitive for adult novice programmers. We created a block-based interface for programming a one-armed industrial robot and conducted a study with 67 adult novices comparing it to two programming approaches in widespread use in industry. The results show participants using the block-based interface successfully implemented robot programs faster with no loss in accuracy while reporting higher scores for usability, learnability, and overall satisfaction. The contribution of this work is showing the potential for using block-based programming to make powerful technologies accessible to a wider audience.
David Weintrop, Afsoon Afzal, Jean Salac, Patrick Francis, Boyang Li 0002, David C. Shepherd, Diana Franklin
CHI5
2018 Automated reporting of GUI design violations for mobile apps
abstract
The inception of a mobile app often takes form of a mock-up of the Graphical User Interface (GUI), represented as a static image delineating the proper layout and style of GUI widgets that satisfy requirements. Following this initial mock-up, the design artifacts are then handed off to developers whose goal is to accurately implement these GUIs and the desired functionality in code. Given the sizable abstraction gap between mock-ups and code, developers often introduce mistakes related to the GUI that can negatively impact an app's success in highly competitive marketplaces. Moreover, such mistakes are common in the evolutionary context of rapidly changing apps. This leads to the time-consuming and laborious task of design teams verifying that each screen of an app was implemented according to intended design specifications.
Kevin Moran, Boyang Li 0002, Carlos Bernal-Cárdenas, Dan Jelf, Denys Poshyvanyk
ICSE2
2018 Aiding comprehension of unit test cases and test suites with stereotype-based tagging
abstract
Techniques to automatically identify the stereotypes of different software artifacts (e.g., classes, methods, commits) were previously presented. Those approaches utilized the techniques to support comprehension of software artifacts, but those stereotype-based approaches were not designed to consider the structure and purpose of unit tests, which are widely used in software development to increase the quality of source code. Moreover, unit tests are different than production code, since they are designed and written by following different principles and workflows.
Boyang Li 0002, Christopher Vendome, Mario Linares-Vásquez, Denys Poshyvanyk
ICPC1
2018 [Engineering Paper] An IDE for Easy Programming of Simple Robotics Tasks
abstract
Many robotic tasks in small manufacturing sites are quite simple. For example, a pick and place task requires only a few common commands. Unfortunately, the standard languages and programming environments for industrial robots are complex, making even these simple tasks nearly impossible for novices. To enable novices to program simple tasks we created a block-based programming language and environment focused on usability, learnability, and understandability and embedded its programming environment in a state-of-the-art robot simulator. By using this high-fidelity prototype over the course of a year in a case study, a user study, and for countless demonstrations we have gained many concrete insights. In this paper we discuss the details of the language, the design of its programming environment, and concrete insights gained via longitudinal usage.
David C. Shepherd, Patrick Francis, David Weintrop, Diana Franklin, Boyang Li 0002, Afsoon Afzal
SCAM5
2017 Reducing Interruptions at Work: A Large-Scale Field Study of FlowLight
abstract
Due to the high number and cost of interruptions at work, several approaches have been suggested to reduce this cost for knowledge workers. These approaches predominantly focus either on a manual and physical indicator, such as headphones or a closed office door, or on the automatic measure of a worker's interruptibilty in combination with a computer-based indicator. Little is known about the combination of a physical indicator with an automatic interruptibility measure and its long-term impact in the workplace. In our research, we developed the FlowLight, that combines a physical traffic-light like LED with an automatic interruptibility measure based on computer interaction data. In a large-scale and long-term field study with 449 participants from 12 countries, we found, amongst other results, that the FlowLight reduced the interruptions of participants by 46%, increased their awareness on the potential disruptiveness of interruptions and most participants never stopped using it.
Manuela Züger, Christopher S. Corley, André N. Meyer, Boyang Li 0002, Thomas Fritz 0001, David C. Shepherd, Vinay Augustine, Patrick Francis, Nicholas A. Kraft, Will Snipes
CHI4
2017 Automatically detecting integrity violations in database-centric applications
abstract
Database-centric applications (DCAs) are widely used by many companies and organizations to perform various control and analytical tasks using large databases. Real-world databases are described by complex schemas that oftentimes contain hundreds of tables consisting of thousands of attributes. However, when software engineers develop DCAs, they may write code that can inadvertently violate the integrity of these databases. Alternatively, business analysts and database administrators can also make errors that lead to integrity violations (semantic bugs). To detect these violations, stakeholders must create assertions that check the validity of the data in the rows of the database tables. Unfortunately, creating assertions is a manual, laborious and error-prone task. Thus, a fundamental problem of testing DCAs is how to find such semantic bugs automatically. We propose a novel solution, namely DACITE, that enables stakeholders to automatically obtain constraints that semantically relate database attributes and code statements using a combination of static analysis of the source code and associative rule mining of the databases. We rely on SAT-solvers to validate if a solution to the combined constraints exists and issue warnings on possible semantic bugs to stakeholders. We evaluated our approach on eight open-source DCAs and our results suggest that semantic bugs can be found automatically with high precision. The results of the study with developers show that warnings produced by DACITE are useful and enable them to find semantic bugs faster.
Boyang Li 0002, Denys Poshyvanyk, Mark Grechanik
ICPC1
2017 Synthesis of circular compositional program proofs via abduction
Isil Dillig, Thomas Dillig, Boyang Li 0002, Kenneth L. McMillan, Shmuel Sagiv
Int. J. Softw. Tools Technol. Transf.3
2016 Automatically Documenting Software Artifacts
abstract
Software artifacts constantly change during evolution and maintenance of software systems. One critical artifact that developers need to be able to maintain during evolution and maintenance of software systems is up-to-date and complete documentation. However, recent studies on the co-evolution of comments and code showed that the comments are rarely maintained or updated when the respective source code is changed. In order to understand developer practices regarding documenting two kinds of software artifacts, unit test cases and database-related operations, we designed two empirical studies both composed of (i) an online survey with contributors of open source projects and (ii) a mining-based analysis of method comments in these projects. Later, motivated by the findings of the studies, we proposed two novel approaches. UnitTestScribe is an approach for automatically documenting test cases, while DBScribe is an approach for automatically documenting test cases. We evaluated our tools by means of an online survey with industrial developers and graduate students. In general, participants indicated that descriptions generated by our tools are complete, concise, and easy to read.
Boyang Li 0002
ICSME1
2016 Automatically Documenting Unit Test Cases
abstract
Maintaining unit test cases is important during the maintenance and evolution of a software system. In particular, automatically documenting these unit test cases can ameliorate the burden on developers maintaining them. For instance, by relying on up-to-date documentation, developers can more easily identify test cases that relate to some new or modified functionality of the system. We surveyed 212 developers (both industrial and open-source) to understand their perspective towards writing, maintaining, and documenting unit test cases. In addition, we mined change histories of C# software systems and empirically found that unit test methods seldom had preceding comments and infrequently had inner comments, and both were rarely modified as those methods were modified. In order to support developers in maintaining unit test cases, we propose a novel approach - UnitTestScribe - that combines static analysis, natural language processing, backward slicing, and code summarization techniques to automatically generate natural language documentation of unit test cases. We evaluated UnitTestScribe on four subject systems by means of an online survey with industrial developers and graduate students. In general, participants indicated that UnitTestScribe descriptions are complete, concise, and easy to read.
Boyang Li 0002, Christopher Vendome, Mario Linares-Vásquez, Denys Poshyvanyk, Nicholas A. Kraft
ICST1
2016 Documenting database usages and schema constraints in database-centric applications
abstract
Database-centric applications (DCAs) usually rely on database operations over a large number of tables and attributes. Understanding how database tables and attributes are used to implement features in DCAs along with the constraints related to these usages is an important component of any DCA’s maintenance. However, manually documenting database related operations and their asynchronously evolving constraints in constantly changing source code is a hard and time-consuming problem. In this paper, we present a novel approach, namely DBScribe, aimed at automatically generating always up-to-date natural language descriptions of database operations and schema constraints in source code methods. DBScribe statically analyzes the code and database schema to detect database usages and then prop- agates these usages and schema constraints through the call-chains implementing database-related features. Finally, each method in these call-chains is automatically documented based on the underlying database usages and constraints.
Mario Linares-Vásquez, Boyang Li 0002, Christopher Vendome, Denys Poshyvanyk
ISSTA2
2016 Arbitrating Traffic Contention for Power Saving with Multiple PSM Clients
abstract
Data transmission over WiFi quickly drains the batteries of mobile devices. Although the IEEE 802.11 standards provide power save mode (PSM) to help mobile devices conserve energy, PSM fails to bring expected benefits in many real scenarios. In particular, when multiple PSM mobile devices associate to a single access point (AP), PSM does not work well under transmission contention. Optimizing power saving of multiple PSM clients is a challenging task, because each PSM client expects to complete data transmission early so that it can turn to low power mode. In this paper, we define an energy conserving model to describe the general PSM traffic contention problem. We prove that the optimization of energy saving for multiple PSM clients under constraint is an NPcomplete problem. Following this direction, we propose a solution called harmonious power saving mechanism (HPSM) to address one specific case, in which multiple PSM clients associate to a single AP. In HPSM, we first use a basic sociological concept to define the richness of a PSM client based on the link resource it consumes. Then, we separate these poor PSM clients from rich PSM clients in terms of link resource consumption and favor the former to save power when they face PSM transmission contention. We implement prototypes of HPSM based on the open source projects Mad-wifi and NS-2. Our evaluations show that HPSM can help the poor PSM clients effectively save power while only slightly degrading the rich PSM clients' performance in comparison with the existing PSM solutions.
Dachuan Liu, Haining Wang 0001, Gang Zhou 0002, Weizhen Mao, Boyang Li 0002
IEEE Trans. Wirel. Commun.5
2015 How do Developers Document Database Usages in Source Code? (N)
abstract
Database-centric applications (DCAs) usually contain a large number of tables, attributes, and constraints describing the underlying data model. Understanding how database tables and attributes are used in the source code along with the constraints related to these usages is an important component of DCA maintenance. However, documenting database-related operations and their constraints in the source code is neither easy nor common in practice. In this paper, we present a two-fold empirical study aimed at identifying how developers document database usages at source code method level. In particular, (i) we surveyed open source developers to understand their practices on documenting database usages in source code, and (ii) we mined a large set of open source projects to measure to what extent database-related methods are commented and if these comments are updated during evolution. Although 58% of the developers claimed to find value in method comments describing database usages, our findings suggest that 77% of 33K+ methods in 3.1K+ open-source Java projects with database accesses were completely undocumented.
Mario Linares-Vásquez, Boyang Li 0002, Christopher Vendome, Denys Poshyvanyk
ASE2
2014 Sanitizing and Minimizing Databases for Software Application Test Outsourcing
abstract
Testing software applications that use nontrivial databases is increasingly outsourced to test centers in order to achieve lower cost and higher quality. Not only do different data privacy laws prevent organizations from sharing this data with test centers because databases contain sensitive information, but also this situation is aggravated by big data - it is time consuming and difficult to anonymize, distribute, and test with large databases. Deleting data randomly often leads to significantly worsened test coverages and fewer uncovered faults, thereby reducing the quality of software applications. We propose a novel approach for Protecting and mInimizing databases for Software TestIng taSks (PISTIS) that both sanitizes and minimizes a database that comes along with an application. PISTIS uses a weight-based data clustering algorithm that partitions data in the database using information obtained using program analysis that describes how this data is used by the application. For each cluster, a centroid object is computed that represents different persons or entities in the cluster, and we use associative rule mining to compute and use constraints to ensure that the centroid objects are representative of the general population of the data in the cluster. Doing so also sanitizes information, since these centroid objects replace the original data to make it difficult for attackers to infer sensitive information. Thus, we reduce a large database to a few centroid objects and we show in our experiments with two applications that test coverage stays within a close range to its original level.
Boyang Li 0002, Mark Grechanik, Denys Poshyvanyk
ICST1
2013 Inductive invariant generation via abductive inference
abstract
This paper presents a new method for generating inductive loop invariants that are expressible as boolean combinations of linear integer constraints. The key idea underlying our technique is to perform a backtracking search that combines Hoare-style verification condition generation with a logical abduction procedure based on quantifier elimination to speculate candidate invariants. Starting with true, our method iteratively strengthens loop invariants until they are inductive and strong enough to verify the program. A key feature of our technique is that it is lazy: It only infers those invariants that are necessary for verifying program correctness. Furthermore, our technique can infer arbitrary boolean combinations (including disjunctions) of linear invariants. We have implemented the proposed approach in a tool called HOLA. Our experiments demonstrate that HOLA can infer interesting invariants that are beyond the reach of existing state-of-the-art invariant generation tools.
Isil Dillig, Thomas Dillig, Boyang Li 0002, Kenneth L. McMillan
OOPSLA3
2013 Synthesis of Circular Compositional Program Proofs via Abduction
Boyang Li 0002, Isil Dillig, Thomas Dillig, Kenneth L. McMillan, Shmuel Sagiv
TACAS1
2011 Private Database Search with Sublinear Query Time
Keith B. Frikken, Boyang Li 0002
DBSec2