SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
FAMOOSr 2011
         ESUG 2011
Alexandre Bergel & Jannik Laval
About the workshop


Discuss about the MOOSE software analysis platform
Open to people interested in software analysis
Goals
  Knowing what others are working on

  Find oportunities for join work
During the workshop



 About 20 people attended the workshop. The room
was full
 A large majority of the audience knows Moose,
however they asked for a small briefing :-)
Tudor Gîrba
www.tudorgirba.com
Moose’s pillars


Analysis environment for software systems
4 core actions
  navigation: moving between things

  selection: grouping things

  inspection: inspecting things

  presentation: rendering things
McCabe = 21

NOM                            0
    =   102                   0
                        3  ,0
                      75
                  =


                                                                                          ...
              C
         LO
   Metrics                         Queries                               Visualizations




                                             {               {
                                                 {                   {
                                                                         }
                                                     }
                                                     }
                                                         }       {       }
Currently supported languages



             C
           Java
           Spem
          Smalltalk
        ADA (partially)
FAMIXis a a language independent meta-
FAMIX is language independent meta-model
                 model
                               Package                        Namespace

                              packagedIn                             belongsTo

                                                 *       *
                                                             superclass             *
                                                 Class                                  Inheritance
                                                             subclass               *

                                     belongsTo           belongsTo


                                      *                              *
             *   invokedBy
Invocation                     Method                          Attribute
             *   candidate
                             accessedIn                                  accesses


                                                     *   *

                                             Access
Scheduled presentation

 "The curse of Pharo", digging in Cobol - D. Lont and
Stephan Eggermont
 Exposing hidden dependencies in heterogenous applications
- Fabrizo Perin
 Extending Mondrian with Interactive HTML Visualisation -
Santiago Vidal, Alexandre Bergel, Claudia Marcos, Tudor
Girba
 Using unit tests to increase accuracy of inter-method
dependencies - Alexandre Bergel
 Modeling Check style rules - Angel Nunez, Alexandre Bergel,
Stéphane Ducasse
The curse of Pharo", digging in
                Cobol


 Presented by Diego and Stephan
 Their goal is to replace a large system written in
Cobol
 The original developer of the Cobol system passed
away 10 years ago
 The current maintainer recently got an heart attack.
Refactoring the application

600+ data files
800+ lib files
First question they have:
  do we have all files? use distribution map

  can we read the data? Use a glamour browser to navigate
 between the cobol definitions

Their goals
  complete the implementation of the new ERP system by the end of
 the year

  only move data that is actually needed
Deciphering Cobol



  Separate description of the data format and the file
location
 per file fixed record length, but miltiple record types in
the same file
 references between records are by convention
Browser driven development




 Create a short feedback loop by letting the client use
a browser (made in Glamour)
the curse




 The amount of data to analyze is high: 724 Mbyte of
raw data
Dealing with cobol


 They do not parse Cobol code using a grammar
generated by a parser.
 They gradually parse using regular expression when
they actually need it
 They use convention based on name
 They approach may work only for their case study
however
Demo




They have two browsers (made in glamour):
  INNO browser, for the clients. You can have all the source files and
 load them.

  The data files are presented using a distribution map
Exposing hidden dependencies in
     heterogenous applications
 by Fabrizio from the University of Bern
 heterogenous application: applications written in
different languages
 Fabrizio will shows us a case study with a customer
 he wanted to identify the hidden dependencies
between the DSL scripts and the Java classes
 DSL Scripts and Java classes both share tables in a
database
Idea


 If a java class map or access a table T
 And if a script accesses the same table T
 then we deduce a dependency between the script
and the java classes
 We qualify it as hidden since it is not explicit in the
source
Metamodeling



 Fabrizio has defined a metamodel for this
 He has built browsers to navigate between the tables
and visually represent
 He considers the MySQL databases by using a sql
script using PetitParser
Translating a Mondrian visualization
              into HTML

 Presented by Santiago Vidal, from Argentina
 He has written an exporter that compiles a structure
of Mondrian
 He demoed a number of visualizations, including
system complexity, distribution map and Hapao
  The audience asked about whether a server can
listen to the event the user may do. This is ongoing
work
Unit tests


 presented by Alexandre, myself
 the lack of static type annotation prevents one from
accurately analyzing smalltalk applications
 The idea is to profile the execution of unit tests to
reduce the amount of candidate of an invocation
 Demostrated on Arki and Mondrian
Orion



 Presented by Jannik Laval
 It enables one to explore different path during a
quality improvement activity
 It extends the FAMIX metamodel to have the
difference models information
Demo




Demo using the network Pharo package
AspectMaps

 Given by Johan Fabry, from the University of Chile
 It shows us how it extended the FAMIX metamodel
 An aspect is contained in a namespace
 An aspect has a list of advices and pointcut
  Johan has to extend Glamour by putting an
announcer on the window, thus bypassing the
transmission between widgets
 Apparently Diego & Stefan experienced the very same
problem

