The architecture of a software system refers to the highest form of organization within a system, including identification of the principal components, mutual relationships, and rules that constrain their behavior. This talk describes a set of complementary design patterns suitable for defining the architectures of dynamic multi-layered real-time systems, and demonstrates how the Unified Modeling Language (UML) can be used as a formal architectural description language.
Click for PowerPoint slides:
http://www.acm.org/sigada/conf/sigada99/Keynoters/Selic.ppt