Hello,
With nicolas we started to have a look at the eclipse-php-parser (provide
with PDT), to export a famix-mse file from a PHP project. We already started
to build an eclipse plugin that does some work:
=> We create an AST for each php file of the project
=> Then we have a visitor on this ast, and we are therfore able to make a
specific action for each kind of node visited
=> For now, we just export some FAMIXNamespace, FAMIXClass, FAMIXMethods.
So what's left is to implement each visit-method to extract informations
for each node visited. For that we will have to know a bit more PHP :) Maybe
the metamodel will have to be extended to take into account some
PHP-specific elements, I don't know.
If you want to have a look, sources are available via svn at:
https://scm.gforge.inria.fr/svn/lse/Projects/Verveine
Vervaine provide the extractor (not yet finished) for Java ans this one for
PHP. Both are using a common mechanism to generate famix entities and
extract them to mse.
I will be on holidays until august and will probably no longer work on it
until august. So if you want to have a look (and have the courage to install
eclipse to read java code:)), have some suggestions, want to implement
something, feel free to participate :)
Hi all,
I'm new to using moose for analyzing a rather large smalltalk project
developed during the last 16-17 years.
I hope that using Moose framework will give positive insights on the
hot-spots of the system in order to improve its structure, and make it more
maintainable.
The project name is Madeo (http://stiff.univ-brest.fr/BINIOU/MADEO) a FPGA
design-automation toolkit developed mainly by one of my PhD supervisors (Loic
Lagadec <http://stiff.univ-brest.fr/~llagadec>).
To start the evaluation I believe that the overview pyramid is a very good
starting point in order to get a generic idea about the system.
However, I was not able to find any smalltalk threshold values in the moose
image.
So my question is if there is somebody having some idea about the
smalltalk threshold values for the OverviewPyramid.
If yes, could you provide me these figures, and eventually point me to a
scientific paper presenting these results.
If not, I'm willing to try to get these figures myself... however I don't
really know which smalltalk projects I could use to get good results.
Thank you very much for your attention.
Best wishes,
--
PhDc Ciprian TEODOROV
Lab-STICC/AS CNRS UMR 3192
University of Brest
phone: (+33)(0) 6 08 54 73 48
mail: ciprian.teodorov(a)univ-brest.fr
www.teodorov.ro
Status: New
Owner: ----
CC: anquetil...(a)gmail.com
Labels: Type-Defect Priority-Medium Component-VerveineJ
New issue 733 by tu...(a)tudorgirba.com: VerveineJ does not export modifiers
http://code.google.com/p/moose-technology/issues/detail?id=733
public abstract class A { ... }
should appear as
(
(FAMIX.Class
(name 'A')
(modifiers 'public' 'abstract')
)
Similar things should happen to methods and attributes.
FAMIXType is a generic class representing a type in an object-oriented language.
As such a type can have multiple subtypes or supertypes. These are represented by instances of FAMIXInheritance.
A type defines methods (operations), attributes.
It is also defined in a container often a FAMIXNamespace or a FAMIXPackage, depending of the language.
It may also be a class (in case of nested classes).
It can also define behavioursWithDeclaredType structuresWithDeclaredType
I have a question:
what are behavioursWithDeclaredType and structuresWithDeclaredType
structure I guess a bit.
behaviroWithDeclaredType is for parametrized subclasses?
Stef
we have
FAMIXPackage represents a package in the source language.
A package is different from a namespace (FAMIXNamespace). They both provide a scope, but the namespace does it from a language perspective. For example, in Java concept of package maps both on the FAMIXNamespace and on a FAMIXPackage:
- it is a FAMIXNamespace because it provides a lexical scope for the contained entities, and
- it is a FAMIXPackage because it describes the physical structure of the system.
I propose
FAMIXPackage represents a package in the source language, but when the language only mean grouping of entities without scoping.
The scoping aspect is captured by FAMIXNamespace.
A package is different from a namespace (FAMIXNamespace). A package defines simply a group of entities. A namespace scopes a group of entities (it may implement
an import, a name lookup). For example, in Java concept of package maps both on the FAMIXNamespace and on a FAMIXPackage:
- it is a FAMIXNamespace because it provides a lexical scope for the contained entities, and
- it is a FAMIXPackage because it describes the physical structure of the system.
FAMIX extractor usually map Java package to FAMIXNamespace for these reasons.
proposition:
FAMIXClass represents an entity which can build new instances. A FAMIXClass is a FAMIXType, therefore it belongs to a super/sub lattice (depending on the language) and it holds attributes, methods, structures.
FAMIX does not model explicitly interfaces and nested classes.
But a FAMIXClass can represent a Java interface (see isInterface query method).
Java extractors can nest classes into classes and classes in namespaces.
For anonymous classes, classes are simply defined in methods.
Hi,
The amount of unit tests run by ci.moosetechnology.org got to 5012. I know it does not say much, but it sounds cool :)
Cheers,
Doru
--
www.tudorgirba.com
"What is more important: To be happy, or to make happy?"
Hi doru
I want to start working on
- producing a good FAMIX30
-> So will continue to go over the comments
- probably adding package: java at the right places.
Now I was thinking that to ease the transition I will duplicate the program
MSE
FM
so that code can continue to work and then later we remove MSE* ones.
stef