Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Katsuro Inoue is active.

Publication


Featured researches published by Katsuro Inoue.


IEEE Transactions on Software Engineering | 2002

CCFinder: a multilinguistic token-based code clone detection system for large scale source code

Toshihiro Kamiya; Shinji Kusumoto; Katsuro Inoue

A code clone is a code portion in source files that is identical or similar to another. Since code clones are believed to reduce the maintainability of software, several code clone detection techniques and tools have been proposed. This paper proposes a new clone detection technique, which consists of the transformation of input source text and a token-by-token comparison. For its implementation with several useful optimization techniques, we have developed a tool, named CCFinder (Code Clone Finder), which extracts code clones in C, C++, Java, COBOL and other source files. In addition, metrics for the code clones have been developed. In order to evaluate the usefulness of CCFinder and metrics, we conducted several case studies where we applied the new tool to the source code of JDK, FreeBSD, NetBSD, Linux, and many other systems. As a result, CCFinder has effectively found clones and the metrics have been able to effectively identify the characteristics of the systems. In addition, we have compared the proposed technique with other clone detection techniques.


IEEE Transactions on Software Engineering | 2005

Ranking significance of software components based on use relations

Katsuro Inoue; Reishi Yokomori; Tetsuo Yamamoto; Makoto Matsushita; Shinji Kusumoto

Collections of already developed programs are important resources for efficient development of reliable software systems. In this paper, we propose a novel graph-representation model of a software component library (repository), called component rank model. This is based on analyzing actual usage relations of the components and propagating the significance through the usage relations. Using the component rank model, we have developed a Java class retrieval system named SPARS-J and applied SPARS-J to various collections of Java files. The result shows that SPARS-J gives a higher rank to components that are used more frequently. As a result, software engineers looking for a component have a better chance of finding it quickly. SPARS-J has been used by two companies, and has produced promising results.


international conference on software engineering | 2007

Very-Large Scale Code Clone Analysis and Visualization of Open Source Programs Using Distributed CCFinder: D-CCFinder

Simone Livieri; Yoshiki Higo; Makoto Matushita; Katsuro Inoue

The increasing performance-price ratio of computer hardware makes possible to explore a distributed approach at code clone analysis. This paper presents D-CCFinder, a distributed approach at large-scale code clone analysis. D-CCFinder has been implemented with 80 PC workstations in our student laboratory, and a vast collection of open source software with about 400 million lines in total has been analyzed with it in about 2 days. The result has been visualized as a scatter plot, which showed the presence of frequently used code as easy recognizable patterns. Also, D-CCFinder has been used to analyze a single software system against the whole collection in order to explore the presence of code imported from open source software.


computer software and applications conference | 2000

A practical method for watermarking Java programs

Akito Monden; Hajimu Iida; Ken-ichi Matsumoto; Katsuro Inoue; Koji Torii

Java programs distributed through the Internet are now suffering from program theft. This is because Java programs can be easily decomposed into reusable class files and even decompiled into source code by program users. We propose a practical method that discourages program theft by embedding Java programs with a digital watermark. Embedding a program developers copyright notation as a watermark in Java class files will ensure the legal ownership of class files. Our embedding method is indiscernible by program users, yet enables us to identify an illegal program that contains stolen class files. The result of the experiment to evaluate our method showed most of the watermarks (20 out of 23) embedded in class files survived two kinds of attacks that attempt to erase watermarks: an obfuscactor attack, and a decompile-recompile attack.


international conference on software engineering | 2003

Component rank: relative significance rank for software component search

Katsuro Inoue; Reishi Yokomori; Hikaru Fujiwara; Tetsuo Yamamoto; Makoto Matsushita; Shinji Kusumoto

Collections of already developed programs are important resources for efficient development of reliable software systems. In this paper, we propose a novel method of ranking software components, called Component Rank, based on analyzing actual use relations among the components and propagating the significance through the use relations. We have developed a component-rank computation system, and applied it to various Java programs. The result is promising such that non-specific and generic components are ranked high. Using the Component Rank system as a core part, we are currently developing Software Product Archiving, analyzing, and Retrieving System named SPARS.


ieee international software metrics symposium | 2002

Gemini: maintenance support environment based on code clone analysis

Yasushi Ueda; Toshihiro Kamiya; Shinji Kusumoto; Katsuro Inoue

