| The constant extension of software makes system analysis and design more and more complicated. Many concerns in software development often crosscut other models in the system. It is often very difficult to identify, understand and modularize the crosscutting concerns by means of the present technology, such as Procedural-Oriented Programming and Object-Oriented Programming. Crosscutting concerns typically include design constraints and features, as well as architectural qualities and system-level properties or behaviors, such as transactions, logging and error recovery, etc.AOP provides mechanism for hunting crosscuting concerns accurately, which makes scattered codes into single models, thus avoiding code-tangling caused by crosscutting, and reducing the code modification arising from rebuilding the software project. And all these eventually increase the modularity and reusebility of the system enormously.With the gradual perfection of AOP, the notion of AO is not restricted to programming level, but comes to have an influence on all stages of software development, and forms Aspect Oriented Software Development (AOSD). AOSD enables researchers to handle problems by using the notion of AO in system analysis, modeling, coding, modification and maintenance. At the initial stage of system development and design, make the problems into core components and aspectual ones, and modularize crosscutting concerns into separate aspects, which makes system structure more clearer and makes automatic code generation possible, and also, brings convenience to the system maintenance. To achieve the goal, Aspect Oriented Modeling (AOM) is an effective way. AOM makes system analysis based on AO using modeling language, and automatically generates codes by using corresponding CASE tools. Nowadays, AOM has become the central part of AOSD.However, at present, AO itself offers very little to support the developers in expressing their AO systems with a formal modeling technique. While AO is a supplement to 00 technology. So it seems natural to extend it to AO.UML is a graphical language for specifying, visualizing, constructing, and documenting the artifacts of software systems. It is well-defined, expressive, powerful and widely useful and it has been approved by the Object Management Group (OMG) as a Object-Oriented standard in Novermber, 1997. However, there are different needs in reality. As a compromise between standardized symbols and specific domain,UML is designed in the forms of extension , namely, the users can extend UML to fit the needs of a specific domain by introducing model elements in specific domain. On the other hand, this introduction will be used like UML standard elements, which makes the communications between different users easier. So one of the strengths of UML is that it provides extension mechanisms that enable the language to be adapted to different types of systems, domains, and methods and processes.This paper analyzes the central notion of AOP, the significance of AOM and the syntax of AspectJ, discusses briefly the unified modeling language (UML) Extensibility. Based on extension mechanisms of the UML, sush as stereotypes, tagged values and constraints, this paper propose a UML extension for modeling AO systems characterized by AspectJ constructs and supporting AspectJ system modeling by extending UML meta-model elements. To describe aspects and pointcuts and other notions in AspectJ system, this approach extend the "Class" , "association" and other UML meta-model elements, and it is also tested here by using Rational Rose CASE tool package. Using Rose Script I compiled to generate an AspectJ skeleton for the aspect-diagram for the model designed using the proposed extension.This research is a beneficial attempt in narrowing the gap between the design of 00 and AO. Since this extension is based on term of AspectJ, it needs to be extended with the further development of AspectJ language. Besides, the scripts are required to be modified when the code skeleton of other forms of langua... |