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