0

Company X wants a web-based system that serves as a market place of ideas. Users should be able to login and post new ideas. Other users can comment on them and “upvote” them. The Administrators can login and mark that ideas have been implemented, and can reward the employee who posted it. Following are the requirements:

Users should be able to login.
Users should be able to post a new idea.
Users should be able to search for and view other ideas
Users should be able to comment on ideas
Users should be able to upvote ideas
Administrators should be able to mark ideas as implemented
Administrators should be able to delete unwanted comments

Do you guys think my diagram is correct? I am new to UML so you guys can make fun!

https://i.stack.imgur.com/jXkBl.jpg

knrkn
  • 57
  • 2
  • 2
  • 4

1 Answers1

1

It is a not so bad start. Only:

  • Administrators are also users. They descend from them. So, they should have a generalization connection - empty triangle head arrow from Admin to User. Or to OtherUser (look below).

  • it is more natural to have a picture and name of an exemplar of agent. So, user, administrator - in singular.

  • you can divide Users from Other Users only if they have different definition and that difference is seen from the documentation, too. It is not. I would use only Users. Of course, if some users really have different rights, it is OK, but:

    • the name is not good, IMHO.
    • They have all options of users, don't they? So they have to descend from Users

  • You should continue by adding the parts of your future system, that will collaborate with human agents on these use cases. Now you have only the first half of work done.

Edit:

  • Still your admin hasn't the generalization error from Admin to User. Admin can do ALL activities that user can, cannot he?
  • Still you have no subsystems on the diagram.
  • Search through older ideas should be the use case directly connected to user. And it does not extends nothing on the diagram.
  • Remember - use Include and Extends only on the last stage of UC diagram creation. When you already have the main picture and are refining it. And very often they should be used only on further, more thorough diagrams. Using Include and Extend from the start means that you haven't found the main concepts yet.
Gangnus
  • 24,044
  • 16
  • 90
  • 149
  • The reason I divided users and other users was because the other users can comment on ideas and upvote them whereas users(who actullay wrote the idea) cannot do that. Am I thinking too much? – knrkn Jan 23 '14 at 19:37
  • They write them too, on the ideas of these others. And surely, they could comment on comments, couldn't they? You are trying to set the rules for rights for one idea, not ideas. It is not the task of common UC diagram. Maybe, you could write some special Use case for it, if these rights are complicated. No, you can't think too much when you model, but you can put too much information in one diagram. And it got mixed. – Gangnus Jan 24 '14 at 13:23