TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy


Options: Use Classic View

Use Proportional Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Stanley Allen <[log in to unmask]>
Fri, 13 Feb 1998 00:01:13 -0600
text/plain (48 lines)
W. Wesley Groleau x4923 wrote:
> Says a guy who's not fully up on UML yet:
> Rational Rose, though it supports Ada 95,
> is clearly designed for C++  I suspect there's
> a strong correspondence to UML.

Actually, you'd be surprised, as I am while
looking at the UML Real-Time book.  Object
message interactions in UML come in many
varieties, some of which correspond directly
to Ada tasking semantics.  "Rendezvous" is
explicitly included.  There are four kinds of
rendezvous defined: "waiting", "balking",
"timed", and "protected"; the semantics of
each of these are taken directly from Ada's
accept and select statements.  I believe they
were defined with Ada83 in mind, though they
can easily be applied to Ada95 protected types
by treating the protected type as a "passive"

Also, "packages" and "components" are in UML
as "first class citizens".  These generally
correspond to the old Booch-o-Gram "packages",
with refinements; an ancestor element from the
first "Software Engineering with Ada" book.

UML is really the outgrowth of the original
Booch "method" (UML was seen as a notation when it
was decided that it did not imply a particular
method), albeit with generous acretions from the
other methods it was "unified" with.  So it retains
some of its Ada historical foundations.

Not much of it directly implies C++ as far as I
can tell.  This may be true of the Rose product,
but I believe that Booch et. al. were persuaded
to make the UML language-neutral if for no other
reason than to avoid leaving Java developers out.

So far I haven't seen anything which would exclude
Ada 95 either (multiple inheritance may somewhat
problematic though not insurmountably so).

Stanley Allen
[log in to unmask]