Execution traces are naturally represented at the design level with UML sequence diagrams. During a system execution, trace-based aspects can be used to monitor behavioral patterns and protocols and may e.g. provide mitigation strategies for unwanted behavior. Trace-based and stateful aspects have evolved to handle such reoccurring interaction patterns at the implementation level. We define a STAIRS-inspired semantics for trace-based Java aspects, and a sequence diagram aspect notation with a mapping to a trace-based Java implementation. We use this to show that aspect composition is semantics preserving with respect to refinement under the given semantics.