Author Topic: Sense of UML  (Read 7536 times)

thomaskilian

  • Guest
Sense of UML
« 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?

SF_lt

  • EA User
  • **
  • Posts: 216
  • Karma: +1/-0
  • The Truth Is Out There
    • View Profile
Re: Sense of UML
« Reply #1 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)
« Last Edit: October 10, 2005, 02:33:57 pm by SF_lt »
registertm everything to SparX

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 6212
  • Karma: +96/-88
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Sense of UML
« Reply #2 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]
« Last Edit: November 01, 2005, 04:14:03 am by PaoloFCantoni »
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 6212
  • Karma: +96/-88
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Sense of UML
« Reply #3 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]
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

sargasso

  • EA Practitioner
  • ***
  • Posts: 1406
  • Karma: +1/-2
  • 10 COMFROM 30; 20 HALT; 30 ONSUB(50,90,10)
    • View Profile
Re: Sense of UML
« Reply #4 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
"It is not so expressed, but what of that?
'Twere good you do so much for charity."

Oh I forgot, we aren't doing him are we.

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 6212
  • Karma: +96/-88
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Sense of UML
« Reply #5 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
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

sargasso

  • EA Practitioner
  • ***
  • Posts: 1406
  • Karma: +1/-2
  • 10 COMFROM 30; 20 HALT; 30 ONSUB(50,90,10)
    • View Profile
Re: Sense of UML
« Reply #6 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
"It is not so expressed, but what of that?
'Twere good you do so much for charity."

Oh I forgot, we aren't doing him are we.

jeshaw2

  • EA User
  • **
  • Posts: 701
  • Karma: +0/-0
  • I'm a Singleton, what pattern are you?
    • View Profile
Re: Sense of UML
« Reply #7 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?
Verbal Use Cases aren't worth the paper they are written upon.

thomaskilian

  • Guest
Re: Sense of UML
« Reply #8 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 :)

thomaskilian

  • Guest
Re: Sense of UML
« Reply #9 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...

mbc

  • EA User
  • **
  • Posts: 237
  • Karma: +1/-0
  • Embedded software developer
    • View Profile
Re: Sense of UML
« Reply #10 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

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 6212
  • Karma: +96/-88
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Sense of UML
« Reply #11 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
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 6212
  • Karma: +96/-88
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Sense of UML
« Reply #12 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


Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

jeshaw2

  • EA User
  • **
  • Posts: 701
  • Karma: +0/-0
  • I'm a Singleton, what pattern are you?
    • View Profile
Re: Sense of UML
« Reply #13 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  :-[

Verbal Use Cases aren't worth the paper they are written upon.

thomaskilian

  • Guest
Re: Sense of UML
« Reply #14 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 :)