Activity

An activity is a specification of behavior. It organizes and specifies the participation of subordinate behaviors, which are modeled as activities or indivisible atomic actions. Activity is usually modeled as a graph of activities interconnected by control or data flows, called activity diagram.

aa

Activities can represent algorithms, use case scenarios, workflows, or even business processes. Although they are typically modeled using activity diagrams, alternative ways of specification could be used depending on the activity type - activities can be modeled using textual scenarios, sequence diagrams or even pseudo-code.

Unlike use cases, which have to be user-goal level, activities could range from invocating a low-level system function to an entire business process. Along with the ability to be decomposed into sub-activities, it makes them an excellent tool for top-down decomposition. Since use cases cannot be broken down to subordinate use cases or shared, activities are a great solution. No matter on which level of detail the use case step is placed, it can be described with an activity. The activity can then be broken down to sub-activities, sub-sub-activities, and so on until the lowest level of the atomic actions is reached, which is mostly represented by calling system functions or services.

aa

Activities can even be reused. For example, the activity Select Customer can represent a step shared by many use cases, so linking them to steps within multiple use cases helps avoid duplication.

System Activities

From the perspective of Effective Analysis, an activity always involves user interaction:

Find Customer by Typing Name

  • User types at least 3 characters
  • System finds all customers whose name starts with the characters entered

However, as the activities are broken down into more detailed ones, some of the steps at the lowest level are just invocations of system functions - System finds all customers.... These steps do not include any user interaction and must be accompanied by an underlying system function which does the actual work:

Find Customer by Typing Name

  • User types at least 3 characters
  • System finds all customers whose name starts with the characters entered
    • FCE Find customer by name