2

I have a use-case named "Play a Video" in my project. The video is played from a purchased webserver on which i host the video only for my application's use.Now in the "Play a Video" use-case is "File hosting server" a secondary actor?. What makes me think it's secondary is that it is external to the main system and is involved in the main use-case, but what makes me suspicious is that it doesn't provide a service to the system.

2 Answers 2

1

If the system under consideration is an independent app that interacts with an independent service hosted on that server, you should go for a secondary actor.

However, if the video server is not an independent system with its own use cases, you should not show it at all on your use case diagram. Use cases are not meant to show the internals of your system. Typically, if your server is just some hardware in the architecture, or some interchangeable technical component of the system under consideration, and especially if it's could not be used by any other remote system, you're certainly in this situation.

2
  • To further clear the question, the web server that i purchase will also host a database that i will create to contain user information, and the same server will host video files only for the use of my application.The application is simply a mobile app which will interact with the server to send and receive data.Now in clear terms should i consider this database and file hosting server a secondary actor ? Commented May 9, 2018 at 14:12
  • @WithASpiRIT No, in this case I would not consider it as a secondary actor: the app, the server, and the database are just technical components of the same overall system. Each taken individually would have no value to the users. Maybe I should have clarified that the use case shall show the requirements, i.e. what is expected from the point of view of the actors involved, and not how it will be implemented. If you want to show how it's done, and how the processing is distributed in the system landscape, because from a technical perspective it maters, you could use a deployment diagram.
    – Christophe
    Commented May 9, 2018 at 16:12
1

According to Oracle a primary actor is

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.

Whereas secondary actors

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

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.

In this case I'd say it provides a service to the system in that it hosts and feeds the file to the end user, reducing load from the main system.

Going with the second point, file hosting servers potentially have other goals besides "play a video" and can be involved in other use cases such as "download a video", "receive uploaded video" etc.

In this case I'd say you're right in that it is a secondary actor as it's separate to the main system.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.