[GRASS5] New GRASS Quality Control System online

Dear GRASS developers and interested users,

as you know, GRASS is a huge system with thousands of files and
hundreds of thousands of lines of code. You are contributing to the
development - but do you sometimes wonder how quality is ensured in
such a big project? Sure, there is the commit mailing list which shows
changes in real time. But probably more could be done.

Today we want to propose a new system to you:
At Ecole Polytechnique de Montreal a new software quality control
system has been developed which checks the CVS changes as distributed
by the GRASS commit mailing list for potential problems. We would like
to invite you to try this new GRASS source code quality monitoring
service. We, that are Giulio Antoniol, Ettore Merlo, Salah Bouktif and
Markus Neteler. Based on Free Software tools and the software
engineering knowledge of the people of Ecole Polytechnique de
Montreal, this quality assessment system was realized as combined
email notifier and Web dashboard.

So, what do you and the GRASS project gain from that? Three principal
services are provided to you and the community:

- The first service analyzes and controls the complexity increase and
  potential quality declining;

- The second supports distributed developers to perform safe evolution
  by sending them a feedback report after each contribution in order to
  avoid abnormal actions;

- The third allows developers to learn about the big picture of the
  whole software by providing them with a dashboard of the project
  evolution.

What could go wrong? The *first service* checks if new functions or
modifications are getting too complex which renders them
unmaintainable. The service also checks if a modified function,
probably written by someone else, is already too complex and should
better broken into pieces. Finally it checks if functions are cloned,
i.e. that several code pieces are identical or nearly identical. In
this case such clones should be removed (e.g. by moving the function
to the related GRASS library).

As *second service* this report is sent to the developer shortly after
each CVS modification. Memory is still fresh and the developer is
invited to act upon a newly introduced problem or invited to attack an
old outstanding problem with legacy code in GRASS.

The *third service* is a Web site which provides easy code navigation
to better study clones or complex functions (we call them "baby
monsters" or "monsters" and put them into the "monster garage" there
for inspection). Also detailed graphs will be generated to better
illustrate the problems identified.

It is our goal to make the services a help and understandable even to
the "hobby" programmer. And of course, to help to improve the code
quality. Better code is easier to maintain - so please give the system
a try.

To receive the code monitoring messages of your contributions, please
just send a mail to Markus that you are interested. To take a look at
the dashboard, check here:

http://web.soccerlab.polymtl.ca/grass-evolution/grass-browsers/grass-index-en.html

To log into the GRASS restricted, enter:
User: grass (pw: "grass6")

Our plan in the long term is to develop personalized services and
different views for different developers. This is a beta test and we
need your help to identify weaknesses and possible enhancements.

For example, as suggested by Ettore, we could easily implement a
service to check files/functions for quality indexes before performing
the actual CVS commit, kind of preventive verification.

We are happy to give more feedback! Let us know or simply try the
new system out.

Best regards

Markus

in collaboration with and grateful to:
  Giulio Antoniol <antoniol AT ieee.org>
  Salah Bouktif <salah.bouktif AT polymtl.ca>
  Ettore Merlo <ettore.merlo AT polymtl.ca>

Dear all,

I would like to suggest again the running quality control system. Developers
can receive personalized emails in quasi real time which indicate potential
problems or a big "OK". In my/our/ opinion an immediate notification is
good since memories are still fresh. Like this the ongoing introduction of
cloned code could be minimized. Also other features are available as
indicated below.

Please a few volunteers may subscribe to make it a useful system.
It only makes sense if GRASS developers use it and suggestion improvements.
I am sure that quality control will save us time later...

Markus

Markus Neteler wrote:

Dear GRASS developers and interested users,

as you know, GRASS is a huge system with thousands of files and
hundreds of thousands of lines of code. You are contributing to the
development - but do you sometimes wonder how quality is ensured in
such a big project? Sure, there is the commit mailing list which shows
changes in real time. But probably more could be done.

Today we want to propose a new system to you:
At Ecole Polytechnique de Montreal a new software quality control
system has been developed which checks the CVS changes as distributed
by the GRASS commit mailing list for potential problems. We would like
to invite you to try this new GRASS source code quality monitoring
service. We, that are Giulio Antoniol, Ettore Merlo, Salah Bouktif and
Markus Neteler. Based on Free Software tools and the software
engineering knowledge of the people of Ecole Polytechnique de
Montreal, this quality assessment system was realized as combined
email notifier and Web dashboard.

