SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
The Cha-Q Meta-Model:
A Comprehensive, Change-Centric
Software Representation
Coen De Roover, Christophe Scholliers,
Angela Lozano, Viviane Jonckers
Javier Perez, Alessandro Murgia,

Serge Demeyer
Cha-Q Meta-Model
➜ to be shared by prototypes for analyzing, repeating, tracing changes

first interconnected representation of:
✓ state & evolution of the different entities of a software system
change
✓ each change to an entity that results in a new entity state

snapshots
✓ system snapshots under control of a VCS
object-oriented (i.e., each concept and relation is represented by a class)
driven by positive experience with FAMIX, RING/C/H, Cheops
memory-efficient tracking of states
driven by poor scalability reported for Hismo and Syde
Cha-Q Meta Model: Overview & Inspiration

state & evolution
change

versioning

Ring/H, FAMIX, Hismo
ChEOPS, UniCase, Ring/C, Spyware, Syde
Evolizer, STNACockpit
Change: Overview of Representation
predecessor states are accessible

applying a change
results in a new
entity state

and might trigger derived
changes to other entity states

to enable reverting, 

changes keep track of old state
of modified or deleted entity

PropertyChange hierarchy mirrors
PropertyDescriptor hierarchy
insert an entity at a particular position in a list of entities
Change: Change Dependencies
a change object c2 depends upon
another change object c1 if 

applying c2 without c1 would violate
invariants of the meta-model

transactional dependency:
both are part of the same transaction which schedules c1 before c2
e.g., program transformations
containment dependency:
the subject of c1 is the owner of the subject of c2
e.g., owner of a field declaration is its declaring class
type/method/variable dependency
c1 creates a type/method/variable declaration referred to by c2
e.g., type of a parameter declaration
Evolution: Overview of Representation
accumulates the effect of one or more changes

represents the state of the system at a
particular point in time, as seen by a particular
developer

each EntityState knows in which
Snapshot to start looking up
EntityIdentifiers

the values of an EntityState’s
properties are EntityIdentifiers

subclasses
represent system
artefacts that are
subject to change, of
which the evolution is
to be tracked

modeled after languageindependent FAMIX3 meta-model
modeled after abstract
grammar of JDT (Java) and
OmniBrowser (Smalltalk)

enables tracking the
evolution of an entity
throughout its lifetime

PropertyDescriptor
describes the name, owner and
value type of each property
inheritance (ID12)

class Lion (ID4)

package Model (ID1)

subclass -> ID4
superclass -> ID3

Evolution: Memory-Efficient State Tracking
classes -> {ID2, ID3, ID4}

inheritance -> ID12

class Zoo (ID2)

class Animal (ID3)

attributes -> {ID5}
methods -> {ID6, ID7}

methods -> {ID8}

method eat (ID8)

copying an entity each time its state (ID6)
changes isaccess (ID9)
expensive
method addAnimals
accesses ->
->
for snapshot-centric Hismo {ID9}
model: 70minaccessor-> ID5
for fullID6
snapshot copy of 350MB
attribute animals (ID5)
references -> {ID10}
attribute
for change-centric Syde model: 3GB for SVN repo of 78MB created in
reference (ID10)
invocation (ID11)
method feedAnimals (ID7)
snapshot

source -> ID6
target -> ID3

sender -> ID7
receiver -> ID8

invocations -> {ID11}

selective cloning is difficult to implement
all entities are transitively interconnected
predecessor

pointer

Snapshot 2
snapshot's elements

Model
Zoo
animals
addAnimals
feedAnimals

access

refers

Animal
name
eat

invokes

modified
package Model

removed class
Lion (ID4)

identifier-based technique used by
Orion and Ring/H meta-models

ID1 -> package Model
ID2 -> class Zoo
ID3 -> class Animal
ID4 -> X
ID5 -> attribute animals
ID6 -> method addAnimals
ID7 -> method feedAnimals
ID8 -> method eat
ID9 -> access addAnimals::animals
ID10 -> reference addAnimals::Animal
ID11 -> invocation feedAnimals::eat
ID12 -> X
ID13 -> attribute name

