Chapter 14: The Movement to Objects
Behavioral State Machine Diagram
A dynamic model that shows the different states that a single class passes through during its life in response to events, along with responses and actions. Typically, they are not used for all classes, but just to further define complex classes to help simplify the design of algorithms for their methods.
Sequence Diagram
A dynamic model that supports the dynamic view of the evolving systems. It shows the explicit sequence of messages that are passes between objects in a defined interaction. Since it emphasizes the time-based ordering of the activity that takes place among a set of objects, it is very helpful for understanding real-time specifications and complex use cases.
Communication
Model the behavior of objects within a use case. Focuses on the communication among a set of collaborating objects of an activity.
Sequence
Model the behavior of objects within a use case. Focuses on the time-based ordering of an activity.
Guard Condition
A Boolean expression that includes attribute values, which allows a transition only if the condition is true.
System Boundary
A box that represents the system and clearly delineates what parts of the diagram are external or internal to it. The name of the system can appear either inside or on top of the box.
Message
A communication between two objects that conveys information. They are passed between objects and shown by solid lines connecting two objects, call links on the sequence diagram.
Class
A general template we use to define and create specific instances, or objects. Every object is associated with it.
A Use Case
A major process that the system will perform that benefits an actor(s) in some way, and it is labeled by a descriptive verb phrase.
Actor
A person or another system that interacts with and derives value from the system. It is not a specific user, but a role that a user can play while interacting with the system. They are external to the system and initiate a use case.
Rational Unified Process (RUP)
A rapid application development approach to building systems that is similar to the iterative development or extreme programming approach. It emphasizes iterative, incremental development and prototyping that undergo continuous testing throughout the life of the project.
Transition
A relationship that represents the movement of an object from one state to another state.
State
A set of values that describe an object at a specific point in time, and it represents a point in an object's life in which it satisfies some condition, performs some action, or waits for something to happen.
Class Diagram
A static model that supports the static view of the evolving system. It shows the classes and the relationships among the classes that remain constant in the system over time.
Dynamic (Late) Binding
A technique that delays identifying the type of object until run-time. As such, the specific method that is actually called is not chosen by the object-oriented system until the system is running.
Operations
Actions or functions that a class can perform.
Protected Attribute
An attribute that is hidden from all other classes except its immediate subclasses. Represented by a # symbol.
Private Attribute
An attribute that is hidden from all other classes. Represented by a - symbol.
Public Attribute
An attribute that is not hidden from any other object. Represented by a + symbol.
Object
An instantiation of a class. In other words, it is a person, place, event, or thing about which we want to capture information.
Constructor Operation
An operation that creates a new instance of a class.
Query Operation
An operation that makes information about the state of an object available to other objects, but it will not change the object in any way.
Update Operation
An operation that will change the value of some or all of the object's attributes, which may result in a change in the object's state.
Concrete Class
Any class that has instances.
Use Case
Capture business requirements for the system and to illustrate the interaction between the system and its environment.
Abstract Classes
Classes that do not produce instances because they are used merely as templates for other, more specific classes (especially those classes located high up in a hierarchy).
Superclasses
Common sets of attributes and methods can be organized into it.
Use Cases
Communicates at a high level what the system needs to do, and each UML diagramming techniques build upon this by presenting the functionality in different ways, each view having a different purpose.
Attributes
Describe information about the object, such as customer name, address, e-mail, and phone number. Each object has it.
Use Case
Describes how the user interacts with the system to perform some activity, such as placing an order, making a reservation, or searching for information. It is used to identify and to communicate the requirements for the system to the programmers who must write the system. Focus on one activity at a time.
Functional view
Describes the external behavior of the system from the perspective of the user. On the surface, this view is closely related to the process-modeling approaches in structured analysis and design.
Dynamic View
Describes the internal behavior of the system in terms of messages passed between objects and state changes within an object. This view in many ways combines the process and data-modeling approaches, because the execution of a method can cause state changes in the receiving object.
Static View
Describes the structure of the system in terms of attributes, methods, classes, relationships, and messages. This view is very similar to data-modeling approaches in structured analysis and design.
Behavioral State Machine
Examine the behavior of one class.
Package
Groups other UML elements together to form higher level constructs.
Interaction Overview
Illustrate an overview of the flow of control of a process.
Activity
Illustrate business work flows independent of classes, the flow of activities in a use case, or detailed design of a method.
Protocol State Machine
Illustrate the dependencies among the different interfaces of a class.
Timing
Illustrate the interaction that takes place among a set of objects and the state changes that they go through along a time axis.
Composite Structure
Illustrate the internal structure of a class--i.e., the relationships among the parts of a class.
Component
Illustrate the physical relationships among the software components.
Class
Illustrate the relationships between classes modeled in the system.
Object
Illustrate the relationships between objects modeled in the system. Function when actual instances of the classes will better communicate the model.
Use Case Diagram
Illustrates in a very simple way the main functions of the system and the different kind of users who will interact with it.
Methods
Implement an object's behavior. It is nothing more than an action that an object can perform. It is very much like a function or procedure in a traditional programming language.
Messages
Information sent to objects to trigger methods. It is essentially a function or procedure call from one object to another object.
Subclasses
Inherit the attributes and methods from the superclass about them. That is, each one contains attributes and methods from its parent superclass.
Aggregation
It is used when classes actually comprise other classes. This association is typically identified when words like "is a part of" or "is made up of" needs to be used to describe the relationship.
Attributes
Properties of a class about which we want to capture information.
Behavior Diagrams
Provide the analyst with a way to depict the dynamic relationship among the instances or objects that represent the business information system. They also allow the modeling of dynamic behavior of individual objects throughout their lifetime. They support the analyst in modeling the functional requirements of an evolving information system.
Visibility
Relates to the level of information hiding to be enforced for the attribute.
Associations
Represent the relationships that classes have with one another.
Deployment
Show the physical architecture of the system. Can also be used to show software components being deployed onto the physical architecture.
Association Relationships
Show which use cases the actor interacts with. It typically represents two-way communication between the use case and the actor.
Multiplicity
Shows how an instance of an object can be associated with other instances.
Generalization
Shows that one class (subclass) inherits from another class (superclass), meaning that the properties and operations of the superclass are also valid for objects of the subclass. This association occurs when words like "is a kind of" needs to be used to describe the relationship.
Behavioral State Machine Diagram
Shows the different states of the class and what events cause the class to change from one state to another.
Focus of Control (Execution Occurrence)
Shows when classes are sending and receiving messages. It is shown by a thin, rectangular box on the sequence diagram.
Event
Something that takes place at a certain point in time and changes a value(s) that describe an object, which in turn changes the object's state. It can be a designated condition becoming true, the receipt of the call for a method by an object, or the passage of a designated period.
Class
Stores the information and manages information in the system. It is the main building block of a class diagram.
Use Case Diagram
Summarizes all of the use cases (for the part of the system being modeled) together in one picture. It is drawn early on in the SDLC, when the analyst is gathering and defining requirements for the system, because it provides a simple, straightforward way of communicating to the users exactly what the system will do.
Object-Oriented Systems
Systems that focus on capturing the structure and behavior of information systems in little modules that encompass both data and processes. These little modules are known as objects.
Encapsulation
The combining of process and data into a single entity.
Unified Modeling Language (UML)
The objective is to provide a common vocabulary of object-based terms and diagramming techniques that is rich enough to model any systems development project from analysis to design.
Information Hiding
The principle suggests that only the information required to use a software module must be published to the user of the module. This implies that the information required to be passed to the module and the information returned from the module are returned.
A-Kind-of (AKO) Relationship
The relationship between the class and its superclass.
Polymorphism
The same message can be interpreted differently by different classes or objects.
Static Binding
The type of object is determined at compile time. Therefore, the developer would have to choose which method should be called, instead of allowing the system to do it.
Architecture Centric
The underlying architecture of the evolving system drives the specification, construction and documentation of the system.
Use Case Driven
The use cases are the primary modeling tool employed to define the behavior of the system.
Structure Diagrams
Used for representing the data and static relationships that are in an information system.
Inheritance
Used to identify higher level, or more general, classes of objects.
Object-Oriented Approach
Views a system as a collection of self-contained objects, including both data and processes.