Dear Moose und Famix Community,
the founding assembly of the Moose Association will take place at
ESUG on August 30, 2007 in Lugano, Switzerland. The assembly will
start after the last presentation of the ESUG conference, that is
after 18:00. The conference rooms are located in the top floor of the
red building of the Università della Svizzera italiana. Please refer
to the link below for directions
http://map.search.ch/lugano/via-giuseppe-buffi-13
Below the Trakdandenliste (agenda) and a link to the bylaws
- Election of founding president and keeper of minutes
- Put on record the names of all participants
- Discussion about purpose and focus of the association
- Discussion and approval of the bylaws
- Discussion about and election of advisory board
- Election of the executive board
http://moose.unibe.ch/association/bylaws (in German)
The founding assembly will be held in English.
For more information please refer to http://moose.unibe.ch/association
sincerely,
in the name of the Moose team,
Adrian Kuhn
--
Adrian Kuhn MSc
Software Composition Group
http://www.iam.unibe.ch/~akuhnhttp://www.iam.unibe.ch/~akuhn/news.xml
Dear Moosers, the founding assembly of Moose Verein will take place
this Thursday evening at ESUG in Lugano.
More informations will follow, alas there is no wireless in the
conference room.
cheers,
AA
Dear Moosers,
as you might remember, the founding of Moose Verein was postponed at
Famoosr due to missing bylaws. The purpose of the association is to
support Moose and Famix, eg by organizing a Summer of Code.
We plan to found the Moose Verein at ESUG in Lugano, see doodle
http://www.doodle.ch/q88eyauxxriwe5ue
I have setup a wiki page with draft bylaws, taken from the nice
booklet "Wie gründe und leite ich einen Verein?" by Urs Scherrer. See
link below
http://smallwiki.unibe.ch/moose/association/
The bylaws are in German. It would be nice if someone could translate
them to English. The English bylaws will not be legally binding, they
are only meant as support for foreign-speaking members. The google
translation looks 90% correct, hence the translation job would mainly
be to fix mistakes like "photograph request" for "Aufnahmegesuch".
http://translate.google.com/translate?u=http%3A%2F%
2Fsmallwiki.unibe.ch%2Fmoose%2Fassociation%2F&langpair=de%7Cen&hl=en
@Orla, you said that you might volunteer for translation, is that
still okay with you?
Please stay tuned for more news, and forward this mail to anyone in
your network that might have an interest in the Moose association.
cheers,
AA
--
Adrian Kuhn MSc
Software Composition Group
http://www.iam.unibe.ch/~akuhnhttp://www.iam.unibe.ch/~akuhn/news.xml
Hi Sara,
I saw you added the Ecore code into Meta. I did not have the time to
take a closer look, but I did noticed you have a lot of tests for
your code, and they are all green. That is nice :).
As you probably saw in the previous mail, adding EcoreImportExport to
Meta generated some loading problems when loading 'Moose Config',
because you have two classes that are in SCG.Moose namespace.
However, Meta does not depend on Moose, but Moose depends on Meta.
So, no class in the Meta bundle should be in the Moose namespace.
I see several solutions to fix the problem:
- move the classes to the Meta namespace for now, although they do
not belong there
- move the classes to the MooseDevelopment bundle
- move the classes in a separate bundle that has MooseDevelopment
bundle as prerequisite
Also, please add comments to the versions you are adding, because it
helps us track what is happening.
In any case, I am looking forward to taking a closer look at the
code :).
Cheers,
Doru
--
www.iam.unibe.ch/~girbawww.iam.unibe.ch/~girba/blog/
"Problem solving should be concentrated on describing
the problem in a way that is relevant for the solution."
Hey Sara,
the issue is fixed, now you can say
SCG.Moose asMetaDescription classes
and get all meta-descriptions of all classes without the annoying
initialize loop.
PS: next week I am in Berlin, I might not have time to fix bugs, but
I am usually available via mail.
cheers,
AA
On 27 Jul 2007, at 15:32 , sellossa(a)ensieta.fr wrote:
> hello,
>
> why, when I do: SCG.Moose asMetaDescription, I get sthing different
> from when I do: SCG.Moose allClasses do: #asMetaDescription.
> ^SCG.Moose asMetaDescription
>
> Stef find it terrible!
>
> sara
Hi Sara,
for some unfortunate reason, the mapping between Smalltalk namespaces
and model packages is not 1:1. One of the exceptions is that all
SCG.Moose.FAMIX* classes are modeled using FAMIX.* meta-descriptions.
If this is a real problem for your application, I can fix that tomorrow.
cheers,
AA
On 14 Aug 2007, at 21:04 , sellossa(a)ensieta.fr wrote:
> Hi Adrian!
>
> I get something weird when I use it for SCG.Moose.
> When I do:
> |package|
> SCG.Moose asMetaDescription classes.
> package:=SCG.Moose asMetaDescription inspect.
>
> package doesn't contain the entites FAMIXClass, FAMIXAttribute and
> so on...
>
> However, FAMIX entites are defined in the namespace SCG.Moose,
> isn't it?
>
> Thanks you for your help
>
> Sara
Hi,
I have a Smalltalk code with meta description (metamodel* methods). My
goal is to get the meta model associated to the code.
the problem: In my code, for each Class, only the attributes and the
operations are meta-described (thanks to the class methods :
metamodelAttribute1, metamodelOperation1 and so on....). But I have not
found the way to obtain the EMOF Class that describes my class.
Is it possible to get a repository that contains all Emof entities that
correspond to the elements of my smalltalk code?
Today, I tried to do this with FAMIXModel. e.g, I called the class
methods 'metamodelAttribute' 'in FAMIXClass and I got an EMOF entity whose
'owner' was nil!
Moreover, in VisualLauncher class, you define the method
mooseStrictFamixMetaModel. In this method, you do:
'package := (Meta.System reference metamodel elementNamed: 'FAMIX')' but
it returns nil
thank you for your help!
sara
Hi
how do I know which are the metamodels that are loaded in visualworks?
Is there a repository for metamodels? I thought marc stetller
implemented one
but it was never up to the point to be integrated in Moose.
Stef
Hi,
First of all, thanks for reporting this. I have fixed the problem in
MooseDevelopment 3.2.42.
Second of all, I would like to ask you to use also the Bug Tracking
System for such reports:
http://macamis.unibe.ch/trackers/moose/
It makes it much easier for us to track what needs to be done.
Even better is to also provide a test that fails :).
Cheers,
Doru
From: tverwaes(a)infogroep.be
Subject: [Moose-dev] Re: MooseModel and namespaces
Date: July 18, 2007 10:19:36 PM GMT+02:00
To: moose-dev(a)iam.unibe.ch
I have exactly the same effect with any namespace I import (for
namespaces imported as side-info as well as namespace which I am
importing). It would be nicer if they would actually be nested since
one of the clustering algorithms uses the recursiveClasses (which
currently gives back exactly the same as classes), and which would
automatically be nested in the cluster browser...
Reproducing just comes down to loading whatever namespace which has
subnamespaces (SCG?) and inspecting it :)
Toon
On (18/07/07 09:15), Adrian Kuhn wrote:
> From: Adrian Kuhn <akuhn(a)gmx.ch>
> To: sellossa(a)ensieta.fr
> Cc: Moose-dev Bugs <moose-dev(a)iam.unibe.ch>
> Subject: [Moose-dev] Re: MooseModel and namespaces
> Date: Wed, 18 Jul 2007 09:15:07 +0200
>
> Hey Sara,
> please provide a sample mse file, such that we can try to reproduce
> the bug.
>
> AA
>
> On 17 Jul 2007, at 22:51 , sellossa(a)ensieta.fr wrote:
>
>
>> Hi!
>>
>> I have a question concerning the structure of a MooseModel.
>>
>> Imagine that we have a project with three Namespaces: Namespace A,
>> NamespaceB, NamespaceC. In my project, NamespaceA contains
>> NamespaceB and
>> NamespaceC.
>> Then, I import the project in Moose and I get a MooseModel with my
>> three
>> namespaces.
>>
>> When I inspect NamespaceB and NamespaceC, I can see (thanks to the
>> attribute 'belongsTo') that they both belong to NamespaceA
>> Nevertheless, when I inspect NamespaceA, I realise that attribute
>> 'namespaces' is an empty OrderedCollection.
>>
>> Is it normal? Because I think that 'namespaces ' should contain
>> NamespaceB
>> and NamespaceC, isn't it?
>>
>> thanks
>>
>> Sara
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> Moose-dev(a)iam.unibe.ch
>> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>
> _______________________________________________
> Moose-dev mailing list
> Moose-dev(a)iam.unibe.ch
> https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
www.iam.unibe.ch/~girbawww.iam.unibe.ch/~girba/blog/
"The coherence of a trip is given by the clearness of the goal."
Hi,
I noticed this morning that the test testSize of the EssentialMOFTest test
case is broken :
I looked for the reason of this : there were two problems
- My friend sara accidentaly declared one of her test case in the EMOF
nameSpace
-the method EMOF.Element>>createMetaClass now includes : "class
addComment: self commentMetaClass" witch add a EMOF.Comment 'The root of
the EMOF implementation' to all the element of the EMOF metamodel because
of the inheritance ...
Am I the only one to face this small problem ?
Do you want I to fix it ?
On Jul 16, 2007, at 05:03 AM, Toon Verwaest wrote:
>>> It is true that we don't have information, but in the case that the
>>> system would try to put such classes together with classes in our
>>> system, this should probably fail since we don't want to find
>>> software
>>> components in libraries. This is where the "Fixating" tab comes in
>>> handy, were we can exclude results library classes. If we do this,
>>> even while they were clustered together, we exclude those results.
>>
>> That was what I would tell you indirectly: It is the best simple
>> solution...
>> I understand perfectly the following of your mail, and I know that a
>> clustering algorithm is not a kind of magic which could give us an
>> ideal solution without any user's intervention!!! The objective was
>> simply pointing out this point which does not occurs only in the case
>> of -System under analysis and Platform library-. Ok I will not discus
>> now the problem of inter-systems collaboration and system's
>> plugins...
>
> I just extended the program as such, as defined in the semi-automatic
> method of Koschke, that certain elements and relations can be ignored
> from results of plugins. The change is that, now after ignoring
> classes (or relationships, which already works but is not yet
> integrated in UI), (parts of) the plugins get recalculated ignoring
> the removed relations or full classes and all relations from/to these
> classes. This instead of just making a subset of the cluster without
> the ignored element. For example when applying SCC to moosified moose,
> if we would originally remove MooseModel and FAMIXClass, which are
> part of a SCC cluster of 125 classes, the new cluster would have been
> 123 classes (125 - 2...) while in the new version, it rechecks the
> graph, and it will find that only about 5 small subgraphs of the
> original
> graph is are still strongly connected.
>
excellent :-)
> The downside... removing links, fixating clusters or removing classes
> forces you to recalculate the results of the plugins (at least
> partly).
nothing is gratuitous (gratos) :-)
>
> Toon
P.S.: writing/working at 05:00 AM is a very good sign :-) , and that
leads me to tell you best wishes and very nice day :)
Hani
thank you very much for your detailed answer.
On Jul 13, 2007, at 19:52 PM, Toon Verwaest wrote:
> On (13/07/07 18:23), Hani ABDEEN wrote:
>> From: Hani ABDEEN <hani.abdeen(a)univ-savoie.fr>
>> To: Toon Verwaest <tverwaes(a)infogroep.be>
>> Subject: Re: [Moose-dev] Class clustering (Bug:Exceptions)
>> Date: Fri, 13 Jul 2007 18:23:04 +0200
>>
>> Hi,
>> thank you,
>> yes It works correctly now :-) and I try to understand and to
>> discover what we can do with this plugin.
>> Just somethings that I would point out:
>> - I have seen that when the clustering algorithm take place, all the
>> classes, the packages, and the namespaces in the model under-
>> consideration will be considered in the same way by the algorithm.
>> What about the classes and the packages which do not really belong to
>> the system that we would analyze it (stubs entities)? Such entities
>> are used (accessed) by the considered system, and we have this
>> information in moose model, but we have not any information about
>> what these entities access?. may be they access our system, and may
>> be not!!
>
> It is true that we don't have information, but in the case that the
> system would try to put such classes together with classes in our
> system, this should probably fail since we don't want to find software
> components in libraries. This is where the "Fixating" tab comes in
> handy, were we can exclude results library classes. If we do this,
> even while they were clustered together, we exclude those results.
That was what I would tell you indirectly: It is the best simple
solution...
I understand perfectly the following of your mail, and I know that a
clustering algorithm is not a kind of magic which could give us an
ideal solution without any user's intervention!!! The objective was
simply pointing out this point which does not occurs only in the case
of -System under analysis and Platform library-. Ok I will not discus
now the problem of inter-systems collaboration and system's plugins...
>
> Important is to think that most of the algorithms, just present the
> basic results without automatically combining them, to the user,
> who can then manually validate clustering information before merging
> it. The reason why this is done like this, is because a lot of the
> basic algorithms (for example the "By Reference") will definitaly
> cause false positives because of the way the algorithm is adapted.
>
> Next to that, the ones which do already combine results, like the
> hierarchical clustering based on delta-ic and interface, can
> automatically be filtered for "false positives", be automatically
> removing nodes in the hierarchies which only add information about
> "ignored classes", which we can ignore in the "fixating tab".
>
> But well, it might be useful to already provide a checkbox which
> automatically exludes these classes, so the user doesn't have to find
> out which ones are part of the subject system and which ones aren't..
>
>>
>> - this is a very small thing that may be it does not cause any
>> problem now, but it could do that latter: According to your
>> implementation of FAMIXClass>>accessedByClasses and
>> FAMIXClass>>allClassAccesses, a class could be accessed be it self.
>>
>
> I guess you are right, that in some situations this could lead to a
> problem. I will move the addition of the class itself to the
> algorithms that use it.
>
> One of the basic things you can do with the program now, is using the
> different visualizations to analyse user-defined clusters. In other
> words how packages are organized in the system. Like this you can see
> for example, that the package "Kernel-Objects" contains "green
> classes" which are "ghostclasses" or classes which probably should be
> in the cluster, but are not. Of course since it is a core package and
> since the class causing the effect is the Object-class it might
> not be that relevant, but it shows how easy you can find things like
> this.
again thank you very much for this details, and before all, for this
useful plugin.
Note that if I interest on this plugin is because that the next step
of my work will be around clustering algorithms and software graphs.
So surely such plugin to Moose will be very useful for me.
bests,
Hani
>
> regards,
> Toon
Hi,
for one of the visualizations of clusters (DirectedHierarchical), it
would be nice to show classes in a class hierarchy, and annotate that
hierarchy with "accesses" between classes. However I don't seem to be
able to just show the hierarchy (treeLayout) and then add the
annotations (also edges), without the annotations being used to
calculate the tree... Is there a way to tell the ViewRenderer not to
use some "localEdges:" for the current layout?
thanks,
Toon
Hi,
I have published my work up until now on classcluster detection in the
scg store under the highly original bundle-name "Clustering". Like
this you can play around a bit to see what it can do etc.
Some notes:
- In order to find clusters, the clustering plugin needs to be
installed, by running
"SCG.Moose.AbstractEntity initializeAllMofDescriptions".
I am sure there is a clean way to do this automatically when loading
packages, but since I have no clue how to install that... this is
how it works for now :)
Next if you open the moose browser, rightclick on a model, "Find
Clusters in Model".
- To get better results, make sure you merge instance and class part
of classes when generating models
- I have included Adrians dendrogram clustering, but have written a
wrapper around it to be able to browse the hierarchy as such that
"double information" is avoided. For example if a b and c are all at
distance 1 of each other, their combination a,b,c has threshold 1
too, so it is not useful to see a,b,c with left a,b with distance 1
and right c, so this info just gets pruned away.
Currently the Interface and DeltaIC plugins are hierarchical and the
reasons prefixed by * are hierarchical reasons (are possibly
browsable).
Adrian: currently I have to do a bit of hacking to get similar
results, but it might be cleaner if the algorithms would support
items laying at Infinity+ from each other (if clustered their
threshold is also Infinity+), so those results can be filtered
easier...
- I know parts of the code (especially the UI and the sorting of
reasons) should be cleaned up a bit... but I don't have time for
that for the moment, and like this at least you can already see some
of the possibilities that it creates
Best regards,
Toon
hi!
I have a question concerning the Moose browser.
As you know, I managed to import models conformed to a personnal metamodel
in Moose ( my personnal metamodel is not FAMIX). In myn metamodel, I
decided to define my own entities Class, Attibute and Method.
When I imported my models (that contains my personnal classes, my
personnal attibutes and personnal methods) in Moose, something wrong
annoyed me:
when I selected "all classes" in the browser, Moose gave me the
possibility to generate Mondrian views as BluePrintComplexity,
MethodInvocations and so on... Of course, since my entities are not
conformed to FAMIX, the visualisation cannot be applied to my model (they
lead into a bug except from UML diagrams that work very well :) )
So, here is my question:
I don't understand why Moose proposes Mondrian visualisations (such as
BlueprintComplexity, Duplcation complexity, Method invocation ans so on)
to my personnal classes knowing that they are not conformed to the Famix
meta model. Where can I fix it? I had a look on MooseUI package but I
didn't find what I wanted :(
I hope that my question was clear:)
thank you for your help
sara
Gentlefolks,
I'm looking for applications which would benefit from maze resolution. The
picture attached can give you an impression. It has 4 collections of
objects and 4 collections of relations (all can be manipulated).
The large center area holds multiple documents (code, text, multi media).
Documents, objects and relations can be moved out of the way if desired.
Resting the mouse over something tells you what it is.
When selecting a relation it highlights the objects which it can see.
Maze resolution can guarantee that no other non-empty relation exists from
top left to bottom right and also not from top right to bottom left. So
there can be nothing in the picture (nothing in the image!) which is
hidden from you. Objects can be relocated and can actively help you to
find another suitable location.
I post in the hope to receiving application ideas from other people, i.e.
what to put into the 8 selection areas. If the picture can be populated
with things that make sense then a prototype would make sense (the example
below could be a start).
Thank you in advance for your feedback, all appreciated.
Cheers
Klaus
P.S. an example: top-left classes, top-left-right #category, top-right
system categories, bottom-left methods, top-left-bottom {#allSelectors.
#class->#allSelectors}, bottom-right methods, bottom-left-right #messages.
Then bottom-right shows the methods which are sent but not implemented
(foreigners) by the top-left classes themselves. And top-right can
optionally show the to bottom-right corresponding foreign system
categories with bottom-right-top #methodClass->#category.
P.P.S. thank you Doru for introducing me to your thesis and to
Moose+Mondrian.