In your case 2, the reader never interacts with the system they interact with the librarian , so you could reasonably argue that, within the context of this model and this particular use case , the reader is not an actor at at all but an external detail you can mention in the description of the use case. The meaning of the use case isn't "reader borrows a book", but rather something like this: "a librarian enters check out information in order to let the reader borrow the book while keeping the catalog up-to date" remember, the system is built to satisfy the business needs of the library; also, as a side note, I used the user story—style description here [role-what-why].
Of course, maybe the library has a reader-facing portal that's part of your system, but that's a different situation, and a different use case. So I would just treat the librarian as the primary actor.
When modeling anything, you have to make a decision on where the boundary of the model is. Based on your question, you implicitly set the boundary to include the whole library as an entity, rather then just the system that you are building; that may feel natural, but it isn't necessarily useful from software development perspective.
A note on secondary actors. When following any practice or recommendation, try to figure out the reason behind it - it's not always easy to do that, but it's worth contemplating it. So, why do we make a distinction between primary and secondary actors in the first place?
The idea is to identify the main business reasons for the existence of the system, the main functionality that it should have in order to satisfy the needs of the people for whom it is built, so that you can structure the system in terms of those main needs.
This is about the "why" behind things - not for philosophical reasons, but in order to gather information that's relevant when building a system for someone. Describing things in this way needs some practice, but it's important. To use the same example, a librarian doesn't want to access a specific screen to enter data about a book this is missing the business-oriented "why" ; instead, a librarian wants to enter check out information so that they could provide, in an organized way, a primary service the library offers lets readers borrows books, keeps track of books.
To figure these out, you will need to talk with people who work in your domain and who will be using the system the domain experts. Understanding these let's you make the right architectural trade-offs and there are always trade-offs , and come up with an initial architecture that supports the most important users and the most important functionality.
I say "initial" because you still may need to tweak it as you learn more about the domain in the future, as you notice certain change patterns emerge, etc. Secondary actors are supporting actors, in the sense that they exist to support the workflow of primary actors, but aren't in and of themselves drivers of the business value.
Note that you don't have to come up with all these up front. Try to identify the primary actors, then revise the model as you go along, for as long as doing so is useful to you. Trying to get it all right up front is a very waterfall-y; in an agile setting, you have short iterations, and these let you learn, test assumptions, and remodel things over time as your understanding grows.
Although the bulk of the book uses what Cockburn calls the "fully dressed" format of documenting use cases, he also talks about "casual", 'one-column table", "two-column table", "RUP style", "if-statement style", "Occam style", "diagram style" which is not a UML use case diagram, but the use of sequence, collaboration, and activity diagrams , and the UML use case diagram.
An appendix is devoted to the discussion of UML use case diagrams. In this appendix, one of the guidelines is to place "supporting actors on the right":. I find it helpful to place all the primary actors on the left side of the system box, leaving the right side for the supporting secondary actors. This reduces confusion about primary versus secondary actors.
Some people never draw supporting actors on their diagrams. This allows them to place primary actors on both sides. So, the idea of placing primary actors on the right and secondary actors on the left is not part of the UML standard. Even when this book was published in , it does not appear that it was a standard.
This is just Cockburn's style, and he even identifies that some people do not even include secondary actors on their diagrams. I'd also point out that Cockburn's definition of a primary actor slightly deviates from the one presented in the question. The primary actor is "the stakeholder that calls on the system to deliver one of its services" and that the primary actor "has a goal with respect to the system".
This is "often, but not always, the actor who triggers the use case". I believe that you can make a case that either the reader or the librarian is the primary actor. Although, in he current implementation of the system, the librarian is the one who is interacting with the software, the reader or library patron is the one who is calling upon the system to deliver a service.
This is a question of software boundaries and system boundaries and exactly what it means to call upon a system to deliver its services. This is an opinionated matter - there's no right or wrong here. Once you've figured out who your primary actors are, you need to decide if you want the secondary actors to be on the diagram.
At the end of the day, if you're going to include a diagram, it should be readable. Enhancing the readability may lead to if and how you lay out the actors in the diagram. It may be interesting to start with Cockburn's guideline. I would be remiss if I didn't provide two more pieces of information regarding UML use case diagrams, though:. If you spend much time and energy worrying about the graphics and the relations, you are expending energy in the wrong place.
How do you identify a use case? Can indirect actors be primary actors? Primary and Secondary Use Case Actors. What are the different types of use cases? Business Use Cases are more about what a user expects from a system while System Use Cases are more about what the system does. Both use case types can be represented by diagrams or text. What is use case with example? An example of a use-case diagram Each actor interacts with a particular use case. A student actor can check attendance, timetable as well as test marks on the application or a system.
This actor can perform only these interactions with the system even though other use cases are remaining in the system. How do you write a use case? Pick one of those users. Define what that user wants to do on the site. For each use case, decide on the normal course of events when that user is using the site. Describe the basic course in the description for the use case. What is priority in use case? Priority This is the importance of the use case in the system low, medium, or high.
Source Identifies what caused this use case to be created. It could be a designated requirement, a user, a government regulation, etc. Primary Business Actor The stakeholder who primarily benefits from the execution of the use case. What is include in use case diagram? Use case include is a directed relationship between two use cases which is used to show that behavior of the included use case the addition is inserted into the behavior of the including the base use case.
What is the difference between primary and secondary actors quizlet? Primary Actors: The Actor s using the system to achieve a goal. Secondary Actors: Actors that the system needs assistance from to achieve the primary actor's goal. Primary actors initiate a use case and hence are somewhat independent. Secondary actors, on the other hand, are used by the system but they do not interact with the system on their own.
In other words, secondary actors do not initiate any use case. The symbol for an actor does not differentiate between a primary actor and a secondary actor; the difference must be inferred from the use case descriptions also called use case narratives. An actor represents the role of the entity that interacts with the current system, not an instance. For example, an actor may represent a customer of a bank. In this case, every customer of a bank is represented by this one actor rather than a separate actor for each customer.
Similarly, there may be another actor representing a manager of the bank. Interestingly, a particular manager of a bank in real world may be a customer of the same bank. That is, the same person plays the role of a customer and a manager. But this instance relationship is not captured by the actor.
So, as far as the use case diagram is concerned, there are two different types of actors manager and customer in this example. Use Case : A use case represents a functionality typically a requirement that is expected to be implemented by the system. The details of a use case, other than its unique name, are not represented visually in the diagram; such details are given in use case narratives. Use cases are generally initiated by primary actors. Secondary actors such as a database are used by the system through a set of use cases.
0コメント