views:

1354

answers:

8

Is it absolutely necessary to use "arrows" to show association between an actor and a use case in a use case diagram?

I recently had to draw one for my Software Engineering assignment. But after doing a bit of research online on many articles, papers, online books and lecture notes from numerous other universities, it seemed that majority of use case diagrams regardless of how much potential they have to show some kind of "flow" or "navigability", have no arrows, while some examples have arrows.

So I consulted my friend who is a final year student and has already studied what I have told me I shouldn't have arrows between my actor and use case and even his Requirements Engineering lecturer taught students not to use arrows. So I made a conscious decision not to use arrows and used solid lines instead to show my use case associations.

Here is my diagram- click

However, when I received the marks for my assignment, I was astonished to find out that I was given a zero for not using arrows. Even if it was mandatory to use them, there is an abundance of evidence that a solid line can be used for bi-directional association. So shouldn't I receive at least some marks for it?

Obviously I asked for an explanation from my lecturer who I will see next week to discuss this point, but if she tells me I should have used arrows, what argument can I make against it? I would be grateful if someone can kindly give me good advice with appropriate references to some professional sources.

Thank you very much for reading and I hope to read your response soon.


EDIT

Thank you guys. I really appreciate the answers you have given me. This whole confusion started because the only notation the lecturer provided was a single,very simple example of library use case diagram in one of the lecture notes, which had arrows. But it was not made very clear that it was the definitive notation. Another reason I didn't think it was mandatory is because when it came to explaining notations for drawing a data-flow diagram, she made it abundantly clear to using her specific notations, but it is not that uncommon for DFD's to have different notations in different sources, whereas I could find very little evidence to make the use of arrows in use-case diagrams necessary.

That said, even before going through without arrows, I remember asking one of the tutors (not the lecturer) during a tutorial session what's the difference between having and arrowed line and a solid line and he said there is none and I could use both. Obviously for that I only have my word and from what you guys have said, I doubt anyone in an academic position would admit to telling something that could put them in a defensive position. My mistake was not speaking to the lecturer directly, but in hindsight I obviously would have done it.

Anyway, I will speak to her regarding all this information and request her to take this "honest mistake" into consideration. It's also not just the use case diagram but a couple of other questions that I lost an unusual amount of marks on, especially when my answers are almost identical to the model answers she provided. I also know a lot of other students who have requested their assignments get remarked.

Hopefully she will be kind and use good judgement to improve my mark. I will post back here when I find out.

Thanks again for your help and please post any other info/suggestions you may have. :)


EDIT 2

Sorry guys, I have another question.

Here is the scenario that was given in the assignment to draw the use case diagram.

CONTHETICKET is a ticket agency dealing in Concert and Theatre tickets. Concert and theatre venues provide CONTHETICKET with a constant stream of information on forthcoming events, which is then used by the Manager to compile a fixture list for use by the sales staff in responding to customer calls. The manager selects some events for which CONTHETICKET will purchase a number of tickets in advance, thereby benefiting from discounts negotiated with the venues.

He personally sends the orders for the tickets together with the agreed payments to the venues, and once tickets are received, he files them in the ticket File.

When customers ring the sales team, their ticket requests are checked against the ticket file. If pre-purchased tickets are available they are put in an envelope marked with the customer's name and address, and filed in a provisional orders file. If not, the sales team fills out a ticket request form and put it in a tray for collection by the post clerk.

The payments section checks the provisional orders file daily. They send an invoice to the customer and await payment. A copy of the invoice is kept on file. When a payment is received, the payments section match the payment with the appropriate invoice, and if satisfied place another copy of the invoice in a despatch file with instructions to despatch the tickets.

The post clerks checks the despatch file each day and retrieves the appropriate tickets from the provisional orders file and sends them to the appropriate customers.

As you can see from my diagram I have an "Concert & Theatre Venues" as an actor.

From The Elements of UML 2.0 Style, Scott W. Ambler:

"An actor is a person, organization, or external system that plays a role in one or more interactions with your system (actors are typically drawn as stick figures on UML Use Case diagrams)."

However, on my marked assignment, the lecturer commented that it should not be an actor. Can you please tell me whether or not you think it should be an actor and why.

My rationale behind it is CT&V are supplying event information which is then used by the manager to order/file tickets, also supplied by CT&V.

Thank you very much.

+1  A: 

Though it's unfortunate, I'd have to stick with "If that's how they told you do it, and you didn't do it that way, that's the score you get".

In my experience, the relationships could be either one- or two-way, so I think you'd have to distinguish between the two.

rwmnau
+1 - If you plan to deviate from something marked mandatory by the teacher, you should discuss that *before* it's due or before you turn it in.
romandas
Thanks, I will be sure to do that from next time. However, as I posted below in my reply, it was not made clear arrows were mandatory like the notations for DFD were for example. There was no criteria sheet either. I honestly did not think not putting arrowheads would cause this much fuss. :(
A: 

See here:

Arrows indicating the origin of the invocation are optional, so it seems it is at the discretion of your instructor but it could be an arguable point.

BTW in my experience graduate school is the worst place to learn software engineering. YMMV.

Otávio Décio
+1  A: 

I think to you have strong case here ;)

