Modeling Crosscutting Services with UML Sequence Diagrams Martin Deubler, Michael Meisinger, Sabine Rittmann Ingolf Krüger Technische Universität München Department of Computer Science Boltzmannstr. 3 University of California, San Diego 85748 München, Germany La Jolla, CA 92093-0114, USA {deubler, meisinge,
[email protected] rittmann}@in.tum.de Abstract. Current software systems increasingly consist of distributed interact- ing components. The use of web services and similar middleware technologies strongly fosters such architectures. The complexity resulting from a high de- gree of interaction between distributed components – that we face with web service orchestration for example – poses severe problems. A promising ap- proach to handle this intricacy is service-oriented development; in particular with a domain-unspecific service notion based on interaction patterns. Here, a service is defined by the interplay of distributed system entities, which can be modeled using UML Sequence Diagrams. However, we often face functionality that affects or is spanned across the behavior of other services; a similar con- cept to aspects in Aspect-Oriented Programming. In the service-oriented world, such aspects form crosscutting services. In this paper we show how to model those; we introduce aspect-oriented modeling techniques for UML Sequence Diagrams and show their usefulness by means of a running example. 1 Introduction Today’s software systems get increasingly complex. Complexity is observed in all software application domains: In business information systems, technical and admin- istrative systems, as well as in embedded systems such as in avionics, automotive and telecommunications. Often, major sources of the complexity are interactions between system components. Current software architectures increasingly use distributed com- ponents as for instance seen when using web services [11] and service-oriented archi- tectures [7].