Why Use UML?
With many rapid application development environments available, developing a software application
is fairly easy so why use UML? Most people are familiar with a drawing package can design and create forms
and most people with basic programming skills can double click on a control and enter some code. But does this
approach lend itself to professional quality applications?
Deborh Kurata (1998) stated that if an application is to be of professional quality it must:
- Meet the needs of the users
- Be robust
- Be maintainable
- Be documented
Many developers using RAD tools will believe it makes sense to develop an application rapidly. Write a prototype
and then keep adding code until the application is complete. There is however, a fundamental problem to this approach.
The resulting application will lack a well-defined, scalable architecture because it will not have been thought out properly. This
will more often than not compromise fundamental object oriented principals and result in undocumented, inefficient and difficult to maintain code.
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.
Sinan Si Alhir (1998) describes UML as enabling:
“…the capturing, communicating and leveraging of strategic, tactical and operational knowledge to facilitate increasing value by increasing quality, reducing costs and reducing time-to-market while managing risks and being proactive in regard to ever-increasing change and complexity.”
Furthermore, the use of UML will help:
- The communication of the desired structure and behaviour of a system between analysts, architects, developers, stakeholders and users.
- The visualisation and control of system architecture.
- Promote a deeper understanding of the system, exposing opportunities for simplification and re-use.
- Manage risk.
UML achieves this using UML models.
To gain a working knowledge of UML, book a seat on our UML Essentials Training Course.
Dunstan Thomas recommends the use of Sparx Systems Enterprise Architect as your UML development tool.