Font Size: a A A

Reexploration And Encapsulation Of Crosscutting Concerns

Posted on:2005-01-07Degree:MasterType:Thesis
Country:ChinaCandidate:Y WangFull Text:PDF
GTID:2168360125950899Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
although OOP is good at modularizing core concerns, it falls short when it comes to modularizing the system-level requirements, such as log, security ,memory management and exception handling ,often referred to as crosscutting concerns.They often crosscut core logic of software system which causes code tangling and code scattering.Consequently it is hard to maintain and understand software system.Modularizing can reduce the complexities of software. Aspect-Oriented Programming(AOP) localize implementation of crosscutting concern by encapsulating them in an independent module called "aspect".AOP is just to encapsulate crosscutting concerns not to identify them from legacy system.In recent years how to identify the potential crosscutting concerns from legacy system becomes the hotspot people study. Nowadays many identification technologies of crosscutting concerns exist. These analysis technologies are based on character, type, signature, dynamic, respectively. Every technology identify crosscutting concerns according as some special behavior characteristic of system. But all of methods can't work precisely so some methods are usually combined to use. Crosscutting concerns scattering in the system take on analogous behaviors due to similar or same codes. In our approach we search crosscutting concerns according this characteristic. During analyzing source code of system, we assume program statements only have one kind of function call, and create function call tree that we define. All function call combinations repeatedly appearing are searched based on function call tree. There are three way to combine function call:Sequential,Conditional,Repeated.Identified crosscutting concerns are in the level of function call in our approach. Other kinds of crosscutting concerns also exist in source code. We analyze several kinds of typical system-level crosscutting concerns that can't be identified applying our approach, and provide specified identification methods. Compared with other concern identification technology,our solution shows its advantage in some point.Aspect Ming Tool(AMT) developed by Hannemann and Kiczales demands users offer a key word for querying and then do the text match which depends on the coding style of the source code.AMT can find out the code related to the concern responding to the querying key word,while our tool needs no user's input and can identify more concerns.AMT gives a graphic interacting way,which our tool can not.Now we only record the result to a file.It's not convenient for users. S. Breu and J. Krinke adopt the dynamic program analysis technology.Our solution is a little similar with theirs:both are concerned with the relation between the function and neither takes other type of statements into account.They are concerned with the relation between the function in runtime and define four types of relation.Their solution is to find out all the presence of the execution of the two function which have certain relation;Our solution is concerned with combining way of two function in source code and we define three combining way.We find all the presence of a certain function combination by statically analyzing source code.Finally, in order to validate the feasibility of our approach, we design and implement a tool identifying crosscutting concern. This tool can analyze integrated java legacy system.
Keywords/Search Tags:Reexploration
PDF Full Text Request
Related items