Understanding the Unified Modeling Language (UML)
Sinan Si Alhir, http://sites.google.com/site/salhir/
Organizations compete in a global market that is characterized by opportunities and risks where ongoing business and technological change fuel ever-increasing competition. Organizations must not only manage change and the complexity that results from adapting to change, but capitalize on the lessons learned, best practices, and knowledge gained through this evolutionary process. The importance and criticality of knowledge has given way to the Knowledge Revolution. This revolution can be characterized by the radical and fundamental paradigm shift that is occurring within the business and technology industries where an organizationís application of knowledge defines its competitive advantage. Organizations can no longer only rely on physical muscle and size, but must harness intellectual capital and creativity to be successful. Knowledge takes on many forms, however, its value is demonstrated through its application and the realization of solutions to problems. If knowledge is captured and reapplied, an organization is enabled to become even more competitive and proactive, rather than reactive, to change and complexity; thus, increasing an organizationís probability of success. This raises the fundamental question of how does an organization best capture, communicate, and leverage knowledge in order to gain a competitive advantage?
Historically, organizations have attempted various methods for procuring intellectual capital. Within the information system and technology industry, we have encountered the use of structured techniques to minimize the impacts of change and complexity, the use of Computer Assisted Software Engineering (CASE) tools to automate the development process, the use of business reengineering techniques to optimize organizational processes, the use of object-oriented techniques to facilitate reuse, the use of patterns to capture solutions to recurring problems, and the use of components to actualize reusable parts. Inherent to these techniques is the encapsulation of knowledge.
With the emergence of the Unified Modeling Language (UML) from Rational Software Corporation and the Object Management Group (OMG), it is very conceivable that such a language that unifies the many threads and incarnations of the Knowledge Revolution is the most viable means for organizations to best realize a competitive advantage via capturing, communicating, and leveraging knowledge. Rational Software Corporation and three of the most prominent methodologists in the information systems and technology industry, Grady Booch, James Rumbaugh, and Ivar Jacobson (the Three Amigos) originally conceived the UML. The UML emerged from the unification that occurred in the 1990s following the "method wars" of the 1970s and 1980s to gain significant industry support from various organizations via the UML Partners Consortium and be submitted to and adopted by the OMG as a standard (November 17, 1997).
The UML is a modeling language for specifying, visualizing, constructing, and documenting the artifacts of a system-intensive process.
- Within a system-intensive process, a method is applied as a process to derive or evolve a system.
- As a language, it is used for communication. That is, a means to capture knowledge (semantics) about a subject and express knowledge (syntax) regarding the subject for the purpose of communication. The subject is the system under discussion.
- As a modeling language, it focuses on understanding a subject via the formulation of a model of the subject (and its related context). The model embodies knowledge regarding the subject, and the appropriate application of this knowledge constitutes intelligence.
- Regarding unification, it unifies the information systems and technology industryís best engineering practices across types of systems (software and non-software), domains (business versus software), and life-cycle processes.
- As it applies to specifying systems, it can be used to communicate "what" is required of a system, and "how" a system may be realized or implemented.
- As it applies to visualizing systems, it can be used to visually depict a system before it is realized.
- As it applies to constructing systems, it can be used to guide the realization of a system similar to a "blueprint".
- As it applies to documenting systems, it can be used for capturing knowledge about a system throughout its life cycle.
The UML is not:
- A visual programming language, but a visual modeling language.
- A tool or repository specification, but a modeling language specification.
- A process, but enables processes.
The UML is an evolutionary general-purpose, broadly applicable, tool-supported, and industry-standardized modeling language.
- As a general-purpose modeling language, it focuses on a set of concepts for acquiring, sharing, and utilizing knowledge coupled with extensibility mechanisms.
- As a broadly applicable modeling language, it may be applied to different types of systems (software and non-software), domains (business versus software), and methods or processes.
- As a tool-supported modeling language, tools are readily available to support the application of the language to specify, visualize, construct, and document systems.
- As an industry-standardized modeling language, it is not a proprietary and closed language but an open and fully extensible industry-recognized language.
The UML enables 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.