Research Theme
Software engineering is an academic field that considers how to develop high-quality software as efficiently as possible within budget constraints. Overall, it consists of methods for correctly understanding what to create, designing how to create it, writing programs without errors, verifying that the completed program is according to design, and testing to ensure it meets its objectives. The Software Engineering Laboratory at Nara Institute of Science and Technology focuses on environments, tools, and procedures for efficiently conducting software development and programming. We aim to establish new fundamental technologies for software development and usage by analyzing current software development practices and developing new support technologies and methodologies. Our research materials include all kinds of data related to software. This includes big data such as source code, runtime information like tests and debugging, documents written about software, developer activities like code editing and reading, and communications among individuals and communities involved in software development and use. We combine technologies from programming languages such as syntax and semantic analysis of source code and dynamic analysis with diverse techniques like machine learning, natural language processing, game theory, sociology, and neuroscience to develop new tools to support software development and analyze development data. We provide the results obtained to companies involved in software and open-source software communities. For those who are vaguely interested in what software engineering is, here are some resources:
- Books
- The Mythical Man-Month: A classic in software engineering, collecting experiences. Famous for the story that adding people to a delayed software project makes it even later.
- Making Software: A book that broadly introduces traditional software engineering research.
- Software Engineering at Google: Introduces practical software engineering approaches.
- Websites
- ICSE Reading Group (sereading): A study group that introduces the contents of papers presented at ICSE, the world’s largest conference in the field of software engineering. Past materials are available.
- Software Engineering Symposium (SES): The largest domestic conference in the field of software engineering, where various universities in Japan present their achievements annually. By looking at the annual presentation programs, you can easily understand recent research themes in software engineering.
- Foundations of Software Engineering Workshop (FOSE): The second largest domestic conference where ideas for research and preliminary experimental results are presented. From the annual programs, you can get an overview of the research contents.
- Programming and Programming Languages Workshop (PPL): A conference dealing with programming languages and programming activities. Since software includes programming activities, there is a strong connection with the content.
Main Topics
“Paradigm” Preventing Bugs
We work on preventing and fixing software bugs. Specifically, we research supporting developer tasks through automatic synthesis and bug fixing of source code, and visualization of structures and functions.
Investigating Programmers’ Abilities and Activities
Many of the tasks that occur during software development are cognitive and psychological processes in developers’ minds. We quantitatively reveal whether developers are performing software development as usual by measuring eye movements and brain activity. Furthermore, we develop educational support environments, such as evaluating the effectiveness of programming education from the content of source code.
Accumulating and Utilizing Products
We work on solving issues arising from the use of software products (bugs, vulnerabilities, dependencies, etc.). Specifically, we analyze library reuse and research the descriptions of README documents.
Community Promoting Collaboration
Many people are involved in software development. Therefore, we focus on open-source software communities and research promoting collaboration. For example, we research code reviews, contributions, and bug reports.
Through joint research with companies like NTT DATA, Fujitsu Laboratories, and Givery Inc., and collaboration with engineers from NEC, Human Spaceflight Systems Corporation, and SAP, we work on developing useful technologies for real-world applications and conducting field tests of technologies cultivated in the laboratory. Not only faculty but also students participate in these studies according to the relevance and interest of their research themes.
Skills Required for Research Activities
Since we deal with intangible software, mathematical thinking that expresses intangible things with symbols and drawings is essential. Additionally, knowledge of statistics is useful for inferring the overall situation from specific cases investigated. Due to the nature of researching programming activities themselves, technical skills and knowledge related to programming are extremely helpful. However, no special skills or knowledge are required to start research. Many students begin to study programming deeply for the first time after coming to our laboratory.
Recent Thesis (Showing only English Thesis)
These are the master’s theses and doctoral theses of students who completed their studies in 2023 and 2024. (The latest theses and some theses are currently being prepared for publication) Please also refer to the Publiucations page for related achievements.
Doctoral Thesis
- The Changing Landscape of Open Source Software Ecosystems: Sponsorships, Protestware, and Sanctions
- Self-Admitted Technical Debt and Its Practices in Software Builds
- Exploring Entire Software Ecosystems through Dependency Updates
- Understanding Newcomer Activities Prior to Onboarding Open Source Software (OSS) Projects on GitHub
- Understanding How Developers Present Code Snippets in README Files
Master’s Thesis (Showing only English Thesis)
- The Role of GitHub Biographies: Impact on Pull Request Acceptance and Recruitment Decisions
- Identifying Versions of Reused Libraries through Directory Comparison Using HyperLogLog++
- Comparing the Maintainability between Different Code Proficiencies in PyPI Projects
- An Empirical Study on Removing Library’s Dependencies for Open-Source Libraries
- Test Case Generation for Python Libraries Using Execution Traces of Client Projects’Test-Suites
- An Empirical Study to Understand Pythonic Lists and Dictionaries Usage in Textbooks
- Empirical Study on Extracting Practical Code Scenarios from Python Textbooks
- Understand the Relationship between Proficient Code and the Zen of Python
- Facilitating Source Code Analysis: A Differential Approach to Reducing Warnings of Software Source Code Static Analysis
- An Empirical Study of The Impact of Tweets on GitHub Sponsors
Software Development as Research
In our laboratory, we consider it important to implement research results as software and provide them to society. Examples of providing insights gained from research include the fully remote class system C2Room (development name: Chameleon), the system for synthesizing SQL from input-output examples PATSQL, and DevReplay, which automates the same correction multiple times. We encourage students who like and excel in programming to actively participate as an opportunity to directly influence society and companies.
Skills Acquired in This Laboratory
As experts in software development and utilization, you can acquire knowledge on methodologies and tools for multiple developers to collaborate, and methods for evaluating software quality. Through discussions on the latest trends in software development, you can gain practical knowledge on various development processes, environments, and the significance of each programming language.
Nara Institute of Science and Technology, Graduate School of Information Science, Software Engineering Laboratory
Software Engineering Laboratory
8916-5 Takayama-cho, Ikoma-shi, Nara 630-0192, Japan
© 2013-2025 Software Engineering Laboratory, Graduate School of Information Science, Nara Institute of Science and Technology.