Book a Demo

Author Topic: How to produce Use Case diag. from Activity Diagr?  (Read 6043 times)

aguevara

  • EA User
  • **
  • Posts: 27
  • Karma: +0/-0
    • View Profile
How to produce Use Case diag. from Activity Diagr?
« on: September 05, 2013, 07:16:22 am »
I have a model in which I have many activity diagrams containing many partitions representing not only the System itself, but also the users/actors interfacing with the System.
Each partition has many actions/functions within them as you would expect.
Is there a way to have EA produce Use Case Diagrams from the Activity Diagrams?

Thanks in advance,
Angelo

ken.norcross

  • EA User
  • **
  • Posts: 63
  • Karma: +0/-0
    • View Profile
Re: How to produce Use Case diag. from Activity Di
« Reply #1 on: September 05, 2013, 08:58:58 am »
Write a script to walk the Activity models and create Use Case models?

or create a Model Transformation to do the same?

I don't think there is any built in way to do this.

rothnic

  • EA User
  • **
  • Posts: 91
  • Karma: +0/-0
    • View Profile
Re: How to produce Use Case diag. from Activity Di
« Reply #2 on: September 05, 2013, 09:01:12 am »
Similar answer to your other question, see the scripting capabilities.

You should be able to inspect each activity diagram and see which system elements are represented in the diagram.

The only issue is going to be how well the functional analysis was done to originally create the diagram. To go the opposite direction where you are deriving a higher level use case might be beyond what you can do with scripting. You can try to infer some relationship through the organization or naming, etc, then create association links via scripting between the system elements and the use cases that you generate.

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: How to produce Use Case diag. from Activity Di
« Reply #3 on: September 05, 2013, 03:49:30 pm »
I don't think you'll be able to generate a useful use case diagram from activity diagrams.

Defining use cases is the result of careful analysis and requires a lot of thinking and creativity. I don't see how you can automate that.

Geert

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: How to produce Use Case diag. from Activity Di
« Reply #4 on: September 05, 2013, 07:46:33 pm »
To be a bit more precise than Geert: it's not an analysis but a synthesis process to create a use case from activities. More than analysis a synthesis is something only humans can perform. It needs a lot of intuition. Definitely nothing an algorithm can accomplish.

q.

Gary

  • EA User
  • **
  • Posts: 84
  • Karma: +1/-0
    • View Profile
Re: How to produce Use Case diag. from Activity Di
« Reply #5 on: September 06, 2013, 05:07:30 pm »
There is also the question of why you want a Use case? If you already have defined functionality in the activity diagram that is partitioned, then allocate to the class/block and create your stucture/architecture model.

Use cases are good at the requirements analysis stage to help identify functionality and interaction partners but if you already have the functionality identified then a use case is superfluous.

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +397/-301
  • I'm no guru at all
    • View Profile
Re: How to produce Use Case diag. from Activity Di
« Reply #6 on: September 06, 2013, 05:30:11 pm »
Quote
Use cases are good at the requirements analysis stage to help identify functionality and interaction partners but if you already have the functionality identified then a use case is superfluous.
Exactly that's the reason why you find so many software which has no use case. You will find quite some examples in EA. Especially those "functionality" which has been invented by developers.

q.

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: How to produce Use Case diag. from Activity Di
« Reply #7 on: September 06, 2013, 05:42:31 pm »
Quote
There is also the question of why you want a Use case? If you already have defined functionality in the activity diagram that is partitioned, then allocate to the class/block and create your stucture/architecture model.

Use cases are good at the requirements analysis stage to help identify functionality and interaction partners but if you already have the functionality identified then a use case is superfluous.

I don't agree. Use Cases are the most important artifacts in a (functional) analysis model.
Not only for driving development of a new functionality, but also to serve as functional system documentation, and not to forget, as the basis for testing.

An analysis model without use cases is almost as useless (from a functional point of view) as a reverse engineered (from the code) model.

Geert

Gary

  • EA User
  • **
  • Posts: 84
  • Karma: +1/-0
    • View Profile
Re: How to produce Use Case diag. from Activity Di
« Reply #8 on: September 06, 2013, 06:32:47 pm »
I completely agree with you Geert. A functional model without a use case is like a car without an engine.
However in the case of this thread where the functionality is already there reverse engineering a use case seems a bit pointless. It would be like taking the car without an engine which is rolling down a hill stopping it and adding an engine to make it roll down a hill.

 :)

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13523
  • Karma: +574/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: How to produce Use Case diag. from Activity Di
« Reply #9 on: September 06, 2013, 08:58:34 pm »
Quote
I completely agree with you Geert. A functional model without a use case is like a car without an engine.
However in the case of this thread where the functionality is already there reverse engineering a use case seems a bit pointless. It would be like taking the car without an engine which is rolling down a hill stopping it and adding an engine to make it roll down a hill.

 :)
Unless you want to drive up another hill later on => add some functionality to your existing application :D

Geert