SlideShare une entreprise Scribd logo
1  sur  64
Télécharger pour lire hors ligne
Representing Code History with
Development Environment Events
Martín Dias, Damien Cassou, Stéphane Ducasse
RMoD
IWST 2013
Sunday, September 8, 13
Sunday, September 8, 13
Sunday, September 8, 13
Sunday, September 8, 13
Tetris.7
Sunday, September 8, 13
Tetris.7
Sunday, September 8, 13
Tetris.7
Sunday, September 8, 13
feature
Tetris.7
Sunday, September 8, 13
typos
feature
Tetris.7
Sunday, September 8, 13
typos
feature
Tetris.7
Sunday, September 8, 13
typos
feature
Tetris.7
Sunday, September 8, 13
typos
feature
Tetris.7
Sunday, September 8, 13
typos
feature
Tetris.7
Sunday, September 8, 13
typos
feature
Tetris.7
Tetris.8
Sunday, September 8, 13
typos
feature
Tetris.7
Tetris.8
Sunday, September 8, 13
typos
feature
Tetris.7
Tetris.8
Sunday, September 8, 13
typos
feature
Tetris.7
Tetris.8
Sunday, September 8, 13
typos
feature
Tetris.7
Tetris.8
Sunday, September 8, 13
typos
feature
Tetris.7
Tetris.8
Sunday, September 8, 13
typos
feature
Tetris.7
Tetris.8
Sunday, September 8, 13
Tetris.7
Tetris.8
Sunday, September 8, 13
Tetris.7just a list
of events
Tetris.8
Sunday, September 8, 13
Tetris.7just a list
of events
triggering
Tetris.8
Sunday, September 8, 13
( )typos
Tetris.7just a list
of events
triggering
custom
marks
Tetris.8
feature
Sunday, September 8, 13
Sunday, September 8, 13
Sunday, September 8, 13
Sunday, September 8, 13
#old #new
Sunday, September 8, 13
#old #new
Sunday, September 8, 13
#old #new
rename.cs
Sunday, September 8, 13
#old #new
rename.cs
Sunday, September 8, 13
Sunday, September 8, 13
sender of #old
Sunday, September 8, 13
sender of #old
Sunday, September 8, 13
sender of #old
Sunday, September 8, 13
sender of #old
rename.cs
Sunday, September 8, 13
sender of #old
rename.cs
MessageNotUnderstood:
#old
Sunday, September 8, 13
rename.cs
#new
#old
sender of #old
#old #new
sender of #old
Sunday, September 8, 13
rename.cs
#new
#old
sender of #old
#old #new
sender of #oldjust a list of
concrete
changes
Sunday, September 8, 13
rename.cs
#new
#old
sender of #old
#old #new
sender of #oldjust a list of
concrete
changes
triggering
Sunday, September 8, 13
rename.cs
#new
#old
sender of #old
#old #new
sender of #oldjust a list of
concrete
changes
triggering
authors
Sunday, September 8, 13
intention
sender of #old
rename.cs
#new
#old
sender of #old
#old #new
sender of #oldjust a list of
concrete
changes
triggering
authors
Sunday, September 8, 13
Sunday, September 8, 13
System Events
Code
Changes
Author Intention
Sunday, September 8, 13
Changes &
ChangeSet
Epicea
Do It
Events
Code
Changes
Sunday, September 8, 13
Changes &
ChangeSet
Epicea
Sunday, September 8, 13
Epicea
Sunday, September 8, 13
Pharo.changes
----STARTUP----an Array(
4 September 2013 4:10:31 pm) as
/Users/tinchodias/Pharo3.image!
Object
subclass: #Tetris
instanceVariableNames: 'player'
classVariableNames: ''
poolDictionaries: ''
category: 'Tetris-Core'!
Tetris new!
----SNAPSHOT----an Array(
4 September 2013 5:18:42 pm) Pharo3.image priorSource: 16186013!
!Tetris methodsFor: 'as yet unclassified' stamp: 'MartinDias 9/4/2013 17:45'!
player
	 ^ player! !
