||Department of Information Systems, Faculty of Informatics
||My specialty is software engineering. The field of software engineering is diverse. My research is focused on mining software repositories (MSR) to support software developers. Modern developers adopt software development platforms such as GitHub. These platforms record several kinds of software development histories, such as source code changes, how developers handled issues, what they discussed. In MSR research, we analyze these histories to gain techniques and knowledge about software development. I also focus on returning the understanding obtained from MSR research as tools to support developers.
From the viewpoint of individual software engineering techniques, my exciting research topic is refactoring. Refactoring is a technique for improving the design quality of the software. It is the process of changing the structure of the program without changing its behavior.
For example, extracting long procedures as a method of the class, changing variable names to be more readable, and so on. As refactoring research, we have developed a tool to detect the performing of refactorings from version histories (refactoring detection tool). The refactoring detection tool, kenja, is available as an OSS (https://github.com/niyaton/kenja).
In recent years, I am trying to approach programming education from the software engineering field by collecting software development activities of students.
|Research Field(Keyword & Summary)
- 1) Refactoring detection
Refactoring is a technique for improving the design quality of the software. It is the process of changing the structure of the program without changing its behavior. This research aims to recover refactoring histories from version control systems. By recovering performings of refactorings, we can know how developers refactoring, evaluate the effectiveness of refactoring, predicting the source code which should be refactored.
- 2) Analysis of student activities in programming exercise
This research aims to reveal how students fall into pitfalls in programming exercises. We collected source code changes by students at short intervals. We developed a method to unveil when and how students struggle to solve the exercise problems by analyzing collected data.
- 3) Analysis of competitor's program in the programming competition site
Programming competition sites are modern places for programmers to compete with each other and improve their skills. These sites, such as Codeforces, provide algorithmic problems to competitors. Competitors solve these problems and submit the answer code to the site. In this research, we analyze their submitted code with their contest record. By analyzing competitors' programs, we can know how to improve programming skills from higher-level programmers.
- (1) A Quantitative Comparison of Coverage-Based Greybox Fuzzers, In Proceedings of the 1st IEEE/ACM International Conference on Automation of Software Test, July 2020, pp.89-92.
- (2) An Investigation of the Relationship Between Extract Method and Change Metrics: A Case Study of JEdit, In Proceedings of the 25th Asia-Pacific Software Engineering Conference, December 2018, pp.653-657.
- (3) An Automatic Method for Comment Classification Towards Tracing Comment History, In Proceedings of the 5th International Conference on Advanced Informatics: Concepts, Theory and Application, Paper ID: 43542-105, August 2018, 2pages.
- (4) WaybackVisor: Hypervisor-Based Scalable Live Forensic Architecture for Timeline Analysis, In Proceedings of the 11th International Conference on Security, Privacy and Anonymity in Computation, Communication and Storage, December 2017, pp.219-230.
- (5) Detecting and Analyzing Code Clones in HDL, In Proceedings of the 2017 IEEE 11th International Workshop on Software Clones, February 2017, pp.1-7.
- (6) A Hosting Service of Multi-Language Historage, In Proceedings of the 2016 IEEE/ACIS 15th International Conference on Computer and Information Science, June 2016, pp.843-848.
- (7) Detecting Exploratory Programming Behaviors for Introductory Programming Exercises, In Proceedings of the 24th IEEE International Conference on Program Comprehension, May 2016, pp.1-4.
- (8) ReDA: a Web-Based Visualization Tool for Analyzing Modern Code Review Dataset, In Proceedings of the 30th International Conference on Software Maintenance and Evolution, October 2014, pp.605-608.
- (9) Kataribe: a Hosting Service of Historage Repositories, In Proceedings of the 11th Working Conference on Mining Software Repositories, May 2014, pp.380-383.
- (10) Assessing Refactoring Instances and the Maintainability Benefits of Them from Version Archives, In Proceedings of the 14th International Conference on Product-Focused Software Development and Process Improvement, June 2013, pp.313-323.
||(1) 4th International Workshop on Empirical Software Engineering in Practice, Best Student Paper Award, 2012.
(2) IPSJ Software Engineering Symposium 2015, Best Paper Award, 2015 (in Japanese).
(3) JSSST rePiT 2017, Best Paper Award, 2017 (in Japanese).
|Grant-in-Aid for Scientific Research Support: Japan Society for Promotion of Science (JSPS)
|Recruitment of research assistant(s)
|Affiliated academic society (Membership type)
||(1) IEEE (Member)
(2) IEICE (Member)
(3) IPSJ (Member)
(4) JSSST (Member)
|Education Field (Undergraduate level)
||C programming, Operating systems, Software Engineering
|Education Field (Graduate level)