Using modern software development methodology, developers first decompose system into small units, which hide the internal implementation and provide only external interfaces, then implement these units, at last compose these units to get a full system and realize required functions. But there are some non-functional concerns which crosscut whole system and can't be well encapsulated into a single module, such as logging, performance analysis, security, context related error handling, QoS monitoring, etc. These aspects are scattered and tangled in whole system, decreasing software traceability, reusability, adaptability. So these non-functional concerns should be separated and modularized.Aspect-Oriented Programming (AOP) separates and modularizes crosscutting concerns at implementation stage. Aspect-Oriented Modeling (AOM) specifies, visualizes, constructs and documents aspect related artifacts in a consistent way at other stage of software development. Thus whole software development process can use aspect-oriented technique.Real-time systems are well places to apply aspect-oriented technique, for there are lots of non-functional requirements in real-time system, which scattering in whole system. The codes related with timing are mixed with other codes, resulting in code scattering and tangling.This article considers various techniques to separate crosscutting concerns, namely AspectJ, AspectC++, Composition Filters, Hyperspace and Adaptive Programming; summarizes the researches in AOM domain; analyses real-time systems timing requirements and UML profiles for real-time systems.This article proposes a new technique to modeling aspect-oriented constructs and mechanisms by extending UML, which can represent constructs... |