Click here to view the complete list of archived articles
This article was originally published in the Spring 1999 issue of Methods & Tools
Understanding the Unified Modeling Language (UML)
Sinan Si Alhir, http://sites.google.com/site/salhir/
Introduction
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.
The UML is not:
The UML is an evolutionary general-purpose, broadly applicable, tool-supported, and industry-standardized modeling 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.
The Big Picture
To successfully leverage the UML, we must first understand the overall context in which the UML applies.
Problems, Solutions, and Problem Solving
Organizations produce and deliver products and services that address customer needs and requirements. Requirements may be characterized as problems (often referred to as as-is situations). Products and services that address requirements are characterized as solutions (often referred to as to-be situations). To deliver valued solutions, organizations must apply knowledge in problem-solving efforts; therefore, knowledge and the ability to apply it is the determining factor of success.
The role of the UML is to enable and facilitate the following:
However, the UML does not prescribe any particular problem-solving approach, but is very flexible and customizable to fit any approach. It enables and promotes (but does not require nor mandate) a use-case-driven, architecture-centric, iterative, and incremental process that is object oriented and component based.
Fundamentally, the UML provides a means for addressing issues and risks concerning problems, solutions, and problem solving.
Problems and Solutions
Problems and solutions occur within a context (domain or space). The problem (system) must be understood in order to be solved. The solution (system) to a problem must be understood in order to be constructed and used. The solution must be organized (architecture) in order to facilitate its realization and adhere to the various constraints of the context in which it will be realized. To solve the problem, appropriate knowledge about the problem and solution must be captured (models), organized around decisions regarding the problem and solution (architectural views), and depicted (diagrams) using some language that enables it to be communicated and leveraged in the problem-solving process.
Therefore, the following concepts are critical to problems and solutions:
Problem Solving
Problem-solving approaches are organized (life cycles) to offer a management perspective and a development perspective. The two perspectives enable the effort to be managed and performed.
Problem solving requires being able to view the problem (paradigm) for the purpose of understanding it, and being able to view the solution (paradigm) for the purpose of realizing it. The problem-solving process involves leveraging knowledge to derive the solution (artifacts) to the problem through a series of (possibly concurrent) steps (activities) in which knowledge and rules of thumb (heuristics) gained from other problem-solving efforts may be used.
Therefore, the following concepts are critical to problems solving:
System development may be characterized as problem solving, including understanding or conceptualize a problem, solving the problem, and implementing or realizing the solution. Conceptualizing a problem involves representing the problem using representational constructs (mental notions or ideas). Solving the problem involves manipulating representational constructs from the problem domain and the solution domain to derive a representation of the desired solution. Realizing a solution involves mapping those representational constructs of the solution unto the solution world, that is, constructing the solution. The use of representational constructs is a very natural process that often occurs subtly and sometimes unconsciously in problem solving. Underlying this scheme is the use of a paradigm in determining the possible types of representations utilized in problem-solving efforts.
The Unified Modeling Language
To successfully apply the UML, we must understand how the UML is holistically and cohesively organized to facilitate problem solving.
A language consists of a collection of concepts (semantics) with a notation (syntax) and rules (guidelines) governing the concepts and notation. Underlying a language and the methods that utilize a language is a foundation consisting of fundamental principles (axioms). These fundamental principles involve essential and "universally" accepted elements or constituents that define the constructs upon which a language is established (means) and facilitate some goals and scope to which the language applies (ends). The ends of the UML encompass models, architectural views, and diagrams to address why the UML exists. The means of the UML encompass the object-oriented paradigm and component-based development to address how the UML facilitates satisfying its ends.
The Architecture of the UML
To understand the architecture of the UML, consider how computer programs and programming languages are related. There are many different programming languages (C, C++, Java, Smalltalk, etc.), and each particular program is developed using a specific programming language. All of these languages support various declarative constructs for declaring data, and procedural constructs for defining the logic that manipulates data. Because a model is an abstraction, each of these concepts may be captured in set of related models. Programming language concepts are defined in a model called a metamodel. Each particular programming language is defined in a model that utilizes and specializes the concepts within the metamodel. Each program implemented in a programming language may be defined in a model called a user model that utilizes and instanteates the concepts within the model of the appropriate language. This scheme of a metamodel representing computer programming constructs, models representing computer programming languages, and user models representing computer programs exemplifies the architecture of the UML.
The UML is defined within a conceptual framework for modeling that consists of the following four distinct layers or levels of abstraction:
Within the fundamental UML notation, concepts are depicted as symbols and relationships among concepts are depicted as paths (lines) connecting symbols.
Models
Models capture the structural, or static, features of systems and the behavioral, or dynamic, features of systems. Models may be viewed via a small set of holistic but nearly independent and non-overlapping dimensions (aspects) that emphasize particular qualities of a model. The structural model dimension emphasizes the static features of the modeled system, and the behavioral model dimension emphasizes the dynamic features of the modeled system. Fundamentally, models capture knowledge (semantics).
Architectural Views
Architectural views organize models and knowledge around specific sets of concerns (architectural focus). The UML provides the following architectural views regarding models of problems and solutions:
Fundamentally, architectural views organize knowledge in accordance with guidelines expressing idioms of usage.
Diagrams
Diagrams depict knowledge in a communicable form. The UML provides the following diagrams, organized around architectural views, regarding models of problems and solutions:
Fundamentally, diagrams depict knowledge (syntax).
Modeling Mechanisms
Mechanisms are practices for approaching modeling and diagramming that enable the creation of more precise and communicable models.
Within a problem-solving process, knowledge regarding a problem and solution is captured, organized around decisions, and depicted using the UML so that it can be communicated and leveraged. When deciding what diagram to use for communicating, consider the question or questions the communication is addressing, and what diagram or set of diagrams most effectively communicate the response. This decision centers on what dimensions of a model are to be emphasized in the response. Fundamentally, each diagram type emphasizes different dimensions of a model.
And within a problem-solving process, it is the underlying method that suggests how knowledge is utilized to realize a solution to a problem. This includes suggesting which diagrams to use and the perspective and the level of abstraction used to render and interpret these diagrams. Methods should be considered as suggestions and recommendations that organize and facilitate the problem-solving process rather than being considered rigid and inflexible rules that restrict the art of problem solving.
Conclusion
Conclusively, the Unified Modeling Language is an evolutionary general-purpose, broadly applicable, tool-supported, and industry standardized language for specifying, visualizing, constructing, and documenting the artifacts of a system-intensive process. It is a fundamental communication mechanism that empowers organizations to capture, communicate, and leverage strategic, tactical, and operational business and technological knowledge on an enterprise-wide scale. Such knowledge can be applied to improve value by increasing quality, reducing costs, and reducing time-to-market while managing risks and being proactive to ever-increasing change and complexity.
By understanding the overall context in which the UML applies and how the UML is holistically and cohesively organized to facilitate solving problems, we have reviewed the required foundation for strategically determining how to successfully apply the language to maximize its benefits. However, caution should be emphasized. Simply because the UML evolved primarily from various second-generation object-oriented methods, the UML is not simply a third generation object-oriented modeling language. Its scope extends its usability far beyond its predecessors. And it is experience, experimentation, and gradual adoption of the standard that will reveal its true potential and enable organizations to realize its benefits.