DSM

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

DSM

abergel
Hi!

Roassal has a new builder called RTDSM.
It is currently very basic. Here is an example:

dsm := RTDSM new.
dsm objects: RTShape withAllSubclasses.
dsm dependency: #dependentClasses.

produces the following:

Are there some algorithms to find an optimal ordering of the elements to display?

Here is a slightly bigger matrix
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: DSM

Tudor Girba-2
Hi,

This is great! I particularly liked the hovering.

There are a couple of things that would be great to be extended:

- The cells with no dependency are not particularly relevant, and they should appear transparent. Hovering can still remain.

- The order has to be improved. To this end, take a look at the DSM work of Jannik. At the end, he extracted the algorithm in separate packages:
Gofer new 
smalltalkhubUser: 'Moose' project: 'DSM';
package: 'Moose-Algos-Dsm'
package: 'Moose-Dsm-Core';
package: 'Moose-Dsm-Example';
package: 'Moose-Dsm-Famix';
load
The code does not seem to work anymore in Moose 6.0, but it would be great to salvage at least the basics and add that into Moose-Algos (which ideally would become a prerequisite for Roassal :)).

- We also need the cyclic information. Actually, adding cycles would be probably enough as an ordering. In Moose-Algos, we have the MalTarjan algorithm which is also the one used as a basis by the old DSM implementation of Jannik. You can see an example of it in:
   MooseGroup>>cyclesToAll: aBlockOrUnarySymbol
This one allows you to have something like: 
   aGroupOfClasses cyclesToAll: #clientClasses
and you will get Collections of cyclic groups.

- Once we have cyclic information, this has to appear on the diagram, and ideally it should be clickable to be able to dive into a cycle.


What do you think?

Cheers,
Doru

On Wed, Aug 12, 2015 at 10:19 PM, Alexandre Bergel <[hidden email]> wrote:
Hi!

Roassal has a new builder called RTDSM.
It is currently very basic. Here is an example:

dsm := RTDSM new.
dsm objects: RTShape withAllSubclasses.
dsm dependency: #dependentClasses.

produces the following:

Are there some algorithms to find an optimal ordering of the elements to display?

Here is a slightly bigger matrix
Cheers,
Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




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




--

"Every thing has its own flow"

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

Re: DSM

abergel
There are a couple of things that would be great to be extended:

- The cells with no dependency are not particularly relevant, and they should appear transparent. Hovering can still remain.

I made them lighter.
Before:

 Now:


Indeed, looks better.

I have tried with no color:

But I kind of miss the directing lines.


- The order has to be improved. To this end, take a look at the DSM work of Jannik. At the end, he extracted the algorithm in separate packages:
Gofer new 
smalltalkhubUser: 'Moose' project: 'DSM';
package: 'Moose-Algos-Dsm'
package: 'Moose-Dsm-Core';
package: 'Moose-Dsm-Example';
package: 'Moose-Dsm-Famix';
load
The code does not seem to work anymore in Moose 6.0, but it would be great to salvage at least the basics and add that into Moose-Algos (which ideally would become a prerequisite for Roassal :)).

I just had a look at it. Not easy to understand. 

- We also need the cyclic information. Actually, adding cycles would be probably enough as an ordering. In Moose-Algos, we have the MalTarjan algorithm which is also the one used as a basis by the old DSM implementation of Jannik. You can see an example of it in:
   MooseGroup>>cyclesToAll: aBlockOrUnarySymbol
This one allows you to have something like: 
   aGroupOfClasses cyclesToAll: #clientClasses
and you will get Collections of cyclic groups.

- Once we have cyclic information, this has to appear on the diagram, and ideally it should be clickable to be able to dive into a cycle.

What do you think?

Look exciting! However it appears to be more than a few minutes of coding. Next semester I will surely have some new students working with me. This will be a task.

Cheers,
Alexandre



Cheers,
Doru

On Wed, Aug 12, 2015 at 10:19 PM, Alexandre Bergel <[hidden email]> wrote:
Hi!

Roassal has a new builder called RTDSM.
It is currently very basic. Here is an example:

dsm := RTDSM new.
dsm objects: RTShape withAllSubclasses.
dsm dependency: #dependentClasses.

produces the following:
<Screen Shot 2015-08-12 at 5.05.44 PM.png>

Are there some algorithms to find an optimal ordering of the elements to display?

Here is a slightly bigger matrix
<Screen Shot 2015-08-12 at 5.14.13 PM.png>
Cheers,
Alexandre
-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.




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




--

"Every thing has its own flow"
_______________________________________________
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