Unified Modelling Language (UML)
Unified Modelling Language (UML) is a standardized language used for the collection, analysis and processing of requirements as well as for the specification message exchanges and overviews of architecture and behaviour specifications. UML is standardized by the Object Management Group (OMG).
UML is increasingly popular in the telecommunications world, as software becomes more important for telecommunications equipment manufacturers. As networks move towards server-based architectures, software applications are replacing traditional switched based functionality. With its different notations, UML is well suited to the standards making process. At almost any given stage in the development of a standard there is a UML notation available for the task.
What UML offers
UML offers a number of modelling views:
State Chart Diagrams
UML is an object-oriented software design tool, providing all the features a software developer would need when designing an object oriented software system.
To gain the greatest benefit from UML, it must be used at the beginning of the process when requirements are being collected, reviewed and evaluated. Traditionally, this has been a relatively informal activity involving discussion within technical committees. UML can provide the formalization and visualization which make the requirements clear and unambiguous.
UML and SDL
UML is not likely to supplant SDL but is in fact complementary. UML is well suited to the collection and analysis of requirements but is weak for specifying detailed protocol behaviour in an unambiguous way. On the other hand, SDL is not ideal for modelling requirements but is good for specifying behaviour.
UML is frequently used at the software architecture and design stage, while SDL is now more frequently used in the more detailed process design stage. SDL tools which provide code generation are also being used in the final coding stage of software development.
Some UML tools aim to integrate UML and SDL to provide a powerful software modelling and development environment. The increasing functionality of various UML software tools is a factor in the popularity of UML.
UML and related technologies
UML is often associated with CORBA systems, since both are standardized by the OMG. However, the two should not be confused as they are totally different things. Use of UML as a design language does not imply any particular architecture, or implementation language and it is not even restricted to software systems.
UML tools provide exporting facilities to translate data in UML models into IDL, Java, or C++ code. Translation to XML schemas or DTDs is becoming available, and an XML-based notation (XMI) is standardized as a transfer notation for transferring UML models between different UML tools.
ETSI technical committees writing specifications for the core telecommunications network find UML useful to help them model their systems. UML diagrams can be extracted from tools and incorporated into standards as descriptive diagrams. The exact meaning of such diagrams is understood, since they have a defined structure. UML can be particularly useful when developing CORBA based systems, or when developing APIs expressed in IDL or Java.
The full power of UML is probably not such an advantage to standardization, but to pre-standardization activities, or to system development and implementation. Using UML implies using a more rigorous design and development methodology, the advantages of which are not seen in standards themselves, but in developed systems.