Referencing the current UML specfication (2.1.2)

Page 595, Constraints, 2
UseCases can only be involved in binary Associations.

Taking this into consideration what is the point showing navigability on an association? As the interaction between the subjects (eg. Use Case and actor) is by definition bi-directional (eg. actor does something, system responds and so on).

You will also find sample Use Case diagrams in this document to further your point.

Of course for other Use Case constructs such as includes and extends arrows make sense and is required. However from your included Use Case diagram you haven't made use of these and should not be penalized for it.

Good luck

PS: Using my UML modelling tool of choice, Enterprise Architect, it doesn't allow me to visually indicate navigability on an assocation.

Philip Fourie
+7  A: 

The Good News

your diagram is correctly drawn and your instructor is mistaken:

  • arrows are inappropriate in use-case associations because they are binary associations
  • arrows are required for Extends, Includes, and Uses relationships - see this diagram for an example of all three

the UML specification v1.4.2 [PDF Warning] Sections 4.11.3 Well-Formedness Rules and 5.42.2 Binary Association are quite clear on these points:

4.11.3 Well-Formedness Rules: "Actors can only have Associations to UseCases, Subsystems, and Classes and these Associations are binary."
5.42.2 Binary Association: "A binary association is drawn as a solid path connecting two classifier symbols"

The Bad News

that being said, if your instructor told you to use arrows and you didn't, then you may have no recourse - that's one of the drawbacks of academia: some professors expect students to merely regurgitate what they are told, even if it is wrong. You can appeal to the Dean of the department, arguing that the professor is instructing the students contrary to the established standard, but that will most likely bring you nothing but grief. I do think you would have a strong case though, because giving you a zero on a correct diagram because you did not draw incorrect arrows seems excessive, harsh, and unjustifiable.

But I have met professors who were always right, even when they were clearly wrong. Most, however, are reasonable/logical people who are happy to correct misinformation appropriately.

Caution: Tread lightly

Assume it's an honest mistake, and ask the professor to explain why he expected arrows when the official OMG UML spec says not to use them (and hence every compliant UML tool for Use Cases will not draw arrows on a binary relationship). If you go in there guns blazing you may or may not get satisfaction, but you may also create animosity that could make the rest of the semester (and possibly beyond) quite unpleasant.

EDIT: I do believe that older tools and standards used single arrowheads (not triangles or filled, just 'wings') on use-case diagrams, but this is no longer done. Perhaps the professor's standards - or software - is just out of date ;-)

Steven A. Lowe
Funnily enough, her lecture handout (from 2003) has a lot of stuff basically copied and pasted from Software Engineering (6th Edition, 2001) by Ian Sommerville, including the single example of a use case diagram with no description whatsover on notations.
A couple of points: 1. UML is currently at version 2.2 (although use case notation hasn't changed) 2. "Binary Association" doesn't imply "No arrowheads", it just means a line with two ends (which may or may not have arrowheads). However, an association with one arrowhead is implicitly (continued...)
chimp
...non-navigable in the other direction, and why would you want to have a use case that doesn't know who the actors are?
chimp
@[chimp]: the spec shows up first in a google search for OMG UML specification"; it's older but it still holds. The actors in a use-case diagram are normally drawn around the edges, and they look like little stick-men - if you can't tell who the actors are from that, I can't help you! ;-)
Steven A. Lowe
@Steven: LOL, but it's the use case having difficulty, not me. A unidirectional association from actor to use case implies that use case cannot navigate to actor - almost certainly not what the modeller intended.
chimp
@[chimp]: that's why the spec calls for binary associations - use-case diagram associations between use-cases and actors are not navigational
Steven A. Lowe
Being a binary association or not has nothing to do with whether there is an arrowhead on the end of the solid line. In a use case diagram, the arrowhead on the association indicates the direction of invocation and is optional.
Doug Knesek
+3  A: 

Everyone else has already answered regarding the arrow thing. Let me just give you some advice about academia.

Most of the technical things you learn will either be wrong or just useless. In you professional life it won't matter as anything you will use as a professional will be things you learn there and then according to the specific needs of that situation.

What you will learn is the general overview of things, and this is something you won't get in your professional life because there no one has the time to look at it that way. There you will use the wrong tools to solve the wrong problems, usually because of some stupid reason like "because the higher-ups decided it that way".

So take this as a learning experience. To succeed as a professional you just have to learn that the right way to do things is a hard thing to achieve, and doing it on your own, as in this case, will probably get you in more trouble than just scoring zero.

Practice doing the wrong thing to achieve your goals: Do the arrowy thing and get your score.

Integreate the knowledge that everyone will always be wrong (including you): Don't take your teaches word for anything, read alternative views and form an opinion later when you have the experience.

Practice the art of getting involved in the political side of things to get a say on such matters. There is a way to get other to do the right thing, but it involves a lot of social engineering and hard work.

Just don't waste your time. Some things are just not worth the effort to correct...

John Nilsson
damn straight skippy
Steven A. Lowe
Thanks John. I'm one of those students always used to doing research and this time it's backfired. Fortunately I doubt I will have this lecturer from next semester or onwards. Also none of this counts towards my final grade. I just want a better mark to improve my internship potential next year.
A: 

Thank you guys. I really appreciate the answers you have given me. This whole confusion started because the only notation the lecturer provided was a single,very simple example of library use case diagram in one of the lecture notes, which had arrows. But it was not made very clear that it was the definitive notation. Another reason I didn't think it was mandatory is because when it came to explaining notations for drawing a data-flow diagram, she made it abundantly clear to using her specific notations, but it is not that uncommon for DFD's to have different notations in different sources, whereas I could find very little evidence to make the use of arrows in use-case diagrams necessary.

That said, even before going through without arrows, I remember asking one of the tutors (not the lecturer) during a tutorial session what's the difference between having and arrowed line and a solid line and he said there is none and I could use both. Obviously for that I only have my word and from what you guys have said, I doubt anyone in an academic position would admit to telling something that could put them in a defensive position. My mistake was not speaking to the lecturer directly, but in hindsight I obviously would have done it.

Anyway, I will speak to her regarding all this information and request her to take this "honest mistake" into consideration. It's also not just the use case diagram but a couple of other questions that I lost an unusual amount of marks on, especially when my answers are almost identical to the model answers she provided. I also know a lot of other students who have requested their assignments get remarked.

Hopefully she will be kind and use good judgement to improve my mark. I will post back here when I find out.

Thanks again for your help and please post any other info/suggestions you may have. :)