Maintaining software systems is becoming a more complex and difficult task, as the scale becomes larger. It is generally said that code cloning is one of the factors that make software maintenance difficult. A code clone is a code portion in source files that is identical or similar to another. If some faults are found in a code clone, it is necessary to correct the faults in its all code clones. However for large scale software, it is very difficult to correct them completely. We develop a maintenance support environment, called Gemini, which visualizes the code clone information from a code clone detection tool, CCFinder. Using Gemini, we can specify a set of distinctive code clones through the GUI (scatter plot and metrics graph about code clones), and refer the fragments of source code corresponding to the clone on the plot or graph.


ieee international software metrics symposium | 1999

Function point measurement tool for UML design specification

Takuya Uemura; Shinji Kusumoto; Katsuro Inoue

Function point analysis (FPA) was originally proposed to help measure the size of a computerized business information system. It is now widely used in actual software development. However, it has been reported that, since function point counting involves judgment on the part of the counter, some differences would be caused between copies of the same product, even within the same organization. In this paper, we propose detailed FPA measurement rules for design specifications based on UML (Unified Modeling Language) and we develop a function point measurement tool, whose input products are design specifications on Rational Rose. We have also applied the tool in an actual design specification and have examined the difference between the values obtained using the tool and those given by an FPA specialist. The results show the applicability of our tool.


Empirical Software Engineering | 2002

Experimental Evaluation of Program Slicing for Fault Localization

Shinji Kusumoto; Akira Nishimatsu; Keisuke Nishie; Katsuro Inoue

Debugging large and complex software systems requires significant effort since it is very difficult to localize and identify faults. Program slicing has been proposed to efficiently localize faults in the program. Despite the fact that a number of debug systems using program slicing, have been developed, the usefulness of this method to fault localization has not been sufficiently evaluated. This paper aims to experimentally evaluate the usefulness of the program slicing method to fault localization. In order to conduct the experiment, we first developed a debug tool based on program slicing, after which two experimental projects were conducted, in which subjects (debuggers) were divided into two groups. A program that includes several faults is given to each subject of the group. Each subject in Group 1 localizes the faults by using the slicing-based method, whereas in Group 2 each subject localizes the faults by using the conventional debugger-based method. Finally, the effectiveness of program slicing is analyzed by comparing the data collected from both groups. As the results of these experiments, we confirm that the program slicing method is indeed useful to localize program faults.


ACM Transactions on Programming Languages and Systems | 1988

Analysis of functional programs to detect run-time garbage cells

Katsuro Inoue; Hiroyuki Seki; Hikaru Yagi

We propose a method for detecting the generation of garbage cells by analyzing a source text written in a functional programming language which uses ordinary linked lists to implement list-type values. For a subexpression such as <italic>F</italic>(<italic>G</italic>( . . . )) in a program where the function values of <italic>F</italic> and <italic>G</italic> are of list type, if a cell <italic>c</italic> is created during the computation of <italic>G</italic> and if <italic>c</italic> does not appear in a list-type value of <italic>F</italic>, then <italic>c</italic> becomes a garbage cell at the end of the computation of <italic>F</italic>. We discuss this problem on the basis of formal languages derived from the functional program text and show some sufficient conditions that predict the generation of garbage cells. Also, we give an efficient algorithm to detect at compile time the generation of garbage cells which are linearly linked. We have implemented these algorithms in an experimental LISP system. By executing several sample programs on the system, we conclude that our method is effective in detecting the generation of garbage cells.


product focused software process improvement | 2004

Refactoring Support Based on Code Clone Analysis

Yoshiki Higo; Toshihiro Kamiya; Shinji Kusumoto; Katsuro Inoue

Software maintenance is the most expensive activity in software development. Many software companies spent a large amount of cost to maintain the existing software systems. In perfective maintenance, refactoring has often been applied to the software to improve the understandability and complexity. One of the targets of refactoring is code clone. A code clone is a code fragment in a source code that is identical or similar to another. In an actual software development process, code clones are introduced because of various reasons such as reusing code by ‘copy-and-paste’ and so on. Code clones are one of the factors that make software maintenance difficult. In this paper, we propose a method which removes code clones from object oriented software by using existing refactoring patterns, especially “Extract Method” and “Pull Up Method”. Then, we have implemented a refactoring supporting tool based on the proposed method. Finally, we have applied the tool to an open source program and actually perform refactoring.

Collaboration


Dive into the Katsuro Inoue's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Eunjong Choi

Nara Institute of Science and Technology

View shared research outputs
Top Co-Authors

Avatar

Koji Torii

National Archives and Records Administration

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge