It seems to me that there's a little confusion here between the problem domain (the real world which we model) and the solution domain (what is inside the computer).
As a business Policy Analyst, I'd have to say that the solution domain is a subset of, and is located within, the problem domain. Business management must first define the solution as policy before a solution procedure can be
modeled by their computer enabled MIS.
Technology is not a solution, its a tool. MIS is not a solution, its a
model just as is the Situation Board on a military aircraft carrier. The
solution policy is
manifested within an
MIS model of a
computational procedure which is
realized within a
computing technology.

Therefor, our Computationally Independent Model (CIM) must model the solution within a business domain.

In the real world, the person dies. But in our solution, is death a terminal state? (Sorry).
Apparently not.

and for good reason too. However, It would appear that the
isDead attribute is missing along with the
heDied event and the
letsBuryHim event handler.
As a requirements analyst, I'd have to ask how the system gets informed of the real-world event and what happens next.
An excellent question! See reply #3 above by Paolo for a statement of the
tacit policy. Hopefully, the management policy is not properly promulgated which is an easy fix.
I'd imagine that the process is distinct from simple account closure. If a person closes their own account, that's their prerogative. In this case you need to verify that some other person has the legal authority to close the account, which probably entails some proof of death and stuff that impacts other accounts.
So I'd start with a use case like "Accept Customer Death" and go from there. Depending on the circumstances accounts might be transferred, closed, etc.
This is good stuff!

The need to make these kinds of inferences is why the analyst needs business domain knowledge and experience. When these skills are not present, essential requirements are often not fully elaborated.
From the analysis perspective, account-holder is an association class between Person and Account, I think, not a class that exists in the absence of those things? But I guess it depends on your domain...
Excellent point Kevin...
Look everybody! This is why it is so important to get things named and typed correctly! Perhaps
account-holder is a class that is better named
BankCustomer.? :-/ And, perhaps
BankCustomer is not a model of a
person, but of a
legal entity having the
features of a
composite involved in a <<part_Of>> relation with
accounts? And perhaps this confusion underlies the disjointedness of the conversation with CitiBank's Customer Service Representative.
Good show Kevin
