User Tools

Site Tools


modec

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
modec [2013/04/29 07:54]
yann
modec [2019/10/06 20:37] (current)
Line 1: Line 1:
 ====== MODEC ====== ====== MODEC ======
  
 +MoDeC is an instrumentor,​ invoker, and meta-model to collect and model execution traces of Java programs.
  
  
-MoDeC: an instrumentor,​ invoker, and meta-model to collect and model +===== Required Projects =====
-execution traces of Java programs.+
  
 +To instrument Java programs, extract their execution traces, model these traces as sequence diagrams, and identify occurrences of behavioural and creational design motifs in these traces, you must download and install the following projects:
  
-===== Architecture/​Projects =====+- ''​MoDeC Bytecode Instrumentation''​ (and ''​MoDeC Bytecode Instrumentation Tests''​) deals with the instrumentation of the bytecodes of the Java programs for which to collect execution traces (called target Java program).
  
-Projects:+- ''​MoDeC Invoker''​ allows to simply calls the instrumented Java programs (i.e., to run the instrumented bytecodes of the target Java program.
  
 +- ''​MoDeC Metamodel''​ provides a meta-model of the execution traces produced by the ''​MoDeC Bytecode Instrumentation''​ and provides a parser to instantiate the MoDeC meta-model to obtain models of execution traces.
  
-"MoDeC Bytecode Instrumentation" ​(and "MoDeC Bytecode +''​MoDeC Solver'' ​(and ''​MoDeC Solver ​Tests''​defines constaints and problems to identify occurrences ​of behavioural and creational design motifs in the MoDeC models ​of execution traces.
-Instrumentation ​Tests"deals with the instrumentation ​of the +
-bytecodes ​of the Java programs of which a user wants to collect +
-execution traces ​(called target Java program).+
  
-- "MoDeC Invoker"​ allows the user to simply calls the instrumented +===== MoDeC Usage =====
-Java program (i.e., to run the instrumented bytecodes of the target +
-Java program.+
  
-- "MoDeC Metamodel"​ declares a meta-model of the execution traces +Here are the three main steps to gather ​execution traces ​of some target Java program ​and identify occurrences of behavioural and creational design motifs in their MoDeC models.
-produced by the "MoDeC Bytecode Instrumentation" ​and provides a +
-parser to instantiate the MoDeC meta-model to obtain a model of a +
-given execution trace.+
  
-- "MoDeC Solver" ​(and "MoDeC Solver Testsdefines constaints and +  * Instrument the bytecode of the target Java program, using ''​modec.util.Instrumentor.instrumentClasses(String)'',​ see examples in ''​modec.util.Instrumentor.main(String[])''​. The input of the ''​instrumentClasses(String)''​ method is a file describing: 
-problems ​to identify occurrences ​of behavioural and creational +    * The path to the bytecodes ​of the classes of the target Java program; 
-design motifs in models ​of execution traces.+    * The path to the folder where to store the instrumented bytecodes;​ 
 +    * The path to the libraries required by the target program (if any); 
 +    * The name of the file of the execution traces
 +    * The fully qualified name of the "​main"​ class of the target program; 
 +    * A list of paths to the Java class files to instrument, relative to the first path above.
  
 +  * See for a complete example the file ''​MoDeC Bytecode Instrumentation Tests/Input Files/​Evaluation of ArgoUML v0.19.8.txt''​. The list of paths to the Java class files to instrument can be generated using ''​modec.tool.helper.ClassFileListGenerator.main(String[])''​.
  
- +  * Execute the instrumented target program, using ''​modec.tool.Invoker.invokeMainClass(String)''​, see examples in ''​modec.tool.Invoker.main(String[])''​. Running the invoker ​will launch the instrumented target program and open a new window. The new window shows only one button and a text field, used to insert marks (also called tags) at any user-chosen appropriate moment in the collected execution traces, for example before and after executing some particular feature.
-===== MoDeC Basic Uses ===== +
- +
-Steps to gather execution traces of some target program. +
- +
-(1) Instrument the bytecode of the target program, using +
-"​modec.util.Instrumentor.instrumentClasses(String)",​ see examples in +
-"​modec.util.Instrumentor.main(String[])"​. The input of the +
-"​instrumentClasses"​ method is a file describing:​ +
-    - The path to the byecode classes of the target program. +
-    - The path to the folder where to store the instrumented bytecodes. +
-    - The path to the libraries required by the target program (if any). +
-    - The name of the file of the execution traces. +
-    - The fully qualified name of the "​main"​ class of the target program. +
-    - A list of paths to the Java class files to instrument, relative to the first path above. +
-See for a complete example "MoDeC Bytecode Instrumentation +
-Tests/Input Files/​Evaluation of ArgoUML v0.19.8.txt"​. +
- +
-The list of paths to the Java class files to instrument can be +
-generated using +
-"​modec.tool.helper.ClassFileListGenerator.main(String[])"​. +
- +
-(2) Execute the instrumented target program, using +
-"modec.tool.Invoker.invokeMainClass(String)", see examples in +
-"modec.tool.Invoker.main(String[])". Running the "​Invoker" ​will +
-launch the instrumented target program and open a new window. The +
-new window shows only one button and a text field, used to insert +
-marks (also called tags) at any user-chosen appropriate moment in +
-the collected execution traces, for example before and after +
-executing some particular feature.+
  
modec.1367222081.txt.gz · Last modified: 2019/10/06 20:37 (external edit)