Naoya Nitta

dblp:22/6397 · DBLP profile ↗
← Back
17ranked-venue papers
8as first author
2since 2021 · last 2021
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 10 · 4 first-author · 2 since 2021Artificial intelligence and machine learning · 3 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 3 · 1 first-authorSecurity and privacy · 2 · 2 first-authorHuman-computer interaction and ubiquitous computing · 2Theory of computation · 1 · 1 first-author
YearPublicationVenuePosition
2021 Towards a Dynamic Visualization of Complex Reverse-Engineered Object Collaboration
abstract
UML is useful to model a higher abstraction level concepts of the software in a forward engineering context, but it is still challenging to reverse engineer more complex behavior of realistic object-oriented programs (OOPs) based on such visualization techniques. For example in a sequence diagram, an object appears in quite different ways when it serves as a sender or receiver of some message and as a parameter or return value of another message, and thus compound method invocations such as invocation chains and callbacks cannot be represented directly. In this paper, first, we define a dynamic metrics named alternation complexity that indicates the number of alternations of object roles between sender/receiver and parameter/return value within collaboration. Through experiments with 12 professional programmers, we confirmed that the metrics captures a certain aspect of difficulty in comprehending features. Furthermore, we present a dynamic visualization model to directly represent collaboration where the types of object roles frequently change.
Aki Hongo, Naoya Nitta
APSEC2
2021 A Method to Comprehend Feature Dependencies Based on Semi-Static Structures
abstract
To understand why features of existing software can depend on each other is important for correct addition of a new feature to the software. Although some work has been done to detect feature dependency, it is not clear how effective such existing approaches are when they are applied to feature dependency comprehension because they are aimed at detection of runtime dependency between features. Therefore in this paper, we present an extraction method of source code that can be used to comprehend feature dependency. The method can extract a wider range of source code than existing techniques of feature dependency detection by using delta extraction. We conducted a controlled experiment with 20 professional programmers and confirmed that the difference of the extracted range has a positive effect on feature dependency comprehension. To figure out an internal mechanism to enable feature dependency, we also defined semi-static parts of object graphs that can be used to make features depend on each other. Finally, we confirmed that semi-static structures are actually used in feature dependencies in three open source programs and can be effectively extracted by our method.
Narumasa Kande, Naoya Nitta
ICSME2
2017 Constraints Based Approach to Interactive Feature Location
abstract
Feature location is a maintenance task to identify the implementation of a feature within the source code. To automate or support the task, extensive studies have been conducted on feature location techniques. In this paper, we focus on certain static and dynamic constraints regarding feature additions to object-oriented programs, and construct an interactive feature location procedure based on the constraints. We manually conducted a case study for several features of a real-world program on the assumption that the user always correctly answers the questions asked by the procedure. The results show that over 75% of the feature's implementation could be efficiently covered by the procedure with relatively small number of execution traces.
Daiki Fujioka, Naoya Nitta
ICSME2
2017 Experiences of debugger-based architecture comprehension
abstract
Architecture comprehension is crucial for appropriately maintaining, evolving and reusing large scale software. However, in an actual software development, architecture descriptions are often insufficient, obsoleted or at worst missing, and most of the maintenance tasks are performed without sufficient understanding of the architecture. While many techniques to extract architectural information from existing source code have been proposed to support architecture comprehension, debuggers are still powerful for more exact comprehension of architectures. However, a debugger-based comprehension task usually becomes complicated and cumbersome. In this paper, we study debugger-based manual comprehension processes of real-world architectures. Through the case studies, we found that manual comprehension processes are basically driven by backward tracking of runtime flow of multiple non-primitive objects and such tracking task is cumbersome and time-consuming when only a debugger is available. We expect that the experiences of the case studies will be beneficial to exploring a dynamic analysis approach which can support exact comprehension of architectures.
Naoya Nitta
SNPD1
2016 A formal approach for guiding architecture design with data constraints
abstract
The data managed in a software system is often controlled to behave dependently. Basically, dependent parts of the data can be controlled through their internal connections. However in a real-world system, dependencies among the data and its required behaviors are generally complex and designing its internal structure and control mechanism to satisfy all requirements becomes challenging. To cope with the problem, in this paper, we present a formal approach to guide an architecture design process so that given execution scenarios can be satisfied through iterative refinement of constraints among the data. For case studies, we applied our approach to a customer management system and a 3D game framework, and confirmed that a valid architectural design guide can be obtained.
Naoya Nitta
ICIS1
2016 Composite Refactoring for Decoupling Multiple Classes
abstract
An architecture level change of existing software requires tedious, error-prone and time-consuming tasks. However, current Integrated Development Environments (IDEs) do not support such high-level refactorings. In this paper, we present a scalable but simple composite refactoring for decoupling multiple classes. In addition, we introduce several primitive refactorings as components of the composite refactoring. The details of the results of applying our composite refactoring to an actual architectural change are also reported in this paper.
Yusuke Takahashi, Naoya Nitta
SANER2
2015 Delta extraction: An abstraction technique to comprehend why two objects could be related
abstract
In an execution of a large scale program, even a simple observable behavior may be generated by a wide range of the source code. To comprehend how such a behavior is implemented in the code, a debugger would be helpful. However, when using a debugger, developers often encounter several types of cumbersome tasks and are often confused by the huge and complicated runtime information. To support such a debugger-based comprehension task, we propose an abstraction technique of runtime information, named delta, and present a delta extraction and visualization tool. Basically, a delta is defined for two linked objects in an object-oriented program's execution. It intuitively represents the reason why these objects could be related in the execution, and it can hide the details of how these objects were related. We have conducted experiments on four subject tasks from two real-world systems to evaluate how appropriately an extracted delta can answer the `why' question and how long the tool can reduce the working time to answer the question. The results show that each delta can successfully answer the question and a tens-of-minutes to one-hour debugger-based task can be reduced by extracting a delta.
Naoya Nitta, Tomohiro Matsuoka
ICSME1
2014 Identifying Mandatory Code for Framework Use via a Single Application Trace
Naoya Nitta, Izuru Kume, Yasuhiro Takemura
ECOOP1
2014 Toward a dynamic analysis technique to locate framework misuses that cause unexpected side effects
abstract
Recently many frameworks are used in software development without proper documentation, and are misused by application developers in calling framework APIs. Debugging a failure caused by a wrong API call is difficult and requires a proper supporting technique. In our preceding study we developed a dynamic analysis technique to detect possibly unexpected side effects that cause failures. In this paper, we introduce a case study to identify a wrong API call using this technique.
Izuru Kume, Masahide Nakamura, Naoya Nitta, Etsuya Shibayama
SNPD3
2013 A Method for Early Detection of Mismatches between Framework Architecture and Execution Scenarios
abstract
Recently, application frameworks are widely used to facilitate software development. However in a real-world application development, potential mismatches between a selected framework and the application's specification often remain undetected until late in the development process. Especially if an architecture level mismatch between them is left unresolved, then enormous implementation level effort to suppress the mismatch and/or modification of the framework's internal implementation would be needed. To avoid the problems, we present a method to detect architectural mismatch between a selected framework and the execution scenarios of the application to develop before its implementation process. In this paper, we have evaluated two 3D game frameworks using our method for a case study, and have identified several problems to implement a certain game application.
Naoya Nitta, Izuru Kume, Yasuhiro Takemura
APSEC (1)1
2013 A Feature Model of Framework Applications
abstract
Learning how to use application frameworks effectively becomes important in their widespread use in software development. Learning frameworks is often difficult because of lack of their documentation and their complexity. In order to help framework learning, we propose a behavioral model, called feature component model, which abstracts internal behaviors of framework applications in terms of their behavioral characteristics such as inversion of controls. We apply our behavioral model to an example misuse of a practical framework developed by a third party in order to show its practical usefulness.
Izuru Kume, Masahide Nakamura, Naoya Nitta, Etsuya Shibayama
SNPD3
2012 Work in progress: Analysis of the relationship between teaching contents and motivation in programming education
abstract
In this research the motivational levels of the students in a social welfare department while learning computer programming were analyzed relative to the contents that were taught in each lesson. The introductory programming course was game-based, and Java language was used with Eclipse as the Integrated Development Environment (IDE). The lessons were designed in such a way that as the students finished more and more assignments they were nearing completion of the Tetris game. The motivation levels were measured using a questionnaire based on the ARCS motivation model, which has four factors: Attention, Relevance, Confidence, and Satisfaction. As a result, it was found that the motivation of the students changes according to the lesson content.
Hidekuni Tsukamoto, Yasuhiro Takemura, Hideo Nagumo, Naoya Nitta
FIE4
2012 Change of Students' Motivation in an Introductory Programming Course for Non-computing Majors
abstract
In this research, the motivational aspects of the students while learning introductory programming was monitored and analyzed. The students were in the social welfare department, and the programming language used was Java and Processing. Monitoring students' motivation throughout the course was found to be important because, by doing so, the weak points in the syllabus could be found and modified. It was also found to be important to devise topics relevant to the students, and to adjust the level of difficulty of the assignments so that the students can feel confident studying.
Hidekuni Tsukamoto, Hideo Nagumo, Yasuhiro Takemura, Naoya Nitta
ICALT4
2006 A Method for Creating Teaching Materials of Practical Object-Oriented Methods Education
Izuru Kume, Naoya Nitta, Yasuhiro Takemura
ICCE2
2003 An Extension of Pushdown System and Its Model Checking Method
Naoya Nitta, Hiroyuki Seki
CONCUR1
2001 An efficient security verification method for programs with stack inspection
abstract
Stack inspection is a key technology for runtime access control of programs in a network environment. In this paper, a verification problem to decide whether a given program with stack inspection satisfies a given security property is discussed. First, the computational complexity of the problem is investigated. Since the result implies the problem is computationally intractable in general, we introduce a practically important subclass of programs which exactly model programs containing check Permission of Java development kit 1.2. We show that the problem for this subclass is solvable in linear time in the size of a program.
Naoya Nitta, Yoshiaki Takata, Hiroyuki Seki
CCS1
2001 Security verification of programs with stack inspection
abstract
Java development kit 1.2 provides a runtime access control mechanism which inspects a control stack to examine whether the program has appropriate access permissions. Guaranteeing that each execution of a program with stack inspection satisfies required security properties is desirable. Jensen et al. introduced a verification problem of deciding for a given program P and a given security property written in a temporal logic formula, whether every reachable state of P satisfies . They showed that the problem is decidable for the class of programs which do not contain mutual recursion. In this paper, we show that the set of state sequences of a program is always an indexed language and consequently the verification problem is decidable. Our result is stronger than Jensen's in that a security property can be specified by a regular language, whose expressive power is stronger than temporal logic, and in that a program can contain mutual recursion.
Naoya Nitta, Hiroyuki Seki, Yoshiaki Takata
SACMAT1