In this chapter, we introduced you to the UML. You learned where it came from and how it became the standard modeling language for software development. We dispelled some myths about the UML, particularly concerning object-oriented development and methodology. You learned that the UML does not restrict you in these areas.
We then moved to a brief discussion of why modeling is important, and you learned how the UML provides a common language, just as the standard notations of other domains such as engineering and mathematics do.
We continued this chapter with a discussion of what is currently happening with the UML. There you found that the UML continues to evolve through the effort of hundreds of organizations that are driving improved support for systems and software development. Then, we provided an overview of the value of modeling as it relates to software development, while showing similarities to other types of modeling such as an architectural design of a building.
Moving toward the focus of this book, we began our discussion of the UML and what it is used for. You learned that the UML is a standard language that you can use to communicate software and system designs to keep the entire team on the same page. Although a limited number of team members might build the models, everyone involved in the software development process can use the models. Architects use models to communicate intended architectural designs, customers review business models to ensure that the modelers understand their business needs, developers review models to build the right software as designed by architects and other developers, project managers use models to understand what is being built and to manage schedules, and so forth. Testers can leverage the models to support building test cases to understand how the software is to be used, and to communicate back to the developers on things they see that aren't correct.
Toward the end of this chapter, you began to understand how the different types of elements live within the UML, including the diagram and model types, and what they are used for at a high level. Models consist of multiple diagrams, and the diagrams are a visualization of elements and how they interact with other elements. Throughout this chapter, we stressed the value of using the visualization to ensure that the team works together and shares information wherever possible to manage the success of a project.