So, what do you and the GRASS project gain from that? Three principal
services are provided to you and the community:

- The first service analyzes and controls the complexity increase and
potential quality declining;

- The second supports distributed developers to perform safe evolution
by sending them a feedback report after each contribution in order to
avoid abnormal actions;

- The third allows developers to learn about the big picture of the
whole software by providing them with a dashboard of the project
evolution.

What could go wrong? The *first service* checks if new functions or
modifications are getting too complex which renders them
unmaintainable. The service also checks if a modified function,
probably written by someone else, is already too complex and should
better broken into pieces. Finally it checks if functions are cloned,
i.e. that several code pieces are identical or nearly identical. In
this case such clones should be removed (e.g. by moving the function
to the related GRASS library).

As *second service* this report is sent to the developer shortly after
each CVS modification. Memory is still fresh and the developer is
invited to act upon a newly introduced problem or invited to attack an
old outstanding problem with legacy code in GRASS.

The *third service* is a Web site which provides easy code navigation
to better study clones or complex functions (we call them "baby
monsters" or "monsters" and put them into the "monster garage" there
for inspection). Also detailed graphs will be generated to better
illustrate the problems identified.

It is our goal to make the services a help and understandable even to
the "hobby" programmer. And of course, to help to improve the code
quality. Better code is easier to maintain - so please give the system
a try.

To receive the code monitoring messages of your contributions, please
just send a mail to Markus that you are interested. To take a look at
the dashboard, check here:

http://web.soccerlab.polymtl.ca/grass-evolution/grass-browsers/grass-index-en.html

To log into the GRASS restricted, enter:
User: grass (pw: "grass6")

Our plan in the long term is to develop personalized services and
different views for different developers. This is a beta test and we
need your help to identify weaknesses and possible enhancements.

For example, as suggested by Ettore, we could easily implement a
service to check files/functions for quality indexes before performing
the actual CVS commit, kind of preventive verification.

We are happy to give more feedback! Let us know or simply try the
new system out.

Best regards

Markus

in collaboration with and grateful to:
Giulio Antoniol <antoniol AT ieee.org>
Salah Bouktif <salah.bouktif AT polymtl.ca>
Ettore Merlo <ettore.merlo AT polymtl.ca>

_______________________________________________
grass5 mailing list
grass5@grass.itc.it
http://grass.itc.it/mailman/listinfo/grass5

Hi,

On Tuesday 18 April 2006 18:19, Markus Neteler wrote:

Dear all,

I would like to suggest again the running quality control system. Developers
can receive personalized emails in quasi real time which indicate potential
problems or a big "OK". In my/our/ opinion an immediate notification is
good since memories are still fresh. Like this the ongoing introduction of
cloned code could be minimized. Also other features are available as
indicated below.

This is a great tool, thank you.
I found a baby_monster that i have programmed .... maybe i can refract it ... . :slight_smile:

And i would like to remind that there is also a small test suite for grass availible.

Please a few volunteers may subscribe to make it a useful system.
It only makes sense if GRASS developers use it and suggestion improvements.

How can i subscribe? Did i miss some informations?

I am sure that quality control will save us time later...

Indeed! The quality control system and the test suite should be used.

Best regards
soeren

Markus

Markus Neteler wrote:

