論文 - 新田 直也
-
A Method to Comprehend Feature Dependencies Based on Semi-Static Structures 査読あり 国際誌
Narumasa Kande and Naoya Nitta
Proceedings of IEEE 37th International Conference on Software Maintenance and Evolution (ICSME 2021) 2021年10月
共著
担当区分:最終著者, 責任著者
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 semistatic structures are actually used in feature dependencies in three open source programs and can be effectively extracted by
our method. -
Delta extraction: An abstraction technique to comprehend why two objects could be related 査読あり 国際誌
Naoya Nitta and Tomohiro Matsuoka
IEEE 31st International Conference on Software Maintenance and Evolution (ICSME 2015) 61 - 70 2015年9月
-
Identifying Mandatory Code for Framework Use via a Single Application Trace 査読あり
Naoya Nitta, Izuru Kume, Yasuhiro Takemura
The 28th European Conference on Object-Oriented Programming (ECOOP 2014) 593 - 617 2014年8月
共著
担当区分:筆頭著者
Application frameworks allow application developers to effectively reuse both designs and implementations which frequently appear in their intended domains. However, when using a framework with large scale APIs, its usage to implement an application-specific behavior tends to be complicated. Thus, in practice, application developers use existing sample application code as references for their development, but the task to locate the parts which are related to their application usually becomes a burden. To address this problem, in this paper, we characterize the problem as a kind of dynamic flow analysis problem, and based on the characterization, we present a method to automatically identify the mandatory code for the framework use using only a single sample application's trace. We have conducted case studies with several real-world frameworks to validate our method and the results indicate that the method is suitable to extract the mandatory framework usage.
-
Towards a Dynamic Visualization of Complex Reverse-Engineered Object Collaboration 査読あり
Aki Hongo and Naoya Nitta
2021年12月
担当区分:最終著者
-
Revealing Implicit Correspondence between Bytecode Instructions and Expressions Determined by Java Compilers 査読あり
Izuru Kume, Masahide Nakamura, Naoya Nitta
Proc. of the 25th Australasian Software Engineering Conference (ASWEC) 126 - 130 2018年11月
共著
-
Constraints Based Approach to Interactive Feature Location 査読あり
Daiki Fujioka, Naoya Nitta
Proceedings - 2017 IEEE International Conference on Software Maintenance and Evolution, ICSME 2017 499 - 503 2017年11月
共著
出版者・発行元:Institute of Electrical and Electronics Engineers Inc.
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.
-
Experiences of debugger-based architecture comprehension 査読あり
Naoya Nitta
18th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD 2017) 2017年6月
単著
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.
-
A Formal Approach for Guiding Architectural Design with Data Constraints 査読あり
Naoya Nitta
The 15th IEEE/ACIS International Conference on Computer and Information Science (ICIS 2016) 2016年6月
単著
担当区分:筆頭著者
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.
-
Composite Refactoring for Decoupling Multiple Classes 査読あり
Yusuke Takahashi, Naoya Nitta
IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER 2016) 594 - 598 2016年3月
共著
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. -
A Case Study of Dynamic Analysis to Locate Unexpected Side Effects Inside of Frameworks 査読あり
Izuru Kume, Masahide Nakamura , Naoya Nitta, Etsuya Shibayama
International Journal of Software Innovation (IJSI) 3 ( 3 ) 26 - 40 2015年
共著
Recently many frameworks are deployed without proper documents to explain their correct usage. In the absence of proper documents, application developers often write code to call a framework API in a wrong way. Such a wrong API call tends to bring about a failure after its complex chain of infection inside of a framework. The complexity and the lack of implementation knowledge about a framework make it difficult for application developers to debug this kind of failure. In the preceding study the authors focused on unexpected side effects that are caused by wrong API calls and bring about failures, and developed a dynamic analysis technique to detect such side effects. In this paper, the authors introduce a case study to find a wrong API call using our technique.
-
Toward a Dynamic Analysis technique to Locate Framework Misuses That Cause Unexpected Side Effects 査読あり
Izuru Kume, Masahide Nakamura, Naoya Nitta, Etsuya Shibayama
The 15th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD 2014) 2014年6月
共著
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.
-
A Dynamic Analysis Technique to Extract Symptoms That Suggest Side Effects in Framework Applications 査読あり
Izuru Kume, Naoya Nitta, Masahide Nakamura, Etsuya Shibayama
The 29th ACM Symposium on Applied Computing (SAC2014) 1176 - 1178 2014年3月
共著
Program debugging forces time consuming tasks to locate defects on maintainers. Many existing supporting methods assume that maintainers can identify erroneous values and objects' states at run-time. However, such assumptions do not always hold in real program debugging. In this paper, we propose a dynamic analysis technique to extract symptoms which suggest a framework misuse in the process to update a state of an object. Symptoms help maintainers by showing which state updates are likely to be unexpected, even if maintainers can not decide if the updated states are correct or not. We developed a prototype tool to extract symptoms. We evaluate our method by applying it to a bug in a practical framework application developed by a third party.
-
複数クラスを横断する情報隠蔽のためのリファクタリングフレームワークの適用事例
高橋 祐介, 新田 直也
甲南大学紀要知能情報学編 7 ( 2 ) 153 - 171 2014年
共著
-
フレームワークアプリケーションを対象としたプログラム修復支援手法の適用事例
森岡 友樹, 新田 直也
甲南大学紀要知能情報学編 7 ( 2 ) 173 - 190 2014年
単著
-
A Method for Early Detection of Mismatches between Framework Architecture and Execution Scenarios 査読あり
Naoya Nitta, Izuru Kume, Yasuhiro Takemura
The 20th Asia-Pacific Software Engineering Conference (APSEC 2013) 2013年12月
共著
担当区分:筆頭著者
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. -
A Feature Model of Framework Applications 査読あり
Izuru Kume, Masahide Nakamura, Naoya Nitta, Etsuya Shibayama
The 14th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD 2013) 511 - 516 2013年7月
共著
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.
DOI: 10.1109/SNPD.2013.14
-
プログラム解析技術を用いた大規模ソフトウェアの開発作業支援の試み 招待あり
新田 直也
甲南大学紀要 知能情報学部編 6 ( 6 ) 199 - 210 2013年
単著
担当区分:筆頭著者
-
Work in progress: Analysis of the relationship between teaching contents and motivation in programming education 査読あり
Hidekuni Tsukamoto, Yasuhiro Takemura, Hideo Nagumo, Naoya Nitta
The 42th ASEE/IEEE Frontiers in Education Conference (FIE 2012) 2012年10月
共著
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.
-
Change of Students' Motivation in an Introductory Programming Course for Non-computing Majors 査読あり
Hidekuni Tsukamoto, Hideo Nagumo, Yasuhiro Takemura, Naoya Nitta
The IEEE 12th International Conference on Advanced Learning Technologies (ICALT) 124 - 125 2012年7月
共著
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. -
3DゲームエンジンRadishの開発とそのアーキテクチャ比較への応用 査読あり
新田直也, 久野剛司, 久米 出, 武村泰宏
デジタルゲーム学研究 4 ( 1 ) 1 - 12 2010年3月
共著
担当区分:筆頭著者
-
3Dゲーム開発プロジェクト演習の実践とその評価
新田直也, 久野剛司
甲南大学紀要 知能情報学部編 2 ( 2 ) 225 - 232 2009年11月
共著
担当区分:筆頭著者
-
A Practice of Collaborative Project-Based Learning for Mutual Edification between Programming Skill and Artistic Craftsmanship 査読あり
Naoya Nitta, Izuru Kume, Yasuhiro Takemura
Proceedings of the 39th ASEE/IEEE Frontiers in Education Conference 2009年10月
共著
担当区分:筆頭著者
-
エンピリカルなソフトウェア工学教育を目的とした3Dゲーム用アプリケーションフレームワークの開発
新田直也, 久米出, 武村泰宏
甲南大学紀要 知能情報学部編 1 ( 2 ) 181 - 195 2008年11月
共著
担当区分:筆頭著者
-
An Extension of Object Oriented Programming for Structural Changes in System Design
Naoya Nitta, Izuru Kume, Yasuhiro Takemura
日本情報経営学会誌 28 ( 2 ) 43 - 53 2007年12月
共著
担当区分:筆頭著者
-
An Experiment to Explore Practical Training for Object-Oriented Design Novices
Izuru Kume, Naoya Nitta, Yasuhiro Takemura
Technical Report NAIST-IS-TR2007009, Nara Institute of Science and Technology 2007年5月
共著
-
A Method for Creating Teaching Materials of Practical Object-Oriented Methods Education 査読あり
Izuru Kume, Naoya Nitta,Yoshiaki Takemura
Proceedings of the 14th International Conference on Computers in Education 75 - 78 2006年12月
共著
-
A Method for Creating Teaching Materials of Practical Object-Oriented Methods Education.
Izuru Kume, Naoya Nitta, Yasuhiro Takemura
Learning by Effective Utilization of Technologies: Facilitating Intercultural Understanding, Proceeding of the 14th International Conference on Computers in Education, ICCE 2006, November 30 - December 4, 2006, Beijing, China 75 - 78 2006年
-
An Efficient Method for Optimal Probe Deployment of Distributed IDS 査読あり
Jing Wang, Naoya Nitta, Hiroyuki Seki
IEICE Transactions on Information and Systems E88-D ( 8 ) 1948 - 1957 2005年8月
共著
-
An efficient method for optimal probe deployment of distributed IDS
J Wang, N Nitta, H Seki
IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS E88D ( 8 ) 1948 - 1957 2005年8月
共著
出版者・発行元:IEICE-INST ELECTRONICS INFORMATION COMMUNICATIONS ENG
A distributed network-oriented Intrusion Detection System (IDS) is a mechanism which detects misuse accesses to an intranetwork by distributed IDSs on the network with decomposed attack scenarios. However, there are only ad hoc algorithms for determining a deployment of distributed IDSs and a partition of the attack scenarios. In this paper, we formally define this problem as the IDS partition deployment problem and design an efficient algorithm for a simplified version of the problem by graph theoretical techniques.
-
LTL Model Checking for Extended Pushdown Systems with Regular Tree Valuations 査読あり
Naoya Nitta, Hiroyuki Seki
コンピュータソフトウェア 22 ( 3 ) 58 - 75 2005年7月
共著
担当区分:筆頭著者
-
Policy Controlled System and Its Model Checking 査読あり
Sigeta Kuninobu, Yoshiaki Takata, Naoya Nitta, Hiroyuki Sek
IEICE Transactions on Information and Systems E88-D ( 7 ) 1685 - 1696 2005年7月
共著
-
Policy controlled system and its model checking
S Kuninobu, Y Takata, N Nitta, H Seki
IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS E88D ( 7 ) 1685 - 1696 2005年7月
共著
出版者・発行元:IEICE-INST ELECTRONICS INFORMATION COMMUNICATIONS ENG
A policy is an execution rule (or constraint) for objects in a system to retain security and integrity of the system. We introduce a simple policy specification language and define its operational semantics. A new NFA construction algorithm that works in linear time is proposed and a model checking method for policy controlled system (PCS) is presented. We conducted verification of a sample PCS for hotel reservation by our automatic verification tool and the experimental results showed the efficiency of the proposed method.
-
拡張プッシュダウンシステムの正則木評価によるLTLモデル検査法(<特集>続・システム検証の科学技術,サイバー増大号)
新田 直也, 関 浩之, Naoya Nitta, Hiroyuki Seki, Nara Institute of Science, Technology, Nara, Institute of Science, Technology
コンピュータソフトウェア = Computer software 22 ( 3 ) 58 - 75 2005年
共著
出版者・発行元:日本ソフトウェア科学会
In this paper, we show an algorithm of LTL (linear temporal logic) model checking for LL-GG-TRS with regular tree valuation. The class LL-GG-TRS is defined as a subclass of term rewriting systems, and extends the class of pushdown systems (PDS) in the sence that pushdown stack of PDS is extended to tree structure. By this extension, we can model recursive programs with exception handling.
-
An Extension of Pushdown System and Its Model Checking Method 査読あり
Naoya Nitta, Hiroyuki Seki
Proceedings of the 14th International Conference on Concurrency Theory 281 - 295 2003年9月
共著
担当区分:筆頭著者
-
An Extension of Pushdown System and Its Model Checking Method
Naoya Nitta, Hiroyuki Seki
Technical Report NAIST-IS-TR2003007, Nara Institute of Science and Technology 2003年6月
単著
担当区分:筆頭著者
-
An Extension of Pushdown System and Its Model Checking Method.
Naoya Nitta, Hiroyuki Seki
CONCUR 2003 - Concurrency Theory, 14th International Conference, Marseille, France, September 3-5, 2003, Proceedings 278 - 292 2003年
-
スタック検査機能を持つプログラムに対する効率のよいセキュリティ検証法 査読あり
新田 直也, 高田 喜朗, 関 浩之
コンピュータソフトウェア 19 ( 3 ) 20 - 38 2002年5月
共著
担当区分:筆頭著者
-
スタック検査機能を持つプログラムに対するセキュリティ検証問題の決定可能性 査読あり
新田 直也, 高田 喜朗, 関 浩之
電子情報通信学会論文誌(D-I) J85-D-I ( 4 ) 360 - 370 2002年4月
共著
担当区分:筆頭著者
-
スタック検査機能をもつプログラムに対するセキュリティ検証問題の決定可能性
新田 直也, 高田 喜朗, 関 浩之
電子情報通信学会論文誌. D-I, 情報・システム, I-情報処理 = The transactions of the Institute of Electronics, Information and Communication Engineers. D-I 85 ( 4 ) 360 - 370 2002年4月
共著
出版者・発行元:電子情報通信学会
Java development kit 1.2のように,プログラム実行時に制御スタックを検査することでアクセス制御を行うようなプログラム環境がある.Jensenらは,プログラム P 及び時相論理式を用いて記述された検証条件 ψ を与えたときに,P の到達可能な状態すべてが ψ を満たすかどうかを決定する問題として検証問題を定義し,相互再帰を含まないプログラムのクラスに対して検証問題が決定可能となることを示した. 本論文では,時相論理式よりも真に表現能力の大きい正規言語を用いて検証問題を定義する.そして,プログラムのトレース集合がインデックス言語となることを示し,その系としてプログラムが相互再帰を含む場合も含めて検証問題が一般に決定可能となることを示すことにより,Jensenらの結果を改善する.更に,自明なスタック検査のみを含むプログラムのクラスに対する検証問題が,プログラムサイズに対して多項式時間可解であることを示す.
-
Security Verification of Programs with Stack Inspection
Naoya Nitta
奈良先端科学技術大学院大学博士論文 2002年2月
単著
Recently, with rapidly growth of open network environment, a well-defined access control mechanism becomes necessary. 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. Jensen et al. introduced a verification problem of deciding for a given program P with stack inspection and a given security property psi written in a temporal logic formula, whether every reachable state of $P$ satisfies psi. They showed that the problem is decidable for the class of programs which do not contain mutual recursion. In this thesis, 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. We also investigated the computational complexity of the problem. Since the result implies the problem is computationally intractable in general, we introduce a practically important subclass of programs which exactly model programs containing stack inspection of Java development kit 1.2. We present an algorithm which can solve the problem for this subclass in linear time
in the size of a program. Furthermore, we implemented a verification system based on the proposed algorithm.
Experimental results suggest that the proposed lgorithm can be efficiently executed for real-world programs. -
An Efficient Security Verification Method for Programs with Stack Inspection
新田 直也, 高田 喜朗, 関 浩之
コンピュータ ソフトウェア 19 ( 3 ) 176 - 194 2002年
-
An Efficient Security Verification Method for Programs with Stack Inspection 査読あり
Naoya Nitta, Yoshiaki Takata, Hiroyuki Seki
Proceedings of the 8th ACM Conference on Computer and Communication Security 68 - 77 2001年11月
共著
担当区分:筆頭著者
-
Security Verification of Programs with Stack Inspection 査読あり
Naoya Nitta, Yoshiaki Takata, Hiroyuki Seki
Proceedings of 6th ACM Symp. on Access Control Models and Technologies 31 - 40 2001年5月
共著
担当区分:筆頭著者
-
Decidability and Complexity of the Security Verification Problem for Programs with Stack Inspection
Naoya Nitta, Satoshi Ikada, Yoshiaki Takata, Hiroyuki Seki
Technical Report NAIST-IS-TR2001003, Nara Institute of Science and Technology 2001年3月
共著
担当区分:筆頭著者
-
Security verification of programs with stack inspection.
Naoya Nitta, Hiroyuki Seki, Yoshiaki Takata
6th ACM Symposium on Access Control Models and Technologies, SACMAT 2001, Litton-TASC, Chantilly, Virginia, USA, May 3-4, 2001 31 - 40 2001年
共著
出版者・発行元:ACM
その他リンク: http://dblp.uni-trier.de/db/conf/sacmat/sacmat2001.html#conf/sacmat/NittaST01
-
An efficient security verification method for programs with stack inspection.
Naoya Nitta, Yoshiaki Takata, Hiroyuki Seki
CCS 2001, Proceedings of the 8th ACM Conference on Computer and Communications Security, Philadelphia, Pennsylvania, USA, November 6-8, 2001. 68 - 77 2001年