All,

There are a number of techniques for attempting to
figure out which function belongs in which module.
These are usually based on various cohesion and
coupling metrics.

These metrics can be calculated from the source code.
Which functions call or are called by other functions
and usage of variables all goes into the equations.

I have been reading "Classification and Cognition" by Estes.
Which offers some interesting ways of measuring the similarity
of an object to a category.  The paper "Learning and memorization
of classifications" by Shepard et al (Psychological Monographs,
Vol 76, No 13) describes a wonderful study (psychologists
don't seem to do experiments) of subjects learning and
classifying sequences of small/large squares/triangles that
are black/white.

The problem with the existing techniques for figuring out what
to put in each module are:

   o the source is needed.  It might not have been written yet.

   o it takes no account of what developers might consider to
be similar functions.

Does anybody know of any research that have looked at how
some kind of cognitive metric might be used to figure out
what functions belong in each module?  Would building a
similarity matrix for functions, based on their high level attributes,
put them in the same modules that experienced developers would?

For instance the trig functions obvious belong in the same
module, as would string handle, tree walking functions, etc
belong in their own modules.  But things are not always as
straightforward as these cases.

The same problems arise for deciding what identifiers belong
to different enumerated types.  But here the problem is that
measuring interaction, from source code, between them is
much more difficult.

derek

--
Derek M Jones                                           tel: +44 (0) 1252 520 667
Knowledge Software Ltd                            mailto:[EMAIL PROTECTED]
Applications Standards Conformance Testing   http://www.knosof.co.uk



- Automatic footer for [EMAIL PROTECTED] ----------------------------------
To unsubscribe from this list, mail [EMAIL PROTECTED]  unsubscribe discuss
To join the announcements list, mail [EMAIL PROTECTED] subscribe announce
To receive a help file, mail [EMAIL PROTECTED]         help
This list is archived at http://www.mail-archive.com/discuss%40ppig.org/
If you have any problems or questions, please mail [EMAIL PROTECTED]

Reply via email to