>Dear GRASS developers and interested users,
>
>as you know, GRASS is a huge system with thousands of files and
>hundreds of thousands of lines of code. You are contributing to the
>development - but do you sometimes wonder how quality is ensured in
>such a big project? Sure, there is the commit mailing list which shows
>changes in real time. But probably more could be done.
>
>Today we want to propose a new system to you:
>At Ecole Polytechnique de Montreal a new software quality control
>system has been developed which checks the CVS changes as distributed
>by the GRASS commit mailing list for potential problems. We would like
>to invite you to try this new GRASS source code quality monitoring
>service. We, that are Giulio Antoniol, Ettore Merlo, Salah Bouktif and
>Markus Neteler. Based on Free Software tools and the software
>engineering knowledge of the people of Ecole Polytechnique de
>Montreal, this quality assessment system was realized as combined
>email notifier and Web dashboard.
>
>So, what do you and the GRASS project gain from that? Three principal
>services are provided to you and the community:
>
>- The first service analyzes and controls the complexity increase and
> potential quality declining;
>
>- The second supports distributed developers to perform safe evolution
> by sending them a feedback report after each contribution in order to
> avoid abnormal actions;
>
>- The third allows developers to learn about the big picture of the
> whole software by providing them with a dashboard of the project
> evolution.
>
>What could go wrong? The *first service* checks if new functions or
>modifications are getting too complex which renders them
>unmaintainable. The service also checks if a modified function,
>probably written by someone else, is already too complex and should
>better broken into pieces. Finally it checks if functions are cloned,
>i.e. that several code pieces are identical or nearly identical. In
>this case such clones should be removed (e.g. by moving the function
>to the related GRASS library).
>
>As *second service* this report is sent to the developer shortly after
>each CVS modification. Memory is still fresh and the developer is
>invited to act upon a newly introduced problem or invited to attack an
>old outstanding problem with legacy code in GRASS.
>
>The *third service* is a Web site which provides easy code navigation
>to better study clones or complex functions (we call them "baby
>monsters" or "monsters" and put them into the "monster garage" there
>for inspection). Also detailed graphs will be generated to better
>illustrate the problems identified.
>
>It is our goal to make the services a help and understandable even to
>the "hobby" programmer. And of course, to help to improve the code
>quality. Better code is easier to maintain - so please give the system
>a try.
>
>To receive the code monitoring messages of your contributions, please
>just send a mail to Markus that you are interested. To take a look at
>the dashboard, check here:
>
>http://web.soccerlab.polymtl.ca/grass-evolution/grass-browsers/grass-index-en.html
>
>To log into the GRASS restricted, enter:
>User: grass (pw: "grass6")
>
>Our plan in the long term is to develop personalized services and
>different views for different developers. This is a beta test and we
>need your help to identify weaknesses and possible enhancements.
>
>For example, as suggested by Ettore, we could easily implement a
>service to check files/functions for quality indexes before performing
>the actual CVS commit, kind of preventive verification.
>
>We are happy to give more feedback! Let us know or simply try the
>new system out.
>
>Best regards
>
> Markus
>
>in collaboration with and grateful to:
> Giulio Antoniol <antoniol AT ieee.org>
> Salah Bouktif <salah.bouktif AT polymtl.ca>
> Ettore Merlo <ettore.merlo AT polymtl.ca>
>
>_______________________________________________
>grass5 mailing list
>grass5@grass.itc.it
>http://grass.itc.it/mailman/listinfo/grass5
>
>

_______________________________________________
grass5 mailing list
grass5@grass.itc.it
http://grass.itc.it/mailman/listinfo/grass5

Sören Gebbert wrote:

Hi,

On Tuesday 18 April 2006 18:19, Markus Neteler wrote:

Dear all,

I would like to suggest again the running quality control system. Developers
can receive personalized emails in quasi real time which indicate potential
problems or a big "OK". In my/our/ opinion an immediate notification is
good since memories are still fresh. Like this the ongoing introduction of
cloned code could be minimized. Also other features are available as
indicated below.
   
This is a great tool, thank you.
I found a baby_monster that i have programmed .... maybe i can refract it ... . :slight_smile:

And i would like to remind that there is also a small test suite for grass availible.

Please a few volunteers may subscribe to make it a useful system.
It only makes sense if GRASS developers use it and suggestion improvements.
   
How can i subscribe? Did i miss some informations?

Hi Soeren, all:

[it was maybe hidden in the original posting]

a) to receive the code monitoring messages of your contributions, please
just send a mail to me
that you are interested. We have a match table CVS_name -> email
address which will be activated
then.

b) to take a look at the dashboard, check here:

http://web.soccerlab.polymtl.ca/grass-evolution/grass-browsers/grass-index-en.html
To log into, enter user: grass (pw: "grass6")

Don't hesitate to suggests your ideas.

Enjoy,
Markus

Dear Soren,

    at the moment the system subscription is still managed by hand. I
will immediately insert you
as one of the GRASS developers that will receive the automatic
feedback upon
modification and cvs commit of C files.

I would also uderline that we do very welcome any suggestion you think
will
improve the approach and make it more usefull to GRASS developers.

All the very best

Giulio

Sören Gebbert wrote:

Hi,

On Tuesday 18 April 2006 18:19, Markus Neteler wrote:

Dear all,

I would like to suggest again the running quality control system. Developers
can receive personalized emails in quasi real time which indicate potential
problems or a big "OK". In my/our/ opinion an immediate notification is
good since memories are still fresh. Like this the ongoing introduction of
cloned code could be minimized. Also other features are available as
indicated below.
   
