A Tool Design for Software Traceability with Aspect Oriented Programming

碩士 === 逢甲大學 === 資訊電機工程碩士在職專班 === 94 === In the traditional tracking methods, developers must inject extra-code in Java program. That is not convenient to increase or remove the tracking codes, and developers must spend much cost of time and manpower. We can use reverse engineering to understand the...

Full description

Bibliographic Details
Main Authors: Sheng-Fu Yang, 楊勝富
Other Authors: none
Format: Others
Language:zh-TW
Published: 2006
Online Access:http://ndltd.ncl.edu.tw/handle/09439953354482161451
Description
Summary:碩士 === 逢甲大學 === 資訊電機工程碩士在職專班 === 94 === In the traditional tracking methods, developers must inject extra-code in Java program. That is not convenient to increase or remove the tracking codes, and developers must spend much cost of time and manpower. We can use reverse engineering to understand the architecture and process of software application in traditional tracking methods, but it will spend a lot of time and money. We can take advantage of reverse engineering to understand system by codes or final results, but how can we trace and test thousands of codes? In this thesis, I integrate Aspect-Oriented Programming (AOP) for code tracking and cyclomatic complexity for understanding the complexity of system. In addition to cost, developers must inject codes before or after the method in program to help debugging in traditional methods. The research proposes a new architecture and tool, it can help developers produce AspectJ code easily and track methods. Besides, developers don’t have to learn syntax of AspectJ. For instance, it is very difficult and error-prone to solve non-functional requirements (safe strategy) by traditional method. When the safe strategy is spread over every module of system, each module will not guarantee the security of system without using the safe strategy. But it is very to use AOP to solve this issue. Finally, developers must spend huge time and effort to finish testing and it doesn’t guarantee that there is not test case out of the situation when integration testing after finish programming. And it will occur inconsistent status, the main difficulty is that it’s not easy to find out problems during testing. There are complicated interaction relationships between system components, it is very difficult to find out the wrong source when exceptions occur. So I take advantage of unit test (Junit) remedying the weakness of integration testing in this research.