You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by Stephane Vaucher <va...@iro.umontreal.ca> on 2009/06/10 19:45:47 UTC
Quality evaluation - survey
Dear Xerces developers,
In the course of a academic study of software quality, we built a quality model
to identify problem areas (classes) in software systems and applied it to
Xerces. We relied on the judgement of students to evaluate how good the
detections are at identifying god classes [1]. We would like confirmation by
some developers (or experienced users) of a subset of the classes detected.
All that is required is to indicate :
1/ if indeed the class centralises functionality and is a god class;
2/ whether or not the class structure is coherent with a clear design
decision. More precisely, does the class offer a good solution to a problem or
was it introduced as a quick and dirty solution which should eventually be
corrected (given available resources, and given a need other than elegance)?
Your participation will help us evaluate the usefulness of the model for real
developers and subsequently improve the detection model. The classes are listed
below, so you can just reply to this email with your comments/opinions.
* * * * * * * *
Class 1 : org.apache.xerces.impl.xpath.regex.RegularExpression
God class: yes/no
Design: good solution/quick and dirty
Comment:
Class 2 : org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl
God class: yes/no
Design: good solution/quick and dirty
Comment:
Class 3 : org.apache.xerces.xinclude.XIncludeHandler
God class: yes/no
Design: good solution/quick and dirty
Comment:
Class 4 : org.apache.xerces.impl.xs.XMLSchemaValidator
God class: yes/no
Design: good solution/quick and dirty
Comment:
Class 5 : org.apache.xerces.parsers.AbstractDOMParser
God class: yes/no
Design: good solution/quick and dirty
Comment:
Class 6 : org.apache.xerces.impl.dtd.DTDGrammar
God class: yes/no
Design: good solution/quick and dirty
Comment:
Class 7 : org.apache.xerces.impl.XMLEntityManager
God class: yes/no
Design: good solution/quick and dirty
Comment:
Class 8 : org.apache.xerces.dom.DOMNormalizer
God class: yes/no
Design: good solution/quick and dirty
Comment:
* * * * * * * *
The model used to produce this list be published at the international
conference on quality software (QSIC2009) [2].
[1] classes that tend to centralise functionality
[2] http://home.ewha.ac.kr/~bjchoi/conference/QSIC2009/
Stephane Vaucher & Foutse Khomh
PhD students - Software quality
University of Montreal
---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org
Re: Quality evaluation - survey
Posted by Mukul Gandhi <ga...@gmail.com>.
Hi Stephane,
On Thu, Jun 11, 2009 at 8:33 PM, Stephane
Vaucher<va...@iro.umontreal.ca> wrote:
> The answers you provided supports our hypothesis that many "bad code"
> detection techniques which measure some sort of complexity will raise false
> alerts as they ignore important factors like the complexity of the domain.
Code quality measurement tools, in general are good to detect various
kinds of wrong coding practices. They should generally be used in
complex projects.
An important measurement of code complexity is "cyclomatic number" for
the code (ref, http://en.wikipedia.org/wiki/Cyclomatic_complexity).
Code with high cyclomatic number (above 10-15 I guess, as recommended
by SEI) is considered risky in terms of ease of change if requirements
change, and being prone to bugs [1].
Having said this [1], though I believe, sometimes it becomes necessary
to write code which might have high cyclomatic number because
requirements makes us write a complex code. I believe, an usual
measure to tackle high complexity is adequate testing.
--
Regards,
Mukul Gandhi
---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org
Re: Quality evaluation - survey
Posted by Stephane Vaucher <va...@iro.umontreal.ca>.
Hi Michael,
We'd like to thanks you for taking time to respond. We chose to analyse
xerces because it is a high-quality library that has successfully evolved
to support many different standards.
The answers you provided supports our hypothesis that many "bad code"
detection techniques which measure some sort of complexity will
raise false alerts as they ignore important factors like the complexity of
the domain.
For your information, this is not a stand-alone investigation. We
have been listening in to this mailing list over one year. The list has
provided us information about the current development process and team
composition. We have also tracked bug reports and feature requests to
classes for every version of the system.
cheers,
Stephane Vaucher & Foutse Khomh
On Thu, 11 Jun 2009, Michael Glavassevich wrote:
> Hi,
>
> I don't normally respond to surveys (of any kind) but I will say that the
> classes that you've listed represent solutions to large / complex problems
> (like XML schema validation) and that none of them were quick and dirty.
>
> Thanks.
>
> Michael Glavassevich
> XML Parser Development
> IBM Toronto Lab
> E-mail: mrglavas@ca.ibm.com
> E-mail: mrglavas@apache.org
>
> Stephane Vaucher <va...@iro.umontreal.ca> wrote on 06/10/2009 01:45:47
> PM:
>
>> Dear Xerces developers,
>>
>> In the course of a academic study of software quality, we built a
>> quality model
>> to identify problem areas (classes) in software systems and applied it to
>
>> Xerces. We relied on the judgement of students to evaluate how good the
>> detections are at identifying god classes [1]. We would like confirmation
> by
>> some developers (or experienced users) of a subset of the classes
> detected.
>>
>> All that is required is to indicate :
>>
>> 1/ if indeed the class centralises functionality and is a god class;
>> 2/ whether or not the class structure is coherent with a clear design
>> decision. More precisely, does the class offer a good solution to a
>> problem or
>> was it introduced as a quick and dirty solution which should eventually
> be
>> corrected (given available resources, and given a need other than
> elegance)?
>>
>> Your participation will help us evaluate the usefulness of the modelfor
> real
>> developers and subsequently improve the detection model. The classes
>> are listed
>> below, so you can just reply to this email with your comments/opinions.
>>
>> * * * * * * * *
>>
>> Class 1 : org.apache.xerces.impl.xpath.regex.RegularExpression
>> God class: yes/no
>> Design: good solution/quick and dirty
>> Comment:
>>
>>
>>
>> Class 2 : org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl
>> God class: yes/no
>> Design: good solution/quick and dirty
>> Comment:
>>
>>
>>
>> Class 3 : org.apache.xerces.xinclude.XIncludeHandler
>> God class: yes/no
>> Design: good solution/quick and dirty
>> Comment:
>>
>>
>>
>> Class 4 : org.apache.xerces.impl.xs.XMLSchemaValidator
>> God class: yes/no
>> Design: good solution/quick and dirty
>> Comment:
>>
>>
>>
>> Class 5 : org.apache.xerces.parsers.AbstractDOMParser
>> God class: yes/no
>> Design: good solution/quick and dirty
>> Comment:
>>
>>
>>
>> Class 6 : org.apache.xerces.impl.dtd.DTDGrammar
>> God class: yes/no
>> Design: good solution/quick and dirty
>> Comment:
>>
>>
>>
>> Class 7 : org.apache.xerces.impl.XMLEntityManager
>> God class: yes/no
>> Design: good solution/quick and dirty
>> Comment:
>>
>>
>>
>> Class 8 : org.apache.xerces.dom.DOMNormalizer
>> God class: yes/no
>> Design: good solution/quick and dirty
>> Comment:
>>
>>
>>
>> * * * * * * * *
>>
>> The model used to produce this list be published at the international
>> conference on quality software (QSIC2009) [2].
>>
>> [1] classes that tend to centralise functionality
>> [2] http://home.ewha.ac.kr/~bjchoi/conference/QSIC2009/
>>
>> Stephane Vaucher & Foutse Khomh
>> PhD students - Software quality
>> University of Montreal
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
>> For additional commands, e-mail: j-dev-help@xerces.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org
Re: Quality evaluation - survey
Posted by Michael Glavassevich <mr...@ca.ibm.com>.
Hi,
I don't normally respond to surveys (of any kind) but I will say that the
classes that you've listed represent solutions to large / complex problems
(like XML schema validation) and that none of them were quick and dirty.
Thanks.
Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: mrglavas@ca.ibm.com
E-mail: mrglavas@apache.org
Stephane Vaucher <va...@iro.umontreal.ca> wrote on 06/10/2009 01:45:47
PM:
> Dear Xerces developers,
>
> In the course of a academic study of software quality, we built a
> quality model
> to identify problem areas (classes) in software systems and applied it to
> Xerces. We relied on the judgement of students to evaluate how good the
> detections are at identifying god classes [1]. We would like confirmation
by
> some developers (or experienced users) of a subset of the classes
detected.
>
> All that is required is to indicate :
>
> 1/ if indeed the class centralises functionality and is a god class;
> 2/ whether or not the class structure is coherent with a clear design
> decision. More precisely, does the class offer a good solution to a
> problem or
> was it introduced as a quick and dirty solution which should eventually
be
> corrected (given available resources, and given a need other than
elegance)?
>
> Your participation will help us evaluate the usefulness of the modelfor
real
> developers and subsequently improve the detection model. The classes
> are listed
> below, so you can just reply to this email with your comments/opinions.
>
> * * * * * * * *
>
> Class 1 : org.apache.xerces.impl.xpath.regex.RegularExpression
> God class: yes/no
> Design: good solution/quick and dirty
> Comment:
>
>
>
> Class 2 : org.apache.xerces.impl.dv.xs.XSSimpleTypeDecl
> God class: yes/no
> Design: good solution/quick and dirty
> Comment:
>
>
>
> Class 3 : org.apache.xerces.xinclude.XIncludeHandler
> God class: yes/no
> Design: good solution/quick and dirty
> Comment:
>
>
>
> Class 4 : org.apache.xerces.impl.xs.XMLSchemaValidator
> God class: yes/no
> Design: good solution/quick and dirty
> Comment:
>
>
>
> Class 5 : org.apache.xerces.parsers.AbstractDOMParser
> God class: yes/no
> Design: good solution/quick and dirty
> Comment:
>
>
>
> Class 6 : org.apache.xerces.impl.dtd.DTDGrammar
> God class: yes/no
> Design: good solution/quick and dirty
> Comment:
>
>
>
> Class 7 : org.apache.xerces.impl.XMLEntityManager
> God class: yes/no
> Design: good solution/quick and dirty
> Comment:
>
>
>
> Class 8 : org.apache.xerces.dom.DOMNormalizer
> God class: yes/no
> Design: good solution/quick and dirty
> Comment:
>
>
>
> * * * * * * * *
>
> The model used to produce this list be published at the international
> conference on quality software (QSIC2009) [2].
>
> [1] classes that tend to centralise functionality
> [2] http://home.ewha.ac.kr/~bjchoi/conference/QSIC2009/
>
> Stephane Vaucher & Foutse Khomh
> PhD students - Software quality
> University of Montreal
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
> For additional commands, e-mail: j-dev-help@xerces.apache.org