This is an old revision of the document!
Q: The PADL meta-model is qualified of semi-language independent. Why “semi”?
A: Because it is only for typed object-oriented programming languages. In any case, don't fall for people who would like to sell you “truly” language-independent meta-models, this is a dream!
Q: Which model has the most detailed data about a software system?
A: The IIdiomLevelModel. Actually, it is the IDesignLevelModel, which includes micro-architectures that are occurrences of some design motifs. However, occurrences are costly to identify so far…
Q: What are “actors” and “ghosts?
A: Actor can be any entity or element of a model, such as a Class, an Interface, a Method, a Field, and so on. It is a legacy name from PDL! A “ghost” is any entity known to exist but not currently analysed, such as classes and interfaces provided by the Java class libraries.
Q: What is the difference between AACRelationshipsAnalysis and ModelAnnotatorInstructions?
A: AACRelationshipsAnalysis does not provide any data about the inside of methods, such the lines of code, while ModelAnnotatorInstructions does.
Q: Are the metrics calculated automatically during PADL analysis?
A: No, separate calls must be performed to do it, cf. POM.
Q: Does a PADL model include the fields of other classes used by a method?
A: Yes… somewhat… through IMethodInvocation, which is kind of a hack… see PADL
Q: What the difference between a member class/interface and member ghost?
A: Membre classes/interfaces were added to the Java language after the definition of its first version and of the JVM going with it. Therefore, Java developers added membre classes/interfaces using a “hack”: if A defines a membre class MembreOfA, two classfiles are produced: one called A.class, another called A$MemberOfA.class. Thus, if you want to analyse membre classes/interfaces, you must also include in the CompleteClassFileCreator the X$Y.class files, else their corresponding membre classes/interfaces will show up as membre ghosts.