Chapter 10. Visualizing Concurrent and Distributed System Design

"Unnamed thinking which I would like to suggest may be common with us. Our brainwaves are very often wordless. We often quite suddenly perceive correct solutions to problems with which we have been striving for a long time before we have decided we will name them in one language or another. ... Very many ideas come to us in wordless form . . ."

O. Koehler, The Ability of Birds to Count

In this Chapter

  • Visualizing Structures

  • Visualizing Concurrent Behavior

  • Visualizing the Whole System

  • Summary

A model of a system is the body of information gathered for the purpose of studying the system so it can be better understood by the developers and maintainers of the system. When a system is modeled , the boundaries and identification of the entities, attributes, and the activities performed by the system can be determined. Modeling is an important tool in the design process of any system. It is essential that developers fully understand the system they are developing. Modeling can reveal the concurrency embedded in the system and where distribution can be appropriately applied.

The UML (United Modeling Language) is a graphical notation used to design, visualize, model, and document the artifacts of a software system. It is the de facto standard for communicating and modeling object-oriented systems. The modeling language uses symbols and notations to represent the artifacts of a software system from different views and different focuses. The UML brings together the approaches of Grady Booch, James Rumbaugh, and Ivar Jacobson's object-oriented analysis and design methods developed in the 1980s and 1990s. It was adopted by the OMG (Object Management Group), an international organization consisting of software developers and information system vendors with over 800 members . The adoption and conformance to the UML give software developers a consistent language and tool for object analysis, specification, visualization, and documentation.

In this chapter, we show you how to visualize and model your concurrent and distributed system using the UML. Besides helping you in the design of your system, modeling will help you identify where concurrency emerges, when synchronization and communication are needed, and how and where objects can be distributed. We discuss diagramming techniques used to visualize and model concurrent systems from the structural and behavioral perspectives. Please note the classes, objects, and systems used as examples in this chapter are used for exposition purposes and may or may not necessarily reflect actual classes, objects, or structures used in an actual system.



Parallel and Distributed Programming Using C++
Parallel and Distributed Programming Using C++
ISBN: 0131013769
EAN: 2147483647
Year: 2002
Pages: 133

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net