Sparx Systems Forum

Enterprise Architect => Uml Process => Topic started by: thomaskilian on October 10, 2005, 07:41:40 am

Title: Sense of UML
Post by: thomaskilian on October 10, 2005, 07:41:40 am
Hi there (esp. Jim and Paolo),
your disussions are very interesting although too far off for me :-[

I saw that many real-life examples were used to clarify UML constructs. UML as it name tells us is a Modelling Language - without telling us what it shall be used for. Apparently the main goal is to model Software and the way Software is used in Real World. For some concern UML must model the Real World. My question: how far? Each Model is an Abstraction, losing Semantics of the modelled thing (like Platon's Shadows). The advantage of the model is, that it describes complex things in a concious way, leaving out unnecessary details. Talking of Software it will give me different views when focusing on certain details. Using UML I can use different Tools (like Elements, Vectors, a.s.o.) to describe the Software. This is fine an legal (of course). But I can't see why UML should legally be used to descibe completely Non-Software things like bread, dough, flour.  Any thought?
Title: Re: Sense of UML
Post by: SF_lt on October 10, 2005, 02:30:03 pm
of course you can model everything what you want. Another question is - how easily. As you see, current UML can't provide tools for everything. But it will - at least I hope (UML5? :-D )

It needs time to mature, to stabilize - roots lie in the software world, but merge with the BPM will enlarge capabilities (but danger sits aside - for everything means a little for all). As it took about 40-50 years to get Java, a bit less C++, more C#, it will take a time (of course less) to get REALLY (?) good language for modelling - during the time we better understand, what requirements are for such modelling languages, what capabilities should be provided by it & so on

Current UML state can be used to model non-software environments, but chances of success, consistence (Paolo's TM :P ) and precision varies in a wide spectrum

btw, it would be great to have some persons/companies, which are working on the UML development to post theirs comments, thoughts in this forum (my wish)
Title: Re: Sense of UML
Post by: Paolo F Cantoni on October 10, 2005, 04:54:56 pm
Quote
But I can't see why UML should legally be used to describe completely Non-Software things like bread, dough, flour.  Any thought?
Thomas, this is a really good question.

I can't speak for any one else, but here's some thoughts on why I use UML for "non-software"  (and I don't necessarily agree that it isn't software) things...

OK... So what is a model?
"A construct whose characteristics and behaviour can be used to make falsifiable predictions on the characteristics and behaviours of the phenomenon being modelled, within the validity domain of the model."
(After Bujor/Cantoni)

All models are wrong, some are useful... (Attribution to be determined)

The abstraction provided by a model is functionally similar to the advantages of a mathematical notation. Commenting on the effect of using a mathematical notation, Alfred North Whitehead stated:
“By relieving the brain of all unnecessary work, a good notation sets it free to concentrated on more advanced problems, and in effect increases the mental power of the race.”

So, for me, so long as it can do the job, it is legitimate to use it.

In particular: "In the absence of any countervailing documentation, the whatever the system does,  it was meant to do."  Thus if I can model whatever I like, to my level of satisfaction, with any given tool then "I'm off and running".

Now as to the abstract discussions Jim and I are having.  I acknowledge they may not be to a lot of people's tastes (and I considered taking them off-line for that reason).  But it is my view, both from a theoretical (say, MDD) and experiential that many systems fail NOT because of technical (software) reasons, but because they can't understand the world they need to operate in.  In particular, they can't accommodate facts that the user requires (or would like) to be stored in the system.

All people working on a system need to be singing from the same hymn book.  UML is the only widely understood (AND THAT"S DEBATABLE!) modeling technology that can be used to handle all three phases of the MDD - CIM, PIM, PSM.

Day in, day out, I hear people around me at work, describing aspects of the domain to each other. These descriptions vary over time, so that W may say one thing to X and a slightly different version to Y.  I hear Q's view directly contradict S.  Then we wonder why the system doesn't integrate without a lot of work...  I can see only one solution.  A formal model that can be verbalised, that can integrate all the different aspects of the system and can be validity checked (falsifiable predictions) in some way.

The systems we produce are beyond the capacity of (a single human or group of) humans to understand.  We need help.  UML (Plus) can help...

That's why I use UML...

Paolo
[size=0]©2005 Paolo Cantoni, -Semantica-[/size]
Title: Re: Sense of UML
Post by: Paolo F Cantoni on October 10, 2005, 06:15:41 pm
When I got into work this morning, I found this in my inbox...

I case my rest...  ;D

Quote
[size=13]Thought you'd get a kick out of this one!

My Aunt died this past January. CitiBank billed her for February and March for their monthly service charge on her credit card, and then added late fees and interest on the monthly charge...the balance had been $0.00...  now was somewhere around $60.00)

I placed the following phone call to CitiBank:

Me: "I am calling to tell you that she died in January."
CitiBank:
 "The account was never closed and the late fees and charges still apply."

Me: "Maybe, you should turn it over to collections..."
CitiBank: "Since it is 2 months past due, it already has been."

Me: "So, what will they do when they find out she is dead?"
CitiBank: "Either report her account to the frauds division, or report her to the credit bureau...maybe both!"

Me: "Do you think God will be mad at her?"
CitiBank:"...excuse me .?"

Me: "Did you just get what I was telling you.... the part about her being dead?"
CitiBank: "Sir, you'll have to speak to my supervisor!"

      (Supervisor gets on the phone)

Me: ''I'm calling to tell you, she died in January."
CitiBank: "The account was never closed and the late fees and charges still apply."

Me: "You mean you want to collect from her estate?"
CitiBank: ".....(stammer)"
CitiBank: "Are you her lawyer?"

Me: "No, I'm her great nephew."  (Lawyer info given... )
CitiBank: "Could you fax us a certificate of death?"

Me: "Sure."  ( Fax number is given ) ( After they get the fax. )
CitiBank: "Our system just isn't setup for death..."

Me: "Oh..."
CitiBank: "I don't know what more I can do to help..."

Me: "Well... if you figure it out, great! If not, you could just keep billing her...I suppose...don't really think she will care...."
CitiBank: "Well...the late fees and charges do still apply."

Me: "'Would you like her new billing address?"
CitiBank: "That might help."

Me: " ( Odessa Memorial Cemetery #### Hwy 129 and plot number given. )
CitiBank: "Sir, that's a cemetery!"

Me: "What do you do with dead people on your planet?!!"[/size]
Title: Re: Sense of UML
Post by: sargasso on October 10, 2005, 08:06:23 pm
Paolo, Jim  
Please don't take it offline .....   I'm still trying to catch up.


Thomas,
I have just been viewing the bread example as just that, an example that illustrates the concepts being expounded.  I very frequently use "real" objects when explaining UML concepts to designer's etc.  Whilst one may probably never automate the lifecycle of a loaf of bread, the example is useful in understanding the nuances of what Paolo and Jim are trying to say.

P,J,
I'm having trouble with the original precepts in "Collections, Containers, Composites & Nests"  - I have tried out the precepts on a Cricket Club mebership model and cant reconcile that example against all the precepts.  My point?  Don't get stuck in using one example to investigate the abstractions.


bruce
Title: Re: Sense of UML
Post by: Paolo F Cantoni on October 10, 2005, 08:34:34 pm
Quote
[size=13][SNIP][/size]
P,J,
I'm having trouble with the original precepts in "Collections, Containers, Composites & Nests"  - I have tried out the precepts on a Cricket Club mebership model and cant reconcile that example against all the precepts.  My point?  Don't get stuck in using one example to investigate the abstractions.
bruce
bruce,
Don't forget these things are a moving target...
By all means add another example/exemplar!  By trying the Cricket Club we may yet convert the heathen... ;D

Paolo
Title: Re: Sense of UML
Post by: sargasso on October 10, 2005, 08:39:46 pm
Quote
these things are a moving target...
but is it consistently moving?  ;D

Seriously, are we and when are we likely to get a review of crystal decisions?  (Trying to catch up and going backwards at a rate of >4 posts per day)

bruce
Title: Re: Sense of UML
Post by: jeshaw2 on October 10, 2005, 09:10:13 pm
Thomas;

There must be many others in this forum who are asking the same question.  :)

Here is how & why I use UML and carry on as I do with these threads. :)

1) I use UML long before I know that software is an appropriate tool to use in my client's business environment.  So, initially, I'm not modeling software;  I'm modeling a real world situation often using client terminology so that they can understand what the model says.

2) The process of learning a client's requirements is much, much more than interviewing stakeholders for their list of needs and wants.  In fact, most of my clients don't know what they want or need;  all they know is that there is something wrong with their business and they want the pain to go away.  So the analysis begins with an analysis of their business problem or opportunity.  Thus, I'm initially using UML to model a problem.  I've seen problems rooted in their business processes, in their product designs, in their organization structure, in their business policy.  So I apply UML modeling concepts in a variety of domains; and, it is not just business processes that are being modeled.  Development methodologies that begin with BPM assume that client's have done their homework related to analyzing their problems and opportunities.  Architects advocating BPM as the quickest way to development of a system are probably correct in their assertions, but I've often seen them produce systems that don't solve the business problem at hand or capture the full benefits of the opportunities presented.

3) It is extremely difficult and very expensive to use a model that does not express the real-world accurately.  In this context I mean both a UML model and a Management Information System (MIS).  If clients are to get value from their MIS, the MIS must be a model of the business and react to its inputs in the same way the business reacts to its inputs.  Otherwise, use of the MIS, as a decision support system, would yield bad management decisions.  I often see this problem when companies "save money" by implementing generic, packaged, off the shelf software.  Given that a UML model is a precursor to an MIS, an invalid UML model will lead to an invalid MIS model.

4) I involve clients in the modeling process as much as I can, for it makes them think formally about their domain.  They don't often get a chance to do this in their work-a-day activities.  Most, however, don't have the desire to think at the level of abstraction most UMLers use.  I have to bring it down to their cognitive level.  As SF_It said in another thread,  [and I'm paraphrasing here] "at a high level of abstraction, all the Meronyms are synonyms and their differences only become visible at the domain level."  Thus, I need to be modeling the meronymic sub-relations in a valid way.  Hence, my discussions here.  I seek knowledge and certification at this level of cognition.

5) Most of the UML artifacts I've seen, have insufficient domain information to accurately model the domain under study.  Giving an incomplete model to software developers invites major problems.  With full recognition and respect of the software developer's mental skills and technical acumen, they know very little about business or the other domains in which I work.  When developing an Inventory Management System as a young programmer, I decided that when ever the On Hand inventory balance went negative, it should be forced to zero for you can not have a negative quantity in the bin.  I figured that I had invented a self-correcting system!  The ultimate effects of that were quite embarrassing.  I was too far from the domain to be making decisions of that sort.  Thus, my UML models must be rich in domain level knowledge and constructs.  And, if the business is a bakery, I'm gonna model bread.  ;) And, when I model that bread, I hope I get it correct.

6) My goals with these discussions are many, but one major goal is to be able to design O-O software frameworks for the kinds of business domains I find myself in.  This way I, as an architect, can enforce the business policy necessary to produce a valid MIS.

Does this help?
Title: Re: Sense of UML
Post by: thomaskilian on October 11, 2005, 12:53:03 am
Thanks to all,
I really appreciate you answers to my question. It's a pity that I'm not open minded enough to actually join the discussion (at this moment). As an essence for me I take the information that UML can indeed be used to formalize more than software constructs. My current limit of understanding is at Use Cases and a bit EP. Domain Modelling wasn't really in my focus so far. I also struggled a lot when talking with Non-UML'ers using UML - esp. so-called Software Gurus :P I even flinch from analysing business terms with business people using more from UML than Use Cases. Probably I don't have the self-confidence in using these nuances you are currently discussing about. That should give me the kick to start learning more :)

Thanks again - and keep the discussion open :)
Title: Re: Sense of UML
Post by: thomaskilian on October 11, 2005, 12:59:39 am
Quote
When I got into work this morning, I found this in my inbox...

I case my rest...  ;D


I guess the requirement "Citibank customers are not allowed to die" was not written down in the section specification. Another case of a wrong model...
Title: Re: Sense of UML
Post by: mbc on October 11, 2005, 01:44:30 am
I have an example from when I was helping an intern at our company.
I was helping him with his analysis model, but he was clearly having trouble abstracting from the coming software implementation.
We had found some various classes with responsibilities like "find employee from employee list", "find tasks in a project", and "find all tasks allocated to an employee".
The intern was equating these analysis classes with software classes, while I was trying to tell him that although the probably would be, they didn't have to be. The model was a valid abstraction of the application logic regardless of how it was implemented later.
The breakthrough in my explanation came when I gave each of the classes a human name: "This is Lisa and her responsibility is to find an employee from the employee list when Peter asks her". Suddenly he saw that if each of those classes was implemented as a person who was assigned the responsibilities of the class, the system would actually work! Expensively and slowly, of course, due to salaries and the amount of manual labour, but the abstraction was just as valid for humans as for software.

That is certainly an explanation I am going to use again.

Mikkel
Title: Re: Sense of UML
Post by: Paolo F Cantoni on October 11, 2005, 03:34:59 am
Quote
I guess the requirement "Citibank customers are not allowed to die" was not written down in the section specification. Another case of a wrong model...
Thomas,

It surely was a wrong model, but the interesting question is how did this come about?

Well, we can't say...

But we can have an methodology that mitigates against such a model being created in the first place.

As it happens, this is fundamental to my approach.

Consider you and I, and bruce and Jim are in an office, I'm the modeller and the rest of you are domain experts.
The first task, is to ensure that we all see the same things when we look out the window.  The window is our enterprise's view of the world.  The domain experts' job is to come up with a consistent view of the world for their enterprise.

So we start by defining the domain (world) that the enterprise needs to survive in.

Let's say we decide we need to include people in the domain.

We include Person in the CIM and then we ask what can happen to a person (what events [facts] do they generate).  They are born, they die... etc.
For each of these events, we ask: "Is the enterprise interested in the fact of this occurrence?"

Now some discussion might be generated because you aren't interested in people dying, but bruce's group is...

The point is: I model the world first, then the industry, then the enterprise, then the processes.

In this way, things are very consistent.

As I keep reminding the domain experts:  "In a fight between you and reality, who do you think is going to win?" ;D

Paolo
Title: Re: Sense of UML
Post by: Paolo F Cantoni on October 11, 2005, 06:05:58 am
Quote
[size=13][SNIP][/size]
3) It is extremely difficult and very expensive to use a model that does not express the real-world accurately.  In this context I mean both a UML model and a Management Information System (MIS).  If clients are to get value from their MIS, the MIS must be a model of the business and react to its inputs in the same way the business reacts to its inputs.  Otherwise, use of the MIS, as a decision support system, would yield bad management decisions.[size=13][SNIP][/size]
What is the purpose of an Information System?  Jean Raymond Abrail (who started me on this modelling lark 30 years ago) had a simple view:

"The purpose of an information system is to allow the user to ask the same question of reality and the system.  And get the same answer!"

This idea has stood me in good stead since that time.  I commend it to everyone.
Quote
4) I involve clients in the modeling process as much as I can, for it makes them think formally about their domain.  They don't often get a chance to do this in their work-a-day activities.
[size=13][SNIP][/size]
I used to say:  "Automating a business that makes sense is actually relatively easy.  Automating one that doesn't make sense is impossible.  Now which one are you?" ;D

Paolo


Title: Re: Sense of UML
Post by: jeshaw2 on October 11, 2005, 08:32:04 am
Quote
I guess the requirement "Citibank customers are not allowed to die" was not written down in the section specification....It surely was a wrong model, but the interesting question is how did this come about?
My guess is that it was written down, then deleted by the Marketing Department...bad press and all that.. ;D  PS: How do you guys make the [snip] thing appear?

Quote
The point is: I model the world first, then the industry, then the enterprise, then the processes.
I follow a similar approach, but I model the company's Charter (explains how the company is like others of its type), then Mission (explains how they are different from the others), then Goals (strategic steps to executing the Mission), then Organizational Structure (how they divide their labor in to distinct tasks, and achieve coordination among them), then Policy (their guidelines for making decisions), then Procedures (ways of achieving results or making decisions), then Rules (which are substitutions for thinking).  Environment is analyzed in parallel with these as it  provides: needed resources, cultural influences, regulatory control, and product markets.  Problems & Opportunities are analyzed in terms of Actuals & Should bes, the variances between them, the forces creating the variances, and who cares enough about them to sponsor & participate in a project to do something about them.  A dose of additional stakeholders and their inputs and I'm ready to start my design.  The new/enhanced MIS then becomes a tool for removing the variance in the problem/opportunity model.

I rarely tell a client I'm developing a UML model; creates too much anxiety on their part.  I just stand at a White-board as we talk about their domain and make my notes thereon in UML.  With a simple explanation of an element, as I introduce it in my diagram, my diagram becomes an Icon I can use in my documentation that, for them, triggers a remembrance of our conversations and the conclusions arrived at therein.  Gradually, and without knowing it, they learn UML. :)  In the back-room, I go through a process of abstraction and revision to get a correct O-O form.  This drives out more questions and finally a revised model that can be used for a this is what I understand you are saying meeting.  It is kind of a bottom-up, top-down modeling approach in what is essentially top-down, bottom-up software development process.  8)

Sorry...This thread hit one of my hot buttons and got me to pontificating a bit  :-[

Title: Re: Sense of UML
Post by: thomaskilian on October 13, 2005, 01:03:16 am
Quote
How do you guys make the [snip] thing appear?

Quote this and you'll see

Quote
I follow a similar approach ...

Me too :) there are a few I did not include so far, but I'll extend my base project right now accordingly :D

Quote
I rarely tell a client I'm developing a UML model; ...

That's probably a good idea since I also noticed an anxious and/or repulsive attitude as soon as I start talking about UML.

Quote

Sorry...This thread hit one of my hot buttons and got me to pontificating a bit  :-[

Certainly not :)
Title: Re: Sense of UML
Post by: jeshaw2 on October 13, 2005, 05:49:11 pm
Quote
Quote this and you'll see
???

[SNIP] !
I think I got it  :)  I was looking for a meta-tag button for this. 8)

Thanks
Title: Re: Sense of UML
Post by: thomaskilian on October 14, 2005, 12:20:39 am
You should have used the quote button on top of my post not the button from "Add YABB tags". That would have cited everything including the metatags for SNIP. However, you managed it without :)
Title: Re: Sense of UML
Post by: mikewhit on October 14, 2005, 04:52:06 am
As regards the dead account holder, in terms of the model, perhaps the missing detail was "reasons for closing account (#27) - death of account holder / action - reconcile account credit balance with estate as of date of death, cancel any charges accruing after date of death."

... since as far as the system goes, you should just be modelling the lifecycle of the account, not (ahem) the lifecycle of the account-holder.
Title: Re: Sense of UML
Post by: Paolo F Cantoni on October 14, 2005, 05:13:23 am
Quote
As regards the dead account holder, in terms of the model, perhaps the missing detail was "reasons for closing account (#27) - death of account holder / action - reconcile account credit balance with estate as of date of death, cancel any charges accruing after date of death."

... since as far as the system goes, you should just be modelling the lifecycle of the account, not (ahem) the lifecycle of the account-holder.
With respect, young mike, I believe you are hoist by your own petard... ;)
death of account holder is modelling the holder...
I leave it as an exercise for the reader to demonstrate that in order to ensure that the system behaves consistently it is a consequential requirement that if one account held by this account holder is closed to due this reason, then all accounts held by the account holder must also be candidates for closure for the same reason.  Therefore...

Paolo
Title: Re: Sense of UML
Post by: mikewhit on October 14, 2005, 06:13:10 am
Well, it's just an event (with all due respect to the deceased ...)
Title: Re: Sense of UML
Post by: Paolo F Cantoni on October 14, 2005, 06:48:40 am
Quote
Well, it's just an event (with all due respect to the deceased ...)
Yes, but it's not a disembodied event (pun intended) ;D
The event is the fact of the account holder's death.   How do you manage the other accounts without the account holder and their death?

Paolo
Title: Re: Sense of UML
Post by: jeshaw2 on October 14, 2005, 07:17:27 am
Quote
[SNIP]The event is the fact of the account holder's death.   How do you manage the other accounts without the account holder and their death? [SNIP]
Perhaps we have joint ownership or a transfer of the account's ownership?  ;D  

I suggest the model was missing an Inheritance feature?  :-/
Title: Re: Sense of UML
Post by: Paolo F Cantoni on October 14, 2005, 07:28:48 am
Quote
Perhaps we have joint ownership or a transfer of the account's ownership?  ;D  

