Toshihiro Kamiya

Toshihiro Kamiya
Shimane University · Department of Mathematics and Computer Science

Ph.D Eng.

About

64
Publications
11,781
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
2,314
Citations
Introduction
Toshihiro Kamiya currently works at the Department of Mathematics and Computer Science, Shimane University. Toshihiro does research in Program Analysis, Software Engineering.
Additional affiliations
October 2015 - present
Shimane University
Position
  • Professor
April 2010 - September 2015
Future University Hakodate
Position
  • Professor (Associate)
April 2005 - March 2010
National Institute of Advanced Industrial Science and Technology
Position
  • Researcher
Education
April 1996 - March 2001
Graduate School, Osaka University
Field of study
  • Software Engineering

Publications

Publications (64)
Preprint
Investigating the code fragments of code clones detected by code clone detection tools is a time-consuming task, especially when a large number of reference source files are available. This paper proposes (i) a method for clustering a clone class, which is detected by code clone detection tools using syntactic similarity, based on topic similarity...
Chapter
CCFinderX is a successor tool that advances the concepts of CCFinder (2002) and Gemini (2002), and is a standalone environment for code clone detection and analysis. CCFinderX is designed as an interactive analysis environment that allows users to switch between views of scatter plot, file, metrics, and source text, for applying to large code bodie...
Conference Paper
Full-text available
Understanding modifications to a software product is essential in software maintenance. To help programmers understand modifications, especially how code changes in a refac-toring, this paper presents a semi-automated dynamic analysis to compare two revisions of a product. The approach basically detects "similar but different" sub-tree pairs betwee...
Conference Paper
Full-text available
This paper presents topics introducing “parameter sensitivity” in a dynamic code-clone detection. First, this paper briefly describes a dynamic code-clone detection method and possible implementation of parameter sensitivity in the method. Second, this paper describes three topics of parameter sensitivity: untangling clones, introducing value seman...
Data
Including two files: * codeskip.py: A new implementation to extract code skip data from a svn repository. * skip-data-of-svnmirror-base-r179637.txt.gz: A result which apply the tool to a [BSD OS repository](http://challenge.softwareprocess.es/svnmirror-base-r179637.tbz2).
Conference Paper
Full-text available
This paper presents a code-clone detection and its analysis method, based on an execution-semantic and arbitrary-granularity model[8] of code fragments The principal goal of introducing the proposed detection method is to provide a code-clone detection method suitable for programming languages, where software developers can define their own " contr...
Conference Paper
Full-text available
This paper presents a code-search method, which includes an algorithm of keyword code-search and a prototype implementation. In this paper, a query is a set of keywords and a search result is a set of execution paths fulfilling the query, that is, each of the execution paths includes all of the keywords. Here, an execution path represents one of al...
Article
This paper presents a clone-detection method/tool currently under devel- opment. This tool is useful as a code-clone search through the entire lifecycle of a software product; The tool searches code examples and analyzes of code clones in both preventive and postmortem ways[LRHK10]. The approach is based on a sequence equivalence on execution paths...
Conference Paper
Full-text available
Agec is a semantic code-clone detection tool from Java bytecode, which (1) applies a kind of abstract interpretation to bytecode as a static analysis, in order to generate n-grams of possible execution traces, (2) detects the same n-grams from distinct places of the bytecode, and (3) then reports these n-grams as code clones. The strengths of the t...
Article
Full-text available
To improve clone-detection methods and to enable new analysis methods with clone detection, e.g., to detect a wider range of bad smells and anti-patterns, this paper introduces a concept context clone, in a form comparable to the (traditional) content clone. A context clone is based on the similarity of the contexts in which code fragment is used,...
Conference Paper
Full-text available
This paper explores the need for 'history-aware' searches, by experimentally showing a development process that includes code fragments which disappear at a revision and appear again at a later revision. Some of these code re-appearances are not a result of a revert command of a version control system, but a result of a developer who copied a code...
Conference Paper
Full-text available
To answer the question, "Which kind of code clone has deleterious effects on maintainability?" this paper proposes a classification of code clones with a configuration (or Makefile) that determines which set of source files are compiled and linked.
Conference Paper
Full-text available
The (extended position) paper discusses the reason why keyword-based search engines may not be effective in code search, and shows an case study where which kind of concepts in source code can be effectively searched by keyword code search engines.
Conference Paper
This paper presents a novel design of search tools in reverse engineering, which enables describing core searching tasks (such as pattern searching, extraction, filtering, etc.) in a separated way from the management task of location data (such as line number or file name). By using example programs with a prototype implementation, we explain how t...
Article
Full-text available
This (extended) position paper describes a future perspective of code-clone detection and analysis me- thods, in which code-clone detection and analysis me- thods are interoperated, or integrated with various kinds of analysis methods, in order to open new possi- bilities of research and applications.
Conference Paper
Full-text available
This tool demo presents a tool prototype named VACI, which extracts relations between identifiers and their contexts in source code, and classifies (sets of) identifier names. The tool has two features; the first feature analyzes software for refactorings to enable users to check the adequateness of identifier names with context information. The se...
Article
Maintaining software systems is becoming more difficult as the size and complexity of software increase. One factor that complicates software maintenance is the presence of code clones. A code clone is a code fragment that has identical or similar code fragments to it in the source code. Code clones are introduced for various reasons such as reusin...
Article
Given two software systems, it is important to be able to objectively know how much those systems differ. However, it has not been easy to quantitatively measure the mutual differences between two systems. In this paper, the authors introduced similarity metrics for the similarity between software systems and the Similarity Metrics Measuring Tool (...
Article
A software system developed by object-oriented programming operates by message exchanges among the objects allocated by the system. To understand such system behavior we need to grasp how the objects are communicating. However, it is difficult to understand the behavior of such system, since it has many elements determined dynamically, and many obj...
Article
Full-text available
It is generally said that code clones are one of the factors to make software maintenace difficult. They are pairs or sets of code portions in source files that are identical or similar to each other. If some bugs are found in a code portion, it is nessesary to correct them in its all clones. However, in large-scale sofrware, it is very difficult t...
Article
Full-text available
This report summarizes the proceedings of a workshop discussion session presentation and visualization of aspects relating to duplicated, copied, or cloned code. The main outcomes of the working session were: (a) a realization that two researchers had independently generated very similar methods for browsing and visualization clone "clusters," and...
Conference Paper
Full-text available
Assertion checking is a powerful tool to detect software faults during debugging, testing and maintenance. Although assertion documents the behavior of one component, it is hard to document relations and interactions among several objects since such assertion statements are spread across the modules. Therefore, we propose to modularize such asserti...
Conference Paper
Full-text available
Generally, code clones are regarded as one of the factors that make software maintenance more difficult. A code clone is a set of source code fragments identical or similar to each other from the viewpoint of software maintainability, code clones should be removed. However, sometimes there are dependency relations among each of which belong to the...
Conference Paper
Full-text available
A software system is changed many times. When we try to change software, we must understand how the software is implemented, especially the functions to be modified. However, such repeated changes may cause situations in which there is no document which reflects the changes and represents the behavior of the software correctly. So, it is important...
Conference Paper
In this paper, we explain our refactoring support tool Aries. Aries characterizes code clones by several metrics, and suggests how to remove them.
Conference Paper
Full-text available
Abstract It is an important and intriguing issue to know the quantitative similarity of large software systems. In this paper, a similarity metric between two sets of source code files based on the correspondence of overall source code lines is proposed. A Software similarity MeAsurement Tool SMAT was developed and applied to various versions of an...
Article
Full-text available
The code clone (a duplicated code section in the source files of software) is one of the factors that complicate software maintenance. However, few empirical studies have analyzed the status quo of code clones. In this paper we conduct an extensive analysis of code clones using 125 packages of open source software written in C language, and suggest...
Article
Full-text available
In this paper, we explain our refactoring support tool Aries. Aries characterizes code clones by several metrics, and suggests how to remove them.
Conference Paper
Full-text available
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...
Article
Full-text available
Recently, code clone has been regarded as one of factors that make software maintenance more di#cult. A code clone is a code fragment in a source code that is identical or similar to another. For example, if we modify a code fragment which has code clones, it is necessary to consider whether we have to modify each of its code clones. There are two...
Article
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...
Article
Full-text available
ion extended for AOP. In this manuscript, we use an example of a file updater class written in Java. This class has one public method update_file and three private methods called from the public method. Programmers have some assumptions in the method and each assumption is described as a comment with the keyword ASSUMPTION. 1 class FileUpdater { Fi...
Conference Paper
Full-text available
Code clone has been regarded as one of factors that make software maintenance more difficult. A code clone is a code fragment in a source code that is identical or simi- lar to another. For example, if we modify a code fragment which has code clones, it is necessary to consider whether we have to modify each of its code clones. Hence, removal of co...
Article
Full-text available
Software maintenance is the most expensive activity in software development process. It have been reported that many software companies spent a large amount of cost to maintain the existing systems. Refactoring is an effective technique to conduct the perfective maintenance. It is de-fined as "the process of changing a software system in such a way...
Conference Paper
Full-text available
Maintaining software systems is getting more complex and difficult task. Code clone is one of the factors that make software maintenance more 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. We ha...
Article
Full-text available
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 t...
Article
Full-text available
It is an important and intriguing issue to know the quantitative similarity of large software systems. In this paper, a similarity metric between two sets of source code files based on the correspondence of overall source code lines is proposed. A Software similarity MeAsurement Tool SMAT was developed and applied to various versions of an operatin...
Conference Paper
Full-text available
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 necess...
Conference Paper
Full-text available
It is generally accepted that a code clone is one factor making software maintenance difficult. A code clone is a code portion in source files that is identical or similar to another. Clones are introduced because of various reasons such as reusing code by 'copy-and-paste' and so on. Since developers usually modify the copied-and-pasted code portio...
Conference Paper
Full-text available
Existing research suggests that the code clone (duplicated code) is one of the factors that degrades the design and the structure of software and lowers the software quality such as readability and changeability. However, the influence of code clones on software quality has not been quantitatively clarified yet. We have tried to quantitatively clar...
Article
Full-text available
Abstract In this paper, we present a maintenance support environ- ment based on code clone analysis, called Gemini.
Article
Full-text available
Object-oriented paradigm is widely adopted in software development, but it has its own problem to make such software evolution difficult. In this paper, I will propose a new paradigm named SOMA (solid object and medium artifact) as a variation of OO paradigm, which enables dynamic and robust evolution of software products. Operations to modify soft...
Conference Paper
Full-text available
This paper describes two software maintenance support tools, CCFinder (Code Clone Finder) and JAAT (Java Alias Analysis Tool), for Java programs. CCFinder identifies code clones in Java programs, while JAAT executes alias analysis for Java programs.
Article
Introduction WMC(Weighted Method per Class) is one of the Chidh berand Kemerer's metrics (C&K metrics) which are the most well-known complexity metrics for objectoriented software.WMC measures the complexity of the target classand isd.BzI as the total complexity of the method includF in the class.However, what is the complexity of a method has not...
Article
Full-text available
A code clone is a code portion in source files that is identical or similar to another. Since code clones generally reduce maintainability of software, several code clone detection techniques and tools have been proposed. This paper proposes a new clone detection technique, which consists of transformation of input source text and token-by-token co...
Article
Full-text available
Measuring software products and processes is essential for improving software productivity and quality. In order to evaluate the complexity of object-oriented software, several complexity metrics have been proposed. Among them, Chidamber and Kemerer’s metrics are the most well-known for object-oriented software. Their metrics evaluate the complexit...
Conference Paper
Full-text available
To analyze the complexity of object-oriented software, several metrics have been proposed. Among them, Chi- damber and Kemerer's metrics are well-known ones as object-oriented metrics. Also, the effectiveness has been empirically evaluated from the viewpoints of estimating the fault-proneness of object-oriented software. In the evaluations, their m...
Article
Full-text available
Measuring software product and the development process is essential for improving software productivity and quality. Software metrics are quantitative measures of software products and process. For example, complexity metrics are used to evaluate maintenance difficulty of a program. In order to evaluate the complexity of object-oriented program, se...
Article
Full-text available
The tool named IIAnalyzer is a reverse engineering tool for programs written in Java. By identifying and analyzing interactions between the objects that are instantiated in a program execution, the tool presents the user with diagrams helpful in understanding a dynamic structure and characteristics of the target program. The current version provide...
Article
Full-text available
It is generally said that code clone is a factor to make software maintenance difficult. A code clone is the set of code portions in source files that are identical or similar to another. If we make some changes in such a code portion, it might be necessary to apply the same changes in its clones. A code clone introduced by 'copy-and-paste' reusing...
Article
Full-text available
Existing researches suggest that the code clone (duplicated code section) is one of the factors that degrades the design and structure of software and lowers the various quality attributes. However, the influence of code clones on software quality has not been quantitatively clari- fied yet. In this paper, we quantitatively analyzed the relation be...
Article
Full-text available
This report summarizes the proceedings of a workshop dis- cussion session presentation and visualization of aspects relating to dupli- cated, copied, or cloned code. The main outcomes of the working session were: (a) a realization that two researchers had independently generated very similar methods for browsing and visualization clone "clusters",...
Article
Full-text available
Abstract Recently, code clone has been regarded as one of factors that make software maintenance more dicult. A code clone is a code fragment in a source code that is identical or similar to another. For example, if we modify a code fragment which has code clones, it is necessary to consider whether we have to modify each of its code clones. There...
Article
Full-text available
Interactive systems that support intellectual creative tasks require not only to be useful and usable by satisfying their targeted functionalities, but also to be desirable for individual users by providing appropriate interaction styles. This paper proposes a descriptive formal language, CHIOPA (Computer-Human Interaction on Objects, Properties, a...

Network

Cited By

Projects

Projects (2)
Project
Build a program analysis framework including multiple development techniques, including programming language, SQL, http (web), etc. The program analysis framework enables to analyze a software product including multiple techniques (thus multiple semantics) in an integrated way. Apply it to programming maintenance tasks, e.g. debugging and refactoring.