performing a PropertyChange:
removed
inheritance
Lion::Animal
(ID12)

package Model (ID1)

classes -> {ID2, ID3}

attributes -> {ID13}
methods -> {ID8}

class Zoo (ID2)

attributes -> {ID5}
methods -> {ID6, ID7}

method eat (ID8)
method addAnimals (ID6)

accesses -> {ID9}
references -> {ID10}

attribute animals (ID5)
method feedAnimals (ID7)

invocations -> {ID11}

attribute name (ID13)

class Animal (ID3)

added attribute
name (ID13)

modified class
Animal

1/ clone EntityState
2/ update snapshot’s mapping

from ID to clone
3/ update property value
in clone

access (ID9)

accessor -> ID6
attribute -> ID5

invocation (ID11)

reference (ID10)

sender -> ID7
receiver -> ID8

source -> ID6
target -> ID3

created in snapshot
shared with a
previous predecessor
pointer

[Uquillas 12]
Versioning & Issues: Overview of Representation
revisions can be associated with a logical branch,
identified by a site-specific BranchIdentifier

a modification report
is associated with each
snapshot placed under
version control

multiple successors 

and predecessors
accommodate physical
branching and merging

reports can mention and
close reported issues

issue-related information is
subject to change, and hence
represented by EntityState
subclasses
Implementation Highlight: Annotation Metadata
v1

public class BreakStatement extends Statement {	
	
@EntityProperty(value = SimpleName.class)	
	
private EntityIdentifier label;	

!

annotation for properties of
which evolution is to be tracked

	
	
	

public EntityIdentifier getLabel() {	
	
return label;	
}	

	
	
	
}

public void setLabel(EntityIdentifier label) {	
	
this.label = label;	
}	

!

v2

public class BreakStatement extends Statement {	
	
@EntityProperty(value = SimpleName.class)	
	
private EntityIdentifier<SimpleName> label;	

!

	
	
	

public EntityIdentifier<SimpleName> getLabel() {	
	
return label;	
}	

	
	
	
}

public void setLabel(EntityIdentifier<SimpleName> label) {	
	
this.label = label;	
}	

!

more typesafe version,
obtained through our own rewriting tool!
Implementation Highlight: Persistence
@EntityProperty +

S

I

ES

I

+ weak references

S

snapshot
nodes

I

I

C

ES

I

snapshot-specific identifier mappings

