Understanding the Unified Modeling Language (UML) - Part 2
Sinan Si Alhir, http://sites.google.com/site/salhir/
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.