bunch cohesion and coupling

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

bunch cohesion and coupling

Tudor Girba
Hi Andre,

I see that you worked again on the Bunch Cohesion and Coupling. Could you give us a pointer on what these metrics mean in practice?

Cheers,
Doru

 

--
www.tudorgirba.com

"Presenting is storytelling."


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bunch cohesion and coupling

Andre Hora
Hi Doru,

Pointers:

Using Automatic Clustering to Produce High-Level System Organizations of Source Code (http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=693283)

Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures (http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=792498)

Legacy Software Restructuring: Analyzing a Concrete Case. N. Anquetil and J. Laval. CSMR2011

Cheers,

On Wed, Jan 19, 2011 at 9:28 PM, Tudor Girba <[hidden email]> wrote:
Hi Andre,

I see that you worked again on the Bunch Cohesion and Coupling. Could you give us a pointer on what these metrics mean in practice?

Cheers,
Doru



--
www.tudorgirba.com

"Presenting is storytelling."


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev



--
Andre Hora


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bunch cohesion and coupling

Alexandre Bergel
It would be fun to see if these algo for automatic partitioning gives something different than we have for Moose and Mondrian.

Alexandre


On 19 Jan 2011, at 18:08, Andre Hora wrote:

> Hi Doru,
>
> Pointers:
>
> Using Automatic Clustering to Produce High-Level System Organizations of Source Code (http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=693283)
>
> Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures (http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=792498)
>
> Legacy Software Restructuring: Analyzing a Concrete Case. N. Anquetil and J. Laval. CSMR2011
>
> Cheers,
>
> On Wed, Jan 19, 2011 at 9:28 PM, Tudor Girba <[hidden email]> wrote:
> Hi Andre,
>
> I see that you worked again on the Bunch Cohesion and Coupling. Could you give us a pointer on what these metrics mean in practice?
>
> Cheers,
> Doru
>
>
>
> --
> www.tudorgirba.com
>
> "Presenting is storytelling."
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
>
>
> --
> Andre Hora
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bunch cohesion and coupling

Tudor Girba
What do you mean? What do we have in Moose and Mondrian for partitioning?

Btw Andre, do you use these metrics for any clustering?

Cheers,
Doru


On 19 Jan 2011, at 22:46, Alexandre Bergel wrote:

> It would be fun to see if these algo for automatic partitioning gives something different than we have for Moose and Mondrian.
>
> Alexandre
>
>
> On 19 Jan 2011, at 18:08, Andre Hora wrote:
>
>> Hi Doru,
>>
>> Pointers:
>>
>> Using Automatic Clustering to Produce High-Level System Organizations of Source Code (http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=693283)
>>
>> Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures (http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=792498)
>>
>> Legacy Software Restructuring: Analyzing a Concrete Case. N. Anquetil and J. Laval. CSMR2011
>>
>> Cheers,
>>
>> On Wed, Jan 19, 2011 at 9:28 PM, Tudor Girba <[hidden email]> wrote:
>> Hi Andre,
>>
>> I see that you worked again on the Bunch Cohesion and Coupling. Could you give us a pointer on what these metrics mean in practice?
>>
>> Cheers,
>> Doru
>>
>>
>>
>> --
>> www.tudorgirba.com
>>
>> "Presenting is storytelling."
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>>
>>
>> --
>> Andre Hora
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Problem solving efficiency grows with the abstractness level of problem understanding."




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bunch cohesion and coupling

Alexandre Bergel

>>> Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures (http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=792498)

They provide ways to assess the quality of a modularization (Figure 1). There are some automatic partition of dependent C files.

I would be curious to see if what their clustering algo says about the modularization of our tools. Will they provide a better distribution of classes among the packages (which I doubt).

Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bunch cohesion and coupling

Andre Hora
In reply to this post by Tudor Girba
No Doru. The idea, for now, is only provide these metrics to the user, every time that exits a group of class (i.e., FAMIXPackage, FAMIXNamespace and FAMIXClassGroup).

On Wed, Jan 19, 2011 at 10:57 PM, Tudor Girba <[hidden email]> wrote:
What do you mean? What do we have in Moose and Mondrian for partitioning?

Btw Andre, do you use these metrics for any clustering?

Cheers,
Doru


On 19 Jan 2011, at 22:46, Alexandre Bergel wrote:

> It would be fun to see if these algo for automatic partitioning gives something different than we have for Moose and Mondrian.
>
> Alexandre
>
>
> On 19 Jan 2011, at 18:08, Andre Hora wrote:
>
>> Hi Doru,
>>
>> Pointers:
>>
>> Using Automatic Clustering to Produce High-Level System Organizations of Source Code (http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=693283)
>>
>> Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures (http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=792498)
>>
>> Legacy Software Restructuring: Analyzing a Concrete Case. N. Anquetil and J. Laval. CSMR2011
>>
>> Cheers,
>>
>> On Wed, Jan 19, 2011 at 9:28 PM, Tudor Girba <[hidden email]> wrote:
>> Hi Andre,
>>
>> I see that you worked again on the Bunch Cohesion and Coupling. Could you give us a pointer on what these metrics mean in practice?
>>
>> Cheers,
>> Doru
>>
>>
>>
>> --
>> www.tudorgirba.com
>>
>> "Presenting is storytelling."
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>>
>>
>> --
>> Andre Hora
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
www.tudorgirba.com

"Problem solving efficiency grows with the abstractness level of problem understanding."




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev



--
Andre Hora


_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bunch cohesion and coupling

simondenier
In reply to this post by Alexandre Bergel

On 19 janv. 2011, at 23:13, Alexandre Bergel wrote:

>
>>>> Bunch: A Clustering Tool for the Recovery and Maintenance of Software System Structures (http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=792498)
>
> They provide ways to assess the quality of a modularization (Figure 1). There are some automatic partition of dependent C files.
>
> I would be curious to see if what their clustering algo says about the modularization of our tools. Will they provide a better distribution of classes among the packages (which I doubt).


They certainly would be better according to the metrics they use for clustering :)

I guess that Nicolas has more than one idea about what to do with this work...

--
Simon Denier




_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bunch cohesion and coupling

Nicolas Anquetil
Hi all,

glad you are interested in this stuff.

So first thing: the metrics implemented by Andre are used to do automatic re-structuring of classes into packages as Alex said.
But they are only the metrics, you need an algorithm to do the actual regrouping of class in packages. The algorithms uses the metrics to know what classes are "closer" one to the other.
Without this algorithm (not very difficult to implement) there is always the possibility to use the metrics as quality metrics for existing packages.

However I would be cautious about that.
Actually, I started to implement them (and Andre took the flag recently) to experiment more formaly their real interest.
My impression is, actually, that they are not that much interesting for this purpose, that people do not really group classes based on cohesion/couopling considerations, but rather or higher level consideration (like all UI goes there, and all security code goes there, ...)

If you are still interested, I can provide more details :-)

BTW, jannik did a related work with DSM, except he was looking at cycles, i.e. he used another metric.

nicolas

----- Mail original -----

> De: "Simon Denier" <[hidden email]>
> À: "Moose-related development" <[hidden email]>
> Envoyé: Jeudi 20 Janvier 2011 10:03:45
> Objet: [Moose-dev] Re: bunch cohesion and coupling
> On 19 janv. 2011, at 23:13, Alexandre Bergel wrote:
>
> >
> >>>> Bunch: A Clustering Tool for the Recovery and Maintenance of
> >>>> Software System Structures
> >>>> (http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=792498)
> >
> > They provide ways to assess the quality of a modularization (Figure
> > 1). There are some automatic partition of dependent C files.
> >
> > I would be curious to see if what their clustering algo says about
> > the modularization of our tools. Will they provide a better
> > distribution of classes among the packages (which I doubt).
>
>
> They certainly would be better according to the metrics they use for
> clustering :)
>
> I guess that Nicolas has more than one idea about what to do with this
> work...
>
> --
> Simon Denier
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bunch cohesion and coupling

Alexandre Bergel
> So first thing: the metrics implemented by Andre are used to do automatic re-structuring of classes into packages as Alex said.
> But they are only the metrics, you need an algorithm to do the actual regrouping of class in packages. The algorithms uses the metrics to know what classes are "closer" one to the other.
> Without this algorithm (not very difficult to implement) there is always the possibility to use the metrics as quality metrics for existing packages.
>
> However I would be cautious about that.
> Actually, I started to implement them (and Andre took the flag recently) to experiment more formaly their real interest.

