Course: CS2002 Software Development and Management
Instructor: Dr. Yani Xue
Focus on visualizing the flow of activities in a system, particularly in software processes.
Textbook:
"UML @ Classroom: An Introduction to Object-Oriented Modeling"
Authors: Martina Seidl, Marion Scholz, Christian Huemer, Gerti Kappel
Publisher: Springer Publishing, 2015
ISBN: 3319127411
Key components of the discussion include:
Introduction and purpose of Activity Diagrams
Basic elements and their functions
Object nodes and their roles
Central buffers and data stores for information management
Connectors to enhance diagram readability
Event-based actions and call behavior actions
Use of partitions in diagrams
Exception handling strategies
Purpose: Model the processes within a system, focusing on procedural aspects.
Related concepts:
Business process languages
Petri net token concept for describing concurrent processes
Broad application across object-oriented and non-object-oriented system modeling.
User-defined behavior can be specified at multiple levels:
Business process functions
Use case action flows
Detailed instruction behaviors for operations
Definition:
Directed graph where:
Nodes represent actions
Edges indicate control and object flow necessary for execution
Optional elements:
Parameters
Pre- and postconditions
Fundamental unit for defining user behavior:
Actions are atomic but can be aborted.
Can be described using natural language or programming languages.
Notation for predefined action types includes event-based actions and call behavior actions.
Functionality:
Connect activities and define execution order.
Types of edges:
Control flow edges: Specify order of execution between nodes.
Object flow edges: Facilitate data/object exchange between nodes, showing dependencies.
Control flow connects actions sequentially, while object flow illustrates data dependencies.
Guards (conditions) determine flow continuity; execution continues if conditions in brackets evaluate to true.
Managing execution:
Tokens regulate execution permission for actions.
Process: Action receiving a token can execute, then transfers token to subsequent actions, contingent upon guard evaluations.
Types of tokens:
Control tokens (execution permissions)
Object tokens (carry data)
Initial Node:
Commences activity execution, generating tokens for outflow.
Supports multiple nodes for modeling concurrent activities.
Final Nodes:
Activity Final Node: Terminates all execution paths upon receiving first token.
Flow Final Node: Ends specific execution paths without affecting others.
Define alternative paths with guard conditions facilitating flow selections based on evaluations.
Consolidate alternative paths into a single flow, capable of modeling loop structures.
Split execution paths into concurrent subpaths, duplicating tokens for distribution.
Merge concurrent paths, waiting for tokens at all inflows before processing and passing on control tokens.
Illustrative examples demonstrate complex interactions, decision-making and parallel workflows within the context of attending lectures and registering for assignments.
Contain data eligible for flow, referencing data exchange, with additional typological information as needed.
Central Buffer:
Temporary storage for object tokens, Read operations delete token from memory.
Data Store:
Permanent memory for saving object tokens, allowing copies for distribution.
Minimum token requirement for action execution; defaults and variations signify token consumption logic.
Used to connect actions spread apart, enhancing diagram readability.
Different actions, such as sending signals or accepting events, include specific notations and illustrate varied interaction triggers within the system.
Allows for the hierarchical structuring of actions, promoting clarity and reusability of modeling components.
Organizational units in diagrams, grouping nodes and edges for clarity reflecting responsible roles or units.
Defined responses to error situations, employing exception handlers that replace actions, ensuring continuity of process.
Interruptible Activity Region:
Categorizes actions that terminate upon specific event occurrences, triggering alternative behaviors.
Action Node: Represents an entity executing an action.
Activity Node: Depicts broader processes that can be subdivided.
Final Nodes: Marks the end of execution flows.
Decision/Merge Nodes: Shapes indicating branching and merging of execution paths.
Parallelization/Synchronization Nodes: Nodes for concurrent execution path management.
Object Nodes: Represent data exchange points within the flow.
Exception Handlers: Depict responses to faults in execution.