Computer Software
Print ISSN : 0289-6540
Volume 38, Issue 4
Displaying 1-12 of 12 articles from this issue
  • [in Japanese]
    2021 Volume 38 Issue 4 Pages 4_1
    Published: October 22, 2021
    Released on J-STAGE: December 22, 2021
    JOURNAL FREE ACCESS
  • Akito MONDEN, Takashi ISHIO, Sosuke AMASAKI, Hirohisa AMAN, Atsushi SA ...
    2021 Volume 38 Issue 4 Pages 4_2
    Published: October 22, 2021
    Released on J-STAGE: December 22, 2021
    JOURNAL FREE ACCESS
  • Takashi ISHIO, Sousuke AMASAKI, Akito MONDEN
    2021 Volume 38 Issue 4 Pages 4_3-4_8
    Published: October 22, 2021
    Released on J-STAGE: December 22, 2021
    JOURNAL FREE ACCESS
  • Keita YAMANAKA, Hirohisa AMAN, Minoru KAWAHARA
    2021 Volume 38 Issue 4 Pages 4_9-4_15
    Published: October 22, 2021
    Released on J-STAGE: December 22, 2021
    JOURNAL FREE ACCESS

    This paper proposes an automated method for evaluating the variable name's properness and discusses its usefulness. The proposed method extracts the context of a variable's usage by the program slicing method and represents it as a feature vector by the Doc2Vec method. The paper examines the proposed method through an evaluation experiment using the variables from six open-source software products written in Java. The experimental results show the proposed method could detect the variables with improper names.

    Download PDF (717K)
  • Haruki MATSUO, Sho IKEDA, Yasutaka KAMEI, Ryosuke SATO, Atsushi SHIMAD ...
    2021 Volume 38 Issue 4 Pages 4_16-4_22
    Published: October 22, 2021
    Released on J-STAGE: December 22, 2021
    JOURNAL FREE ACCESS

    Recently, various automatic bug fixing methods have been developed. In this study, we focus on DeepFix, which can fix syntax errors using deep learning. In the proposal paper of DeepFix, the performance of DeepFix was evaluated using programs collected by Prutor, an online programming course. In this study, we conducted several investigations from the viewpoint of educational support. We use the dataset collected from a programming course at Kyushu University for our investigations. Our investigations show that: (1) the models created with Prutor's data have an accuracy of about 20% when applied to programs created in Kyushu University. (2) the accuracy of DeepFix can be improved by adding new training data obtained from other educational settings to the training data of the previous study. (3) the number of training data has a significant impact on the performance up to a certain number, but the performance converges when the number exceeds a certain.

    Download PDF (771K)
  • Kazuya YASUDA, Shinji ITOH, Tomonori NAKAMURA, Masao HARADA, Yoshiki H ...
    2021 Volume 38 Issue 4 Pages 4_23-4_32
    Published: October 22, 2021
    Released on J-STAGE: December 22, 2021
    JOURNAL FREE ACCESS

    In recent years, automated program repair techniques have attracted attention. In the conventional techniques, a defect is fixed by rewriting statements containing the defect using expressions (donor code) that appear in another part of the source code. If donor code required to fix the defect does not exist in the source code, the conventional techniques cannot repair the defect. In this study, a technique is proposed, which fixes defects even in the above-mentioned case. In the proposed technique, developers' knowledge that specific expressions are often used in the system is specified as the commonly used expression pattern in advance, and expressions commonly used in the system are generated as donor code according to the pattern. As a result of applying the proposed technique to 48 defects detected and fixed during the development of an actual product, the number of defects that could be fixed by the conventional technique was nine, and the number increased by two to eleven in the proposed technique.

    Download PDF (706K)
  • Takuma OOMIYA, Shinpei OGATA, Kozo OKANO
    2021 Volume 38 Issue 4 Pages 4_33-4_39
    Published: October 22, 2021
    Released on J-STAGE: December 22, 2021
    JOURNAL FREE ACCESS

    In order to prevent developers from misreading a complex class diagram, the layout should be highly readable. Meanwhile, aesthetic criteria have been well known as techniques to improve such layouts. It is needed for developers to select and combine aesthetic criteria appropriately for improving layouts, however, the method has been still unclear. Therefore, this paper reports the result of investigating that actual class diagram layouts conform to which aesthetic criteria. Hence, we took 14 high-quality class diagrams evaluated in a robot competition, then conducted an experiment in which 12 computer-science students evaluate the layouts of the 14 diagrams from the aspect of aesthetic criteria. As a result, we found that most of the class diagrams conformed to the same 7 out of 22 aesthetic criteria. Moreover, we examined the top 6 class diagrams and thus found that their readability was enhanced by satisfying another 3 aesthetic criteria together with the 7 ones mentioned above.

    Download PDF (520K)
  • Hiroaki KUWABARA
    2021 Volume 38 Issue 4 Pages 4_40-4_45
    Published: October 22, 2021
    Released on J-STAGE: December 22, 2021
    JOURNAL FREE ACCESS

    This paper proposes secrecy wildcards for improving the flexibility of classes with parameterized secrecy in information flow analysis. It is hard to implement flexible APIs with secrecy-parameterized classes because the secrecy-parameterized classes are invariant, but wildcards for secrecy do not exist. In this paper, we formalize bounded secrecy wildcards used in the type of method parameters and define Java annotations for secrecy wildcards.

    Download PDF (306K)
  • Kazuya TANAKA, Akito MONDEN, Zeynep YÜCEL
    2021 Volume 38 Issue 4 Pages 4_46-4_52
    Published: October 22, 2021
    Released on J-STAGE: December 22, 2021
    JOURNAL FREE ACCESS

    Recently, automated machine learning (AutoML), which automates pre-processing, model selection, and hyperparameter adjustment, is becoming more and more popular, and it is expected to provide both ease of model construction and high prediction accuracy. In this study, we apply AutoML to software development effort estimation and experimentally evaluate its effectiveness. In our experiments, we employed auto-sklearn, which is an AutoML library, as well as linear multiple regression, elastic net, and random forest for comparison. A comparison of the estimation accuracy of each model by the win-tie-loss method confirmed that auto-sklearn showed the same or better estimation performance than other models. We also summarize the results of analyzing the effect of search time of auto-sklearn on the estimation accuracy.

    Download PDF (478K)
  • Kaisei HANAYAMA, Shinsuke MATSUMOTO, Shinji KUSUMOTO
    2021 Volume 38 Issue 4 Pages 4_53-4_59
    Published: October 22, 2021
    Released on J-STAGE: December 22, 2021
    JOURNAL FREE ACCESS

    Containerization, in which multiple virtual servers (i.e., containers) are built on a single physical server, is widely employed for cost reduction and effective resource utilization. The object of this study is Docker, the de facto standard containerization platform. Containers in Docker are built by writing configuration scripts and creating files called Dockerfile. Managing the infrastructure as code makes it possible to apply knowledge gained from conventional software development to infrastructure configuration. However, infrastructure as code is a relatively new technology, some domains of which have not been fully researched. In this study, we focus on code completion and aim to construct a system that supports the development of dfs. The proposed system applies machine learning with long short-term memory to a pre-collected dataset to create language models and uses model switching to overcome a Docker-specific code completion problem. Evaluation experiments show that the implemented code completion system, hb, has a high average recommendation accuracy of 88.9%.

    Download PDF (1544K)
  • Shogo TOKUI, Norihiro YOSHIDA, Eunjong CHOI, Katsuro INOUE
    2021 Volume 38 Issue 4 Pages 4_60-4_82
    Published: October 22, 2021
    Released on J-STAGE: December 22, 2021
    JOURNAL FREE ACCESS

    A code clone is a code fragment that has identical or similar code fragments to it in the source code. A code clone detector CCVolti has been developed using Cross-Polytope Locality-Sensitive Hashing (LSH). CCVolti can detect not only syntactic clones but also semantic clones, which are difficult to be detected. However, CCVolti has two problems: (1) the detection time depends on Cross-Polytope LSH, and (2) several missed code clones. In this study, we propose an approach to determine Cross-Polytope LSH parameters to obtain a target value of recall given by a user and save as much time as possible. The approach builds a linear regression model that learns suitable parameters based on the size of target projects and then determines appropriate Cross-Polytope LSH parameters for a code clone detection target. Finally, we apply this approach with CCVolti to 20 open source software projects and confirm this approach's effectiveness.

    Download PDF (1460K)
  • [in Japanese]
    2021 Volume 38 Issue 4 Pages 4_84-4_85
    Published: October 22, 2021
    Released on J-STAGE: December 22, 2021
    JOURNAL FREE ACCESS
feedback
Top