Locations of visitors to this page

    UML Use Case Diagrams and Specifications       Minimize  

 UML Use Cases have quickly become a defacto way of gathering Functional Requirements because they can remove much of the ambiguity from communication between a Clients/StakeHolders/Domain Expert and Developers.

In other words, it's an effective way to doodle the project's functional (but only functional) requirements in a way that both parties can understand.

Intentional Simplicity=Separation of Concerns:
What makes it especially useful for the functional requirements gathering phase of a project is that it achieves two things elegantly:

  • it's not especially difficult to pick up, and therefore allows Clients/StakeHolders/Domain Experts to get involved -- suggesting use cases they wish added and reviewing Use Cases already on paper -- and therefore diminish ambiguities and misunderstandings (ie cost) later.
  • Use Cases do not have notations for process flow -- only functionality -- neatly separating roles. 
    This allows stakeholders to clearly state what they want, while leaving how that will be achieved to be figured out by the developers and engineers later (the actual implementation logic is then notated with different UML diagrams, specifically designed for the Design Phase).

A Special Note for Developers:
Note that the intentional simplicity of Use Cases are part of its effectiveness for discussing with StakeHolders -- but also part of the reason that some developers have a hard time coming to grips with using them effectively, as they tend to try to add implementation logic to Use Cases. Developers must restrain themselves from this temptation and remember that whereas most diagrams in the UML Specifications are for Design and Deployment purposes, Use Cases are for the Requirement phase, focused outwards, rather than inwards -- it's way too early to write in stone how the Use Case will be fulfilled.

Don't Forget the Use Case come with Specifications:
Whereas creating Use Case Diagrams are a moderately fun exercise, one must not forget that the full formal UML process involves backing each oval with a written Specification of how the Use Case works.
Not only do most UML diagraming packages completely omit this part (hence why the process of making Use Case Specifications is not more widely used/understood) but writting Specifications is moderately hard since it can be quite difficult to write Specifications that only commit requirements, and not implementation logic.

Links below:
To help you learn how to use Use Cases effectively in your next project, I've put together a set of links that I've found useful to get up to speed as quickly as possible.


             
    Learn       Minimize  

             
    Tools       Minimize  
Although the means to draw Use Cases Diagrams are provided in most UML packages, parts of the process (eg: Lists and Specifications) are usually not provided in the same package.
Here is a list of tools and other links that may help in this regard...


             
    Resources       Minimize  
Right. Once you've learnt what Use Cases are, and want to use them on a daily basis, you'll probably want some Real-World information.
Try these links...


             
Copyright 2007 by Sky Sigal