Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu NOREX A Distributed Reengineering Environment Radu.

Similar presentations


Presentation on theme: "1 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu NOREX A Distributed Reengineering Environment Radu."— Presentation transcript:

1 1 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu NOREX A Distributed Reengineering Environment Radu Marinescu LOOSE Research Group Politehnica University of Timişoara radu.marinescu@cs.upt.ro loose.upt.ro

2 2 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu Generic Reengineering Environment

3 3 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu iPlasma: Example of Reeng. Environment Model Extractors MCC / FASTMemoria / Recoder Models HisMo MEMORIA Membrain build Analyses Metrics Detection Strategies Code Duplication Data-flow Analyses use Front-end INSIDER integrate

4 4 7 th 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

5 5 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu The power of going Meta-Meta...

6 6 7 th 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

7 7 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu Containment Hierarchy

8 8 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu Relations EntityEntity Type dictionaries Property Computer Group Builder Filtering Rule Result Entity Group Entity * ** *

9 9 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu retrieve look-up in dictionary do you know CBO property? Computing of Properties ViewUI (Entity) “CBO” ? class (EntityType) Property Computers CBO 29.0 (ResultEntity) numerical (EntityType)

10 10 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu (GroupEntity) applyFilter model package Filters retrieve look-up in dictionary package (EntityType) Filtering Rules model package

11 11 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu How do our tools collaborate?

12 12 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu Only data exchange

13 13 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu Different programming languages Different meta-models Different front-ends Why?

14 14 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu NOREX Distributed collaborative reengineering Our solution

15 15 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu Features Language independent Distributed Community focused

16 16 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu Distributed collaboration

17 17 7 th 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 18 7 th 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 19 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu Encapsulate model in command objects public 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 20 7 th 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 21 7 th 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 22 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu Creating Service Object

23

24 24 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu Results are Transparent

25 25 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu NOREX is not a toy...

26 26 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu NOREX A Distributed Reengineering Environment Radu Marinescu LOOSE Research Group Politehnica University of Timişoara radu.marinescu@cs.upt.ro loose.upt.ro


Download ppt "1 7 th Workshop on SEERE, Risan, 2007 NOREX: A Distributed Reengineering Environment Dr. Radu Marinescu NOREX A Distributed Reengineering Environment Radu."

Similar presentations


Ads by Google