With the use of UML, an appropriate UML development tool, and an application process or methodology, the design and refining of the application is shifted from the development phase to an analysis and design phase. This reduces risk and provides a vehicle for testing the architecture of the system before coding begins. The analysis and design overhead will eventually pay dividends as the system has been user driven, documented and when it’s time to start developing, many UML tools will generate skeleton code that will be efficient, object oriented and promote re-use.
The use of UML will help:
1. The communication of the desired structure and behaviour of a system between analysts, architects, developers, stakeholders and users.
2. The visualisation and control of system architecture.
3. Promote a deeper understanding of the system, exposing opportunities for simplification and re-use.