[IDE features]

Zuurbier, E. - AMSXE Erik.Zuurbier@KLM.NL
Thu, 4 Feb 1999 09:17:30 +0100


>>My original idea was to support tidying up a program.
>>So I would not strive for an IDE to support *any* change.
> 	
>Are you suggesting _different_ interfaces for adaptive maintenance
>and perfective maintenance?  I don't think I'd like that.

No, not different interfaces altogether. But imagine the following.
I have a Clean program open and I decide to rename the
function chFL to ChangeFormatLayout. Currently I select
the old name and overtype the new name. In addition to that
I would also like to have a button or a menu item that opens
a rename dialog. Then, after typing the new name and hitting the
OK-button, the IDE would rename the function itself and
also all references to the function where it is in scope.
(Of course that could fail because of a name clash. I would
expect the IDE then to revert to the old situation and to
report the name clash, or ask me questions to solve the clash).

This is one example of an extra feature, not an entirely different
interface.

>..and indeed you have exposed one
>of the fatal problems with the 'project' concept.  An IDE _might_ be able
>to keep track of the internal interfaces in a cluster of related units,
>but it _cannot_ help you with external interfaces; the code that needs
>changing to match the changed interface might not exist yet, someone
>might be designing it three continents away from the current documentation.

I agree that you cannot change code that does not exist yet, but we already
have something running to change code three continents away. In our
company, everybody has an electronic agenda (or is 'scheduler' the right
word?),
and an e-mail client, both provided by a Big Software Company. If I want to
organize a meeting, I select the people in the electronic agenda and the
agenda sends notifications to those people via e-mail. When they receive the
mail, they only have to press an accept-button and the meeting is put into
their own electronic agenda. Also, when I want to change the meeting later,
my agenda uses e-mail to synchronize the agendas of all people involved,
and people have to do very little to stay synchronized.

In the above, you can change 'electronic agenda' into 'Clean groupware IDE',
change 'meeting' into 'a body of Clean software' and change 'synchronize'
into
'change the code that needs to be changed' and there you have it.
Now I understand that there may be loads of practical problems, but those
could be solved.

But first let's have an IDE that helps us manage the software on one
computer.

Erik Zuurbier