I suggest the model was missing an Inheritance feature?  :-/
That doesn't alter the fact that all the accounts for which this person is an account holder are candidates for closure.  They have to be examined and a decision reached.

My point is, to do the job properly, the system needs to understand there is an account holder (who may be a person) who may die and when they die, all their accounts need to be checked in case they need to be closed because the account holder died.

Paolo
Title: Re: Sense of UML
Post by: jeshaw2 on October 14, 2005, 01:23:56 pm
Agreed  :)
Title: Re: Sense of UML
Post by: KP on October 16, 2005, 04:21:04 pm
Well I agree with Mike and Paolo... It is the responsibility of the Account object to deal with a death of account holder event; it is the responsibility of the AccountHolder object to pass death of account holder events on to each Account object; and it is the responsibility of the Requirements Analyst to remember to put the possibility of such events in the spec in the first place!
Title: Re: Sense of UML
Post by: jeshaw2 on October 16, 2005, 04:51:53 pm
Agreed, but a common oversight.  The Requirements Analyst probably spent too much time as a Java developer.  No need for destructor methods there.  ;)  I'm bothered that the Quality Team didn't catch that either.
Title: Re: Sense of UML
Post by: Paolo F Cantoni on October 16, 2005, 05:11:47 pm
Quote
Well I agree with Mike and Paolo... It is the responsibility of the Account object to deal with a death of account holder event; it is the responsibility of the Account Holder object to pass death of account holder events on to each Account object; and it is the responsibility of the Requirements Analyst to remember to put the possibility of such events in the spec in the first place!
I'm actually saying more than that...  I'm saying it is the responsibility of the Person object to notify the Account Holder object that it died.  Because this person is also an Employee of the bank, person has to notify employee also.  Oh, and by the way, the person also had a housing loan...  And was the employee elected director on the board...

It's about resisting business implerialism...  The world works the way the enterprise sees it - NOT!

Paolo
Title: Re: Sense of UML
Post by: thomaskilian on October 17, 2005, 12:38:21 am
Quote
...it is the responsibility of the Person object to notify the Account Holder object that it died...

Halleluja
Title: Re: Sense of UML
Post by: jeshaw2 on October 17, 2005, 05:05:53 am
Quote
I'm saying it is the responsibility of the Person object to notify the Account Holder object that it died....

The world works the way the enterprise sees it - NOT!

Dead people talking to the living?  ???  My world doesn't work that way.  In such situations, the death notifications always came by way of direct observation (I killed it, I saw it happen, etc.) or from 3rd parties (Stewards, executors, friends, etc.). I think it might be the same for the death of a network connection object as a result of a loss of communication.  I suggest that the dead are not always able to speak.
Title: Re: Sense of UML
Post by: thomaskilian on October 17, 2005, 06:30:55 am
I guess Paolo forgot that there is no one-to-one relation between model and real world. Whilst (computer-)objects can be held reponsible for being killed/about to being dead, the real world does not offer such a feature :o For me, I'm not able to find my destructor operation. Except I'll commit suicide and arrange everything in advance. Or maybe my testament should be set up accordingly ???
Title: Re: Sense of UML
Post by: mikewhit on October 17, 2005, 10:00:39 am
That's what I was getting at.

There is no need to model the lifecycle of the person - only to respond to such events as the system may receive from the real world: which must of course have been accurately enumerated by the RA.

I just need an abstraction of an account-holder, not a Person.

Well, I can see a distinction :-)
Title: Re: Sense of UML
Post by: Kevin Brennan on October 17, 2005, 12:18:59 pm
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).

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

As a requirements analyst, I'd have to ask how the system gets informed of the real-world event and what happens next. I'd imagine that the process is distinct from simple account closure. If a person closes their own account, that's their perogative. 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.

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...
Title: Re: Sense of UML
Post by: mikewhit on October 18, 2005, 01:24:24 am
Crikey, I seem to have summoned up a Business Analyst !

Thanks !
Title: Re: Sense of UML
Post by: jeshaw2 on October 18, 2005, 07:40:27 am
Quote
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. ;D

Quote
In the real world, the person dies. But in our solution, is death a terminal state? (Sorry).
Apparently not. ;D  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.

