TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy


Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Condense Mail Headers

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

Print Reply
"Team Ada: Ada Advocacy Issues (83 & 95)" <[log in to unmask]>
AdaWorks <[log in to unmask]>
Tue, 12 Oct 1999 11:56:53 -0400
"Robert I. Eachus" <[log in to unmask]>
"Robert I. Eachus" <[log in to unmask]>
text/plain; charset="us-ascii"
text/plain (20 lines)
At 09:55 AM 10/11/1999 -0700, AdaWorks wrote:

>Though I am no expert on UML, it seems that Ada is richer in composition
>mechanisms than one finds in the modeling notation of UML.  For example,
>Ada's child library units, particularly private child library units, do
>not seem to fit well into the UML notation.  There are other little
>differences that seem to be outside the modeling capability of UML.

     I would say the same thing a little differently.  Ada allows you to express information in the specifications about program structure that is not part of UML.  You can build a generator that directly maps UML to Ada, but there is a lot of necessary detailed design that doesn't get done.

     From personal experience, UML is a wonderful tool, and Ada is a wonderful programming language.  However, tools that generate Ada from UML allow monkeys to generate compilable Ada code without the slightest idea of what it does or is supposed to do.

     On the other hand, used correctly, the UML can be decorated with the necessary information before translating to Ada.  This process is usually part of detailed or low-level design.  It would be nice if UML could be extended to include this level of information.  (You can also have the same problems in C++ of course, but there the 'missing' information tends to affect the code instead of the interfaces, since the equivalent of Ada tasking is done through function calls, etc.)

                                        Robert I. Eachus

with Standard_Disclaimer;
use  Standard_Disclaimer;
function Message (Text: in Clever_Ideas) return Better_Ideas is...