TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy

TEAM-ADA@LISTSERV.ACM.ORG

Options: Use Forum View

Use Monospaced 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:
Simon Wright <[log in to unmask]>
Reply To:
Simon Wright <[log in to unmask]>
Date:
Sat, 17 Feb 2001 07:28:53 +0000
Content-Type:
text/plain
Parts/Attachments:
text/plain (65 lines)
> From: Greg Bek <[log in to unmask]>

> X-To:         Simon Wright <[log in to unmask]>
                              ^^^^^^^^^^^^^                huh?

> > -----Original Message-----
> > From:  Simon Wright

> > Rose/Ada doesn't give you a great deal of control (except through an
> > amazing dialog box with more options than you could shake a stick at),
> > and requires you to have a class in your model if you want a code
> > package generated (so you get loads of support cruft in the design
> > model, instantiations of generic containers etc). This makes reverse
> > engineering difficult (even if Rose/Ada supported it) (even if it were
> > a Good Thing).
> >
>
> Rose gives you a great deal of control, hence the dialog box with
> the multitude of options.

I guess that my problem is that a lot of the control is at a very low
level and has to be applied appropriately to individual model elements
by individual developers; and it's hard to spot invalid choices at
review.

As I remember (it's a while since I used it) you have to specify
whether an operation is an instance operation (has a This parameter)
or a class operation (doesn't) deep in the dialog. Much easier to
stereotype the operation as <<class>> (or, as it turns out, say
[[class]] in the documentation section!)

Control over CG ought to be exercised at a more global level by the
architecture team. I know you can make global (default) CG choices in
Rose, but individual developers can still pervert them!

> I think the real challenge is that for any given design model there
> exists many possible mappings to correct and valid source code in
> a given language.
>
> Rose/Ada as it implements one such mapping, with a variety of options
> to control that mapping.
>
> Rose also has it's own built in scripting language with complete access
> to the model to permit you to write your own CG or RE tool.

Yes, this is good. I seem to remember that you'll be going to an
XML-based external format (XMI?) instead of Petal (?) at some time?
that would be even better.

> The problem gets more complex when you take into account the desire
> to reverse engineer source into a design model (a challenging problem).
> The flexibility of most programming languages is such that it is
> easy to lose information when translating back to a design langauge.

Yes, which is why I questioned its being a Good Thing.

> It gets more challenging when you want to round-trip code as then both
> the code generator and the reverse engineering/analysis tool must be
> very close and in-synch to be at all useful.

No one would want to edit a compiler's generated object code and have
the changes reflected back into the source, would they (well, I guess
there are always strange people out there!) Seems to me that with
advanced CG this is a valid comparison.

ATOM RSS1 RSS2