Quote
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.

Quote
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.

Quote
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  :)
Title: Re: Sense of UML
Post by: Kevin Brennan on October 18, 2005, 08:27:54 am
Quote
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.


I think what we have here is a difference in terminology, not a substantive disagreement.

Here's what I mean by those words (my definitions are based on Michael Jackson's (http://mcs.open.ac.uk/mj665/) problem frames).

The real world is, of course what we actually seek to describe. The portion of it that's of interest to us is captured in a problem domain model, which describes what we know about the things in the real world. Here we talk only about things that actually exist in some form.

The goal is to build a software application, the workings of which are captured in a solution domain model. The purpose of this application is to alter the workings of problem domain and thus produce effects in the real world. Those effects are what we call requirements.

Using these terms, policy falls in the solution domain because it seeks to procude effects in the real world. The reason I define it this way has a lot to do with the work I'm currently doing to codify and define the role of the BA--a BA should be asking whether the policy achieves the business goal, not just if the system correctly implements the policy.
Title: Re: Sense of UML
Post by: jeshaw2 on October 18, 2005, 10:07:50 am
Quote
The goal is to build a software application, the workings of which are captured in a solution domain model. The purpose of this application is to alter the workings of problem domain and thus produce effects in the real world. Those effects are what we call requirements.  
 
Using these terms, policy falls in the solution domain because it seeks to procude effects in the real world. The reason I define it this way has a lot to do with the work I'm currently doing to codify and define the role of the BA--a BA should be asking whether the policy achieves the business goal, not just if the system correctly implements the policy.

I understand your point and agree that we are very close, but I do have some problem with Jackson's perspectives; [skimming your reference, it appears that] he makes a mistake similar to Jacques Ellule in his treaties on Technology.  I shall read Jackson more deeply...

It is important, at least to me, that we don't misplace the responsibility for effecting change. Technology does not alter behavior (unless perhaps it is a dangerous weapon), it enables changes in behavior (or in the case of a weapon, encourages changes).  The responsibility for effecting a solution in this domain is the domain's management, not the application system nor its manifestation in a list of new/modified Requirements.  I'm sure you understand this, but my students like to read this forum too. ;)

I am uncomfortable with wording that software is the effector of change. New software can be implemented, but without the management force, no change will occur; the old system is just driven underground.  
Title: Re: Sense of UML
Post by: Paolo F Cantoni on October 18, 2005, 08:47:04 pm
Quote
I guess Paolo forgot that there is no one-to-one relation between model and real world. Whilst (computer-)objects can be held responsible for being killed/about to being dead, the real world does not offer such a feature :o For me, I'm not able to find my destructor operation. Except I'll commit suicide and arrange everything in advance. Or maybe my testament should be set up accordingly ???
Well actually I didn't forget that the model isn't the world.

Above my desk at work I have the following picture by Rene Magritte:
(http://sharepoint.knowledgerecovery.com/external/eaug/EA%20Graphics/PaoloFCantoni_Images/Magritte_pipe.jpg).  Its title is Le trahison des images (the treachery of images).  The text - which is formally part of the picture - says: "This is not a pipe".  I call it The Modeller's Picture.  It's there to remind us all that the model is not reality.

But it should approach reality in the facts it contains and can manage.

The person object needs to be able to hold all the necessary facts about the person it is tracking.  Including their death.  The death of the person and the destruction of the person object are two distinct things.

Paolo

Title: Re: Sense of UML
Post by: Paolo F Cantoni on October 18, 2005, 10:23:19 pm
I think it would be instructive to have some diagrams posted concerning the problem of the dead account holder.  I certainly found the bread modelling instructive for the analysis of meronymy.

If anyone wants to start, I suggest:

Environment:
Each Account has one or more Account Holders
Each Account Holder is a Business Entity (can be sued)
A Business Entity may be a Corporate Entity or An Individual.

Business Rule:
When an account holder ceases to exist, any accounts held solely by them must be inactivated (awaiting executor instruction).  Any accounts held jointly must be flagged for further action.

Paolo

Edit: blue changes as per bruce's comments below...
Title: Re: Sense of UML
Post by: sargasso on October 19, 2005, 12:44:54 am
Quote
When an account holder ceases to exist, any accounts held solely by them must be closed.


In actual fact, under the current Oz regs they cannot do that.

"any accounts held soley by them must be inactivated awaiting instructions from the executor of the will"


bruce
Title: Re: Sense of UML
Post by: mikewhit on October 19, 2005, 02:28:43 am
There's probably a similar sentence dealing with bankruptcy, where the accounts are similarly inactivated awaiting instructions from the bankruptcy court ... [shudder !]
Title: Re: Sense of UML
Post by: Paolo F Cantoni on October 19, 2005, 05:35:33 am
Quote
There's probably a similar sentence dealing with bankruptcy, where the accounts are similarly inactivated awaiting instructions from the bankruptcy court ... [shudder !]
Of course, but I thought we'd keep it simple first.  Perhaps we could add this rule later and watch the effect on the previously agreed model?

Paolo
Title: Re: Sense of UML
Post by: Kevin Brennan on October 20, 2005, 07:18:18 am
I believe this confuses the possible lifecycles of a Person and an Organization. As you stated the rule, both can die and require the system to wait for a will to be executed.

In practice Organizations can dissolve, go bankrupt etc. but not die. You need to model their lifecycles and then figure out how the account should respond to state changes in the Account Holder.
Title: Re: Sense of UML
Post by: Paolo F Cantoni on October 20, 2005, 08:13:46 am
Quote
I believe this confuses the possible lifecycles of a Person and an Organization. As you stated the rule, both can die and require the system to wait for a will to be executed.

In practice Organisations can dissolve, go bankrupt etc. but not die. You need to model their lifecycles and then figure out how the account should respond to state changes in the Account Holder.
Kevin,
That's interesting.  I've always modelled that an Organization CAN die.  But your point is well taken.

Also, I think one needs to distinguish between the British/Australian (and possibly other European) Legal view and the and the US Legal view about the status of the Corporate Entity.

It has been put to me that one of the reasons that US companies are so aggressive is that under US Law they have all the accoutrements of an individual except the right to vote.  Thus the directors need not be personally liable.  I believe this is not the case in the other jurisdictions.  The directors in the British system provide the "animus".  Thus when an organisation "dies", there is no "will" since it had no animus to begin with.  

Hence the model (at least in those jurisdictions) can hold that both Individuals and Organisations die, but only Individuals can (optionally) leave a will to be executed.

My 2c

Paolo
Title: Re: Sense of UML
Post by: mcoletti on November 28, 2005, 01:17:04 am
Quote
I rarely tell a client I'm developing a UML model; creates too much anxiety on their part.  I just stand at a White-board as we talk about their domain and make my notes thereon in UML.  With a simple explanation of an element, as I introduce it in my diagram, my diagram becomes an Icon I can use in my documentation that, for them, triggers a remembrance of our conversations and the conclusions arrived at therein.  Gradually, and without knowing it, they learn UML. :)  


Really interesting thread!

Unfortunately, I am finding anxiety about UML also in developers, with two common side effects:

In my view, the importance of UML is in the fact that it is a common "language" (so a set of grammar and syntax rules) that can be used to model different views at different levels.
The responsibility of an "UML evangelist" in an organization, is to communicate the "syntax" of UML as a language (not its icons!) allowing to lower the communication barriers among domain experts, managers, organization analysts, software architects and developers.

Thanks to jeshaw2 for his illuminating "pontification".

Cheers,

Massimo
Title: Re: Sense of UML
Post by: jeshaw2 on November 29, 2005, 08:22:23 am
mcoletti;
Unfortunately, I'm finding too many UML "instructors" that don't understand the grammar either.  UML courses simply describe diagram types and Icons, providing only "see Jane run" examples.  

There are many Advanced UML books that deal with more complicated examples, but they simply say "draw it this way" without really explaining "why this way".

I'm not surprised that many programmers use the UML Icons like another green plastic stencil set.  
Title: Re: Sense of UML
Post by: Paolo F Cantoni on November 29, 2005, 02:57:27 pm
Quote
I'm not surprised that many programmers use the UML Icons like another green plastic stencil set.  
Ah... (Nostalgically) those beautiful (German) Green Plastic Stencil sets...  There MUST be a UML one!

Paolo