An Oracle blog about Unified Method

Use Case Actors - Primary versus Secondary

Guest Author

The Unified Modeling Language (UML1) defines an Actor (from UseCases) as:

An actor specifies a role played by a user or any other system that interacts with the subject.

In Alistair Cockburn’s book “Writing Effective Use Cases” (2) Actors are further defined as follows:

Primary Actor: The primary actor of a use case is the stakeholder that calls on the system to deliver one of its services. It has a goal with respect to the system – one that can be satisfied by its operation. The primary actor is often, but not always, the actor who triggers the use case.

Supporting Actors: A supporting actor in a use case in an external actor that provides a service to the system under design. It might be a high-speed printer, a web service, or humans that have to do some research and get back to us.

In a 2006 article (3) Cockburn refined the definitions slightly to read:

Primary Actors: The Actor(s) using the system to achieve a goal. The Use Case documents the interactions between the system and the actors to achieve the goal of the primary actor.

Secondary Actors: Actors that the system needs assistance from to achieve the primary actor’s goal.

Finally, the Oracle Unified Method (OUM) concurs with the UML definition of Actors, along with Cockburn’s refinement, but OUM also includes the following:

Secondary actors may or may not have goals that they expect to be satisfied by the use case, the primary actor always has a goal, and the use case exists to satisfy the primary actor.

Now that we are on the same “page”, let’s consider two examples:

  1. A bank loan officer wants to review a loan application from a customer, and part of the process involves a real-time credit rating check.
    • Use Case Name: Review Loan Application
    • Primary Actor: Loan Officer
    • Secondary Actors: Credit Rating System
  2. A Human Resources manager wants to change the job code of an employee, and as part of the process, automatically notify several other departments within the company of the change.
    • Use Case Name: Maintain Job Code
    • Primary Actor: Human Resources Manager
    • Secondary Actors: None

The first example is quite straight forward; we need to define the Secondary Actor because without the “Credit Rating System” we cannot successfully complete the Use Case. In other words, the goal of the Primary Actor is to successfully complete the Loan Application, but they need the explicit “help” of the Secondary Actor (Credit Rating System) to achieve this goal.

The second example is where people sometimes get confused. Within OUM we would not include the “other departments” as Secondary Actors and therefore not include them on the Use Case diagram for the following reasons:


  • The other departments are not required for the successful completion of the Use Case
  • We are not expecting any response from the other departments (at least within the bounds of the Use Case under discussion)

Having said that, within the detail of the Use Case Specification Main Success Scenario, we would include something like:

“The system sends a notification to the related department heads (ref. Business Rule BR101)”

Now let’s consider one final example.

A Procurement Manager wants to place a “bid” for some goods using an On-Line Trading Community (B2B version of eBay)

    • Use Case Name: Create Bid
    • Primary Actor: Procurement Manager
    • Secondary Actors: On-Line Trading Community

You might wonder why the Trading Community is listed as a Secondary Actor, i.e. if all we are going to do is place a bid for a specific quantity of goods at a given price and send that off to the Trading Community, then why would the Trading Community need to “assist” in that Use Case?

Well, once again, it comes back to the “User Experience” and how we want to optimize that when we think about our Use Case, and ultimately, when the developer comes to assembling some code.

In this final example, the Procurement Manager cannot successfully complete the “Create Bid” Use Case until they receive an affirmative confirmation back from the Trading Community that the Bid has been accepted. Therefore, the Trading Community must become a Secondary Actor and be referenced both on the Use Case diagram and Use Case Specification.

Any astute readers who are wondering about the “single sitting” rule will have to wait for a follow-up Blog entry to find out how that consideration can be factored in!!!

Happy Use Case writing!

(1) OMG Unified Modeling LanguageTM (OMG UML), Superstructure Version 2.4.1

(2) Cockburn, A, 2000, Writing Effective Use Case, Addison-Wesley Professional; Edition 1

(3) Cockburn, A, 2006 “Use Case fundamentals” viewed 20th March 2012, http://alistair.cockburn.us/Use+case+fundamentals