!Tetris methodsFor: 'as yet unclassified' stamp: 'MartinDias 9/4/2013 17:53' prior: 49756251!
player
	 "Answer the player"
	
	 ^ player! !
Sunday, September 8, 13
Pharo.changes
----STARTUP----an Array(
4 September 2013 4:10:31 pm) as
/Users/tinchodias/Pharo3.image!
Object
subclass: #Tetris
instanceVariableNames: 'player'
classVariableNames: ''
poolDictionaries: ''
category: 'Tetris-Core'!
Tetris new!
----SNAPSHOT----an Array(
4 September 2013 5:18:42 pm) Pharo3.image priorSource: 16186013!
!Tetris methodsFor: 'as yet unclassified' stamp: 'MartinDias 9/4/2013 17:45'!
player
	 ^ player! !
!Tetris methodsFor: 'as yet unclassified' stamp: 'MartinDias 9/4/2013 17:53' prior: 49756251!
player
	 "Answer the player"
	
	 ^ player! !
Sunday, September 8, 13
Pharo.changes
----STARTUP----an Array(
4 September 2013 4:10:31 pm) as
/Users/tinchodias/Pharo3.image!
Object
subclass: #Tetris
instanceVariableNames: 'player'
classVariableNames: ''
poolDictionaries: ''
category: 'Tetris-Core'!
Tetris new!
----SNAPSHOT----an Array(
4 September 2013 5:18:42 pm) Pharo3.image priorSource: 16186013!
!Tetris methodsFor: 'as yet unclassified' stamp: 'MartinDias 9/4/2013 17:45'!
player
	 ^ player! !
!Tetris methodsFor: 'as yet unclassified' stamp: 'MartinDias 9/4/2013 17:53' prior: 49756251!
player
	 "Answer the player"
	
	 ^ player! !
Sunday, September 8, 13
Pharo.changes
----STARTUP----an Array(
4 September 2013 4:10:31 pm) as
/Users/tinchodias/Pharo3.image!
Object
subclass: #Tetris
instanceVariableNames: 'player'
classVariableNames: ''
poolDictionaries: ''
category: 'Tetris-Core'!
Tetris new!
----SNAPSHOT----an Array(
4 September 2013 5:18:42 pm) Pharo3.image priorSource: 16186013!
!Tetris methodsFor: 'as yet unclassified' stamp: 'MartinDias 9/4/2013 17:45'!
player
	 ^ player! !
!Tetris methodsFor: 'as yet unclassified' stamp: 'MartinDias 9/4/2013 17:53' prior: 49756251!
player
	 "Answer the player"
	
	 ^ player! !
Sunday, September 8, 13
!
!
!
!
!
!
Changes/
ChangeSet Ombu
Sunday, September 8, 13
!
!
!
!
!
!
Changes/
ChangeSet Ombu
Sunday, September 8, 13
!
!
!
!
!
!
Changes/
ChangeSet Ombu
Sunday, September 8, 13
Requirements
Mini Macro
Sunday, September 8, 13
Requirements
• Simple
Mini Macro
Sunday, September 8, 13
Requirements
• Simple
• Solid
Mini Macro
Sunday, September 8, 13
Requirements
• Simple
• Solid
• Distributed
Mini Macro
Sunday, September 8, 13
Requirements
• Simple
• Solid
• Distributed
• Lightweight
Mini Macro
Sunday, September 8, 13
Requirements
• Simple
• Solid
• Distributed
• Lightweight
• Stable
Mini Macro
Sunday, September 8, 13
Requirements
• Simple
• Solid
• Distributed
• Lightweight
• Stable
• Extensible
Mini Macro
Sunday, September 8, 13
Epicea
Ombu
Sunday, September 8, 13
Sunday, September 8, 13
Representing Code History with
Development Environment Events
Martín Dias, Damien Cassou, Stéphane Ducasse
RMoD
IWST 2013
http://smalltalkhub.com/#!/~MartinDias/Epicea
Ombu
Epicea
Sunday, September 8, 13

Contenu connexe

Plus 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 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
 

Plus 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
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

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...
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 

Representing Code History with Development Environment Events