• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • Ron McLeod
  • Jeanne Boyarsky
  • Paul Clapham
Sheriffs:
  • Liutauras Vilda
  • Henry Wong
  • Devaka Cooray
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • Al Hobbs
  • Carey Brown
Bartenders:
  • Piet Souris
  • Mikalai Zaikin
  • Himai Minh

What is UML ?

 
Ranch Hand
Posts: 1282
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The only stupid question is one you should have asked and didn't.

Quite awhile back, I was invited over here to address some, uh, code-bloat problems.

I was just reading Java Threads, something that is easy for me to understand, and once again - UML is mentioned as a tool that will prevent problems later.

Part of the problem is that I have to put into words what it is that some class does, my mind seems to work differently than what other's do.

So can we state, simply, what UML does ? IOW - what problem does it solve ? I understand that the design process involves recursively designing the program, and each pass should broaden problem comprehension, deepen understanding and improve reliability, but I want UML to be one tool in a toolbox. Not an end goal to be my showcase.

I am guessing it addresses confusion on where everything fits in.

Object Hierarchy could gotcha me later.
[ January 01, 2007: Message edited by: Nicholas Jordan ]
 
author & internet detective
Posts: 41184
848
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
UML = unified modeling language. So it is a tool. I don't know that it solves a specific problem, just as Java doesn't solve a specific problem. I've found it a good communication aid though.
 
author
Posts: 14112
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Different people use UML for different thinks - Martin Fowler once split the typical usages into three categories: http://www.martinfowler.com/bliki/UmlMode.html

According to that categorizations, I would be in the "UML as sketch" camp...
 
Nicholas Jordan
Ranch Hand
Posts: 1282
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Ilja Preuss:
According to that categorizations, I would be in the "UML as sketch" camp...



I use sketch mode to think - that tool may reduce blunders, and therefore project efficiency.

The blueprint and programming language thinks are envisioned by me as mercy on those to whom I may have to explain the project.

It occured to me to let the Code Wranglers do source-code control and finish the work as Team Lead says there is in fact a market waiting, and there are no shortages of baccalaureate c.s.'s who can use any tool we give them.

I have quite a lot of code-clean up to do before I get serious about movement on this, it's just to get the ball rolling.
 
Nicholas Jordan
Ranch Hand
Posts: 1282
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Jeanne Boyarsky:
I've found it a good communication aid though.


That's the sole reason I asked about it. Mercy on professionals.

So it is a tool. I don't know that it solves a specific problem, just as Java doesn't solve a specific problem.


Correct, but it .....

UML = unified modeling language.


I thought it could model my program .... for others.

I just sort of assumed baccalaureate c.s.'s would be trained in it's use and therefore it could be utilized as a language in it's own right to convey to trained, disciplined persons what the design objectives of the program code are - providing a cross check against the code it's self.
 
(instanceof Sidekick)
Posts: 8791
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Communication being the point, use UML when it is the best way to communicate. So when and how you use it depends on what you're trying to say and to whom, including yourself. When people at both ends of the conversation use the same vocabulary for a business domain or set of patterns, diagrams may not be necessary. I tend to keep diagrams only when something is too complex to express in a couple sentences or to hold in my head all at once. (Granted, that's a bad sign in a design, but I'm not perfect (yet) so it happens.)

Oh, I also make diagrams required by people outside my team for various reviews and support. A lot of them may be of questionable value but that's not for me to decide I guess. Surveying product from many teams, these tend to have more PowerPoint boxes and arrows with gradated shading and drop shadows or Visio templates for network components than UML.
 
Nicholas Jordan
Ranch Hand
Posts: 1282
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Stan James:
Communication being the point, use UML when it is the best way to communicate. ....[ remainder of quote below ]



Communication is the point, but we have plenty of unending debates about which is the best [<humor>target goes here</humor>].

So when and how you use it depends on what you're trying to say and to whom, including yourself. When people at both ends of the conversation use the same vocabulary for a business domain or set of patterns, diagrams may not be necessary. I tend to keep diagrams only when something is too complex to express in a couple sentences or to hold in my head all at once.


We discussed that quite awhile back. For the sake of prototyping, I made some decisions that can reduce graphing to a very simple matter. My experience suggests that trying to hold things in one's head that have not been figured out leads to bad questions.

(Granted, that's a bad sign in a design, but I'm not perfect (yet) so it happens.)


You have company, half the people here think I'm nuts.

Oh, I also make diagrams required by people outside my team for various reviews and support. A lot of them may be of questionable value but that's not for me to decide I guess. Surveying product from many teams, these tend to have more PowerPoint boxes and arrows with gradated shading and drop shadows or Visio templates for network components than UML.


