Developing security-critical systems is difficult and there are many well-known examples of security weaknesses exploited
in practice. Thus a sound methodology supporting secure systems development is urgently needed.
Our aim is to aid the difficult task of developing security-critical systems in a formally based approach using the notation
of the Unified Modeling Language. We present the extension UMLsec of UML that allows one to express security-relevant information
within the diagrams in a system specification. UMLsec is defined in form of a UML profile using the standard UML extension
mechanisms. In particular, the associated constraints give criteria to evaluate the security aspects of a system design, by
referring to a formal semantics of a simplified fragment of UML. In this tutorial exposition, we concentrate on an approach
to develop and analyze security-critical specifications and implementations using aspect-oriented modeling.