Join the discussion

Comments ( 19 )
  • guest Tuesday, October 9, 2012

    Good article. Really helped

  • guest Thursday, November 15, 2012

    As per definition, must the secondary actor somehow be linked with the system we are looking at or can a secondary actor be outside, meaning can the secondary actor be a completely independent system?

    For example, a system publishes data somewhere and my system needs to get that data in order to support the successful completion of a use case.

    Would the system that publishes data now be a secondary actor?


  • guest Friday, November 16, 2012

    Thanks for the question. Before I offer an answer, let's define some terms.

    * A System Use Case relates directly to the System Under Discussion (SuD) any other Actors (be they Human, System other otherwise) will reside outside of the SuD

    * A System Use Case must include one Primary Actor, and optionally any Secondary Actors that are required to complete the Use Case within a single "sitting"

    * "Sitting" refers to a single set of interactions between the Primary Actor and the SuD. A "Sitting" might last 30 seconds, or 30 minutes, but it's generally thought of as a single self-contained session

    In terms of your question, the first thing to do would be to ask yourself "what is the goal of my Use Case", and this will usually be the same as the Use Case name. For example, let's say our Use Case is called "Display Performance Metrics". The Primary Actor might be the HR Manager, and the SuD would be the HR System.

    Now we must ask ourselves "Will any other Actors be required to complete this Use Case?"

    Let's assume the SuD needs to retrieve the Performance Metrics from a separate (i.e. non SuD) system; could be something like a query to an external BI Database. In this example, the BI Database would indeed be a Secondary Actor because 1) The call, and subsequent return of the Metrics are accomplished within a single "Sitting" and 2) the Use Case cannot successfully complete without the information from the Secondary Actor.

    Now let's assume that the BI System publishes Performance Metrics every evening, and then pushes that information directly into the HR System. There would probably be a separate Use Case called something like "Publish Performance Metrics" where the SuD would be the BI System. But if we now go back to our "Display Performance Metrics" Use Case, then we would no longer have a Secondary Actor. The details of the Use Case would simply request the Metrics to be displayed from "within" the SuD.

    Hope this helps.

  • guest Tuesday, August 13, 2013

    Very good article, really helped! thx.

  • guest Tuesday, August 13, 2013

    Very good article! really helped.

  • guest Tuesday, October 15, 2013

    thank u

  • guest Tuesday, October 15, 2013

    thank u

  • Fazila Ashraf Tuesday, October 29, 2013

    Helped me alot ...

  • guest Tuesday, March 18, 2014

    can someone tell me how to write a primary scenario, and give me an example


  • guest Monday, September 29, 2014

    Hi, I am a student. Our Professor assigned a task that we need to find Primary and Secondary actors for Facebook. I understand Primary will be Users, but the secondary will it be server? Please guide me if I am thinking wrong or right?

    I often get confused when it comes to secondary actors.

    Thanks a lot!!

  • guest Sunday, November 9, 2014

    thank you.

  • guest Sunday, January 11, 2015

    Really informative article with nice explainations. Really helped me to understand the difference among the 2 actors. Thank You.

  • guest Wednesday, July 29, 2015


  • guest Friday, January 29, 2016


  • guest Monday, April 11, 2016

    When is a database a primary actor when writing use cases?

  • ErikaSanchez Wednesday, October 26, 2016

    We are offering the best guidelines for making career in acting and modeling. Visit http://myriamtouimer.com/ for the best guidelines and be a successful actress and model.

    <a href="http://myriamtouimer.com/">Myriam Touimer</a>

  • Reema Wednesday, February 28, 2018
    I just want to ask
    if it possible to have use case with secondary actor only there is no primary actor
    thank you.
  • Deepanshu singh Sunday, March 25, 2018
    The article really helped a lot.
  • Sabbir Ahmed Saturday, July 21, 2018
    Thanks a lot for this article. Best article I have ever read for Use Case Diagram.
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.