My social engineer uses PowerPoint. Rather than take this up, let me say if something is maybe an exceptional condition or whatever, we just light up an led on the front panel and move on.

If UML is something I can do in a text-editor, then I should continue to deepen the inquiry. You mention "people outside my team for various reviews and support.". Frank sits there and does these, sometimes for hours - but my physical responses are remarkable: If it takes the machine more than a few hundred milliseconds to do something, I assume I have been attacked by people who want to ... in my industry it is called take your lunch away.

I have been through several meetings about this project over the last few days - they are remarkably accomplished and street-fast about it. They all say the same thing. The R.F.I.D. side of my business will be marketing to folks who have placed all of the next years meals into a small business and will be very scrappy.

I punched Visio templates into google q=Visio+templates, that is not the tool for me, nor Power Point - I saw a slide show about the $8 mil M$ Flagship ..... neither of those tools are for me.

If I can do UML in Textpad, then I can do UML.
[ January 02, 2007: Message edited by: Nicholas Jordan ]
 
Stan James
(instanceof Sidekick)
Posts: 8791
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Most of UML is too graphical to do in text. I do some sequence diagrams in text with a little REXX program that must be about 15 years old now. But I can't recommend tackling UML with text.

What's neat about high end tools like Rational Rose (or whatever they call it this year) is that they keep a complete model in memory, and you can produce diagrams as views into arbitrary subsets of the model. Since they are all on the common model they are consistent and changes to one can affect others. Cool stuff.

My experience with Rose was that if you tried to model to any detail you could do it forever and never code. We could nail down a cool design one day, come in the next morning and see ways to improve it. Every day for a year. The next part of the experience was that once the architecture was down, ever new use case came up with diagrams just like the last one. Yawn.

See Scott Ambler's Diagrams of UML 2.0 for a quick look at all the major diagrams. See if they say things that you need to tell people. If so, having a common diagramming language with other developers around the world can be a big help.
[ January 02, 2007: Message edited by: Stan James ]
 
Nicholas Jordan
Ranch Hand
Posts: 1282
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Stan James:
Most of UML is too graphical to do in text. I do some sequence diagrams in text with a little REXX program that must be about 15 years old now. But I can't recommend tackling UML with text.


O.K.

What's neat about high end tools like Rational Rose (or whatever they call it this year) is that they keep a complete model in memory, and you can produce diagrams as views into arbitrary subsets of the model. Since they are all on the common model they are consistent and changes to one can affect others. Cool stuff.


"(or whatever they call it this year)" - I recognize this, it says that only the masters are likely to be able to disambiguate minor distinctions in the view that [ahem,...] model the controlled presentation the manager wishes to convey to a paticular audience. Frank will intuitively understand what this tool is for and how to use it.

My experience with Rose was that if you tried to model to any detail you could do it forever and never code. We could nail down a cool design one day, come in the next morning and see ways to improve it. Every day for a year. The next part of the experience was that once the architecture was down, every new use case came up with diagrams just like the last one. Yawn.


Responding to this effectively requires the idiomatics of my native linguistic, which are routinely misinterpreted. Let me put it this way, I could code forever, and never model anything except with source code. In the current state of affairs for my project, this is what my source code is. The expression of the ideas, which I am still working out. I think in terms of what the compiler will do with an assignment operator for example. Code path analysis is a powerful tool with which a compiler author can enforce compliance with traditional programming thought patterns.

The business office environment is different from the racks in the equipment room. Frank and I understand the transition - it is remarkably well modeled by state transitions in finite automa. One operates in time domains measure in seconds, minutes, hours - the other looks at a second as the longest conceivable time domain.

See Scott Ambler's Diagrams of UML 2.0 for a quick look at all the major diagrams. See if they say things that you need to tell people. If so, having a common diagramming language with other developers around the world can be a big help.


I met a Jack in the Box manager Friday on the way home. He is as we speak graduating from an I.T. Management course. If I ever got big enough to hire him, I would just put him and this tool together - the let him do his job.

For the record, I mentioned to him that I had figured out that the greatest burden is the keeping the honest person who is trying to do their job disambiguated from the routine mistakes everyone makes. Apparently they train these people correctly - facial expression and mood sometimes convey seasoned insight.

I will do my modeling in source code. I hope my operation gets big enough to need these tools.
[ January 03, 2007: Message edited by: Nicholas Jordan ]
reply
    Bookmark Topic Watch Topic
  • New Topic