A bank provides common banking services to retail customers which include: Deposit, Withdraw, Loan or Mortgage payment and other account management services:. Use cases are usually referred to as system functionalities that a system should perform in collaboration with one or more external users of the system actors.
Each use case should provide some observable and valuable results to the actors or other stakeholders of the system. We use cookies to offer you a better experience. By visiting our website, you agree to the use of cookies as described in our Cookie Policy. Here are a few questions to guide the identification of primary and secondary actors: Who are the primary actors?
What roles do they play in the application domain? What are their roles? What tasks must they perform? How will they interact with the system? Who are the secondary actors? What services do they provide? How will the system communicate with them? What specific APIs do secondary actors provide for communication and services?
Actor Identification Process To define what will be handled by the system and what will be handled outside the system system scope, i. To define who actors and what the functionalities needed will interact with the system.
What does the actor need from the system? What is the expected outcome of the system? Customer Customers will place food orders and may or may not order juice. 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. In your use case work, don't put too much effort into the diagram.
You need to develop a web-based application with the following functionalities; Users can buy products online by placing the online order. The user can pay the bill by credit card or through Paypal.
This diagram represents inheritance among use cases. Place an order is the parent use case and pay through PayPal and pay through a credit card are child use cases. It means that some of the variables, functions are something else is inherited from parent to child.
Variables, functional and all kinds of data etc, that is set as protected, can be accessed from parent to child use case. For example, here anything can be inherited from place order use case to pay through pay and pay through credit card. Variables, functional and all kinds of data, etc that are set as protected, can be accessed from parent to child use case.
For example, here anything can be inherited from authentication use case to authentication by fingerprints and authentication info.
0コメント