1 7 th workshop on seere, risan, 2007 norex: a distributed reengineering environment dr. radu...
Post on 18-Dec-2015
218 views
TRANSCRIPT
17th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
NOREX
A Distributed Reengineering
EnvironmentRadu Marinescu
LOOSE Research Group Politehnica University of Timişoara
loose.upt.ro
27th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
Generic Reengineering Environment
37th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
iPlasma: Example of Reeng. Environment
Model Extractors
MCC / FAST Memoria / Recoder
ModelsHisMo MEMORIA Membrain
build
Analyses
MetricsDetection Strategies
CodeDuplication
Data-flowAnalyses
use
Front-end
INSIDER
integrate
47th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
Four Layers of Metamodeling Architecture
Layer
Meta Meta Model
Meta Model
Model
User Objects
Description
Defines the core ingredients sufficient for defining languages for specifying meta-models
Defines a language for specifying Models
Defines a language to describe an information domain.
Describes a specific situation in an information domain.
Example
(CDIF) MetaEntity, MetaAttribute(MOF) Class, MofAttribute
(UML) Class, Attribute, Association(Database) Table, Column, Row
Student, Course, enrolledin
Student#3, Course#5,Student#3.enrolledin.Course#5
57th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
The power of going Meta-Meta...
67th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
Concepts Entities
Examples: color , drawArea() , GraphicFigure, lrg.drawing.figures etc
Entities can be described by an Entity Type Examples:
variable, method, class, package
Entities have Properties … and their Entity Type knows how to “compute” them Examples:
variable color is a protected attribute method drawArea() has a 25 lines of code class GraphicFigure is abstract etc.
Entity Types belong to a Containment Hierarchy Entities contain groups of other entities Ex: a class contains methods and attributes
77th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
Containment Hierarchy
87th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
Relations
Entity Entity Type
dictionaries
PropertyComputer
GroupBuilder
FilteringRule
ResultEntity
GroupEntity
* ** *
97th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
retrieve
look-upin dictionary
do you knowCBO property?
Computing of Properties
ViewUI(Entity)“CBO”
?class
(EntityType)
PropertyComputers
CBO29.0
(ResultEntity)
numerical(EntityType)
10
7th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
(GroupEntity)
(GroupEntity)
applyFiltermodel package
Filters
retrieve
look-upin dictionary
package(EntityType)
FilteringRules
model package
11
7th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
How do our tools collaborate?
12
7th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
Only data exchange
13
7th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
• Different programming languages• Different meta-models• Different front-ends
Why?
14
7th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
NOREXDistributed collaborative reengineering
Our solution
15
7th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
Features
• Language independent• Distributed• Community focused
16
7th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
Distributed collaboration
17
7th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
What you do
• Declare your meta-model (in MOF)• Decouple the tool’s services• Specify your services
18
7th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
Clients and Servers
Clients have the data model model is “shaped” by a client-specific meta-model
Servers have the processors
reengineering analyses (e.g metrics, visualizations etc) assume another meta-model accesses to meta-model are expressed as
command objects
19
7th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
Encapsulate model in command objectspublic int NoPM(MMClass aClass) {int publicCount = 0;for(MMMethod aMethod : aClass.getMethods()) if(aMethod.isPublic()) publicCount++;return publicCount;}
public int NoPM(Object aClass, CollectionCommand methodsCom, BooleanCommand isPublicCom) {int publicCount = 0;for(Object aMethod : methodsCom.execute(aClass)) if(isPublicCom.execute(aMethod)) publicCount++;return publicCount;}
20
7th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
Create a NOREX Service
Service Manifesto specifies the entity on which the service runs specifies the command objects that need to be
provided
21
7th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
Configuring a service to run
Do the mapping between the two meta-models translate client’s into
servers’ meta-models “Lazy” approach
I don’t translate the whole meta-model, but only what is needed for the analysis
I do it only once stored in a dictionary
22
7th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
Creating Service Object
24
7th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
Results are Transparent
25
7th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
NOREX is not a toy...
26
7th Workshop on SEERE, Risan, 2007
NOREX: A Distributed Reengineering Environment
Dr. Radu Marinescu
NOREX
A Distributed Reengineering
EnvironmentRadu Marinescu
LOOSE Research Group Politehnica University of Timişoara
loose.upt.ro