Sparx Systems Forum
Enterprise Architect => General Board => Topic started by: aguevara 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
-
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.
-
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.
-
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
-
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.
-
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.
-
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.
-
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
-
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.
:)
-
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