edit your original question to include new information instead of posting new information in an answer; that way everyone will see the new information while over time your additional 'answer' post may scroll off the first page. It also cleanly separates the question from the answers!
Steven A. Lowe
A: 

Sorry guys, I have another question.

Here is the scenario that was given in the assignment to draw the use case diagram.

CONTHETICKET is a ticket agency dealing in Concert and Theatre tickets. Concert and theatre venues provide CONTHETICKET with a constant stream of information on forthcoming events, which is then used by the Manager to compile a fixture list for use by the sales staff in responding to customer calls. The manager selects some events for which CONTHETICKET will purchase a number of tickets in advance, thereby benefiting from discounts negotiated with the venues. He personally sends the orders for the tickets together with the agreed payments to the venues, and once tickets are received, he files them in the ticket File.

When customers ring the sales team, their ticket requests are checked against the ticket file. If pre-purchased tickets are available they are put in an envelope marked with the customer's name and address, and filed in a provisional orders file. If not, the sales team fills out a ticket request form and put it in a tray for collection by the post clerk.

The payments section checks the provisional orders file daily. They send an invoice to the customer and await payment. A copy of the invoice is kept on file. When a payment is received, the payments section match the payment with the appropriate invoice, and if satisfied place another copy of the invoice in a despatch file with instructions to despatch the tickets.

The post clerks checks the despatch file each day and retrieves the appropriate tickets from the provisional orders file and sends them to the appropriate customers.

As you can see from my diagram I have an "Concert & Theatre Venues" as an actor.

From The Elements of UML 2.0 Style, Scott W. Ambler:

"An actor is a person, organization, or external system that plays a role in one or more interactions with your system (actors are typically drawn as stick figures on UML Use Case diagrams)."

However, on my marked assignment, the lecturer commented that it should not be an actor. Can you please tell me whether or not you think it should be an actor and why.

Thank you very much.

Steven A. Lowe
Thanks Steven. I forgot I was not in a forum when posting the question. >.<
+1  A: 

Your instructor, giving you a 0 for not using arrows in your use diagram, is an example of him teaching you the wrong things about Software Engineering.

Creating a spec for a software product, out in the real world, is not getting your arrows right.

It's about creating a living document that forms the foundation behind your project. The key aspects of any spec is that:

  1. The project team actually reads it
  2. The document is effective at capturing your intent

The idea that what you should be learning is how to draw in your arrows the right way is ridiculous. If you get a chance, you should read this article:

http://www.joelonsoftware.com/articles/fog0000000024.html

It captures my sentiments excellently.

It sounds like to get through your class you need to pretend to be interested in UML arrows. My advice to you is:

  1. Do what is necessary to get a good grade in the class
  2. The second you finish the final exam PLEASE forget everything you learned in that class, because it's only going to harm you.
  3. Pickup up a copy of this book, and read it. The whole thing.
Scott Wisniewski
Thanks Scott, I'll be sure to pick up a copy of this book.
I just realized that the link to the article was originally pointing at the book.It wasn't supposed to. If you haven't read the article yet, you should. It compares the stuff your instructor is trying to tech you to a Big Mac. That's important.
Scott Wisniewski
Thanks again Scott. Enjoyed the article and I guess I can relate. :)