TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy

TEAM-ADA@LISTSERV.ACM.ORG

Options: Use Forum View

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

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

Print Reply
Subject:
From:
"Robert I. Eachus" <[log in to unmask]>
Reply To:
Robert I. Eachus
Date:
Tue, 12 Oct 1999 11:56:53 -0400
Content-Type:
text/plain
Parts/Attachments:
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...

ATOM RSS1 RSS2