Note: this mail is appearing out of sequence because when I sent it initially, my new email details were not registered with the email system.
Apologies, Pete -----Original Message----- From: Hornsby Peter Sent: Tuesday, October 16, 2001 8:06 AM To: 'Derek M Jones'; [EMAIL PROTECTED] Subject: THIS MAIL IS UNCLASSIFIED RE: PPIG discuss: Similarity and categorization Derek, I have been interested in the problem of categorisation from the point of view of programming for some time, as a precursor to an effective system of (software) component reuse. > 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. One of the weaknesses of this approach is that it tends to be fixed at a particular level of abstraction. So while for a software design task a reasonable strategy might be to put all the functions for processing student grades into a single class, another strategy may be to identify different types of student and group all functions by student type. Are you thinking of applying these metrics for the classification of software for a general purpose library or for an individual software project? > 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. Raymonde Guindon (and others) demonstrated that the developers understanding of the solution and problem develop in parallel. Hence, while a developer is designing / coding a system, their understanding of what the problem and solution is, is likely to change (and hence also their perception on the most appropriate form of classification). > o it takes no account of what developers might consider to > be similar functions. Or indeed what different developers might consider to be similar functions. Studies of novice and expert OO programmers have shown that novices tend to be more strict in their application of OO principles to software, which can also affect their understanding of similarity. > 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. I'm willing to be pointed in the direction of any such research, but I'm not sure how useful it would be. At a fairly low level of abstraction these classifications may be valid (and indeed have been useful for many years) in terms of building software libraries. But in terms of individual software projects, I'm not sure how useful these methods are, simply because they appear to rely on a similar understanding of how the classification system works between different developers. Pete -- The Information contained in this E-Mail and any subsequent correspondence is private and is intended solely for the intended recipient(s). For those other than the recipient any disclosure, copying, distribution, or any action taken or omitted to be taken in reliance on such information is prohibited and may be unlawful. - 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]
