SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
8/18/05 © Tudor Gîrba
Understanding your code assets
with Moose
Stéphane Ducasse, Tudor Gîrba, Adrian Kuhn
Software Composition Group
University of Bern, Switzerland
Michele Lanza
Faculty of Informatics
University of Lugano, Switzerland
…
8/18/05 © Tudor Gîrba
2
Context: Software development is more than
forward engineering
Requirements
Analysis
Design
ImplementationTime
8/18/05 © Tudor Gîrba
3
Reverse engineering is creating high level views
of the system …
For example:
It provides an overview, by
striping away details
8/18/05 © Tudor Gîrba
4
Reverse engineering is creating high level views
of the system …
Large systems
Not an algorithm
Multiple techniques:
UML diagrams
Metrics
Visualization
…
8/18/05 © Tudor Gîrba
5
Moose is a reengineering tool which integrates
multiple techniques
Visualization
Evolution Analysis
Moose
…
Queries and Navigation
Number of classes = 382
Number of methods = 4268
…
Semantic Analysis
Metrics
word1 word2
8/18/05 © Tudor Gîrba
6
…
= 7Average number of
methods per class
= 4268Number of methods
= 382Number of classes
Metrics compress the system into numbers and
enable comparisons
Metrics can answer questions:
How big is the system?
How is the complexity spread over the system?
…
8/18/05 © Tudor Gîrba
7
Visualization compresses the system into
pictures
Visualization can provide:
Quick overview
Spatial orientation
…
8/18/05 © Tudor Gîrba
8
Visualization: Polymetric views can display up to
5 metrics on a 2D figure
Color
Metric
Position
Metrics
Width Metric
Height
Metric System
Complexity View
Class Blueprint
8/18/05 © Tudor Gîrba
9
Queries reduce the analysis space
Queries reveal:
Similar entities
Entities which are out of ordinary
Queries make use of properties (e.g., metrics)
8/18/05 © Tudor Gîrba
10
Moose at work: analyzing the structure of
software systems
Visualization
Queries and Navigation
Number of classes = 382
Number of methods = 4268
…
Metrics
8/18/05 © Tudor Gîrba
11
Semantic analysis attaches semantics to
structure
word1
word3
word2
…
Applicability:
Text Search
Semantic Clustering
…
8/18/05 © Tudor Gîrba
12
Moose at work: analyzing the semantics of
software systems
Semantic Analysis
word1 word2
8/18/05 © Tudor Gîrba
13
Time contains useful information for reverse
engineering
Time
Requirements
Analysis
Design
Implementation
8/18/05 © Tudor Gîrba
14
The evolution analysis compresses time through
metrics, visualization …
History can answer questions:
Which parts are change-prone?
How did the system get in the current shape?
…
Problem: Large amounts of data
8/18/05 © Tudor Gîrba
15
Our approach: History as a first class entity
encapsulates the evolution
Vers.1 Vers.2 Vers.3 Vers.4 Vers.5
History
A
B
C
D
8/18/05 © Tudor Gîrba
16
History can be measured: How much was a class
changed in its history?
4 2 3 31
3 + 2 + 1 + 0
Evolution of Number
of Methods (E_NOM)
Stability of Number
of Methods (S_NOM)
0 + 0 + 0 + 1
4
=
= = 0.25
= 6
8/18/05 © Tudor Gîrba
17
Moose at work: analyzing the history of software
systems
Evolution Analysis
8/18/05 © Tudor Gîrba
18
…
Actually, Moose is an environment for
reengineering
Van
VW Smalltalk
Java
C/C++ Parser
Cobol
Tools integration
mechanisms
Metrics
Language independent
model repository
CodeCrawler
Visualization
Evolution
analysis
…
Semantic analysis
Concept analysis
Dynamic analysis
Clustering
Duplication detection
…
8/18/05 © Tudor Gîrba
19
Class
Namespace
Method
Attribute
InvocationAccess
Inheritance
Package…
1
*
*
*
*
1
*
2
*21*
1
*
1*
Moose is language independent through the
FAMIX meta-model
Java Parser: jFamix Eclipse Plugin (http://jfamix.sourceforge.net/)
C++ Parser: Columbus (http://www.frontendart.com/products.html#Columbus)
Java/C++ Parser: iPlasma (Loose Research Group)
8/18/05 © Tudor Gîrba
20
Moose has been validated on real life systems
written in different languages
…………
~1800260’000SmalltalkSqueak
~4900300’000JavaJBoss
~700135’000SmalltalkJun
~110001’000’000C/C++X
~400120’000C++/JavaY
~23001’200’000C++Z
ClassesLines of CodeLanguageSystem
8/18/05 © Tudor Gîrba
21
Summary: Moose is an extensible and
collaborative reengineering environment
is research driven: metrics, visualization,
evolution analysis …
is industrially validated
is free under BSD license
Accessibility:
www.iam.unibe.ch/~scg/Research/Moose/
VisualWorks distribution CD
Questions?
8/18/05 © Tudor Gîrba
22
Ownership Map reveals how developers drive
software evolution

Más contenido relacionado

Similar a Understanding your code assets with Moose

Data Science as a Service: Intersection of Cloud Computing and Data Science
Data Science as a Service: Intersection of Cloud Computing and Data ScienceData Science as a Service: Intersection of Cloud Computing and Data Science
Data Science as a Service: Intersection of Cloud Computing and Data SciencePouria Amirian
 
Data Science as a Service: Intersection of Cloud Computing and Data Science
Data Science as a Service: Intersection of Cloud Computing and Data ScienceData Science as a Service: Intersection of Cloud Computing and Data Science
Data Science as a Service: Intersection of Cloud Computing and Data SciencePouria Amirian
 
Software Engineering Challenges in building AI-based complex systems
Software Engineering Challenges in building AI-based complex systemsSoftware Engineering Challenges in building AI-based complex systems
Software Engineering Challenges in building AI-based complex systemsIvica Crnkovic
 
Concepts, use cases and principles to build big data systems (1)
Concepts, use cases and principles to build big data systems (1)Concepts, use cases and principles to build big data systems (1)
Concepts, use cases and principles to build big data systems (1)Trieu Nguyen
 
Enterprise Metadata Integration, Cloudera
Enterprise Metadata Integration, ClouderaEnterprise Metadata Integration, Cloudera
Enterprise Metadata Integration, ClouderaNeo4j
 
Trivento summercamp masterclass 9/9/2016
Trivento summercamp masterclass 9/9/2016Trivento summercamp masterclass 9/9/2016
Trivento summercamp masterclass 9/9/2016Stavros Kontopoulos
 
Big Data is changing abruptly, and where it is likely heading
Big Data is changing abruptly, and where it is likely headingBig Data is changing abruptly, and where it is likely heading
Big Data is changing abruptly, and where it is likely headingPaco Nathan
 
Trivento summercamp fast data 9/9/2016
Trivento summercamp fast data 9/9/2016Trivento summercamp fast data 9/9/2016
Trivento summercamp fast data 9/9/2016Stavros Kontopoulos
 
AI challanges - Cse day-2018.04.12
AI challanges - Cse day-2018.04.12AI challanges - Cse day-2018.04.12
AI challanges - Cse day-2018.04.12Ivica Crnkovic
 
Graph Databases and Machine Learning | November 2018
Graph Databases and Machine Learning | November 2018Graph Databases and Machine Learning | November 2018
Graph Databases and Machine Learning | November 2018TigerGraph
 
StreamSight: A Query-Driven Framework Extending Streaming IoT Analytics to th...
StreamSight: A Query-Driven Framework Extending Streaming IoT Analytics to th...StreamSight: A Query-Driven Framework Extending Streaming IoT Analytics to th...
StreamSight: A Query-Driven Framework Extending Streaming IoT Analytics to th...Demetris Trihinas
 
Eecs6893 big dataanalytics-lecture1
Eecs6893 big dataanalytics-lecture1Eecs6893 big dataanalytics-lecture1
Eecs6893 big dataanalytics-lecture1Aravindharamanan S
 
TensorFlow 16: Building a Data Science Platform
TensorFlow 16: Building a Data Science Platform TensorFlow 16: Building a Data Science Platform
TensorFlow 16: Building a Data Science Platform Seldon
 
Hive at LinkedIn
Hive at LinkedIn Hive at LinkedIn
Hive at LinkedIn mislam77
 
Towards Scalable Model Views on Heterogeneous Model Resources - MODELS 2018 @...
Towards Scalable Model Views on Heterogeneous Model Resources - MODELS 2018 @...Towards Scalable Model Views on Heterogeneous Model Resources - MODELS 2018 @...
Towards Scalable Model Views on Heterogeneous Model Resources - MODELS 2018 @...Hugo Bruneliere
 
Distributed deep learning reference architecture v3.2l
Distributed deep learning reference architecture v3.2lDistributed deep learning reference architecture v3.2l
Distributed deep learning reference architecture v3.2lGanesan Narayanasamy
 
Cheryl Wiebe - Advanced Analytics in the Industrial World
Cheryl Wiebe - Advanced Analytics in the Industrial WorldCheryl Wiebe - Advanced Analytics in the Industrial World
Cheryl Wiebe - Advanced Analytics in the Industrial WorldRehgan Avon
 
ML Abstraciton for Keras to Serve Several Cases
ML Abstraciton for Keras to Serve Several CasesML Abstraciton for Keras to Serve Several Cases
ML Abstraciton for Keras to Serve Several CasesHendri Karisma
 

Similar a Understanding your code assets with Moose (20)

Data Science as a Service: Intersection of Cloud Computing and Data Science
Data Science as a Service: Intersection of Cloud Computing and Data ScienceData Science as a Service: Intersection of Cloud Computing and Data Science
Data Science as a Service: Intersection of Cloud Computing and Data Science
 
Data Science as a Service: Intersection of Cloud Computing and Data Science
Data Science as a Service: Intersection of Cloud Computing and Data ScienceData Science as a Service: Intersection of Cloud Computing and Data Science
Data Science as a Service: Intersection of Cloud Computing and Data Science
 
Software Engineering Challenges in building AI-based complex systems
Software Engineering Challenges in building AI-based complex systemsSoftware Engineering Challenges in building AI-based complex systems
Software Engineering Challenges in building AI-based complex systems
 
Concepts, use cases and principles to build big data systems (1)
Concepts, use cases and principles to build big data systems (1)Concepts, use cases and principles to build big data systems (1)
Concepts, use cases and principles to build big data systems (1)
 
Enterprise Metadata Integration, Cloudera
Enterprise Metadata Integration, ClouderaEnterprise Metadata Integration, Cloudera
Enterprise Metadata Integration, Cloudera
 
Trivento summercamp masterclass 9/9/2016
Trivento summercamp masterclass 9/9/2016Trivento summercamp masterclass 9/9/2016
Trivento summercamp masterclass 9/9/2016
 
Big Data is changing abruptly, and where it is likely heading
Big Data is changing abruptly, and where it is likely headingBig Data is changing abruptly, and where it is likely heading
Big Data is changing abruptly, and where it is likely heading
 
Simulation UNIT-I
Simulation    UNIT-ISimulation    UNIT-I
Simulation UNIT-I
 
Trivento summercamp fast data 9/9/2016
Trivento summercamp fast data 9/9/2016Trivento summercamp fast data 9/9/2016
Trivento summercamp fast data 9/9/2016
 
AI challanges - Cse day-2018.04.12
AI challanges - Cse day-2018.04.12AI challanges - Cse day-2018.04.12
AI challanges - Cse day-2018.04.12
 
Graph Databases and Machine Learning | November 2018
Graph Databases and Machine Learning | November 2018Graph Databases and Machine Learning | November 2018
Graph Databases and Machine Learning | November 2018
 
StreamSight: A Query-Driven Framework Extending Streaming IoT Analytics to th...
StreamSight: A Query-Driven Framework Extending Streaming IoT Analytics to th...StreamSight: A Query-Driven Framework Extending Streaming IoT Analytics to th...
StreamSight: A Query-Driven Framework Extending Streaming IoT Analytics to th...
 
Eecs6893 big dataanalytics-lecture1
Eecs6893 big dataanalytics-lecture1Eecs6893 big dataanalytics-lecture1
Eecs6893 big dataanalytics-lecture1
 
TensorFlow 16: Building a Data Science Platform
TensorFlow 16: Building a Data Science Platform TensorFlow 16: Building a Data Science Platform
TensorFlow 16: Building a Data Science Platform
 
Hive at LinkedIn
Hive at LinkedIn Hive at LinkedIn
Hive at LinkedIn
 
Towards Scalable Model Views on Heterogeneous Model Resources - MODELS 2018 @...
Towards Scalable Model Views on Heterogeneous Model Resources - MODELS 2018 @...Towards Scalable Model Views on Heterogeneous Model Resources - MODELS 2018 @...
Towards Scalable Model Views on Heterogeneous Model Resources - MODELS 2018 @...
 
Distributed deep learning reference architecture v3.2l
Distributed deep learning reference architecture v3.2lDistributed deep learning reference architecture v3.2l
Distributed deep learning reference architecture v3.2l
 
Cheryl Wiebe - Advanced Analytics in the Industrial World
Cheryl Wiebe - Advanced Analytics in the Industrial WorldCheryl Wiebe - Advanced Analytics in the Industrial World
Cheryl Wiebe - Advanced Analytics in the Industrial World
 
Algorithms
AlgorithmsAlgorithms
Algorithms
 
ML Abstraciton for Keras to Serve Several Cases
ML Abstraciton for Keras to Serve Several CasesML Abstraciton for Keras to Serve Several Cases
ML Abstraciton for Keras to Serve Several Cases
 

Más de 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 programmingESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in PharoESUG
 
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 RoadmapESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
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 resultsESUG
 
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 6ESUG
 
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 GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
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 ModesESUG
 
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 ReportESUG
 
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 APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
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 CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
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 JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
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 TransformationsESUG
 

Más de 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
 

Último

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
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
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
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 FresherRemote DBA Services
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
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 educationjfdjdjcjdnsjd
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 

Último (20)

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

Understanding your code assets with Moose

  • 1. 8/18/05 © Tudor Gîrba Understanding your code assets with Moose Stéphane Ducasse, Tudor Gîrba, Adrian Kuhn Software Composition Group University of Bern, Switzerland Michele Lanza Faculty of Informatics University of Lugano, Switzerland …
  • 2. 8/18/05 © Tudor Gîrba 2 Context: Software development is more than forward engineering Requirements Analysis Design ImplementationTime
  • 3. 8/18/05 © Tudor Gîrba 3 Reverse engineering is creating high level views of the system … For example: It provides an overview, by striping away details
  • 4. 8/18/05 © Tudor Gîrba 4 Reverse engineering is creating high level views of the system … Large systems Not an algorithm Multiple techniques: UML diagrams Metrics Visualization …
  • 5. 8/18/05 © Tudor Gîrba 5 Moose is a reengineering tool which integrates multiple techniques Visualization Evolution Analysis Moose … Queries and Navigation Number of classes = 382 Number of methods = 4268 … Semantic Analysis Metrics word1 word2
  • 6. 8/18/05 © Tudor Gîrba 6 … = 7Average number of methods per class = 4268Number of methods = 382Number of classes Metrics compress the system into numbers and enable comparisons Metrics can answer questions: How big is the system? How is the complexity spread over the system? …
  • 7. 8/18/05 © Tudor Gîrba 7 Visualization compresses the system into pictures Visualization can provide: Quick overview Spatial orientation …
  • 8. 8/18/05 © Tudor Gîrba 8 Visualization: Polymetric views can display up to 5 metrics on a 2D figure Color Metric Position Metrics Width Metric Height Metric System Complexity View Class Blueprint
  • 9. 8/18/05 © Tudor Gîrba 9 Queries reduce the analysis space Queries reveal: Similar entities Entities which are out of ordinary Queries make use of properties (e.g., metrics)
  • 10. 8/18/05 © Tudor Gîrba 10 Moose at work: analyzing the structure of software systems Visualization Queries and Navigation Number of classes = 382 Number of methods = 4268 … Metrics
  • 11. 8/18/05 © Tudor Gîrba 11 Semantic analysis attaches semantics to structure word1 word3 word2 … Applicability: Text Search Semantic Clustering …
  • 12. 8/18/05 © Tudor Gîrba 12 Moose at work: analyzing the semantics of software systems Semantic Analysis word1 word2
  • 13. 8/18/05 © Tudor Gîrba 13 Time contains useful information for reverse engineering Time Requirements Analysis Design Implementation
  • 14. 8/18/05 © Tudor Gîrba 14 The evolution analysis compresses time through metrics, visualization … History can answer questions: Which parts are change-prone? How did the system get in the current shape? … Problem: Large amounts of data
  • 15. 8/18/05 © Tudor Gîrba 15 Our approach: History as a first class entity encapsulates the evolution Vers.1 Vers.2 Vers.3 Vers.4 Vers.5 History A B C D
  • 16. 8/18/05 © Tudor Gîrba 16 History can be measured: How much was a class changed in its history? 4 2 3 31 3 + 2 + 1 + 0 Evolution of Number of Methods (E_NOM) Stability of Number of Methods (S_NOM) 0 + 0 + 0 + 1 4 = = = 0.25 = 6
  • 17. 8/18/05 © Tudor Gîrba 17 Moose at work: analyzing the history of software systems Evolution Analysis
  • 18. 8/18/05 © Tudor Gîrba 18 … Actually, Moose is an environment for reengineering Van VW Smalltalk Java C/C++ Parser Cobol Tools integration mechanisms Metrics Language independent model repository CodeCrawler Visualization Evolution analysis … Semantic analysis Concept analysis Dynamic analysis Clustering Duplication detection …
  • 19. 8/18/05 © Tudor Gîrba 19 Class Namespace Method Attribute InvocationAccess Inheritance Package… 1 * * * * 1 * 2 *21* 1 * 1* Moose is language independent through the FAMIX meta-model Java Parser: jFamix Eclipse Plugin (http://jfamix.sourceforge.net/) C++ Parser: Columbus (http://www.frontendart.com/products.html#Columbus) Java/C++ Parser: iPlasma (Loose Research Group)
  • 20. 8/18/05 © Tudor Gîrba 20 Moose has been validated on real life systems written in different languages ………… ~1800260’000SmalltalkSqueak ~4900300’000JavaJBoss ~700135’000SmalltalkJun ~110001’000’000C/C++X ~400120’000C++/JavaY ~23001’200’000C++Z ClassesLines of CodeLanguageSystem
  • 21. 8/18/05 © Tudor Gîrba 21 Summary: Moose is an extensible and collaborative reengineering environment is research driven: metrics, visualization, evolution analysis … is industrially validated is free under BSD license Accessibility: www.iam.unibe.ch/~scg/Research/Moose/ VisualWorks distribution CD Questions?
  • 22. 8/18/05 © Tudor Gîrba 22 Ownership Map reveals how developers drive software evolution