1 / 26

NOREX A Distributed Reengineering Environment

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.

kaori
Télécharger la présentation

NOREX A Distributed Reengineering Environment

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

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

  3. 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

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

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

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

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

  8. 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

  9. 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

  10. 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

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

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

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

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

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

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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. NOREX: A Distributed Reengineering Environment Creating Service Object 7th Workshop on SEERE, Risan, 2007 Dr. Radu Marinescu

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

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

  25. 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

More Related