The search functionality is under construction.

Author Search Result

[Author] Takashi ISHIO(15hit)

1-15hit
  • Extraction of Library Update History Using Source Code Reuse Detection

    Kanyakorn JEWMAIDANG  Takashi ISHIO  Akinori IHARA  Kenichi MATSUMOTO  Pattara LEELAPRUTE  

     
    LETTER-Software Engineering

      Pubricized:
    2017/12/20
      Vol:
    E101-D No:3
      Page(s):
    799-802

    This paper proposes a method to extract and visualize a library update history in a project. The method identifies reused library versions by comparing source code in a product with existing versions of the library so that developers can understand when their own copy of a library has been copied, modified, and updated.

  • Approximating the Evolution History of Software from Source Code

    Tetsuya KANDA  Takashi ISHIO  Katsuro INOUE  

     
    PAPER-Software Engineering

      Pubricized:
    2015/03/17
      Vol:
    E98-D No:6
      Page(s):
    1185-1193

    Once a software product has been released, a large number of software products may be derived from an original single product. Management and maintenance of product variants are important, but those are hardly cared because developers do not make efforts for the further maintainability in the initial phase of software development. However, history of products would be lost in typical cases and developers have only source code of products in the worst case. In this paper, we approximate the evolution history of software products using source code of them. Our key idea is that two successive products are the most similar pair of products in evolution history, and have many similar source files. We did an experiment to compare the analysis result with actual evolution history. The result shows 78% (on average) of edges in the extracted trees are consistent with the actual evolution history of the products.

  • An Exploration of npm Package Co-Usage Examples from Stack Overflow: A Case Study

    Syful ISLAM  Dong WANG  Raula GAIKOVINA KULA  Takashi ISHIO  Kenichi MATSUMOTO  

     
    PAPER

      Pubricized:
    2021/10/11
      Vol:
    E105-D No:1
      Page(s):
    11-18

    Third-party package usage has become a common practice in contemporary software development. Developers often face different challenges, including choosing the right libraries, installing errors, discrepancies, setting up the environment, and building failures during software development. The risks of maintaining a third-party package are well known, but it is unclear how information from Stack Overflow (SO) can be useful. This paper performed an empirical study to explore npm package co-usage examples from SO. From over 30,000 SO question posts, we extracted 2,100 posts with package usage information and matched them against the 217,934 npm library package. We find that, popular and highly used libraries are not discussed as often in SO. However, we can see that the accepted answers may prove useful, as we believe that the usage examples and executable commands could be reused for tool support.

  • SōjiTantei: Function-Call Reachability Detection of Vulnerable Code for npm Packages

    Bodin CHINTHANET  Raula GAIKOVINA KULA  Rodrigo ELIZA ZAPATA  Takashi ISHIO  Kenichi MATSUMOTO  Akinori IHARA  

     
    LETTER

      Pubricized:
    2021/09/27
      Vol:
    E105-D No:1
      Page(s):
    19-20

    It has become common practice for software projects to adopt third-party dependencies. Developers are encouraged to update any outdated dependency to remain safe from potential threats of vulnerabilities. In this study, we present an approach to aid developers show whether or not a vulnerable code is reachable for JavaScript projects. Our prototype, SōjiTantei, is evaluated in two ways (i) the accuracy when compared to a manual approach and (ii) a larger-scale analysis of 780 clients from 78 security vulnerability cases. The first evaluation shows that SōjiTantei has a high accuracy of 83.3%, with a speed of less than a second analysis per client. The second evaluation reveals that 68 out of the studied 78 vulnerabilities reported having at least one clean client. The study proves that automation is promising with the potential for further improvement.

  • Variable Data-Flow Graph for Lightweight Program Slicing and Visualization

    Yu KASHIMA  Takashi ISHIO  Shogo ETSUDA  Katsuro INOUE  

     
    PAPER-Software Engineering

      Pubricized:
    2015/03/17
      Vol:
    E98-D No:6
      Page(s):
    1194-1205

    To understand the behavior of a program, developers often need to read source code fragments in various modules. System-dependence-graph-based (SDG) program slicing is a good candidate for supporting the investigation of data-flow paths among modules, as SDG is capable of showing the data-dependence of focused program elements. However, this technique has two problems. First, constructing SDG requires heavyweight analysis, so SDG is not suitable for daily uses. Second, the results of SDG-based program slicing are difficult to visualize, as they contain many vertices. In this research, we proposed variable data-flow graphs (VDFG) for use in program slicing techniques. In contrast to SDG, VDFG is created by lightweight analysis because several approximations are used. Furthermore, we propose using the fractal value to visualize VDFG-based program slice in order to reduce the graph complexity for visualization purposes. We performed three experiments that demonstrate the accuracy of VDFG program slicing with fractal value, the size of a visualized program slice, and effectiveness of our tool for source code reading.

  • Semi-Automatically Extracting Features from Source Code of Android Applications

    Tetsuya KANDA  Yuki MANABE  Takashi ISHIO  Makoto MATSUSHITA  Katsuro INOUE  

     
    LETTER-Software Engineering

      Vol:
    E96-D No:12
      Page(s):
    2857-2859

    It is not always easy for an Android user to choose the most suitable application for a particular task from the great number of applications available. In this paper, we propose a semi-automatic approach to extract feature names from Android applications. The case study verifies that we can associate common sequences of Android API calls with feature names.

  • How are IF-Conditional Statements Fixed Through Peer CodeReview?

    Yuki UEDA  Akinori IHARA  Takashi ISHIO  Toshiki HIRAO  Kenichi MATSUMOTO  

     
    PAPER-Software Engineering

      Pubricized:
    2018/08/08
      Vol:
    E101-D No:11
      Page(s):
    2720-2729

    Peer code review is key to ensuring the absence of software defects. To reduce review costs, software developers adopt code convention checking tools that automatically identify maintainability issues in source code. However, these tools do not always address the maintainability issue for a particular project. The goal of this study is to understand how code review fixes conditional statement issues, which are the most frequent changes in software development. We conduct an empirical study to understand if-statement changes through code review. Using review requests in the Qt and OpenStack projects, we analyze changes of the if-conditional statements that are (1) requested to be reviewed, and are (2) revised through code review. We find the most frequently changed symbols are “( )”, “.”, and “!”. We also find project-specific fixing patterns for improving code readability by association rule mining. For example “!” operator is frequently replaced with a function call. These rules are useful for improving a coding convention checker tailored for the projects.

  • Comparison of Backward Slicing Techniques for Java

    Yu KASHIMA  Takashi ISHIO  Katsuro INOUE  

     
    PAPER-Software Engineering

      Pubricized:
    2014/10/03
      Vol:
    E98-D No:1
      Page(s):
    119-130

    Program slicing is an important approach for debugging, program comprehension, impact analysis, etc. There are various program slicing techniques ranging from the lightweight to the more accurate but heavyweight. Comparative analyses are important for selecting the most appropriate technique. This paper presents a comparative study of four backward program slicing techniques for Java. The results show the scalability and precision of these techniques. We develop guidelines that indicate which slicing techniques are appropriate for different situations, based on the results.

  • NCDSearch: Sliding Window-Based Code Clone Search Using Lempel-Ziv Jaccard Distance

    Takashi ISHIO  Naoto MAEDA  Kensuke SHIBUYA  Kenho IWAMOTO  Katsuro INOUE  

     
    PAPER-Software Engineering

      Pubricized:
    2022/02/08
      Vol:
    E105-D No:5
      Page(s):
    973-981

    Software developers may write a number of similar source code fragments including the same mistake in software products. To remove such faulty code fragments, developers inspect code clones if they found a bug in their code. While various code clone detection methods have been proposed to identify clones of either code blocks or functions, those tools do not always fit the code inspection task because a faulty code fragment may be much smaller than code blocks, e.g. a single line of code. To enable developers to search code clones of such a small faulty code fragment in a large-scale software product, we propose a method using Lempel-Ziv Jaccard Distance, which is an approximation of Normalized Compression Distance. We conducted an experiment using an existing research dataset and a user survey in a company. The result shows our method efficiently reports cloned faulty code fragments and the performance is acceptable for software developers.

  • Improvement in Method Verb Recommendation Technique Using Association Rule Mining

    Yuki KASHIWABARA  Takashi ISHIO  Katsuro INOUE  

     
    LETTER-Software Engineering

      Pubricized:
    2015/08/13
      Vol:
    E98-D No:11
      Page(s):
    1982-1985

    In a previous study, we proposed a technique to recommend candidate verbs for a method name so that developers can consistently use various verbs. In this study, we improve the rule extraction technique proposed in this previous study. Moreover, we confirm that the rank of each correct verb recommended by the new technique is higher than that by the previous technique.

  • Method Verb Recommendation Using Association Rule Mining in a Set of Existing Projects

    Yuki KASHIWABARA  Takashi ISHIO  Hideaki HATA  Katsuro INOUE  

     
    PAPER-Software Engineering

      Pubricized:
    2014/12/16
      Vol:
    E98-D No:3
      Page(s):
    627-636

    It is well-known that program readability is important for maintenance tasks. Method names are important identifiers for program readability because they are used for understanding the behavior of methods without reading a part of the program. Although developers can create a method name by arbitrarily choosing a verb and objects, the names are expected to represent the behavior consistently. However, it is not easy for developers to choose verbs and objects consistently since each developer may have a different notion of a suitable lexicon for method names. In this paper, we propose a technique to recommend candidate verbs for a method name so that developers can use various verbs consistently. We recommend candidate verbs likely to be used as a part of a method name, using association rules extracted from existing methods. To evaluate our technique, we have extracted rules from 445 open source projects written in Java and confirmed the accuracy of our approach by applying the extracted rules to several open source applications. As a result, we found that 84.9% of the considered methods in four projects are recommended the existing verb. Moreover, we found that 73.2% of the actual renamed methods in six projects are recommended the correct verb.

  • Towards Logging Optimization for Dynamic Object Process Graph Construction

    Takashi ISHIO  Hiroki WAKISAKA  Yuki MANABE  Katsuro INOUE  

     
    LETTER-Software System

      Vol:
    E96-D No:11
      Page(s):
    2470-2472

    Logging the execution process of a program is a popular activity for practical program understanding. However, understanding the behavior of a program from a complete execution trace is difficult because a system may generate a substantial number of runtime events. To focus on a small subset of runtime events, a dynamic object process graph (DOPG) has been proposed. Although a DOPG can potentially facilitate program understanding, the logging process has not been adapted for DOPGs. If a developer is interested in the behavior of a particular object, only the runtime events related to the object are necessary to construct a DOPG. The vast majority of runtime events in a complete execution trace are irrelevant to the interesting object. This paper analyzes actual DOPGs and reports that a logging tool can be optimized to record only the runtime events related to a particular object specified by a developer.

  • Dependency-Based Extraction of Conditional Statements for Understanding Business Rules

    Tomomi HATANO  Takashi ISHIO  Joji OKADA  Yuji SAKATA  Katsuro INOUE  

     
    PAPER-Software Engineering

      Pubricized:
    2016/01/08
      Vol:
    E99-D No:4
      Page(s):
    1117-1126

    For the maintenance of a business system, developers must understand the business rules implemented in the system. One type of business rules defines computational business rules; they represent how an output value of a feature is computed from the valid inputs. Unfortunately, understanding business rules is a tedious and error-prone activity. We propose a program-dependence analysis technique tailored to understanding computational business rules. Given a variable representing an output, the proposed technique extracts the conditional statements that may affect the computation of the output. To evaluate the usefulness of the technique, we conducted an experiment with eight developers in one company. The results confirm that the proposed technique enables developers to accurately identify conditional statements corresponding to computational business rules. Furthermore, we compare the number of conditional statements extracted by the proposed technique and program slicing. We conclude that the proposed technique, in general, is more effective than program slicing.

  • Visualization of Inter-Module Dataflow through Global Variables for Source Code Review

    Naoto ISHIDA  Takashi ISHIO  Yuta NAKAMURA  Shinji KAWAGUCHI  Tetsuya KANDA  Katsuro INOUE  

     
    LETTER-Software System

      Pubricized:
    2018/09/26
      Vol:
    E101-D No:12
      Page(s):
    3238-3241

    Defects in spacecraft software may result in loss of life and serious economic damage. To avoid such consequences, the software development process incorporates code review activity. A code review conducted by a third-party organization independently of a software development team can effectively identify defects in software. However, such review activity is difficult for third-party reviewers, because they need to understand the entire structure of the code within a limited time and without prior knowledge. In this study, we propose a tool to visualize inter-module dataflow for source code of spacecraft software systems. To evaluate the method, an autonomous rover control program was reviewed using this visualization. While the tool does not decreases the time required for a code review, the reviewers considered the visualization to be effective for reviewing code.

  • An Empirical Study of Package Management Issues via Stack Overflow

    Syful ISLAM  Raula GAIKOVINA KULA  Christoph TREUDE  Bodin CHINTHANET  Takashi ISHIO  Kenichi MATSUMOTO  

     
    PAPER

      Pubricized:
    2022/11/18
      Vol:
    E106-D No:2
      Page(s):
    138-147

    The package manager (PM) is crucial to most technology stacks, acting as a broker to ensure that a verified dependency package is correctly installed, configured, or removed from an application. Diversity in technology stacks has led to dozens of PMs with various features. While our recent study indicates that package management features of PM are related to end-user experiences, it is unclear what those issues are and what information is required to resolve them. In this paper, we have investigated PM issues faced by end-users through an empirical study of content on Stack Overflow (SO). We carried out a qualitative analysis of 1,131 questions and their accepted answer posts for three popular PMs (i.e., Maven, npm, and NuGet) to identify issue types, underlying causes, and their resolutions. Our results confirm that end-users struggle with PM tool usage (approximately 64-72%). We observe that most issues are raised by end-users due to lack of instructions and errors messages from PM tools. In terms of issue resolution, we find that external link sharing is the most common practice to resolve PM issues. Additionally, we observe that links pointing to useful resources (i.e., official documentation websites, tutorials, etc.) are most frequently shared, indicating the potential for tool support and the ability to provide relevant information for PM end-users.