| With the change of customer demands and running environment of software, in order to adapt to the new demands and changes, software systems need to evolve constantly. It is a hot topic of software engineering to implement software evolution. Aspect-oriented programming achieves a better modularity by making the demands of software system functional and non-functional, platform features, and various concerns independent of each other. Meanwhile, the implementation mechanism, weaving the crosscutting concern into the base program, provides a new approach for software evolution.At present, AOP has been used in abroad, and in domestic, the research of aspect-oriented program design has just been started. In the actual study, we encountered the most typical two problems are structural conflict and behavior conflict. Structural conflict is also known as"fragile pointcut problem". It mainly represents that the current join point model used in Aspect is not robust enough for the evolution of the base program. Because definition of the pointcut in Aspect closely relies on the structural information of the base program, if structure of the base program changes, it may produce problems of join point mismatches, which include the unintended join point capture and the accidental join point miss. Behavior conflict mainly represents that the originally correctly procedure can not work after weaving into Aspect; or multi-Aspect weaves into the same join point, the sequence of weaving may lead to conflicts among them; or It is mutually exclusive between them, while they can not weave into the same basic program.For the two problems mentioned above, on the premise of retaining the definition of Aspect,we hope to solve the mismatch of join point through the automatic program transformation on basis of reflective architecture, meanwhile, in terms of software evolution, focusing on effectivity and practicality, we provide a corresponding support tools for behavior conflict based on contractual design. |