Hi,
Why the instance variable #belongsTo is initialized in
FAMIXAbstractLocalEntity>>initialize to a symbol value (belongsTo :=
#?)?
what that means?
why it is not initialized to a nil exactly like in any other subclass
of FAMIXAbstractStructuralEntity where this instance variable is not
initialized to any value?
Thanks,
Hani
Hi adrian
I read the fame polygot paper and you mention that it is GPL? Is it a
typo or really the case?
I really hope that else we cannot use it for moose and pharo and our
other projects.
Stef
Hi all
I reintroduced flatCollect: fixing also collectUnion:
I deprecated collectUnion: and replaced all the occurence of
collectUnion: in mooseDevelopment and friends
let me know if this is ok for you.
Stef
I'm confused
Where is the reference implementation for Famix 3.0 right now?
Because when I look at those documents
http://moose.unibe.ch/docs/famix/famix3.0?_s=qCdqiYvltMRJXWPd&_k=KPeddYEX&_…
Famix 3.0 beta 14
it does not match with what I found in the Squeak package. Namely,
there is no incomingInvocations in the FAMIXEntity class. Also some
methods such as Access>>isRead are not implemented.
However, when I look at the generated code with Fame for Java and the
mse file included (FAMIX30.fm3.mse), the attribute incomingInvocations
is defined. However (another problem?), it is declared as an opposite
to Invocation>>candidates, but this one declares
BehaviouralEntity>>incomingInvocations as the opposite.
So, I'm really confused.
--
Simon Denier, PhD
Postdoc, Ptidej Team
DIRO, Université de Montréal
Hi all
I'm fixing the classVar/sharedVar import in SqMoose and after I will
do it in VW.
Now I have a question:
when we make the distinction between a class and its metaclass this
is easy.
when we merge a class and its metaclass:
a metaclass instVar will become a "class variable"
But we really need a way to make the distinction between a
sharedvariable and merged class inst var.
so I would like to have isShared in attribute or SmalltalkFamix
extension: how do I do that in
Famix20?
Famix30?
Then if I have the same variable name at the instance and class side
when I merge I have a conflict with name
and the importer will break.
So I could modify the importer to have another mapping and let in the
resulting model
two attributes with the same name but different scope
or I could modify the name of the mapped class inst var with
something like CL-x (would means I was a class var
but I was merged). Of course this solution is uglier but easier to
implement.
Stef
Dear List,
I was wondering why the following script does not have red and 5
pixels wide edges:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
| domain |
domain := 1 to: 30.
view newShape
rectangle;
withBorder;
line;
lineWidth: 5;
lineColor: ColorValue red.
view nodes: domain.
view edgesFrom: [:v | v * v].
view circleLayout
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
I am probably doing something wrong, but haven't see what.
Cheers,
Alexandre
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Hi
I was thinking that a classVar should always belongs to its class
TheRoot class@TheSharedClassVar
belongsTo -> TheRoot and not the TheRoot class.
TheRoot@TheSharedClassVar
belongsTo TheRoot
I will implement it like that.
Tell mewhat you think else we could have a mess.
Stef
Hi all
In SqMoose we added the following
testMooseNameOfCompiledMethod
"self debug: #testMooseNameOfCompiledMethod"
self assert: (TheRoot class>>#accessInstanceVariable) mooseName =
#'Smalltalk::TheRoot_class.accessInstanceVariable()'.
self assert: (TheRoot>>#accessingClass) mooseName =
#'Smalltalk::TheRoot.accessingClass()'.
"May be we could fix that too. using another notation so that we
could use the notation create method
name too"
self should: [ (TheRoot>>#zork) mooseName ] raise: Error.
testMooseNameOfInstanceVariable
self assert: (TheRoot@#x) = #'Smalltalk::TheRoot.x'.
"contrary to compiled method notation we do not garanty that the
class has an iv"
"we could! Now do we want"
self assert: (TheRoot@#foo) = #'Smalltalk::TheRoot.foo'.
self assert: (TheRoot class@#mx) = #'Smalltalk::TheRoot_class.mx'
testMooseNameOfClassVariable
"self debug: #testMooseNameOfClassVariable"
self assert: (TheRoot@#TheSharedVariable) =
#'Smalltalk::TheRoot.TheSharedVariable'.
"contrary to compiled method notation we do not garanty that the
class has an iv"
"we could! Now do we want? We could also have @@ for class variables."
"now the name of shared variable is always its class and not its
metaclass"
self assert: (TheRoot class @#TheSharedVariable) =
#'Smalltalk::TheRoot.TheSharedVariable'.
Now for compiled methods we could have a different way of doing it to
be able to build any names.
stef
Hi
I was reading
MooseElement>>mooseID
"Returns an unique identifier of this entity. This method is
mandatory, and must
return an Integer that unqiuely identifies this entity within the
entire Moose environ-
ment. The return value must not be nil, and must never change."
nil = mooseID ifTrue: [mooseID := MooseModel freshID].
^mooseID
and I wonder why this is MooseModel freshID
since freshID is only implemented on
MooseElement class>>freshID
Stef
Hi
what is FMMultivalueLink?
parentClass: aType
parentClass := FMMultivalueLink on: self
update: #attributes
from: self parentClass
to: aType
parentClass set: aType
I'm probably too stupid to understand but let us try.
I do not understand why at the metamodel level I need to have in the
runtime
objects of the metametamodel.
Long long time ago I did a stupid code generator that took a stupid
MMModel
and generated plain code for the metamodel. Why this is not like that
with FAMIX30
in the latest version?
why do we trade space **and** speed for a meta stuff?
So do I have to code a code generator?
Or just replace all the FMMultivalueLink myself?
I'm confused I thought that the new FAME was better.
Stef
> what is FMMultivalueLink?
A subclass of Collection.
> parentClass: aType
> parentClass := FMMultivalueLink on: self
> update: #attributes
> from: self parentClass
> to: aType
> parentClass set: aType
>
> I'm probably too stupid to understand but let us try.
This is a class-method but not a constructor!
#on:update:from:to: updates the opposite end of a link
#on:opposite: *creates* a new link instance
> I do not understand why at the metamodel level I need to have in the
> runtime objects of the metametamodel.
It is not, metametamodel classes start with 'FM3'.
> Long long time ago I did a stupid code generator that took a stupid
> MMModel and generated plain code for the metamodel.
> Why this is not like that with FAMIX30
> in the latest version?
> why do we trade space **and** speed for a meta stuff?
You dont trade.
Space is the same -> a link consist of a collection on one side and
of a naked inst var on the other side.
Speed is the same -> it does the minimal set of operations in order
to update both ends.
> So do I have to code a code generator?
No, Fame offers a ready-to-use code generator.
> Or just replace all the FMMultivalueLink myself?
No need.
> I'm confused I thought that the new FAME was better.
http://tinyurl.com/3yfnp9
> Stef
Hi Doru,
>>> You should best use the instructions from
>>> here: http://moose.unibe.ch/download
>> No, I didn't load MOOSE Config; I chose to use the MooseSuiteLoader
> Please try the Moose Config and load the latest development from
> prerequisites. This should work fine.
Oh, yes you are right - thanks a lot.
And good luck in Antwerp
Thomas
________________________________________________________________________
Schon gehört? Bei WEB.DE gibt' s viele kostenlose Spiele:
http://games.entertainment.web.de/de/entertainment/games/free/index.html
Hi Doru, thanks for answering promptly.
>>> On Aug 6, 2008, at 10:03 PM, Steffen Märcker wrote:
>>> I've followed the download instructions, but installing with via the
>>> "MooseSuiteLoader parcel" and via Store as well failed. Some parcels,
>>> namely Clustering couldn't be loaded. Platform: VW 7.6 NC on Windows
>> On Oct 7, 2008, at 11:31 AM, Thomas Schrader wrote:
>> I had similar problems yesterday (same with full productive 7.5 AND
>> fresh 7.6 nc):
> On Oct 7, 21:39:44 MEST 2008, Tudor Girba wrote
> How did you try to load? You should best use the instructions from here:
> http://moose.unibe.ch/download
No, I didn't load MOOSE Config; I chose to use the MooseSuiteLoader parcel
(http://moose.unibe.ch/download/installfromparcel) because I didn't succeed
choosing the right versions of all the prerequesites which Moose Config asked
me on loading.
> As for the image, it's not really done yet, but we will make one
> available in the following weeks.
Fine, so I can wait till then. I'm not pressed, as my MOOSE-dev image really
works for simple scripting so far, after I worked around the loading issues...
Kind regards
Thomas
________________________________________________________________________
Schon gehört? Bei WEB.DE gibt' s viele kostenlose Spiele:
http://games.entertainment.web.de/de/entertainment/games/free/index.html
Hi all,
after the conference I now tried out Moose for the very first time and it works more or less in our productive 7.5 image.
I got very helpful diagrams from it - it's a great inspiring platform, thanks a lot for your efforts ...
On Aug 6, 2008, at 10:03 PM, Steffen Märcker wrote:
> I've followed the download instructions, but installing with via the
> "MooseSuiteLoader parcel" and via Store as well failed. Some parcels,
> namely Clustering couldn't be loaded. Platform: VW 7.6 NC on Windows
I had similar problems yesterday (same with full productive 7.5 AND fresh 7.6 nc):
Errors on installing Moose Suite by the Loader
************************************************************************
* 1) on loading LinearAlgebra (2.1.78,matter) from HapaxDevelopment
************************************************************************
a Dialog opens: "A problem was detected. Try again"
I saw that some False-Object instead of a Source Object was
asked for its #comment and raised a messageNotUnderstood
So, I tried again...
************************************************************************
* 2) on loading ChroniaDevelopment (0.190, matter) from Clustering
************************************************************************
Warning: Package "Clustering" cannot be loaded.
The following classes cannot be loaded because their superclasses are neither in the image nor in the package being loaded:
DistanceSquare (subclass of Root.Smalltalk.Hapax.SymetricMatrix)
CorrelationVector (subclass of Root.Smalltalk.Hapax.Vector)
ClusteringData (subclass of Root.Smalltalk.Hapax.SymetricMatrix)
VectorItem (subclass of Root.Smalltalk.Hapax.VectorDecorator)
ClusteringVector (subclass of Root.Smalltalk.Hapax.ArrayVector)
So, I tried again...
************************************************************************
* 3) Warning: Package "SmallDudeUtils" cannot be loaded
************************************************************************
The following classes cannot be loaded because their superclasses are neither in the image nor in the package being loaded:
BooleanSymetricMatrix (subclass of Root.Smalltalk.Hapax.SymetricMatrix)
BooleanMatrix (subclass of Root.Smalltalk.Hapax.Matrix)
BooleanVector (subclass of Root.Smalltalk.Hapax.Vector)
************************************************************************
* 4) After trying again it loaded OK
************************************************************************
Now it works, but I cannot use system browsers any more due to steady
"key not found" messages. By example, the icon Image at #matrix16x16
is missing in the 7.5 commercial.
The model doesn't understand some messages like #allDuplicates - is this
a bug or just unfinished work?
************************************************************************
* 5) usage convenience question
************************************************************************
Well, as I'm not using a FAST computer, I shouldn't complain, but is there a possibility to
sort of faster "reuse" the MooseSuite - perhaps as a file out - from one productive image
to another? The whole Suite does not load quicker than half an hour and that's in addition
to our productive application which loads half an hour as well.
If this is not possible, than perhaps somebody had tried sort of automation (ignoring "try
again" dialogs) and nightly building a "refactoring image" with Moose included.
Thanks for any help and progress
ST
________________________________________________________________________
Schon gehört? Bei WEB.DE gibt' s viele kostenlose Spiele:
http://games.entertainment.web.de/de/entertainment/games/free/index.html
Hi
I will start soon to work on the exporter for FAMIX30.
So now I have a question:
- is the final version of FAMIX30 based on the latest version of FAME
which is not using
the slot stuff?
- Is the fame code generator working in Squeak?
- Is it better to just rewrite the code of FAMIX30?
Stef
Hi Doru,
I would like to draw in Mondrian figures which are not nodes or edges.
Just a rectangle for exemple with a label like this :
view newShape
rectangle;
width: 200;
height: 20;
fillColor: CodeFoo.Color red;
withBorder;
lineColor:CodeFoo.Color lightGrey;
withLabel;
text: ' foo bar';
fontSize: 12;
color: CodeFoo.Color lightGray;
align: #topLeft.
But I don't know how I can draw it.
Actually, I use "view node: mooseModel", but he is linked with
mooseModel, that I would not.
Is there anything to draw my rectangle ?
Thanks
Jannik
FYI
Is someone interested in doing something there?
Cheers,
Alexandre
Begin forwarded message:
> From: "Ute Schmalhofer" <ute.schmalhofer(a)4soft.de>
> Date: 1 October 2008 23:13:33 CEDT
> To: SEWORLD(a)cs.colorado.edu
> Subject: (SEWORLD) CfP: Software & Systems Engineering Essentials 2009
>
> *Call for Contribution*
>
> Software & Systems Engineering Essentials 2009
> Processes, Process modelling and Software Engineering Technologies
> Key theme: Tools as the key to project success
> http://2009.see-conf.de/
>
> Event Dates: Workshops - 25th May 2009
> Conference - 26th & 27th May 2009
> Event Location: Steigenberger Hotel Berlin, Los-Angeles-Platz 1,
> 10789 Berlin, Germany
>
> Conference Description:
>
> The Software and Systems Engineering Essentials is one of the main
> conferences dealing with process models, methodology and tools in
> the =20=
>
> German
> speaking world. It offers a comprehensive insight into standards
> such as
> CMMI(r), HERMES, ITIL(r), PRINCE2(tm), RUP und V-Modell(r)XT, agile
> development strategies like SCRUM and task oriented approaches in
> modern
> development environments.
> The SEE 2009 has as its core motto "Tools as the key to project
> success". Process managers and project managers often discover to =20
> their cost
> that useful procedures and standards are not obeyed and followed
> because
> they are seen as inherently causing an increase in workload. The =20
> consequences
> of this are quality issues in the project deliverables and inefficient
> processes. The usage of appropriate tools offers a way around these
> =20
> problems
> in that the project team members are supported in their work and the
> following of processes and methodologies is made easier, or even made
> possible to be introduced in the first place. With that in mind,
> tools =20=
>
> play
> a key role in the standardisation of project tasks. The SEE 2009
> deals specifically with this aspect and answers questions such as:
> What
> tools are available on the market? How do I achieve an integrated tool
> environment? When do I utilise integrated proprietary OEM systems,
> heterogeneous Best-of-Breed Tools and/or Open-Source tools? Which
> tools are appropriate for my in-house internal process models? How
> do I
> go about the choice and introduction of tools? And finally: what =20
> benefits do
> the various tools really offer?
>
> Invitation for Proposals for Presentations and Workshops:
>
> The SEE offers an array of keynote addresses, workshops, tutorials,
> three parallel sessions with presentations, and a concluding podium
> discussion. We therefore invite specialists in industry and
> research for contributions which deal with selected aspects from the
> list of topics on the following pages.
> In the workshops in particular, these themes will be discussed with
> reference to process models in general, and will not be limited to =20
> dealing
> with any specific process model in particular.
> Interested contributors are asked to compile and submit an extended
> abstract. For this purpose, there are template documents available for
> download on the conference website(http://2009.see-conf.de).
>
> Presentations and workshop suggestions can be submitted in either
> English or German. The accepted presentations will be published
> after =20=
>
> the
> conference as an integrated record of proceedings.
>
> Themes:
> * Process models, Standards and Guidelines
> - Agile process models e.g. FDD, SCRUM, XP
> - Elaborate rich process models, e.g. HERMES, RUP, V-Modell(r)XT
> - Maturity models and QM-Standards, e.g. CMMI(r), ISO9001, SPICE
> - Organisation-specific customisation and tailoring
> - Costs and benefits of adopting standards
> - Compliance to standards
> - Monitoring of compliance, assessment, quality management
> - introduction training und coaching of standardised processes
> * Methodology und Best Practices
> - Project-, change- and launch management
> - Requirements analysis and conceptualisation
> - Model driven processes (MDRE, MDA)
> - Traceability
> - Test-driven development
> - Task-oriented approaches
> - Aspects of teamwork
> * Tools and Platforms for IT Projects
> - Tool environments and platforms
> - Tool suites vs. standalone tools
> - Commercial tools versus open-source tools
> - Choice and standardisation of tools
> - Tool integration
> - Reporting und document generation
> - Tool support for process models and methodology
> * Tendering of contracts and company wide projects
> - Tendering guidelines and specifications
> - Composition and refining of the requirement specification
> - Framing of contracts and change management
> - Peculiarities of tendering for governmental contracts
> - Tenders (VOL/A, VOL/B, tendering competition, etc.)
> - Projects in manufacturer/ supplier networks and virtual companies
>
> Important Dates:
>
> * 28th November 2008: Deadline for proposals for workshops /
> presentations
> * 23rd January 2009: Notification of the acceptance of proposals
> * 04th May 2009: Deadline for submission of publishable
> final version
> (i.e. presentation / summary of the workshop
>
> Programme Committee:
>
> * Prof. Dr. Urs Andelfinger (SEI Europe/Hochschule Darmstadt)
> * Marcel Bernet (/ch/open Swiss Open Users System Group)
> * Prof. Dr. Stefan Biffl (OCG/Technische Universit=C3=A4t Wien)
> * Prof. Dr. Ruth Breu (Universit=C3=A4t Linz)
> * Nils Cordes (Bundesministerium des Innern, IT-Steuerung Bund)
> * Jutta Eckstein (IT Communication)
> * Stefan G=C3=B6ricke (ISQI e.V.)
> * Prof. Dr. Volker Gruhn (Universit=C3=A4t Leipzig)
> * Dr. Helmut Hummel (ANSSTAND e.V.)
> * Wolfgang Kranz (EADS)
> * Dr. Marco Kuhrmann (Technische Universit=C3=A4t M=C3=BCnchen)
> * Ludger Meyer (Siemens AG)
> * Helene Mourgue d'Algue (Informatikstrategieorgan Bund,
> Schweizerische Eidgenossenschaft)
> * Dr. Juergen M=C3=BCnch (Fraunhofer IESE)
> * Bernd Oestereich (oose Innovative Informatik GmbH)
> * Prof. Dr. Andreas Rausch (Technische Universit=C3=A4t Clausthal)
> * Martin Rother (PRINCE2 Deutschland e.V.)
> * Erik Saas (IT Amt der Bundeswehr)
> * Dr. Andre Schnackenburg (Bundesstelle f=C3=BCr
> Informationstechnik, =
> BIT)
> * Dr. Marc Sihling (4Soft GmbH)
>
> Workshop Committee:
>
> * Dr. Marco Kuhrmann (TU M=C3=BCnchen)
> * Dr. Marc Sihling (4Soft GmbH)
>
> Conference Hosts:
>
> * 4Soft GmbH, Dr. Marc Sihling
> * Technische Universit=C3=A4t Clausthal, Prof. Dr. Andreas Rausch
>
> ============================================================
> To contribute to SEWORLD, send your submission to
> <seworld(a)cs.colorado.edu>.
>
> http://www.cs.colorado.edu/serl/seworld provides more
> information on SEWORLD as well as a complete archive of
> messages posted to the list.
>
> To subscribe to SEWORLD, send the following (as the body of
> a message) to <seworld-subscribe(a)cs.colorado.edu>:
>
> subscribe seworld <desired e-mail address>
> end
>
> To unsubscribe from SEWORLD, send the following (as the body
> of a message) to <seworld-unsubscribe(a)cs.colorado.edu>:
>
> unsubscribe seworld <registered e-mail address>
> end
> ============================================================
>
>
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
You can find more examples in the EyeSee.Examples class.
Cheers,
Doru
On Sep 30, 2008, at 12:15 PM, Adrian Kuhn wrote:
> http://moose.unibe.ch/tools/eyesee/examples
>
> Are these examples available as copypastable text?
> And, are there more examples?
>
> cheers,
> AA
>
>
--
www.tudorgirba.comwww.tudorgirba.com/blog
"We cannot reach the flow of things unless we let go."
Hi all
I'm looking for the mse file describing FAMIX3.0 - I couldnt find it
on the moose website.
We want to load it with Fame VW and Fame for Java. Did anyone try that
already?
--
Simon Denier, PhD
Postdoc, Ptidej Team
DIRO, Université de Montréal
Hi
I'm working on making shared variable available in sqmoose and I got
the following situation
When I import referenceModel
When I reify TheRoot (from referenceModel) the importer
create all the superclass up to protoobject and more..... Object
class, .... Behavior...
Just because it is importing recursively all the superclass chain.
For my point of view this is wrong. I'm quite sure that the old
importer did not go all the way up.
It was creating the superclass as a stub and stopped there.
I'm checking in VWoose to see what is the behavior but I propose to
fix it too
if this is not a squeakish behavior of the importer.
What do you think?
Stef
> >> And how about correctness of the measured values? The class comment
> >> states: "Right now only Number of MessageSends is computed in a
> >> correct manner." On the first glance, I cannot see which of the
> >> measured values could be wrong. Any hint on inappropriate
> >> computation or improvement would be appreciated. The only thing I
> >> see a bit confusing is the computation of two McCabe numbers
> >> #cyclomaticNumber and #cyclomaticNumber2. Unfortunately, the class
> >> comment does not tell enough.
> >
> > Correctness of measured values is a big issue. The correctness of
> the
> > numbers that Moose produces is unknown. Even such simple
> measurements
> > as the number of classes or method invocations might be wrong!
>
> I think that adrian is a bit simplifying too much.
> What is the language that you want to analyse?
> For Smalltalk, since the langage is dynamically typed nobody on earth
> can be precise when talking about invocations!
> Now for the number of classes I think that this is correct.
>
> Now if you take any "professional" tools you have to ask yourself
Example of error range in senders:
FAMIX does not model shared variables and their initializers, thus
any sender in an initializer is lost. If you browse senders with VW
you get them. And RBCrawler gets them as well, but filters senders by
the result of a flow analysis with method scope (by doing the same
abstract interpretation as RoelTyper does, as I found out later when
comparing the two tools).
That is, three numbers with different precision for the same metric.
Example of error range in number of classes and methods:
Fame uses 4 anonymous subclasses of Fame.MetaDescription to
instantiate primitive descriptions. FAMIX will not model them, but
Object withAllSubclasses will list them.
That is, two numbers for the same metric.
i.e., even something as simple as the number of classes is more than
one number and thus the correct number of classes is rather a range
of possible numbers. In physics error ranges are given as N+/-Err, in
software analysis they could be given by making clear what has been
measured and what is missing. See examples above.
Of course, whether the above errors matter or not will depend on your
use case. For some use cases they might be no problem, for other use
cases they are critical or at least annoying.
Whether you care are not also depends on your distance from source
code. Consider for example a class blueprint. In smalltalk most #new
methods call an #initialize method that typically creates new objects
of a different type by calling #new again. Moose will thus visualize
the two methods as calling each other even though any developer can
tell they do not! For a consultant doing an offline analysis at
10'000 feet altitude that might be good enough, but for the developer
using the tool while working at ground level the visualization must
be precise or they stop using it because its results are obviously
false... and this is why RBCrawler takes the whole pain of running a
flow analysis, because I was eating my own dogfood :)
cheers,
AA