Weitere ähnliche Inhalte

Andere mochten auch (7)

Language-side Foreign Function Interfaces with NativeBoost
Language-side Foreign Function Interfaces with NativeBoostLanguage-side Foreign Function Interfaces with NativeBoost
Language-side Foreign Function Interfaces with NativeBoost
 
ESUG 2011 Welcome
ESUG 2011 WelcomeESUG 2011 Welcome
ESUG 2011 Welcome
 
Eurydike: Schemaless Object Relational SQL Mapper
Eurydike: Schemaless Object Relational SQL MapperEurydike: Schemaless Object Relational SQL Mapper
Eurydike: Schemaless Object Relational SQL Mapper
 
Seaside Esug 2008
Seaside Esug 2008Seaside Esug 2008
Seaside Esug 2008
 
Representing Code History with Development Environment Events
Representing Code History with Development Environment EventsRepresenting Code History with Development Environment Events
Representing Code History with Development Environment Events
 
iBizLog. Smalltalking the Web
iBizLog. Smalltalking the WebiBizLog. Smalltalking the Web
iBizLog. Smalltalking the Web
 
OOSCM. Object Oriented SCM
OOSCM. Object Oriented SCMOOSCM. Object Oriented SCM
OOSCM. Object Oriented SCM
 

Ähnlich wie FAMOOSr 2011

Construction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific LanguagesConstruction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific Languages
ThoughtWorks
 
JaCIL_ a CLI to JVM Compiler
JaCIL_ a CLI to JVM CompilerJaCIL_ a CLI to JVM Compiler
JaCIL_ a CLI to JVM Compiler
Almann Goo
 
Java Collections Framework
Java  Collections  FrameworkJava  Collections  Framework
Java Collections Framework
guestd8c458
 
Data access layer and schema definitions
Data access layer and schema definitionsData access layer and schema definitions
Data access layer and schema definitions
Luciano Resende
 
Java%20 collections%20framework
Java%20 collections%20frameworkJava%20 collections%20framework
Java%20 collections%20framework
Ilakkian
 

Ähnlich wie FAMOOSr 2011 (20)

Semantically-aware Networks and Services for Training and Knowledge Managemen...
Semantically-aware Networks and Services for Training and Knowledge Managemen...Semantically-aware Networks and Services for Training and Knowledge Managemen...
Semantically-aware Networks and Services for Training and Knowledge Managemen...
 
The Evolution of Scala
The Evolution of ScalaThe Evolution of Scala
The Evolution of Scala
 
Managing Binary Compatibility in Scala (Scala Days 2011)
Managing Binary Compatibility in Scala (Scala Days 2011)Managing Binary Compatibility in Scala (Scala Days 2011)
Managing Binary Compatibility in Scala (Scala Days 2011)
 
Managing Binary Compatibility in Scala (Scala Lift Off 2011)
Managing Binary Compatibility in Scala (Scala Lift Off 2011)Managing Binary Compatibility in Scala (Scala Lift Off 2011)
Managing Binary Compatibility in Scala (Scala Lift Off 2011)
 
Construction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific LanguagesConstruction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific Languages
 
Object Oriented Programming with COBOL
Object Oriented Programming with COBOLObject Oriented Programming with COBOL
Object Oriented Programming with COBOL
 
Core_Java_Interview.pdf
Core_Java_Interview.pdfCore_Java_Interview.pdf
Core_Java_Interview.pdf
 
JaCIL_ a CLI to JVM Compiler
JaCIL_ a CLI to JVM CompilerJaCIL_ a CLI to JVM Compiler
JaCIL_ a CLI to JVM Compiler
 
Advanced application architecture
Advanced application architectureAdvanced application architecture
Advanced application architecture
 
Easy Data Object Relational Mapping Tool
Easy Data Object Relational Mapping ToolEasy Data Object Relational Mapping Tool
Easy Data Object Relational Mapping Tool
 
Java Collections Framework
Java  Collections  FrameworkJava  Collections  Framework
Java Collections Framework
 
B vb script11
B vb script11B vb script11
B vb script11
 
Microservices Application Tracing Standards and Simulators - Adrians at OSCON
Microservices Application Tracing Standards and Simulators - Adrians at OSCONMicroservices Application Tracing Standards and Simulators - Adrians at OSCON
Microservices Application Tracing Standards and Simulators - Adrians at OSCON
 
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
Data FAIRport Prototype & Demo - Presentation to Elsevier, Jul 10, 2015
 
Object-Oriented Application Frameworks
Object-Oriented Application FrameworksObject-Oriented Application Frameworks
Object-Oriented Application Frameworks
 
Data access layer and schema definitions
Data access layer and schema definitionsData access layer and schema definitions
Data access layer and schema definitions
 
ITTutor Advanced Java (1).pptx
ITTutor Advanced Java (1).pptxITTutor Advanced Java (1).pptx
ITTutor Advanced Java (1).pptx
 
