SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
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

Mais conteúdo relacionado

Destaque

Identifying Equivalent Objects to Reduce Memory Consumption
Identifying Equivalent Objects to Reduce Memory ConsumptionIdentifying Equivalent Objects to Reduce Memory Consumption
Identifying Equivalent Objects to Reduce Memory ConsumptionESUG
 
2004 Esug Prototalk
2004 Esug Prototalk2004 Esug Prototalk
2004 Esug Prototalkbergel
 
2011 ecoop
2011 ecoop2011 ecoop
2011 ecoopbergel
 
Classboxes
ClassboxesClassboxes
ClassboxesESUG
 
2008 Sccc Inheritance
2008 Sccc Inheritance2008 Sccc Inheritance
2008 Sccc Inheritancebergel
 
2005 Oopsla Classboxj
2005 Oopsla Classboxj2005 Oopsla Classboxj
2005 Oopsla Classboxjbergel
 
Roassal presentation
Roassal presentationRoassal presentation
Roassal presentationbergel
 
Test beautycleanness
Test beautycleannessTest beautycleanness
Test beautycleannessbergel
 
Presentation of Traits
Presentation of TraitsPresentation of Traits
Presentation of Traitsbergel
 

Destaque (9)

Identifying Equivalent Objects to Reduce Memory Consumption
Identifying Equivalent Objects to Reduce Memory ConsumptionIdentifying Equivalent Objects to Reduce Memory Consumption
Identifying Equivalent Objects to Reduce Memory Consumption
 
2004 Esug Prototalk
2004 Esug Prototalk2004 Esug Prototalk
2004 Esug Prototalk
 
2011 ecoop
2011 ecoop2011 ecoop
2011 ecoop
 
Classboxes
ClassboxesClassboxes
Classboxes
 
2008 Sccc Inheritance
2008 Sccc Inheritance2008 Sccc Inheritance
2008 Sccc Inheritance
 
2005 Oopsla Classboxj
2005 Oopsla Classboxj2005 Oopsla Classboxj
2005 Oopsla Classboxj
 
Roassal presentation
Roassal presentationRoassal presentation
Roassal presentation
 
Test beautycleanness
Test beautycleannessTest beautycleanness
Test beautycleanness
 
Presentation of Traits
Presentation of TraitsPresentation of Traits
Presentation of Traits
 

Semelhante a 2011 famoosr

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...Gilbert Paquette
 
The Evolution of Scala
The Evolution of ScalaThe Evolution of Scala
The Evolution of ScalaMartin Odersky
 
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)mircodotta
 
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)mircodotta
 
Construction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific LanguagesConstruction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific LanguagesThoughtWorks
 
Object Oriented Programming with COBOL
Object Oriented Programming with COBOLObject Oriented Programming with COBOL
Object Oriented Programming with COBOLMicro Focus
 
JaCIL_ a CLI to JVM Compiler
JaCIL_ a CLI to JVM CompilerJaCIL_ a CLI to JVM Compiler
JaCIL_ a CLI to JVM CompilerAlmann Goo
 
Advanced application architecture
Advanced application architectureAdvanced application architecture
Advanced application architectureMatthias Noback
 
Easy Data Object Relational Mapping Tool
Easy Data Object Relational Mapping ToolEasy Data Object Relational Mapping Tool
Easy Data Object Relational Mapping ToolHasitha Guruge
 
Java Collections Framework
Java  Collections  FrameworkJava  Collections  Framework
Java Collections Frameworkguestd8c458
 
B vb script11
B vb script11B vb script11
B vb script11oakhrd
 
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 OSCONAdrian Cockcroft
 
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, 2015Mark Wilkinson
 
Object-Oriented Application Frameworks
Object-Oriented Application FrameworksObject-Oriented Application Frameworks
Object-Oriented Application Frameworkskim.mens
 
Data access layer and schema definitions
Data access layer and schema definitionsData access layer and schema definitions
Data access layer and schema definitionsLuciano Resende
 
ITTutor Advanced Java (1).pptx
ITTutor Advanced Java (1).pptxITTutor Advanced Java (1).pptx
ITTutor Advanced Java (1).pptxkristinatemen
 
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 IDEBenjamin Cabé
 
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 ScalaMarakana Inc.
 
Java%20 collections%20framework
Java%20 collections%20frameworkJava%20 collections%20framework
Java%20 collections%20frameworkIlakkian
 

Semelhante a 2011 famoosr (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
 

Mais de bergel

Building Neural Network Through Neuroevolution
Building Neural Network Through NeuroevolutionBuilding Neural Network Through Neuroevolution
Building Neural Network Through Neuroevolutionbergel
 
Multi dimensional profiling
Multi dimensional profilingMulti dimensional profiling
Multi dimensional profilingbergel
 
Profiling blueprints
Profiling blueprintsProfiling blueprints
Profiling blueprintsbergel
 
The Pharo Programming Language
The Pharo Programming LanguageThe Pharo Programming Language
The Pharo Programming Languagebergel
 
2008 Sccc Smalltalk
2008 Sccc Smalltalk2008 Sccc Smalltalk
2008 Sccc Smalltalkbergel
 
2006 Seaside
2006 Seaside2006 Seaside
2006 Seasidebergel
 
2006 Small Scheme
2006 Small Scheme2006 Small Scheme
2006 Small Schemebergel
 
2006 Esug Omnibrowser
2006 Esug Omnibrowser2006 Esug Omnibrowser
2006 Esug Omnibrowserbergel
 

Mais de bergel (8)

Building Neural Network Through Neuroevolution
Building Neural Network Through NeuroevolutionBuilding Neural Network Through Neuroevolution
Building Neural Network Through Neuroevolution
 
Multi dimensional profiling
Multi dimensional profilingMulti dimensional profiling
Multi dimensional profiling
 
Profiling blueprints
Profiling blueprintsProfiling blueprints
Profiling blueprints
 
The Pharo Programming Language
The Pharo Programming LanguageThe Pharo Programming Language
The Pharo Programming Language
 
2008 Sccc Smalltalk
2008 Sccc Smalltalk2008 Sccc Smalltalk
2008 Sccc Smalltalk
 
2006 Seaside
2006 Seaside2006 Seaside
2006 Seaside
 
2006 Small Scheme
2006 Small Scheme2006 Small Scheme
2006 Small Scheme
 
2006 Esug Omnibrowser
2006 Esug Omnibrowser2006 Esug Omnibrowser
2006 Esug Omnibrowser
 

Último

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
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 Nanonetsnaman860154
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
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 WorkerThousandEyes
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 

Último (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
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
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 

2011 famoosr

  • 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