I am working on a project to detect cancer and I am using deep learning (Convolutional neural network). In the user interface, the user has only to input an image number then click test

when the user input the image number " the number of the image in the dataset " it will tell if this is a scan image of a person who has cancer or not.. also the dataset is used to train the model

I want to draw a use case diagram.. the primary actor will be the user but what about the secondary? is it going to be the dataset?

  • How does your dataset "act" with the system under consideration?
    – user188153
    Commented Jun 1, 2020 at 16:01
  • Would the use-case be completely different if the user uploads an image of their own rather than selecting one from a dataset? Remember that a use-case is about what a user wants to achieve and not what the interaction with the system looks like. Commented Jun 2, 2020 at 11:31

2 Answers 2


A use-case actor interacts with the use case.

If the actor is not human, it’s an independent system that contributes to the use case with the aim of fulfilling some of its own goals.

In consequence, a passive dataset cannot be an actor: it does not really interact with the use case (it’s just data that is read and that has no behavior of its own).

What would be a secondary actor, is a another independent system that provides the dataset as input.

If there is no interaction however, there is no need to have a fictive secondary actor. If the data is provided by the normal user for upload, the dataset would only be (offline) input provided by the primary actor (i.e. a part of the input is aquited not via GUI but via file I/O).


I don't think that a use case diagram would show a dataset. In a use case diagram, an actor is someone or something that actively interacts with the system under design. Although the system may use (read, write, consume) the dataset, I am having a difficult time imagining a situation where the dataset would interact with the system.

Also, consider that the use case diagram is likely not the only depiction of your use cases. You will probably have more detail elsewhere. Within the use cases that require the system to use the dataset, you can elaborate on what the possible flows look like for valid and invalid inputs and data.

I'd also point out that a use case diagram may not include secondary actors. The primary actors are the users or systems that are using the system under design to do something. The secondary actors are people or systems that are required to support the primary actor's use cases. In some systems, the primary actor and the system under design are the only things involved.

  • Thank you.. but why the dataset cannot be the secondary actor while it tells whether the image is for a person who has cancer or not? it provides the prediction. thank you again Commented Jun 1, 2020 at 17:01
  • 1
    @user13016777 The dataset is data. Data doesn't do anything. Maybe the dataset was used to train an algorithm, but that's an input. Maybe an algorithm scans the dataset and performs analysis, but once again the dataset is an input. The dataset doesn't do anything to the system.
    – Thomas Owens
    Commented Jun 1, 2020 at 17:32

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.