Cool! I would be interested to see this.

> My impression is, actually, that they are not that much interesting for this purpose, that people do not really group classes based on cohesion/couopling considerations, but rather or higher level consideration (like all UI goes there, and all security code goes there, ...)

This is what happen most of the time. You may see a strong coupling between Seaside and Pier, but they live in different packages. And you have JComponent and JButton both in Swing, while JComponent does not reference JButton that much.

> BTW, jannik did a related work with DSM, except he was looking at cycles, i.e. he used another metric.

Which metric?

Cheers
Alexandre

>
> ----- Mail original -----
>> De: "Simon Denier" <[hidden email]>
>> À: "Moose-related development" <[hidden email]>
>> Envoyé: Jeudi 20 Janvier 2011 10:03:45
>> Objet: [Moose-dev] Re: bunch cohesion and coupling
>> On 19 janv. 2011, at 23:13, Alexandre Bergel wrote:
>>
>>>
>>>>>> Bunch: A Clustering Tool for the Recovery and Maintenance of
>>>>>> Software System Structures
>>>>>> (http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=792498)
>>>
>>> They provide ways to assess the quality of a modularization (Figure
>>> 1). There are some automatic partition of dependent C files.
>>>
>>> I would be curious to see if what their clustering algo says about
>>> the modularization of our tools. Will they provide a better
>>> distribution of classes among the packages (which I doubt).
>>
>>
>> They certainly would be better according to the metrics they use for
>> clustering :)
>>
>> I guess that Nicolas has more than one idea about what to do with this
>> work...
>>
>> --
>> Simon Denier
>>
>>
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> [hidden email]
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
> _______________________________________________
> Moose-dev mailing list
> [hidden email]
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bunch cohesion and coupling

Nicolas Anquetil

> > So first thing: the metrics implemented by Andre are used to do
> > automatic re-structuring of classes into packages as Alex said.
> > But they are only the metrics, you need an algorithm to do the
> > actual regrouping of class in packages. The algorithms uses the
> > metrics to know what classes are "closer" one to the other.
> > Without this algorithm (not very difficult to implement) there is
> > always the possibility to use the metrics as quality metrics for
> > existing packages.
> >
> > However I would be cautious about that.
> > Actually, I started to implement them (and Andre took the flag
> > recently) to experiment more formaly their real interest.
>
> Cool! I would be interested to see this.

Sure, whatever you want, just ask :-)
We have a paper as CSMR 2011, if this is what you mean ?

> > My impression is, actually, that they are not that much interesting
> > for this purpose, that people do not really group classes based on
> > cohesion/couopling considerations, but rather or higher level
> > consideration (like all UI goes there, and all security code goes
> > there, ...)
 
> This is what happen most of the time. You may see a strong coupling
> between Seaside and Pier, but they live in different packages. And you
> have JComponent and JButton both in Swing, while JComponent does not
> reference JButton that much.
 
> > BTW, jannik did a related work with DSM, except he was looking at
> > cycles, i.e. he used another metric.
 
> Which metric?

his metric is: "how much dependency cycles are there between packages?"
he tries to lower this metrics just as one can try to lower coupling (bunch coupling or any other).

We don't pretend Bunch cohesion/cooupling metrics are better than other, it is just that Bunch is a well known tool.
There are many other metrics and I personnaly believe that they are all more or less equivalent (in quality, not in results).

I think we should look for some other metrics, more conceptual probably, ... ?

nicolas
_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Reply | Threaded
Open this post in threaded view
|

Re: bunch cohesion and coupling

Alexandre Bergel
>> Cool! I would be interested to see this.
>
> Sure, whatever you want, just ask :-)
> We have a paper as CSMR 2011, if this is what you mean ?


Ah yes. Please, send it to me.
I was not able to find it online.

Alexandre

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.





_______________________________________________
Moose-dev mailing list
[hidden email]
https://www.iam.unibe.ch/mailman/listinfo/moose-dev