This is a great tool, thank you.
I found a baby_monster that i have programmed .... maybe i can refract it ... . :slight_smile:

And i would like to remind that there is also a small test suite for grass availible.

Please a few volunteers may subscribe to make it a useful system.
It only makes sense if GRASS developers use it and suggestion improvements.
   
How can i subscribe? Did i miss some informations?

I am sure that quality control will save us time later...
   
Indeed! The quality control system and the test suite should be used.

Best regards
soeren

Markus

Markus Neteler wrote:

Dear GRASS developers and interested users,

as you know, GRASS is a huge system with thousands of files and
hundreds of thousands of lines of code. You are contributing to the
development - but do you sometimes wonder how quality is ensured in
such a big project? Sure, there is the commit mailing list which shows
changes in real time. But probably more could be done.

Today we want to propose a new system to you:
At Ecole Polytechnique de Montreal a new software quality control
system has been developed which checks the CVS changes as distributed
by the GRASS commit mailing list for potential problems. We would like
to invite you to try this new GRASS source code quality monitoring
service. We, that are Giulio Antoniol, Ettore Merlo, Salah Bouktif and
Markus Neteler. Based on Free Software tools and the software
engineering knowledge of the people of Ecole Polytechnique de
Montreal, this quality assessment system was realized as combined
email notifier and Web dashboard.

So, what do you and the GRASS project gain from that? Three principal
services are provided to you and the community:

- The first service analyzes and controls the complexity increase and
potential quality declining;

- The second supports distributed developers to perform safe evolution
by sending them a feedback report after each contribution in order to
avoid abnormal actions;

- The third allows developers to learn about the big picture of the
whole software by providing them with a dashboard of the project
evolution.

What could go wrong? The *first service* checks if new functions or
modifications are getting too complex which renders them
unmaintainable. The service also checks if a modified function,
probably written by someone else, is already too complex and should
better broken into pieces. Finally it checks if functions are cloned,
i.e. that several code pieces are identical or nearly identical. In
this case such clones should be removed (e.g. by moving the function
to the related GRASS library).

As *second service* this report is sent to the developer shortly after
each CVS modification. Memory is still fresh and the developer is
invited to act upon a newly introduced problem or invited to attack an
old outstanding problem with legacy code in GRASS.

The *third service* is a Web site which provides easy code navigation
to better study clones or complex functions (we call them "baby
monsters" or "monsters" and put them into the "monster garage" there
for inspection). Also detailed graphs will be generated to better
illustrate the problems identified.

It is our goal to make the services a help and understandable even to
the "hobby" programmer. And of course, to help to improve the code
quality. Better code is easier to maintain - so please give the system
a try.

To receive the code monitoring messages of your contributions, please
just send a mail to Markus that you are interested. To take a look at
the dashboard, check here:

http://web.soccerlab.polymtl.ca/grass-evolution/grass-browsers/grass-index-en.html

To log into the GRASS restricted, enter:
User: grass (pw: "grass6")

Our plan in the long term is to develop personalized services and
different views for different developers. This is a beta test and we
need your help to identify weaknesses and possible enhancements.

For example, as suggested by Ettore, we could easily implement a
service to check files/functions for quality indexes before performing
the actual CVS commit, kind of preventive verification.

We are happy to give more feedback! Let us know or simply try the
new system out.

Best regards

Markus

in collaboration with and grateful to:
Giulio Antoniol <antoniol AT ieee.org>
Salah Bouktif <salah.bouktif AT polymtl.ca>
Ettore Merlo <ettore.merlo AT polymtl.ca>

_______________________________________________
grass5 mailing list
grass5@grass.itc.it
http://grass.itc.it/mailman/listinfo/grass5

_______________________________________________
grass5 mailing list
grass5@grass.itc.it
http://grass.itc.it/mailman/listinfo/grass5

Hi,

forse those being interested to see the quality accessment
tool working [1], we have established a new read-only mailing
list where the QA system posts the results in near real time:
http://grass.itc.it/mailman/listinfo/grass-qa

List archive (goes back to 1st April 2006):
http://grass.itc.it/pipermail/grass-qa/

Email frequency is as often as changes are committed to
CVS (see [2] for commit email notification). I think that
the GRASS project is getting more and more advanced concerning
software quality measures. Congrats!

Best

Markus

[1] http://grass.itc.it/pipermail/grass5/2006-March/022098.html
[2] http://grass.itc.it/mailman/listinfo/grass-commit