Chapter 10
Communication
(Collaboration diagram in UML 1.X) Depicts interaction of objects via messages. While a sequence diagram focuses on the timing or sequence of messages, a communication diagram focuses on the structural organization of objects in a network format.
Persistent and Transient Object Classes-Transient object class
- a class that describes an object that is created temporarily by the program and lives only during that program's execution
System analysis use case
1.Identify, define, and document new actors. 2.Identify, define, and document new use cases. 3.Identify any reuse possibilities. 4.Refine the use-case model diagram (if necessary). 5.Document system analysis use-case narratives.
The Process of Object Modeling
1.Modeling the functions of the system. 2.Finding and identifying the business objects. 3.Organizing the objects and identifying their relationships.
Connector
A letter inside a circle gives you another tool for managing complexity. A flow coming into a connector jumps to the flow coming out of a connector with a matching letter.
Interaction Overview
Combines features of sequence and activity diagrams to show how objects interact within each activity of a use case.
Composite Structure
Decomposes internal structure of class, component, or use case.
Component
Depicts the organization of programming code divided into components and how the component
Organizing the Objects and Identifying their Relationships
Identifying Associations and Multiplicity Identifying Generalization/Specialization Relationships Identifying Aggregation Relationships Prepare the Class Diagram
Activity Diagram Notations Fork
a black bar with one flow coming in and two or more flows going out. Actions on parallel flows beneath the fork can occur in any order or concurrently.
Composition
an aggregation relationship in which the "whole" is responsible for the creation and destruction of its "parts." If the "whole" were to die, the "part" would die with it.
Activity Diagram Notations Merge
diamond shapes with multiple flows coming in and one flow going out. This combines flows previously separated by decisions. Processing continues with any one flow coming into the merge.
Activity Diagram Notations Actions
rounded rectangles representing individual steps. The sequence of actions makes up the total activity shown by the diagram.
Activity Diagram Notations Initial node
solid circle representing the start of the process.
Generalization/specialization
technique wherein attributes and behaviors common to several types of object classes are grouped (or abstracted) into their own class, called a supertype.
Attribute
the data that represent characteristics of interest about an object.
System Sequence Diagram Notations-Actor -
the initiating actor of the use case is shown with the use case actor symbol.
Multiplicity
the minimum and maximum number of occurrences of one object/class for a single occurrence of the related object/class.
Encapsulation
the packaging of several items together into one unit.
Package
Depicts how classes or other UML constructs are organized into packages (corresponding to Java packages or C++ and .NET namespaces) and the dependencies of those packages.
Use case
Depicts interactions between the system and external systems and users. In other words it graphically describes who will use the system and in what ways the user expects to interact with the system. The use-case narrative is used in addition to textually describe the sequence of steps of each interaction.
Activity
Depicts sequential flow of activities of a use case or business process. It can also be used to model logic with the system.
Class
Depicts the system's object structure. It shows object classes that the system is composed of as well as the relationships between those object classes.
Persistent and Transient Object Classes-Persistent class
- a class that describes an object that outlives the execution of the program that created it. Stored permanently as in a database
Finding and Identifying the Business Objects
Find the Potential Objects Review each use case to find nouns that correspond to business entities or events. Select the Proposed Objects Not all nouns represent business objects. Is it a synonym of another object? Is it outside the scope of the system? Is it a role without unique behavior, or an external role? Is it unclear or in need of focus? Is it an action or an attribute that describes another object?
Sequence
Graphically depicts how objects interact with each other via messages in the execution of a use case or operation. It illustrates how messages are sent and received between objects and in what sequence
Guidelines for Constructing System Sequence Diagrams
Identify which scenario of use case you will depict. Purpose is to discover messages, not to model logic. So more important to clearly communicate a single scenario. Draw a rectangle representing the system as a whole and extend a lifeline under it. Identify each actor who directly provides an input to the system or directly receives an output from the system. Extend lifelines under the actor(s). Examine use case narrative to identify system inputs and outputs. Ignore messages inside system. Draw each external message as a horizontal arrow from the actor's lifeline to the system or from the system to the actor. Label inputs according to UML convention. Add frames to indicate optional messages with conditions. Frames can also indicate loops and alternate fragments. Confirm that the messages are shown in the proper sequence from top to bottom.
State Machine
Models how events can change the state of an object over its lifetime, showing both the various states that an object can assume and the transitions between those states.
Object
Similar to a class diagram, but instead of depicting object classes, it models actual object instances with current attribute values. The object diagram provides the developer with a "snapshot" of the system's object at one point in time.
Guidelines for Constructing Activity Diagrams
Start with one initial node as a starting point. Add partitions if it is relevant to your analysis. Add an action for each major step of the use case (or each major step an actor initiates. Add flows from each action to another action, a decision point, or an end point. For maximum precision of meaning, each action should have only one flow coming in and one flow going out with all forks, joins, decisions, and merges shown explicitly. Add decisions where flows diverge with alternating routes. Be sure to bring them back together with a merge. Add forks and joins where activities are performed in parallel. End with a single notation for activity final.
Object
something that is or is capable of being seen, touched, or otherwise sensed, and about which users store data and associate behavior. Person, place, thing, or event, Employee, customer, instructor, student, Warehouse, office, building, room, Product, vehicle, computer, videotape
Message
communication that occurs when one object invokes another object's method (behavior) to request information or some action
Activity Diagram Notations Decision
diamond shapes with one flow coming in and two or more flows going out. The flows coming out are marked to indicate the conditions.
Object instance
each specific person, place, thing, or event, as well as the values for the attributes of that object.
Deployment
Depicts the configuration of software components within the physical architecture of the system's hardware "nodes."
System Sequence Diagram Notations-Frame
- a box can enclose one or more messages to divide off a fragment of the sequence. These can show loops, alternate fragments, or optional (opt) steps. For an optional fragment the condition shown in square brackets indicates the conditions under which the steps will be performed.
Drawing System Sequence Diagrams-System sequence diagram
- a diagram that depicts the interaction between an actor and the system for a use case scenario. helps identify high-level messages that enter and exit the system
System Sequence Diagram Notations-Input messages
- horizontal arrows from actor to system indicate the message inputs. UML convention for messages is to begin the first word with a lowercase letter and add additional words with initial uppercase letter and no space. In parentheses include parameters, following same naming convention and separated with commas.
System Sequence Diagram Notations-Output messages
- horizontal arrows from system to actor shown as dashed lines. Since they are web forms, reports, e-mails, etc. these messages do not need to use the standard notation.
System Sequence Diagram Notations-Receiver Actor
- other actors or external systems that receive messages from the system can be included.
Timing
Another interaction diagram that focuses on timing constraints in the changing state of a single object or group of objects. Especially useful when designing embedded software for devices.
Activity Diagram Notations Join
a black bar with two or more flows coming in and one flow going out, noting the end of concurrent processing. All actions coming into the join must be completed before processing continues.
Activity diagram case
a diagram that can be used to graphically depict the flow of a business process, the steps of a use case, or the logic of an object behavior (method).
Class diagram -
a graphical depiction of a system's static object structure, showing object classes that the system is composed of as well as the relationships between those object classes
Object/class relationship
a natural business association that exists between one or more objects and classes.
Aggregation
a relationship in which one larger "whole" class contains one or more smaller "parts" classes. Conversely, a smaller "part" class is part of a "whole" larger class
Unified Modeling Language (UML)
a set of modeling conventions that is used to specify or describe a software system in terms of objects. The UML does not prescribe a method for developing systems—only a notation that is now widely accepted as a standard for object modeling.
Object Class
a set of objects that share common attributes and behavior. Sometimes referred to as a class.
Object modeling
a technique for identifying objects within the systems environment and the relationships between those objects.
Override
a technique whereby a subclass (subtype) uses an attribute or behavior of its own instead of an attribute or behavior inherited from the class (supertype).
System analysis use case
a use case that documents the interaction between the system user and the system. It is highly detailed in describing what is required but is free of most implementation details and constraints.
Object-oriented analysis (OOA)
an approach used to study existing objects to see if they can be reused or adapted for new uses -define new or modified objects that will be combined with existing objects into a useful business -computing application
Supertype
an entity that contains attributes and behaviors that are common to one or more class subtypes. Also referred to as abstract or parent class.
Subtype
an object class that inherits attributes and behaviors from a supertype class and may contain other attributes and behaviors unique to it. Also referred to as a child class and, if it exists at the lowest level of the inheritance hierarchy, as concrete class.
Activity Diagram Notations Flow
arrows on the diagram indicating the progression through the actions. Most flows do not need words to identify them unless coming out of decisions.
System Sequence Diagram Notations-Activation bars -
the bars set over the lifelines indicate period of time when participant is active in the interaction.
System Sequence Diagram Notations-System -
the box indicates the system as a "black box" or as a whole. The colon (:) is standard sequence diagram notation to indicate a running "instance" of the system.
Polymorphism
the concept that different objects can respond to the same message in different ways.
Inheritance
the concept wherein methods and/or attributes defined in an object class can be inherited or reused by another object class.
System Sequence Diagram Notations-Lifelines -
the dashed vertical lines extending downward from the actor and system symbols, which indicate the life of the sequence.
Activity Diagram with Partitions Subactivity indicator
the rake symbol in an action indicates that this action is broken out in another separate activity diagram. This helps you keep the activity diagram from becoming overly complex.
Behavior
the set of things that the object can do that correspond to functions that act on the object's data (or attributes). In object-oriented circles, an object's behavior is commonly referred to as a method, operation, or service.
Activity Diagram Notations Activity final
the solid circle inside the hollow circle representing the end of the process.