From: Nananana on
Hi.
What I have: All the Use cases of a future system.
What I need: A context diagram of the system.
Questions: would each actor be an external entity in the context
diagram?
TIA

From: Davor on

Nananana wrote:
> Hi.
> What I have: All the Use cases of a future system.
> What I need: A context diagram of the system.
> Questions: would each actor be an external entity in the context
> diagram?

Yes. You should also have a number of other entities that are
communicating with actors and not necessarily with the system. If you
do not have these other entities, you can just rely upon the use case
*diagram* instead of having to draw a context diagram to show the
information you want to show. I'm not sure though why you need context
diagram at this point if you already have *all* the use cases. Context
diagram is typically made before trying to capture and specify use
cases in order to find all possible actors, what is really needed,
system boundary, etc. But, by any means, build it at this point too as
it will help you find missing actors and use cases, and refine system
boundary, which is very important for a non-trivial system...

Davor

From: Nananana on
Thanks.
Let me re-phrase.. "suppose I have all the use cases.."
You made me re-think about the people who don't use the system, but
send or receive data.
1. What about a customer who sends documents by mail or fax?
2. What about a customer who receives a letter?
Are they external entities?

Davor wrote:
> Nananana wrote:
> > Hi.
> > What I have: All the Use cases of a future system.
> > What I need: A context diagram of the system.
> > Questions: would each actor be an external entity in the context
> > diagram?
>
> Yes. You should also have a number of other entities that are
> communicating with actors and not necessarily with the system. If you
> do not have these other entities, you can just rely upon the use case
> *diagram* instead of having to draw a context diagram to show the
> information you want to show. I'm not sure though why you need context
> diagram at this point if you already have *all* the use cases. Context
> diagram is typically made before trying to capture and specify use
> cases in order to find all possible actors, what is really needed,
> system boundary, etc. But, by any means, build it at this point too as
> it will help you find missing actors and use cases, and refine system
> boundary, which is very important for a non-trivial system...
>
> Davor

From: Davor on
Nananana wrote:
> Thanks.
> Let me re-phrase.. "suppose I have all the use cases.."

Yes, it appears that you are in the requirements elicitation phase, and
as such I would expect system boundary to get refined, new use cases
and actors discovered, and maybe some even removed... and don't
hesitate to change... I sometimes build even several different models,
with different system boundaries for example or making some
hypothetical changes to business processes too, and try to estimate
costs and benefits and get as much insight as I can - this also
prevents me from making early design decisions and allows me to purely
focus on analysis...

> You made me re-think about the people who don't use the system, but
> send or receive data.
> 1. What about a customer who sends documents by mail or fax?
> 2. What about a customer who receives a letter?
> Are they external entities?

Certainly! Include as many external entities as you can and try to
explore your system's external world in as much detail as the system
itself... and nothing says that you cannot cut out something that you
*really* don't need later, when you are sure that it has no impact
whatsoever on the system...

Another, more systematic way that you might want to choose to work
with, especially if you are dealing with a very large system is to
ignore context diagrams completely, and to work only with use cases and
use case diagrams but for several system boundaries. You would start
with the system boundary for the largest "business" system that your
software system will be part of and specify use cases and actors. Then
you consider what is the next smaller subsystem of that system and
specify actors and use cases... and so on until you end up at the
boundary of your software system that you are planning to build. This
way the same indirect external entities that are appearing in your
original context diagram, will appear as the actors that participate in
use cases of the system that your software system is part of... This
will also help you understand how use cases decompose and fit together
to fulfill overall business processes, and how all actors relate to
each other independent of the system boundary definitions. Of course,
you might still want to build a context diagram even in this case, or
to make even some kind of "intersection" diagram between use case
diagrams and context diagrams which help you visualize all the
information - do not hesitate to find the optimal solution which will
increase the chance that you did not miss any requirements and that you
have optimally defined your systems boundary and any changes on the
business processes that should be made.

Davor