Use Eclipse Technologies to build a modern embedded development IDE
Use Eclipse Technologies to build a modern embedded development IDEUse Eclipse Technologies to build a modern embedded development IDE
Use Eclipse Technologies to build a modern embedded development IDE
 
Martin Odersky: What's next for Scala
Martin Odersky: What's next for ScalaMartin Odersky: What's next for Scala
Martin Odersky: What's next for Scala
 
Java%20 collections%20framework
Java%20 collections%20frameworkJava%20 collections%20framework
Java%20 collections%20framework
 

Mehr von ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
 

Mehr von ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Kürzlich hochgeladen (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

FAMOOSr 2011

  • 1. FAMOOSr 2011 ESUG 2011 Alexandre Bergel & Jannik Laval
  • 2. About the workshop Discuss about the MOOSE software analysis platform Open to people interested in software analysis Goals Knowing what others are working on Find oportunities for join work
  • 3. During the workshop About 20 people attended the workshop. The room was full A large majority of the audience knows Moose, however they asked for a small briefing :-)
  • 5. Moose’s pillars Analysis environment for software systems 4 core actions navigation: moving between things selection: grouping things inspection: inspecting things presentation: rendering things
  • 6. McCabe = 21 NOM 0 = 102 0 3 ,0 75 = ... C LO Metrics Queries Visualizations { { { { } } } } { }
  • 7.
  • 8. Currently supported languages C Java Spem Smalltalk ADA (partially)
  • 9. FAMIXis a a language independent meta- FAMIX is language independent meta-model model Package Namespace packagedIn belongsTo * * superclass * Class Inheritance subclass * belongsTo belongsTo * * * invokedBy Invocation Method Attribute * candidate accessedIn accesses * * Access
  • 10. Scheduled presentation "The curse of Pharo", digging in Cobol - D. Lont and Stephan Eggermont Exposing hidden dependencies in heterogenous applications - Fabrizo Perin Extending Mondrian with Interactive HTML Visualisation - Santiago Vidal, Alexandre Bergel, Claudia Marcos, Tudor Girba Using unit tests to increase accuracy of inter-method dependencies - Alexandre Bergel Modeling Check style rules - Angel Nunez, Alexandre Bergel, Stéphane Ducasse
  • 11. The curse of Pharo", digging in Cobol Presented by Diego and Stephan Their goal is to replace a large system written in Cobol The original developer of the Cobol system passed away 10 years ago The current maintainer recently got an heart attack.
  • 12. Refactoring the application 600+ data files 800+ lib files First question they have: do we have all files? use distribution map can we read the data? Use a glamour browser to navigate between the cobol definitions Their goals complete the implementation of the new ERP system by the end of the year only move data that is actually needed
  • 13. Deciphering Cobol Separate description of the data format and the file location per file fixed record length, but miltiple record types in the same file references between records are by convention
  • 14. Browser driven development Create a short feedback loop by letting the client use a browser (made in Glamour)
  • 15. the curse The amount of data to analyze is high: 724 Mbyte of raw data
  • 16. Dealing with cobol They do not parse Cobol code using a grammar generated by a parser. They gradually parse using regular expression when they actually need it They use convention based on name They approach may work only for their case study however
  • 17. Demo They have two browsers (made in glamour): INNO browser, for the clients. You can have all the source files and load them. The data files are presented using a distribution map
  • 18. Exposing hidden dependencies in heterogenous applications by Fabrizio from the University of Bern heterogenous application: applications written in different languages Fabrizio will shows us a case study with a customer he wanted to identify the hidden dependencies between the DSL scripts and the Java classes DSL Scripts and Java classes both share tables in a database
  • 19. Idea If a java class map or access a table T And if a script accesses the same table T then we deduce a dependency between the script and the java classes We qualify it as hidden since it is not explicit in the source
  • 20. Metamodeling Fabrizio has defined a metamodel for this He has built browsers to navigate between the tables and visually represent He considers the MySQL databases by using a sql script using PetitParser
  • 21. Translating a Mondrian visualization into HTML Presented by Santiago Vidal, from Argentina He has written an exporter that compiles a structure of Mondrian He demoed a number of visualizations, including system complexity, distribution map and Hapao The audience asked about whether a server can listen to the event the user may do. This is ongoing work
  • 22. Unit tests presented by Alexandre, myself the lack of static type annotation prevents one from accurately analyzing smalltalk applications The idea is to profile the execution of unit tests to reduce the amount of candidate of an invocation Demostrated on Arki and Mondrian
  • 23. Orion Presented by Jannik Laval It enables one to explore different path during a quality improvement activity It extends the FAMIX metamodel to have the difference models information
  • 24. Demo Demo using the network Pharo package
  • 25. AspectMaps Given by Johan Fabry, from the University of Chile It shows us how it extended the FAMIX metamodel An aspect is contained in a namespace An aspect has a list of advices and pointcut Johan has to extend Glamour by putting an announcer on the window, thus bypassing the transmission between widgets Apparently Diego & Stefan experienced the very same problem