You are on page 1of 37

UML

HOW TO DRAW UML DIAGRAMS What is UML? UML stands for Unified Modeling Language. This object-oriented system of notation has evolved from the work of Grady Booch, James Rumbaugh, Ivar Jacobson, and the Rational Software Corporation. These renowned computer scientists fused their respective technologies into a single, standardized model. Today, UML is accepted by the Object Management Group (OMG) as the standard for modeling object oriented programs. Types of UML Diagrams UML defines nine types of diagrams: class (package), object, use case, sequence, collaboration, statechart, activity, component, and deployment.

Class Diagrams Class diagrams are the backbone of almost every object oriented method, including UML. They describe the static structure of a system.

Package Diagrams Package diagrams are a subset of class diagrams, but developers sometimes treat them as a separate technique. Package diagrams organize elements of a system into related groups to minimize dependencies between packages.

Object Diagrams Object diagrams describe the static structure of a system at a particular time. They can be used to test class diagrams for accuracy.

Use Case Diagrams Use case diagrams model the functionality of system using actors and use cases.

Sequence Diagrams Sequence diagrams describe interactions among classes in terms of an exchange of messages over time.

Collaboration Diagrams Collaboration diagrams represent interactions between objects as a series of sequenced messages. Collaboration diagrams describe both the static structure and the dynamic behavior of a system.

Statechart Diagrams Statechart diagrams describe the dynamic behavior of a system in response to external stimuli. Statechart diagrams are especially useful in modeling reactive objects whose states are triggered by specific events.

Activity Diagrams Activity diagrams illustrate the dynamic nature of a system by modeling the flow of control from activity to activity. An activity represents an operation on some class in the system that results in a change in the state of the system. Typically, activity diagrams are used to model workflow or business processes and internal operation.

Component Diagrams Component diagrams describe the organization of physical software components, including source code, run-time (binary) code, and executables.

Deployment Diagrams Deployment diagrams depict the physical resources in a system, including nodes, components, and connections.

SmartDraw UML Center HOW TO DRAW UML DIAGRAMS (cont'd) What is a UML Class Diagram? Class diagrams are the backbone of almost every objectoriented method including UML. They describe the static structure of a system. Basic Class Diagram Symbols and Notations Classes represent an abstraction of entities with common characteristics. Associations represent the relationships between classes. Classes Illustrate classes with rectangles divided into compartments. Place the name of the class in the first partition (centered, bolded, and capitalized), list the attributes in the second partition, and write operations into the third. Learn how to create this symbol.

Active Class Active classes initiate and control the flow of activity, while passive classes store data and serve other classes. Illustrate active classes with a thicker border.

Visibility Use visibility markers to signify who can access the information contained within a class. Private visibility hides information from anything outside the class partition. Public visibility allows all other classes to view the marked information. Protected visibility allows child classes to access information they inherited from a parent class. Learn how to edit text.

Associations Associations represent static relationships between classes. Place association names above, on, or below the association line. Use a filled arrow to indicate the direction of the relationship. Place roles near the end of an association. Roles represent the way the two classes see each other. Note:It's uncommon to name both the association and the class roles. Learn how to connect two classes.

Multiplicity (Cardinality) Place multiplicity notations near the ends of an association. These symbols indicate the number of instances of one class linked to one instance of the other class. For example, one company will have one or more employees, but each employee works for one company only.

Constraint Place constraints inside curly braces {}.

Simple Constraint

Complex Constraint

Composition and Aggregation Composition is a special type of aggregation that denotes a strong ownership between Class A, the whole, and Class B, its part. Illustrate composition with a filled diamond. Use a hollow diamond to represent a simple aggregation relationship, in which the "whole" class plays a more important role than the "part" class, but the two classes are not dependent on each other. The diamond end in both a composition and aggregation relationship points toward the "whole" class or the aggregate.

Generalization Generalization is another name for inheritance or an "is a" relationship. It refers to a relationship between two classes where one class is a specialized version of another. For example, Honda is a type of car. So the class Honda would have a generalization relationship with the class car. In real life coding examples, the difference between inheritance and aggregation can be confusing. If you have an aggregation relationship, the aggregate (the whole) can access only the PUBLIC functions of the part class. On the other hand, inheritance allows the inheriting class to access both the PUBLIC and PROTECTED functions of the superclass. Learn how to draw a generalization relationship. SmartDraw UML Center HOW TO DRAW UML DIAGRAMS (cont'd) What is a UML Package Diagram? Package diagrams organize the elements of a system into related groups to minimize dependencies among them Basic Package Diagram Symbols and Notations

Packages Use a tabbed folder to illustrate packages. Write the name of the package on the tab or inside the folder. Similar to classes, you can also list the attributes of a package. Learn how to resize a grouped object like a package.

Visibility Visibility markers signify who can access the information contained within a package. Private visibility means that the attribute or the operation is not accessible to anything outside the package. Public visibility allows an attribute or an operation to be viewed by other packages. Protected visibility makes an attribute or operation visible to packages that inherit it only. Learn how to edit text on a symbol.

Dependency Dependency defines a relationship in which changes to one package will affect another package. Importing is a type of dependency that grants one package access to the contents of another package. Learn how to draw dependencies and add arrows to your diagram.

What is a UML Object Diagram? Object diagrams are also closely linked to class diagrams. Just as an object is an instance of a class, an object diagram could be viewed as an instance of a class diagram. Object diagrams describe the static structure of a system at a particular time and they are used to test the accuracy of class diagrams.

Basic Object Diagram Symbols and Notations Object names Each object is represented as a rectangle, which contains the name of the object and its class underlined and separated by a colon. Learn how to edit text on a symbol.

Object attributes As with classes, you can list object attributes in a separate compartment. However, unlike classes, object attributes must have values assigned to them.

Active object Objects that control action flow are called active objects. Illustrate these objects with a thicker border.

Multiplicity You can illustrate multiple objects as one symbol if the attributes of the individual objects are not important.

Links Links are instances of associations. You can draw a link using the lines used in class diagrams. Learn how to connect objects.

Self-linked Objects that fulfill more than one role can be self-linked. For example, if Mark, an administrative assistant, also fulfilled the role of a marketing assistant, and the two positions are linked, Mark's instance of the two classes will be self-linked. SmartDraw UML Center HOW TO DRAW UML DIAGRAMS (cont'd) What is a UML Use Case Diagram? Use case diagrams model the functionality of a system using actors and use cases. Use cases are services or functions provided by the system to its users. Basic Use Case Diagram Symbols and Notations System Draw your system's boundries using a rectangle that contains use cases. Place actors outside the system's boundries.

Use Case Draw use cases using ovals. Label with ovals with verbs that represent the system's functions.

Actors Actors are the users of a system. When one system is the actor of another system, label the actor system with the actor stereotype.

Relationships Illustrate relationships between an actor and a use case with a simple line. For relationships among use cases, use arrows labeled either "uses" or "extends." A "uses" relationship indicates that one use case is needed by another in order to perform a task. An "extends" relationship indicates alternative options under a certain use case. Learn how to draw relationships.

What is a UML Sequence Diagram? Sequence diagrams describe interactions among classes in terms of an exchange of messages over time. Basic Sequence Diagram Symbols and Notations Class roles Class roles describe the way an object will behave in context. Use the UML object symbol to illustrate class roles, but don't list object attributes. Learn how to edit text on a symbol.

Activation Activation boxes represent the time an object needs to complete a task.

Messages Messages are arrows that represent communication between objects. Use half-arrowed lines to represent asynchronous messages. Asynchronous messages are sent from an object that will not wait for a response from the receiver before continuing its tasks. Learn how to draw messages.

Various message types for Sequence and Collaboration diagrams

Lifelines Lifelines are vertical dashed lines that indicate the object's presence over time. Learn how to attach activation boxes to lifelines.

Destroying Objects Objects can be terminated early using an arrow labeled "< < destroy > >" that points to an X.

Loops A repetition or loop within a sequence diagram is depicted as a rectangle. Place the condition for exiting the loop at the bottom left corner in square brackets [ ]. Learn how to arra

SmartDraw UML Center HOW TO DRAW UML DIAGRAMS (cont'd) What is a UML Collaboration Diagram? A collaboration diagram describes interactions among objects in terms of sequenced messages. Collaboration diagrams represent a combination of information taken from class, sequence, and use case diagrams describing both the static structure and dynamic behavior of a system. Basic Collaboration Diagram Symbols and Notations Class roles Class roles describe how objects behave. Use the UML object symbol to illustrate class roles, but don't list object attributes.

Association roles Association roles describe how an association will behave given a particular situation. You can draw association roles using simple

lines labeled with stereotypes. Learn how to draw associations.

Messages Unlike sequence diagrams, collaboration diagrams do not have an explicit way to denote time and instead number messages in order of execution. Sequence numbering can become nested using the Dewey decimal system. For example, nested messages under the first message are labeled 1.1, 1.2, 1.3, and so on. The a condition for a message is usually placed in square brackets immediately following the sequence number. Use a * after the sequence number to indicate a loop. Learn how to add arrows to your lines.

What is a UML Statechart Diagram? A statechart diagram shows the behavior of classes in response to external stimuli. This diagram models the dynamic flow of control from state to state within a system. Basic Statechart Diagram Symbols and Notations States States represent situations during the life of an object. You can easily illustrate a state in SmartDraw by using a rectangle with rounded corners.

Transition A solid arrow represents the path between different states of an object. Label the transition with the event that triggered it and the action that results from it. Learn how to draw lines and arrows in SmartDraw.

Initial State A filled circle followed by an arrow represents the object's initial state. Learn how to rotate objects.

Final State An arrow pointing to a filled circle nested inside another circle represents the object's final state.

Synchronization and Splitting of Control A short heavy bar with two transitions entering it represents a synchronization of control. A short heavy bar with two transitions leaving it represents a splitting of control that creates multiple states.

What is a UML Activity Diagram? An activity diagram illustrates the dynamic nature of a system by modeling the flow of control from activity to activity. An activity represents an operation on some class in the system that results in a change in the state of the system. Typically, activity diagrams are used to model workflow or business processes and internal operation. Because an activity diagram is a special kind of statechart diagram, it uses some of the same modeling conventions. Basic Activity Diagram Symbols and Notations Action states Action states represent the noninterruptible actions of objects. You can draw an action state in SmartDraw using a rectangle with rounded corners.

Action Flow Action flow arrows illustrate the relationships among action states. Learn how to draw action flows.

Object Flow Object flow refers to the creation and modification of objects by activities. An object flow arrow from an action to an object means that the action creates or influences the object. An object flow arrow from an object to an action indicates that the action state uses the object. Learn how to draw object flows.

Initial State A filled circle followed by an arrow represents the initial action state.

Final State An arrow pointing to a filled circle nested inside another circle represents the final action state.

Branching A diamond represents a decision with alternate paths. The outgoing alternates should be labeled with a condition or guard expression. You can also label one of the paths "else."

Synchronization A synchronization bar helps illustrate parallel transitions. Synchronization is also called forking and joining.

Swimlanes Swimlanes group related activities into one column. Read this this flowchart tutorial to learn how to create swimlanes in SmartDraw.

SmartDraw UML Center HOW TO DRAW UML DIAGRAMS (cont'd) What is a UML Component Diagram? A component diagram describes the organization of the physical components in a system. Basic Component Diagram Symbols and Notations Component A component is a physical building block of the system. It is represented as a rectangle with tabs. Learn how to resize grouped objects like components.

Interface An interface describes a group of operations used or created by components. Dependencies Draw dependencies among components using dashed arrows. Learn about line styles in SmartDraw.

What is a UML Deployment Diagram? Deployment diagrams depict the physical resources in a system including nodes, components, and connections. Basic Deployment Diagram Symbols and Notations Node A node is a physical resource that executes code components. Learn how to resize grouped objects like nodes.

Association Association refers to a physical connection between nodes, such as Ethernet. Learn how to connect two nodes. Components and Nodes Place components inside the node that deploys them.

SmartDraw UML Center HOW TO DRAW UML DIAGRAMS (cont'd) How to Draw a UML Diagram with SmartDraw SmartDraw is designed to help you create UML diagrams quickly and easily. Locating the Symbols and Templates All the common symbols for UML diagrams are located in the Software Design folder, under UML.

To open a library double click on it or drag it to the drawing area. Adding Components to Your Diagram After opening a library, you can add a symbol to your drawing by dragging it to the page.

SmartDraw UML Center HOW TO DRAW UML DIAGRAMS (cont'd) Connecting Lines to Shapes Most software diagrams involve connecting one or more shapes to each other using lines. To make sure your lines can connect to shapes, go to the Arrange menu and adjust your settings to Allow Lines to Link as shown below.

To use a line from a library, drag it to the drawing area, grab one of its ends and stretch it towards an object. When you see the anchor symbol, you can let go of the line and it will attach to the object.

You can also draw a line using the toolbar. Choose the line tool you want by clicking on it once. Now your cursor looks like a pencil. Touch the pencil to the edge of one shape and click down with the mouse (you'll see black dots on the edge of the shape). Drag the pencil to the edge of the other shape until you see the anchor symbol, then release.

Connecting two packages with a segmented line To learn more about the various line options in SmartDraw, visit this page in the network design tutorial.

SmartDraw offers a variety of line tools to draw links and associations Adjusting Line Style To adjust a line's style, select the line, then go to the Lines menu and choose a thickness or a dashed line under Style, or select a different color from the Color palette.

Adjust a line's style

Change a line's color Adding Arrows To convert a regular line to an arrow, select the line, go to Arrowheads under the Lines menu, and choose More Styles under Arrowheads. Choose the appropriate arrowhead for the type of relationship you want to illustrate.

Connected Shapes Once connected, lines and shapes stay connected, even if they are moved or stretched.

To detach a line from an object it is linked to, click on the line, then pull the end knob away from the object. Dropping Shapes on a Line In UML sequence diagrams, activation boxes are linked to vertical lifelines. You will also need to know how to drop shapes on a line for other software diagrams. First, make sure that Allow Shapes to Link to Lines is checked under the Arrange menu.

SmartDraw shapes link to lines via a special attachment point located by default in the center of the shape. Drag the shape over the line so its center (or attachment point) is near the line. As the shape's attachment point comes in contact with the line, the cursor changes to an anchor, and the connection point appears as a black dot.

Attaching an activation box to a lifeline Sometimes, the shape rotates 90 degrees when it attaches to a line. To make sure that the shape retains its own angle of rotation, right click on the line and choose Horizontally under Align Shapes and Text on a Line.

To break the link between a shape and a line, just drag the shape away from the line. SmartDraw UML Center HOW TO DRAW UML DIAGRAMS (cont'd) Generalization Relationship Generalization or inheritance relationships can be created in SmartDraw using automatic connectors and a triangle. Most libraries already have a symbol you can simply drag out and use, but you can also create this symbol using the triangle symbol and automatic connector on the toolbar.

Drag the generalization symbol from a library or...

...add a triangle and an automatic connector using the toolbar Using the Generalization Symbol Once you've dropped the symbol on the page, select it again, and move it toward the supertype box you want to attach it to. As the tip of the triangle touches the box, you should see connection points around the edges of the box, signaling that if released, the symbol will attach.

If you don't see the connection points, go the Arrange menu and check your settings. For two shapes to connect, you should have the Allow Shapes to Link setting checked.

Attaching Shapes to an Automatic Connector Once the generalization symbol is connected to the supertype box, drag subtype boxes to the automatic connector to attach them. The connector is a special line tool that automatically connects several shapes in evenly spaced patterns. As shapes get close to the connector, the outline of the moving object jumps to the closest link point, showing where it would connect if you released it. Releasing the mouse attaches the object to the connector at the selected link point.

Drag the first subtype box to the automatic connector

Drag the second subtype to the automatic connector

The complete generalization relationship To learn more about automatic connectors, read the organizational chart tutorial. SmartDraw UML Center HOW TO DRAW UML DIAGRAMS (cont'd) Adding and Editing Text To add text to a shape or a line, select it and start typing. Depending on the particular shape, your text will appear inside, below, or above the shape. For a line, your text will appear centered on the line. Some shapes will already have text on them. To edit this text, double-click on the area you want to edit. You can change font size,

font type, color, alignment in the Text menu and on the toolbar.

Change text alignment in the Text menu Use the buttons on the toolbar for quick and easy editing Converting a Shape into a Table UML objects that specify operations and attributes are depicted as rectangles with rows. You can use the symbols in the UML libraries, or you can draw your own by converting a rectangle shape into a table. To convert a rectangle, select it, then go to the Table menu and choose Convert to Table.

Choose the appropriate number of rows and columns from the dialog box that appears.

Once your shape is converted, you can use the standard Table menu commands to change a cell's background color as well as the grid line thickness and color. You can also Join and Split cells to further customize your shape. To enter text into a cell, double-click on it and type.

The converted shape Resizing Grouped Objects Many of the symbols in the software libraries are grouped SmartDraw objects. These SmartDraw objects grow and shrink together as if they were one shape. Due to restrictions on text shrinking, some grouped objects will be distorted when shrunk. To change the restrictions on text shrinking, select the shape, go to the Shapes menu, and select Text Entry Properties.

Check the box under Allow Text to Shrink and specify a small size such as "8". Now, you should be able to shrink your object without distortion.

If you want even more freedom in editing these symbols, you can ungroup them in the Arrange menu.

Ungroup a UML symbol for better editing Once ungrouped, you can stretch, shrink, and grow the elements of a symbol separately and reassemble them to your liking. SmartDraw UML Center HOW TO DRAW UML DIAGRAMS (cont'd) Arranging Objects You can arrange objects on your page by selecting them and moving them with the mouse. For finer adjustments you can use the arrow keys to nudge the object or objects into place. The Arrange menu provides a variety of helpful commands that help you position your objects better. For example, to align a number of class objects to each other, first, select the objects you want to arrange. Do this by clicking on each object in turn (while holding down the shift key).

The last object you click has black selection handles and is called the Target Object. When you use the Align or Make Same Size commands, all the selected objects will be aligned or sized to match the target object.

Applying the Align Left command to the selected classes

The results after using both Align Left and Make Same Size Arranging Objects Vertically Although SmartDraw doesn't support layers, you can think of

the objects in your drawing as a vertical stack of blocks. Objects drawn earlier are on the bottom of the stack while objects drawn later are at the top of the stack. The object drawn last is the shape that's on top.

If a recently drawn object like a loop on a sequence diagram covers parts of your drawing, you can go to the Shapes menu and select the transparent fill from the Fill Colors option or you can go to the Arrange menu and choose Send to Back to change the order of the stack.

The loop shape obstructs the rest of the sequence diagram

To reveal the hidden parts of the drawing, go to the Shapes menu and choose the Transparent filter for the loop shape or...

...go to the Arrange menu and choose Send to Back.

The sequence diagram once the loop has been sent to the bottom of the drawing stack Rotating Objects Although most software diagrams have a horizontal layout, there might be cases where you will need objects to be at an angle. Most objects have a rotating handle near their right edge. To rotate an object manually, move your cursor over the handle until it changes into a circular arrow, click down with the mouse, and rotate. When finished rotating, release the mouse to see the rotated object.

When on object is too small to have a rotator handle or you want to rotate it more precisely, select the object, go to the Arrange menu, and using the Rotate/Set Angle command, specify the exact angle of rotation within one tenth of a degree.

You can rotate straight lines, any shape, and even most imported items. However, you cannot rotate segmented lines, curves, automatic connectors, and bit maps. Objects also don't rotate when linked. To rotate a hooked element, such as the inital and final state symbols, first unhook it and reattach it only after it's been rotated. Rotation angles are calculated clockwise from the horizontal. Use the diagram below to estimate the correct angle of rotation.

SmartDraw UML Center HOW TO DRAW UML DIAGRAMS (cont'd) Tips for Effective UML Diagrams 1) The level of abstraction in your diagrams should meet

the needs and interest of your audience. High level management might only be interested in the big picture while developers need as much detail as possible. 2) Avoid crossing lines by arranging all the elements of a diagram on the page before drawing in the relationship lines. If two lines must cross, use a "bridge" (also known as a "line hop") to show that the lines do not intersect.

Incorrect line crossing

Correct crossover 3) Use notes or color to draw attention to important features.

Using colors can help you highlight important features in your diagram 4) Address primary structure and behaviour first and model complexities and detail in a separate diagram. SmartDraw allows you to link multiple diagrams, so the viewer can drill

down into your diagram for more detail. To link an object in your chart to another diagram, select the object and choose Hyperlink to Another File from the Tools menu. A small plus sign will appear in the object, and clicking on it opens the linked file.

5) SmartDraw makes it easy to share your software design diagram with others in a business presentation or on the web.

Export as GIF or JPEG for the web Export as HTML with working hyperlinks Copy & Paste into PowerPoint or other Office Suite programs

When you paste your diagram into another program (such as PowerPoint), you can edit it by simply double-clicking on the diagram in the other program. This opens the diagram in SmartDraw for editing, and your changes will be updated in the other program automatically. 6) Create a polished diagram by adding shadows and color. You can choose from a number of ready-made styles in the Edit menu under Colors and Shadows, or you can create your own.

A state diagram created using the Sea Green style in SmartDraw To hide the shadow on an individual object, go to the Arrange menu and select Hide Shadow.

You might also like