Responding to masood.iqbal...
Post by m***@lycos.comPost by H. S. LahmanDefine 'stimulant' and 'beneficiary'. B-)
Without sounding flippant, a "stimulant" is the actor who provides the
stimulus for the use case and gets everything going. The
"beneficiary" is the actor who benefits from the use case.
I have been told that generally Step 1 of a use case talks about the
trigger from the "stimulant" actor (or from the "Time" actor, if the
use case is triggered by a timer or a periodic schedule etc.) and the
last step talks about how the "beneficiary" actor (not necessarily the
same as the "stimulant" actor) benefits from the use case.
Is it correct to say that good use case analysis only talks about
actors only from the perspective of the triggers they provide and the
benefits they receive and refraining completely from describing their
behavior?
I'm just not very comfortable with 'stimulant' and 'beneficiary' as a
classification system for use cases. I don't think one needs more
differentiation that an actor being some entity that interacts with the
software.
Consider a use case where the user requests a particular report. When
the report is generated who is the beneficiary? Do we make the report
itself an actor because it is the beneficiary of the software
processing? Unlikely. So is it the user? What if the user requested it
for someone else? What about the ultimate reader of the report being the
beneficiary? Does the software care who that reader is (i.e., will that
reader affect in any way what the software does)? Do we care who the
reader is enough to raise the reader to the stature of an actor (i.e.,
will doing so enhance out understanding of the requirements for the
software)?
I don't think so. In this example there there is probably some
beneficiary from the software doing its thing somewhere. But I just
don't think it is worth worrying about in those terms.
Consider a hardware control system. The hardware is clearly an actor. In
my OP I cited the notion of setting an interrupt bit by the hardware as
being a indirect interaction. But it seems to me it would be a real
stretch to think of that interaction as a stimulus. Typically the
software will detect the set bit in a polling loop of some sort. IOW,
the software detects the state of the hardware on it own. The
interaction is there but the hardware is essentially passive in that
interaction. [Note that this applies to 'trigger' as well, which is
another mapping I am not too crazy about. B-)]
When it is easy to come up with examples where mental gymnastics are
required to rationalize a classification, I think one has to re-evaluate
the utility of the classification. Just using 'interaction' is broad
enough not avoid such problems.
--
Life is the only flaw in an otherwise perfect nonexistence
-- Schopenhauer
H. S. Lahman
***@verizon.net
software blog: http://pathfinderpeople.blogs.com/hslahman/index.html