Chapter 1. Introduction
This chapter introduces the Unified Modeling Language (UML). I discuss why the UML is important and how one can learn it, by focusing on the object-oriented paradigm, structural modeling techniques, behavioral modeling techniques, and other capabilities of the UML. There are many good reasons to learn and use the UML. Quite simply, the UML is the lingua franca of the information systems and technology industry. More formally, the UML is a general-purpose and industry-standard language that is broadly applicable and well supported by tools in today's marketplace.
System development involves creating systems that satisfy requirements using a system development lifecycle process. Essentially, requirements represent problems to be addressed, a system represents a solution that addresses those problems, and system development is a problem-solving process that involves understanding the problem, solving the problem, and implementing the solution. Natural languages are used to communicate the requirements. Programming languages (and more broadly, technology-based implementation languages such as the Extensible Markup Language (XML), the Structured Query Language (SQL), Java, C#, and so forth) are used to communicate the details of the system. Because natural languages are less precise than programming languages, modeling languages (such as the UML) are used in a problem-solving process to bridge the chasm between the requirements and the system.
A general-purpose language such as the UML may be applied throughout the system-development process all the way from requirements gathering to implementation of the system. As a broadly applicable language, UML may also be applied to different types of systems, domains, and processes. Therefore, we can use the UML to communicate about software systems and non-software systems (often known as business systems) in various domains or industries such as manufacturing, banking, e-business, and so forth. Furthermore, we can apply the UML with any process or approach. It is supported by various tool vendors, industry-standardized, and not a proprietary or closed modeling language.