If you believe that a use case flow of events creates an actor, how would you model that?
I have a use case that creates a windows service, which (in my mind) is another system with its own set of use cases and actors.
At the moment it is not obvious from the use case diagram that an actor gets created as part of the flow of events.
Aidan.
Use case diagrams do not display a sequence of actions. There is no time dimension. As a result, it makes no sense to create or delete an actor.
Related
I am Working on a project for Orders data visualization Dashboard.
This is the use case Diagram:
Currently I'm working on the activity diagram and my question is: Can the Manager and the Shipper login into the system and initiate their own activities in the same diagram?
An activity diagram "specifies behavior by sequencing subordinate units". It can perfectly have several initial nodes, e.g. one for Admin and one for Manager or Shipper. And when the activity is invoked, all those initial nodes would be activated at the same time, starting each a concurrent flow, each being performed at its own pace.
But this makes only sense if the Manager's actions and the Shipper's actions are really related, concurrent and somehow synchronized. E.g. every time an Admin login is performed, a Manager login would be expected.
If the Manager flow as well as the Shipper flow are both independent and in reality unsequenced, you should use separate activity diagrams. In this case, trying to squeeze them into a single diagram could even be misleading.
Additional remarks, unrelated to your question:
Typically you'd have a separate activity diagram for each use case. It's not an obligation, but it's a common practice to describe what happens for a specific use-case. In your case, it would mean that only the Ship Order and the Update product stock would be in a situation where actions could be interdependent.
When activity diagrams are used to design systems, it shows in principle what happens inside the system. The actors are outside the system. So the partitions (columns) would in principle not show what an actor does, but what the system does in relation with an actor. Of course, if you use activity diagrams for process modeling, it would be a different story.
Yes, they can. With each InitialNode a flow begins and the tokens run down the actions independently. Probably at a certain time you will have some synchronization between both (this is not mandatory but otherwise it would probably rather pointless to have two independent flows in the same diagram). In that case you either have a MergeNode (bar) to wait for both tokens to arrive or an action has two incoming edges waiting for both tokens in order to commence.
I need to model a few business processes in an orchard. These business processes should be enchanced with a system I need to build. In my case these are:
Store process
Sales process
Harvest process
Firstly, I needed to create a Business Use Case diagram. And I have created something like this:
Let me explain this. When we need to harvest, we contact with work agency to get some workers, we give them a job etc...
When we want to sale or store our harvests we need to call transport company to transport our stuff to warehouse or wholesale to sell it.
Ofc, this is so much simplified then it is in real life.
My problem is: becouse system I'm bulding will be used inside a company/orchard there is no external actor in this diagram that USE an usecase. There is noone who can USE use cases. Is it correct? Next step is to create a sequence diagram, and it looks like the Orchard needs to initiate the flow.
Or maybe I should exculde some actors like: Manager. He will initiate flow. But where i can put him in my Business Use Case diagram then?
Can someone give me some advices how this should look like?
An use case and an actor have a 1:1 relation (despite what you might read about secondary actors). The use case describes the added value which its actor receives. If you identify both the actor and the added value you can describe the use case. Else you can't. If you have an actor that does not play a role then it is not an actor. Also forget about "internal" and "external" actors. An actor is always external. The use case sits at the boundary of the system under consideration. And the actor outside.
In case of your manager you should think about the added value. Starting a process sounds simple but it takes a bit to actually do it (or why is his salary so high?). So most likely there is a use case. Often it's just hard to find.
You say you need to create a business use case diagram. Why do you need to? Are you using a particular method, like Rational Unified Process, which you have to follow?
Personally, I think a business use case diagram is not a very good technique for specifying business processes. They can't be used for internal processes, exactly as you point out. Instead, I would use activity diagrams. A business process is a UML 'activity'. This gives a good starting point to further decompose each business process using activity diagrams that model the process flows. I have explained my objections against business use case diagrams in more detail in my paper "Which UML models should we make?. See the paragraph titled "More business analysis".
To capture a high-level view of the Business, sometimes we are talking to non technical individuals to gather the business story via interviews to try to ascertain the functional requirements of the business. The context and system DFD can be a good way to bounce your understanding of the business with the client/ maybe handy when meeting again with the business/customer.
These tasks, may well lead to further discussions about what you can do for the business; i.e. to improve a system they use as part of their business GOAL. For example an improve an accounting program by expanding the functions.
I need to create a UML use case diagram based on use cases that I already have specified in an event table.
The event table has a source column which in my case is the same thing that I would specify as the actors used in the use case diagram.
My question is what is the difference between the actor and the source?
They're pretty much the same thing.
Event tables are just another way of writing up a system, similar to a use case narrative. A use case narrative is a way of documenting the activity of a single use case element in a use case diagram. The event table can form the basis for a use case narrative; you can also add an activity diagram for a visual representation of what happens in the use case.
Event tables have events, triggers, sources, use cases, responses and destinations. Analogous sections of a use case narrative are triggers, which are sort of a combination of events and triggers (How the use case starts), actors, use cases, post-conditions and exit points. A use case narrative can also have entry points, preconditions, and assumptions (assumptions are not tested, preconditions are), includes and extension points, and will also have a detailed description of the steps on the paths through a use case.
I am new to the world of UML and have so far learnt the basics of use case, activity and deployment UML diagrams. I have a requirement of where users interact with a system e.g. user sending an email, which is then processed by a system and then sent to an agent (person) who then responds and interacts once again with a system.
I am having a hard time picturing these requirements and whether it should be a combination of use case, activity or deployment. Can I intermingle them? What is standard practice?
As you know, use cases are used to capture requirements. When identifying and detailing use cases, you look at the problem from the perspective of users. Only focus on what an actor expects the system to do. First step is to identify the use cases and actors and then detail the use case flows.
1- Identify the use cases and actors
In your example send email could be a use case initiated by the end user (your actor). What happens next (e.g system sending a notification to the agent) could be modeled as part of the flow of this use case.
Another use case could be the agent actor handling what they have to do after receiving the notification from the system (a prerequisite of this use case could be that a notification has been received).
Note that you could combine these two use cases together and have the agent as a secondary actor (secondary actor interacts with the use case but does not initiate it). Whether you do this or not, is a modeler's choice and depends on the size of use cases, number of use cases and many other things.
2- Detail the use cases
After identifying use cases and actors, you should detail use cases. The most important part is to detail the use case flow (step by step interactions of actor and system). This can be written as text or drawn as an activity diagram.
So to answer your question: yes it is possible and very common to combine activity diagrams and use cases; that is an activity diagram drawn to show the flow of steps of a use case.
Deployment diagrams on the other hand are totally irrelevant to the requirement elicitation phase. They model the physical structure of the system and how hardware components and software components interact.
In fact, it is very odd that you have learned component diagrams before class diagrams, sequence diagrams, state diagrams and many other diagrams.
Suppose a system will generate reports every month. In the event table, I capture that event, but do I include that in a Use Case diagram? If so how?
Do all entries in an event table need to have a place in the use case diagram?
No: the event table contains the use cases, but the use case diagrams don't dontain the events which trigger them, just the actors involved in each use case.
When you elaborate the use cases, you can add the event as a Receive Event at the beginning of the activity (provided you're using activity diagrams for elaboration).
As to the second part of your question, if by "entries" you mean use cases, then yes: they all have to be shown in use case diagrams, because they explain how each actor interacts with the system. But you are of course free to use as many diagrams as you wish, and it's also a good idea to group the use cases into packages.
One way of grouping would be into packages "external", "internal" and "temporal", but whether that's suitable in your specific case is impossible to answer without the actual list of use cases.
In case your system generate report monthly, I suggest using the "System Timer" as the actor who trigger this use case. You can read more on this article
http://www.umlchannel.com/en/uml/item/24-use-case-actor-system-timer/24-use-case-actor-system-timer