W&M Featured Events
[PAST EVENT] Boyang Li, Computer Science - Oral Exam for the Ph.D. Degree
Abstract
Software artifacts, such as database schema and unit test cases, constantly change during evolution and maintenance of software systems. Co-evolution of code and DB schemas in Database-Centric Applications (DCAs) often leads to two types of challenging scenarios for developers, where (i) changes to the DB schema need to be incorporated in the source code, and (ii) maintenance of a DCAs code requires understanding of how the features are implemented by relying on DB operations and corresponding schema constraints. On the other hand, the number of unit test cases often grows as new functionality is introduced into the system, and maintaining these unit tests is important to reduce the introduction of regression bugs due to outdated unit tests. Therefore, 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.
In order to understand developer practices regarding documenting and maintaining these software artifacts, we designed two empirical studies both composed of (i) an online survey of contributors of open source projects and (ii) a mining-based analysis of method comments in these projects. We observed that documenting methods with database accesses and unit test cases is not a common practice. Further, motivated by the findings of the studies, we proposed two novel approaches. DBScribe is an approach for automatically documenting database usages and schema constraints, while UnitTestScribe is an approach for automatically documenting test cases. We evaluated our tools in the case studies with industrial developers and graduate students. In general, developers indicated that descriptions generated by the tools are complete, concise, and easy to read.
Bio:
Boyang Li is a Ph.D. candidate in Computer Science at William & Mary, working with Dr. Denys Poshyvanyk. His research interests are in source code analysis, program comprehension, software evolution, and information retrieval. He received his B.S and Master degree in Computer Science from Shandong Normal University and Miami University, respectively.