entity state and change nodes
Implementation Highlight: Disk Footprint
evolution of Exapus project (http://github.com/cderoove/Exapus)
single revision: 194149 nodes, 223979 properties, and 194147 relationships of 32 distinct types
on average: 22,5 files per revision changed
4000"

3500"

3000"

Database'Size'(mb)'
'

2500"

2000"

confirms advantages of state sharing previously
observed in Orion and Ring/H meta-models

Naive"
Cha3Q"

1500"

1000"

500"

but for graph-persisted rather than Smalltalk-persisted meta-models
and for more fine-grained information (e.g., AST nodes)

0"
1"

2"

3"

4"

5"

6"

7"

8"

9"

10" 11" 12" 13" 14" 15" 16" 17" 18" 19" 20" 21" 22" 23" 24" 25" 26" 27" 28" 29" 30" 31" 32" 33"
Revision'
Conclusions
defines the first interconnected representation of:
✓ state & evolution of the different entities of a software system
change
✓ each change to an entity that results in a new entity state

snapshots
✓ system snapshots under control of a VCS
implementation highlights:
+

✓ memory-efficient
=

✓ familiar OO API for tool builders

http://soft.vub.ac.be/chaq/ for upcoming tools that share our meta-model!

Mais conteúdo relacionado

Destaque

A logic foundation for template-based program transformation in Eclipse
A logic foundation for template-based program transformation in EclipseA logic foundation for template-based program transformation in Eclipse
A logic foundation for template-based program transformation in EclipseCoen De Roover
 
Collier Creative – PPT presentation showcase
Collier Creative – PPT presentation showcaseCollier Creative – PPT presentation showcase
Collier Creative – PPT presentation showcaseCollier Creative
 
Design Documentation
Design DocumentationDesign Documentation
Design DocumentationPeter Boersma
 
Towards a Unified Business Strategy Language: a Meta-model of Strategy Maps
Towards a Unified Business Strategy Language: a Meta-model of Strategy MapsTowards a Unified Business Strategy Language: a Meta-model of Strategy Maps
Towards a Unified Business Strategy Language: a Meta-model of Strategy MapsCωνσtantίnoς Giannoulis
 
この20年に見るシステム工学とインターネットテクノロジー
この20年に見るシステム工学とインターネットテクノロジーこの20年に見るシステム工学とインターネットテクノロジー
この20年に見るシステム工学とインターネットテクノロジー馮 富久
 
Meta Model Parts
Meta Model PartsMeta Model Parts
Meta Model Partshenkharms
 
Everware cbdi-mm l1
Everware cbdi-mm l1Everware cbdi-mm l1
Everware cbdi-mm l1David Sprott
 
Meta data migration
Meta data migrationMeta data migration
Meta data migrationMahesh Varde
 
System Architecture Meta Model
System Architecture Meta ModelSystem Architecture Meta Model
System Architecture Meta ModelEmmanuel Fuchs
 
Beck2
Beck2Beck2
Beck2dirk
 
Model-driven Strategic Awareness: From a Unified Business Strategy Meta-model...
Model-driven Strategic Awareness: From a Unified Business Strategy Meta-model...Model-driven Strategic Awareness: From a Unified Business Strategy Meta-model...
Model-driven Strategic Awareness: From a Unified Business Strategy Meta-model...Cωνσtantίnoς Giannoulis
 
Meta cloud architecture for the mobile agile enterprise
Meta cloud architecture for the mobile agile enterpriseMeta cloud architecture for the mobile agile enterprise
Meta cloud architecture for the mobile agile enterpriseEvarist Lobo
 
CMA-ES with local meta-models
CMA-ES with local meta-modelsCMA-ES with local meta-models
CMA-ES with local meta-modelszyedb
 
MR^3: Meta-Model Management based on RDFs Revision Reflection
MR^3: Meta-Model Management based on RDFs Revision ReflectionMR^3: Meta-Model Management based on RDFs Revision Reflection
MR^3: Meta-Model Management based on RDFs Revision ReflectionTakeshi Morita
 
Quality, and the 7Loci Meta-Model as one of my 2016-2017 lectures at the Univ...
Quality, and the 7Loci Meta-Model as one of my 2016-2017 lectures at the Univ...Quality, and the 7Loci Meta-Model as one of my 2016-2017 lectures at the Univ...
Quality, and the 7Loci Meta-Model as one of my 2016-2017 lectures at the Univ...Roberto Peretta
 
COBI 2014 - An Empirical Evaluation of Capability Modelling using Design Rati...
COBI 2014 - An Empirical Evaluation of Capability Modelling using Design Rati...COBI 2014 - An Empirical Evaluation of Capability Modelling using Design Rati...
COBI 2014 - An Empirical Evaluation of Capability Modelling using Design Rati...CaaS EU FP7 Project
 

Destaque (20)

A logic foundation for template-based program transformation in Eclipse
A logic foundation for template-based program transformation in EclipseA logic foundation for template-based program transformation in Eclipse
A logic foundation for template-based program transformation in Eclipse
 
Collier Creative – PPT presentation showcase
Collier Creative – PPT presentation showcaseCollier Creative – PPT presentation showcase
Collier Creative – PPT presentation showcase
 
Design Documentation
Design DocumentationDesign Documentation
Design Documentation
 
Capability Showcase
Capability ShowcaseCapability Showcase
Capability Showcase
 
Towards a Unified Business Strategy Language: a Meta-model of Strategy Maps
Towards a Unified Business Strategy Language: a Meta-model of Strategy MapsTowards a Unified Business Strategy Language: a Meta-model of Strategy Maps
Towards a Unified Business Strategy Language: a Meta-model of Strategy Maps
 
この20年に見るシステム工学とインターネットテクノロジー
この20年に見るシステム工学とインターネットテクノロジーこの20年に見るシステム工学とインターネットテクノロジー
この20年に見るシステム工学とインターネットテクノロジー
 
Meta Model Parts
Meta Model PartsMeta Model Parts
Meta Model Parts
 
Everware cbdi-mm l1
Everware cbdi-mm l1Everware cbdi-mm l1
Everware cbdi-mm l1
 
Meta data migration
Meta data migrationMeta data migration
Meta data migration
 
System Architecture Meta Model
System Architecture Meta ModelSystem Architecture Meta Model
System Architecture Meta Model
 
Ui components development
Ui components developmentUi components development
Ui components development
 
Beck2
Beck2Beck2
Beck2
 
Cloud meta model
Cloud meta modelCloud meta model
Cloud meta model
 
Model-driven Strategic Awareness: From a Unified Business Strategy Meta-model...
Model-driven Strategic Awareness: From a Unified Business Strategy Meta-model...Model-driven Strategic Awareness: From a Unified Business Strategy Meta-model...
Model-driven Strategic Awareness: From a Unified Business Strategy Meta-model...
 
Meta cloud architecture for the mobile agile enterprise
Meta cloud architecture for the mobile agile enterpriseMeta cloud architecture for the mobile agile enterprise
Meta cloud architecture for the mobile agile enterprise
 
Final Evaluation
Final EvaluationFinal Evaluation
Final Evaluation
 
CMA-ES with local meta-models
CMA-ES with local meta-modelsCMA-ES with local meta-models
CMA-ES with local meta-models
 
MR^3: Meta-Model Management based on RDFs Revision Reflection
MR^3: Meta-Model Management based on RDFs Revision ReflectionMR^3: Meta-Model Management based on RDFs Revision Reflection
MR^3: Meta-Model Management based on RDFs Revision Reflection
 
Quality, and the 7Loci Meta-Model as one of my 2016-2017 lectures at the Univ...
Quality, and the 7Loci Meta-Model as one of my 2016-2017 lectures at the Univ...Quality, and the 7Loci Meta-Model as one of my 2016-2017 lectures at the Univ...
Quality, and the 7Loci Meta-Model as one of my 2016-2017 lectures at the Univ...
 
COBI 2014 - An Empirical Evaluation of Capability Modelling using Design Rati...
COBI 2014 - An Empirical Evaluation of Capability Modelling using Design Rati...COBI 2014 - An Empirical Evaluation of Capability Modelling using Design Rati...
COBI 2014 - An Empirical Evaluation of Capability Modelling using Design Rati...
 

Semelhante a The Cha-Q Meta-Model: A Comprehensive, Change-Centric Software Representation

lecture10-patterns.ppt
lecture10-patterns.pptlecture10-patterns.ppt
lecture10-patterns.pptAnkitPangasa1
 
lecture10-patterns.ppt
lecture10-patterns.pptlecture10-patterns.ppt
lecture10-patterns.pptbryafaissal
 
Requirements vs design vs runtime
Requirements vs design vs runtimeRequirements vs design vs runtime
Requirements vs design vs runtimebdemchak
 
WPF Windows Presentation Foundation A detailed overview Version1.2
WPF Windows Presentation Foundation A detailed overview Version1.2WPF Windows Presentation Foundation A detailed overview Version1.2
WPF Windows Presentation Foundation A detailed overview Version1.2Shahzad
 
Extending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective LanguagesExtending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective Languagesfranciscoortin
 
Android Architecture Components
Android Architecture ComponentsAndroid Architecture Components
Android Architecture ComponentsDarshan Parikh
 
iOS Architectures
iOS ArchitecturesiOS Architectures
iOS ArchitecturesHung Hoang
 
Introduction to c_plus_plus
Introduction to c_plus_plusIntroduction to c_plus_plus
Introduction to c_plus_plusSayed Ahmed
 
Introduction to c_plus_plus (6)
Introduction to c_plus_plus (6)Introduction to c_plus_plus (6)
Introduction to c_plus_plus (6)Sayed Ahmed
 
Analyzing Changes in Software Systems From ChangeDistiller to FMDiff
Analyzing Changes in Software Systems From ChangeDistiller to FMDiffAnalyzing Changes in Software Systems From ChangeDistiller to FMDiff
Analyzing Changes in Software Systems From ChangeDistiller to FMDiffMartin Pinzger
 
Behavioral Design Patterns
Behavioral Design PatternsBehavioral Design Patterns
Behavioral Design PatternsLidan Hifi
 
Configuration Management
Configuration ManagementConfiguration Management
Configuration Managementelliando dias
 

Semelhante a The Cha-Q Meta-Model: A Comprehensive, Change-Centric Software Representation (20)

lecture10-patterns.ppt
lecture10-patterns.pptlecture10-patterns.ppt
lecture10-patterns.ppt
 
lecture10-patterns.ppt
lecture10-patterns.pptlecture10-patterns.ppt
lecture10-patterns.ppt
 
Deployment
DeploymentDeployment
Deployment
 
Requirements vs design vs runtime
Requirements vs design vs runtimeRequirements vs design vs runtime
Requirements vs design vs runtime
 
WPF Windows Presentation Foundation A detailed overview Version1.2
WPF Windows Presentation Foundation A detailed overview Version1.2WPF Windows Presentation Foundation A detailed overview Version1.2
WPF Windows Presentation Foundation A detailed overview Version1.2
 
Extending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective LanguagesExtending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective Languages
 
Hibernate
HibernateHibernate
Hibernate
 
Android Architecture Components
Android Architecture ComponentsAndroid Architecture Components
Android Architecture Components
 
iOS Architectures
iOS ArchitecturesiOS Architectures
iOS Architectures
 
Hibernate
HibernateHibernate
Hibernate
 
Introduction to c_plus_plus
Introduction to c_plus_plusIntroduction to c_plus_plus
Introduction to c_plus_plus
 
Introduction to c_plus_plus (6)
Introduction to c_plus_plus (6)Introduction to c_plus_plus (6)
Introduction to c_plus_plus (6)
 
ReactJS (1)
ReactJS (1)ReactJS (1)
ReactJS (1)
 
Ch08
Ch08Ch08
Ch08
 
Ch08
Ch08Ch08
Ch08
 
Application Hosting
Application HostingApplication Hosting
Application Hosting
 
Analyzing Changes in Software Systems From ChangeDistiller to FMDiff
Analyzing Changes in Software Systems From ChangeDistiller to FMDiffAnalyzing Changes in Software Systems From ChangeDistiller to FMDiff
Analyzing Changes in Software Systems From ChangeDistiller to FMDiff
 
Behavioral Design Patterns
Behavioral Design PatternsBehavioral Design Patterns
Behavioral Design Patterns
 
Configuration Management
Configuration ManagementConfiguration Management
Configuration Management
 
.NET Reflection
.NET Reflection.NET Reflection
.NET Reflection
 

Mais de Coen De Roover

A Recommender System for Refining Ekeko/X Transformation
A Recommender System for Refining Ekeko/X TransformationA Recommender System for Refining Ekeko/X Transformation
A Recommender System for Refining Ekeko/X TransformationCoen De Roover
 
A recommender system for generalizing and refining code templates
A recommender system for generalizing and refining code templatesA recommender system for generalizing and refining code templates
A recommender system for generalizing and refining code templatesCoen De Roover
 
Applicative Logic Meta-Programming as the foundation for Template-based Progr...
Applicative Logic Meta-Programming as the foundation for Template-based Progr...Applicative Logic Meta-Programming as the foundation for Template-based Progr...
Applicative Logic Meta-Programming as the foundation for Template-based Progr...Coen De Roover
 
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13Coen De Roover
 
Detecting aspect-specific code smells using Ekeko for AspectJ
Detecting aspect-specific code smells using Ekeko for AspectJDetecting aspect-specific code smells using Ekeko for AspectJ
Detecting aspect-specific code smells using Ekeko for AspectJCoen De Roover
 
Ekeko Technology Showdown at SoTeSoLa 2012
Ekeko Technology Showdown at SoTeSoLa 2012Ekeko Technology Showdown at SoTeSoLa 2012
Ekeko Technology Showdown at SoTeSoLa 2012Coen De Roover
 
CrimeSPOT: Language Support for Programming Interactions among Wireless Senso...
CrimeSPOT: Language Support for Programming Interactions among Wireless Senso...CrimeSPOT: Language Support for Programming Interactions among Wireless Senso...
CrimeSPOT: Language Support for Programming Interactions among Wireless Senso...Coen De Roover
 
A Logic Meta-Programming Foundation for Example-Driven Pattern Detection in O...
A Logic Meta-Programming Foundation for Example-Driven Pattern Detection in O...A Logic Meta-Programming Foundation for Example-Driven Pattern Detection in O...
A Logic Meta-Programming Foundation for Example-Driven Pattern Detection in O...Coen De Roover
 
The SOUL Tool Suite for Querying Programs in Symbiosis with Eclipse
The SOUL Tool Suite for Querying Programs in Symbiosis with EclipseThe SOUL Tool Suite for Querying Programs in Symbiosis with Eclipse
The SOUL Tool Suite for Querying Programs in Symbiosis with EclipseCoen De Roover
 
The STADiUM language framework for capturing domain-specific interaction patt...
The STADiUM language framework for capturing domain-specific interaction patt...The STADiUM language framework for capturing domain-specific interaction patt...
The STADiUM language framework for capturing domain-specific interaction patt...Coen De Roover
 
UbiLab@SOFT: A tale of ubiquitous bears, flyswatters 
and punching bags in ed...
UbiLab@SOFT: A tale of ubiquitous bears, flyswatters 
and punching bags in ed...UbiLab@SOFT: A tale of ubiquitous bears, flyswatters 
and punching bags in ed...
UbiLab@SOFT: A tale of ubiquitous bears, flyswatters 
and punching bags in ed...Coen De Roover
 
Logic-based program transformation in symbiosis with Eclipse
Logic-based program transformation in symbiosis with EclipseLogic-based program transformation in symbiosis with Eclipse
Logic-based program transformation in symbiosis with EclipseCoen De Roover
 

Mais de Coen De Roover (12)

A Recommender System for Refining Ekeko/X Transformation
A Recommender System for Refining Ekeko/X TransformationA Recommender System for Refining Ekeko/X Transformation
A Recommender System for Refining Ekeko/X Transformation
 
A recommender system for generalizing and refining code templates
A recommender system for generalizing and refining code templatesA recommender system for generalizing and refining code templates
A recommender system for generalizing and refining code templates
 
Applicative Logic Meta-Programming as the foundation for Template-based Progr...
Applicative Logic Meta-Programming as the foundation for Template-based Progr...Applicative Logic Meta-Programming as the foundation for Template-based Progr...
Applicative Logic Meta-Programming as the foundation for Template-based Progr...
 
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
 
Detecting aspect-specific code smells using Ekeko for AspectJ
Detecting aspect-specific code smells using Ekeko for AspectJDetecting aspect-specific code smells using Ekeko for AspectJ
Detecting aspect-specific code smells using Ekeko for AspectJ
 
Ekeko Technology Showdown at SoTeSoLa 2012
Ekeko Technology Showdown at SoTeSoLa 2012Ekeko Technology Showdown at SoTeSoLa 2012
Ekeko Technology Showdown at SoTeSoLa 2012
 
CrimeSPOT: Language Support for Programming Interactions among Wireless Senso...
CrimeSPOT: Language Support for Programming Interactions among Wireless Senso...CrimeSPOT: Language Support for Programming Interactions among Wireless Senso...
CrimeSPOT: Language Support for Programming Interactions among Wireless Senso...
 
A Logic Meta-Programming Foundation for Example-Driven Pattern Detection in O...
A Logic Meta-Programming Foundation for Example-Driven Pattern Detection in O...A Logic Meta-Programming Foundation for Example-Driven Pattern Detection in O...
A Logic Meta-Programming Foundation for Example-Driven Pattern Detection in O...
 
The SOUL Tool Suite for Querying Programs in Symbiosis with Eclipse
The SOUL Tool Suite for Querying Programs in Symbiosis with EclipseThe SOUL Tool Suite for Querying Programs in Symbiosis with Eclipse
The SOUL Tool Suite for Querying Programs in Symbiosis with Eclipse
 
The STADiUM language framework for capturing domain-specific interaction patt...
The STADiUM language framework for capturing domain-specific interaction patt...The STADiUM language framework for capturing domain-specific interaction patt...
The STADiUM language framework for capturing domain-specific interaction patt...
 
UbiLab@SOFT: A tale of ubiquitous bears, flyswatters 
and punching bags in ed...
UbiLab@SOFT: A tale of ubiquitous bears, flyswatters 
and punching bags in ed...UbiLab@SOFT: A tale of ubiquitous bears, flyswatters 
and punching bags in ed...
UbiLab@SOFT: A tale of ubiquitous bears, flyswatters 
and punching bags in ed...
 
Logic-based program transformation in symbiosis with Eclipse
Logic-based program transformation in symbiosis with EclipseLogic-based program transformation in symbiosis with Eclipse
Logic-based program transformation in symbiosis with Eclipse
 

Último

Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 

Último (20)

Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 

The Cha-Q Meta-Model: A Comprehensive, Change-Centric Software Representation

  • 1. The Cha-Q Meta-Model: A Comprehensive, Change-Centric Software Representation Coen De Roover, Christophe Scholliers, Angela Lozano, Viviane Jonckers Javier Perez, Alessandro Murgia,
 Serge Demeyer
  • 2. Cha-Q Meta-Model ➜ to be shared by prototypes for analyzing, repeating, tracing changes first interconnected representation of: ✓ state & evolution of the different entities of a software system change ✓ each change to an entity that results in a new entity state snapshots ✓ system snapshots under control of a VCS object-oriented (i.e., each concept and relation is represented by a class) driven by positive experience with FAMIX, RING/C/H, Cheops memory-efficient tracking of states driven by poor scalability reported for Hismo and Syde
  • 3. Cha-Q Meta Model: Overview & Inspiration state & evolution change versioning Ring/H, FAMIX, Hismo ChEOPS, UniCase, Ring/C, Spyware, Syde Evolizer, STNACockpit
  • 4. Change: Overview of Representation predecessor states are accessible applying a change results in a new entity state and might trigger derived changes to other entity states to enable reverting, 
 changes keep track of old state of modified or deleted entity PropertyChange hierarchy mirrors PropertyDescriptor hierarchy insert an entity at a particular position in a list of entities
  • 5. Change: Change Dependencies a change object c2 depends upon another change object c1 if 
 applying c2 without c1 would violate invariants of the meta-model transactional dependency: both are part of the same transaction which schedules c1 before c2 e.g., program transformations containment dependency: the subject of c1 is the owner of the subject of c2 e.g., owner of a field declaration is its declaring class type/method/variable dependency c1 creates a type/method/variable declaration referred to by c2 e.g., type of a parameter declaration
  • 6. Evolution: Overview of Representation accumulates the effect of one or more changes represents the state of the system at a particular point in time, as seen by a particular developer each EntityState knows in which Snapshot to start looking up EntityIdentifiers the values of an EntityState’s properties are EntityIdentifiers subclasses represent system artefacts that are subject to change, of which the evolution is to be tracked modeled after languageindependent FAMIX3 meta-model modeled after abstract grammar of JDT (Java) and OmniBrowser (Smalltalk) enables tracking the evolution of an entity throughout its lifetime PropertyDescriptor describes the name, owner and value type of each property
  • 7. inheritance (ID12) class Lion (ID4) package Model (ID1) subclass -> ID4 superclass -> ID3 Evolution: Memory-Efficient State Tracking classes -> {ID2, ID3, ID4} inheritance -> ID12 class Zoo (ID2) class Animal (ID3) attributes -> {ID5} methods -> {ID6, ID7} methods -> {ID8} method eat (ID8) copying an entity each time its state (ID6) changes isaccess (ID9) expensive method addAnimals accesses -> -> for snapshot-centric Hismo {ID9} model: 70minaccessor-> ID5 for fullID6 snapshot copy of 350MB attribute animals (ID5) references -> {ID10} attribute for change-centric Syde model: 3GB for SVN repo of 78MB created in reference (ID10) invocation (ID11) method feedAnimals (ID7) snapshot source -> ID6 target -> ID3 sender -> ID7 receiver -> ID8 invocations -> {ID11} selective cloning is difficult to implement all entities are transitively interconnected predecessor pointer Snapshot 2 snapshot's elements Model Zoo animals addAnimals feedAnimals access refers Animal name eat invokes modified package Model removed class Lion (ID4) identifier-based technique used by Orion and Ring/H meta-models ID1 -> package Model ID2 -> class Zoo ID3 -> class Animal ID4 -> X ID5 -> attribute animals ID6 -> method addAnimals ID7 -> method feedAnimals ID8 -> method eat ID9 -> access addAnimals::animals ID10 -> reference addAnimals::Animal ID11 -> invocation feedAnimals::eat ID12 -> X ID13 -> attribute name performing a PropertyChange: removed inheritance Lion::Animal (ID12) package Model (ID1) classes -> {ID2, ID3} attributes -> {ID13} methods -> {ID8} class Zoo (ID2) attributes -> {ID5} methods -> {ID6, ID7} method eat (ID8) method addAnimals (ID6) accesses -> {ID9} references -> {ID10} attribute animals (ID5) method feedAnimals (ID7) invocations -> {ID11} attribute name (ID13) class Animal (ID3) added attribute name (ID13) modified class Animal 1/ clone EntityState 2/ update snapshot’s mapping
 from ID to clone 3/ update property value in clone access (ID9) accessor -> ID6 attribute -> ID5 invocation (ID11) reference (ID10) sender -> ID7 receiver -> ID8 source -> ID6 target -> ID3 created in snapshot shared with a previous predecessor pointer [Uquillas 12]
  • 8. Versioning & Issues: Overview of Representation revisions can be associated with a logical branch, identified by a site-specific BranchIdentifier a modification report is associated with each snapshot placed under version control multiple successors 
 and predecessors accommodate physical branching and merging reports can mention and close reported issues issue-related information is subject to change, and hence represented by EntityState subclasses
  • 9. Implementation Highlight: Annotation Metadata v1 public class BreakStatement extends Statement { @EntityProperty(value = SimpleName.class) private EntityIdentifier label; ! annotation for properties of which evolution is to be tracked public EntityIdentifier getLabel() { return label; } } public void setLabel(EntityIdentifier label) { this.label = label; } ! v2 public class BreakStatement extends Statement { @EntityProperty(value = SimpleName.class) private EntityIdentifier<SimpleName> label; ! public EntityIdentifier<SimpleName> getLabel() { return label; } } public void setLabel(EntityIdentifier<SimpleName> label) { this.label = label; } ! more typesafe version, obtained through our own rewriting tool!
  • 10. Implementation Highlight: Persistence @EntityProperty + S I ES I + weak references S snapshot nodes I I C ES I snapshot-specific identifier mappings entity state and change nodes
  • 11. Implementation Highlight: Disk Footprint evolution of Exapus project (http://github.com/cderoove/Exapus) single revision: 194149 nodes, 223979 properties, and 194147 relationships of 32 distinct types on average: 22,5 files per revision changed 4000" 3500" 3000" Database'Size'(mb)' ' 2500" 2000" confirms advantages of state sharing previously observed in Orion and Ring/H meta-models Naive" Cha3Q" 1500" 1000" 500" but for graph-persisted rather than Smalltalk-persisted meta-models and for more fine-grained information (e.g., AST nodes) 0" 1" 2" 3" 4" 5" 6" 7" 8" 9" 10" 11" 12" 13" 14" 15" 16" 17" 18" 19" 20" 21" 22" 23" 24" 25" 26" 27" 28" 29" 30" 31" 32" 33" Revision'
  • 12. Conclusions defines the first interconnected representation of: ✓ state & evolution of the different entities of a software system change ✓ each change to an entity that results in a new entity state snapshots ✓ system snapshots under control of a VCS implementation highlights: + ✓ memory-efficient = ✓ familiar OO API for tool builders http://soft.vub.ac.be/chaq/ for upcoming tools that share our meta-model!