260 likes | 368 Views
NOREX: A Distributed Reengineering Environment. NOREX A Distributed Reengineering Environment. Radu Marinescu LOOSE Research Group Politehnica University of Timişoara radu.marinescu@cs.upt.ro. loose.upt.ro. 7 th Workshop on SEERE, Risan, 2007. Dr. Radu Marinescu.
E N D
NOREX: A Distributed Reengineering Environment NOREXA Distributed Reengineering Environment Radu Marinescu LOOSE Research Group Politehnica University of Timişoara radu.marinescu@cs.upt.ro loose.upt.ro 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment Generic Reengineering Environment 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
build Memoria / Recoder MCC / FAST Detection Strategies Data-flow Analyses INSIDER Code Duplication Metrics HisMo MEMORIA Membrain Front-end Model Extractors Models Analyses integrate use NOREX: A Distributed Reengineering Environment iPlasma: Example of Reeng. Environment 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment Four Layers of Metamodeling Architecture 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. Layer Meta Meta Model Meta Model Model User Objects 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 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment The power of going Meta-Meta... 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment 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 methodsand attributes 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment Containment Hierarchy 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
Property Computer Filtering Rule Group Builder Group Entity Result Entity Entity Type Entity NOREX: A Distributed Reengineering Environment Relations dictionaries * * * * 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
numerical (EntityType) class (EntityType) ViewUI (Entity) 29.0 (ResultEntity) CBO Property Computers NOREX: A Distributed Reengineering Environment Computing of Properties ? look-up in dictionary do you know CBO property? “CBO” retrieve 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
package (EntityType) (GroupEntity) (GroupEntity) Filtering Rules model package NOREX: A Distributed Reengineering Environment Filters applyFilter model package look-up in dictionary retrieve 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment How do our tools collaborate? 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment Only data exchange 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment Why? • Different programming languages • Different meta-models • Different front-ends 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment Our solution NOREX Distributed collaborative reengineering 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment Features • Language independent • Distributed • Community focused 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment Distributed collaboration 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment What you do • Declare your meta-model (in MOF) • Decouple the tool’s services • Specify your services 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment 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 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment 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, BooleanCommandisPublicCom) { int publicCount = 0; for(Object aMethod : methodsCom.execute(aClass)) if(isPublicCom.execute(aMethod)) publicCount++; return publicCount; } 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment Create a NOREX Service • Service Manifesto • specifies the entity on which the service runs • specifies the command objects that need to be provided 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment 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 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment Creating Service Object 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment Results are Transparent 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment NOREX is not a toy... 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu
NOREX: A Distributed Reengineering Environment NOREXA Distributed Reengineering Environment Radu Marinescu LOOSE Research Group Politehnica University of Timişoara radu.marinescu@cs.upt.ro loose.upt.ro 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu