Creating Software to Create Software
Masahito Kurihara , Professor
Graduate School of Information Science and Technology (Computer Science and Information Technology, Department of Electronics and Information Engineering, School of Engineering)
High school : Otaru Choryo High School (Hokkaido)
Academic background : Graduate School of Engineering, Hokkaido University
- Research areas
- Software Engineering, Artificial Intelligence
- Research keywords
- Software, Programming, Intelligent Information Processing, Computing System
What Unique Features Does Your Laboratory Have?
Figure 1 Intelligence software
My laboratory, Intelligent Software Laboratory, conducts research on the basics of software engineering (SE) and artificial intelligence (AI). The SE is a technique to create reliable software as simply as possible. AI is a technique to create highly functional software through the simulation of human intelligence.
In other words, SE is a technique to create software intelligently and AI is a technique to create intelligent software (Figure 1). In Japan, there are not so many laboratories that conduct education and research based on these two techniques, and therefore the existence of both research subjects is one of the unique features of our laboratory.
What Kind of Software are You Researching?
The software that you usually use is called application software. Such software is created by experts in information technology through programming. However, simple software can be created by experts in each field even if their expertise level in information technology is low.
Figure 2 Relationship between application software and software tool
On the other hand, my laboratory research develops basic software to be used by creators of application software. Such software is extensively used by software creators and therefore is also called a software tool. The quality of the software tool significantly affects whether the software development will succeed or not (Figure 2).
Creation of software tools requires advanced techniques and therefore is difficult for persons other than software experts. The Intelligence Software Laboratory researches highly functional software tools to which artificial intelligence
techniques are applied and also the creation of application software by actually using the software tool.
Figure 4 Code completion function of Eclipse. When "e" is entered, the next codes are displayed.
Can You Discuss One Example of Your Research?
Among the independent research topics of students, let’s look at the research of software tools that make software development easier. For software development, software called integrated development environment (IDE) is generally used (Figure 3). IDE is very useful software that performs program (code) writing, executes programs, conducts tests and other tasks required for software development. When writing code in IDE, the code completion function (Figure 4) will present the next code according to the program language while the user is still writing code. This is similar to the predictive text function that you use to enter text into your smartphone (Figure 5).
Mr. Sakamoto, a doctoral student, is conducting research on keyword programming, which complements the code completion function. This software tool features artificial intelligence that predicts the names of functions and data required for the calculations based on the entered keywords, even if they are incomplete or ambiguous words such as "encd" and "txt" shown in Figure 6. Then, it successfully creates the proper word, such as "encodeText(value, charset)" in this situation. The created code candidates are displayed like the search results displayed in Google. Even if you have imperfect knowledge about the programming language, this tool assists and allows you to write proper code.