SlideShare a Scribd company logo
1 of 59
Download to read offline
Mining Entities to Rules
MEntoR
Angela Lozano,
Andy Kellens,
Kim Mens,
Gabriela Arevalo
Thursday 16 December 2010
source code regularities
• Implementation standards
e.g. idioms, naming conventions, design patterns....
• Encode design decisions
• Facilitate comprehension, maintenance, & evolution
• Are implicit = often not fully respected
2/9
Thursday 16 December 2010
source code regularities
• Implementation standards
e.g. idioms, naming conventions, design patterns....
• Encode design decisions
• Facilitate comprehension, maintenance, & evolution
• Are implicit = often not fully respected
We can mine for regularities BUT
their usefulness might be ‘entity-dependent’
2/9
Thursday 16 December 2010
Motivation
3/9
Thursday 16 December 2010
Motivation
3/9
how to add a new
action to the app?
let me see
Thursday 16 December 2010
Motivation
3/9
how to add a new
action to the app?
here!
Thursday 16 December 2010
Motivation
3/9
Source code is reliable
how to add a new
action to the app?
Thursday 16 December 2010
Motivation
3/9
Source code is reliable
are there other
examples of actions?here!
Thursday 16 December 2010
Motivation
3/9
Source code is reliable
which other methods
should I add?
here!
Thursday 16 December 2010
Motivation
3/9
Source code is reliable
It condenses design knowledge
which other methods
should I add?
Thursday 16 December 2010
Motivation
3/9
Source code is reliable
It condenses design knowledge
which other methods
should I add?
are all actions implemented
using the command pattern?
Thursday 16 December 2010
Motivation
3/9
Source code is reliable
It condenses design knowledge
which other methods
should I add?
are all methods related to
actions documented?
Thursday 16 December 2010
Motivation
3/9
Source code is reliable
It condenses design knowledge
All developers need such knowledge to keep consistency
which other methods
should I add?
are all methods related to
actions documented?
Thursday 16 December 2010
Motivation
3/9
Source code is reliable
It condenses design knowledge
All developers need such knowledge to keep consistency
which other methods
should I add?
are all methods related to
actions documented?
Thursday 16 December 2010
Motivation
3/9
Source code is reliable
It condenses design knowledge
All developers need such knowledge to keep consistency
We need automatic support to detect design knowledge in the code
which other methods
should I add?
are all methods related to
actions documented?
Thursday 16 December 2010
4/9
Thursday 16 December 2010
4/9
Thursday 16 December 2010
4/9
Thursday 16 December 2010
4/9
Thursday 16 December 2010
4/9
Thursday 16 December 2010
4/9
Thursday 16 December 2010
4/9
--------------------------CId>Action Impl>performAction -Impl>isUndoable -Hier>AddObjectAction -Ref>MenuService
AbstractAddAction ------X ----------------- X ------------------------X -----------------------X ---------------------X
AddObjectAction --------X ----------------- -------------------------------------------------------- ---------------------X
Thursday 16 December 2010
Implications
H>ArrayedCollection ==> Id>'Array'
True in a closed world
Subset relation in the FCA lattice
H>ArrayedCollection
Id>Array
ArrayedCollection Array CharacterArray
5/9
Characterizing Collection
Classes
Characterizing Collection
Classes
AttributesAttributesAttributesAttributesAttributes
Characterizing Collection
Classes
Characterizing Collection
Classes
Collection * *
SequenceableCollection * * *
OrderedCollection * * *
ArrayedCollection * * * * *
Array * * * *
CharacterArray * * * *
H>Collection
H>SequenceableCollection
H>ArrayedCollection
Id>Collection
Id>Array
Classes
Thursday 16 December 2010
Implications
H>ArrayedCollection ==> Id>'Array'
True in a closed world
Subset relation in the FCA lattice
Asssociations
H>Collection --83%--> H>SequenceableCollection
Most collections are sequenceable; but Collections is not
Superset or siblings relation in the FCA lattice
H>ArrayedCollection
Id>Array
ArrayedCollection Array CharacterArray
H>Collection
H>SequenceableCollection
SequenceableCollection OrderedCollection
ArrayedCollection Array CharacterArray
Collection
5/9
Characterizing Collection
Classes
Characterizing Collection
Classes
AttributesAttributesAttributesAttributesAttributes
Characterizing Collection
Classes
Characterizing Collection
Classes
Collection * *
SequenceableCollection * * *
OrderedCollection * * *
ArrayedCollection * * * * *
Array * * * *
CharacterArray * * * *
H>Collection
H>SequenceableCollection
H>ArrayedCollection
Id>Collection
Id>Array
Classes
Condition*
Conclusion
Thursday 16 December 2010
A regularity is a set of intersecting rules
6/9
Thursday 16 December 2010
CId>ActionHier>IntensiVEAction
.
A regularity is a set of intersecting rules
. . . . .. . . . .. . . . .. . . . .. . .
6/9
Rule 1:
CId>Action ==>Hier>IntensiVEAction
Thursday 16 December 2010
Impl>performAction
Impl>undoActio
CId>ActionHier>IntensiVEAction
.
A regularity is a set of intersecting rules
. . . . .. . . . .. . . . .. . . . .. . .
6/9
Rule 2:
Impl>undoAction ==>Impl>performAction
Thursday 16 December 2010
Impl>performAction
Impl>undoActio Hier>AbstractAction
Impl>name
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . .
.
CId>ActionHier>IntensiVEAction
.
A regularity is a set of intersecting rules
. . . . .. . . . .. . . . .. . . . .. . .
6/9
Rule 3:
Hier>AbstractAction -->Impl>name
Thursday 16 December 2010
Impl>performAction
Impl>undoActio
23 classes
match
Hier>AbstractAction
Impl>name
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . .
.
CId>ActionHier>IntensiVEAction
.
A regularity is a set of intersecting rules
. . . . .. . . . .. . . . .. . . . .. . .
6/9
Thursday 16 December 2010
7/9
. . .
. . .
MEntoR
. . . . . .
. . . . .
. . . . . .
. . . . .
If the entity in focus is
here
The usefulness of a rule might be ‘entity-dependent’
MEntoR is based on the entity in focus
Condition properties → Conclusion properties
Thursday 16 December 2010
7/9
. . .
. . .
MEntoR
. . . . . .
. . . . .
. . . . . .
. . . . .
If the entity in focus is
here
The usefulness of a rule might be ‘entity-dependent’
MEntoR is based on the entity in focus
Condition properties → Conclusion properties
Thursday 16 December 2010
7/9
. . .
. . .
MEntoR
. . . . . .
. . . . .
. . . . . .
. . . . .
If the entity in focus is
here
the entity is classified as
The usefulness of a rule might be ‘entity-dependent’
MEntoR is based on the entity in focus
Condition properties → Conclusion properties
Thursday 16 December 2010
7/9
. . .
. . .
MEntoR
. . . . . .
. . . . .
. . . . . .
. . . . .
If the entity in focus is
here
an error
the entity is classified as
The usefulness of a rule might be ‘entity-dependent’
MEntoR is based on the entity in focus
Condition properties → Conclusion properties
of the rule
Thursday 16 December 2010
7/9
. . .
. . .
MEntoR
. . . . . .
. . . . .
. . . . . .
. . . . .
If the entity in focus is
here
an error
the entity is classified as
The usefulness of a rule might be ‘entity-dependent’
MEntoR is based on the entity in focus
Condition properties → Conclusion properties
of the rule
Thursday 16 December 2010
7/9
. . .
. . .
MEntoR
. . . . . .
. . . . .
. . . . . .
. . . . .
If the entity in focus is
here
an error
the entity is classified as
satisfied example
The usefulness of a rule might be ‘entity-dependent’
MEntoR is based on the entity in focus
Condition properties → Conclusion properties
of the rule
Thursday 16 December 2010
7/9
. . .
. . .
MEntoR
. . . . . .
. . . . .
. . . . . .
. . . . .
If the entity in focus is
here
an error
the entity is classified as
satisfied example
The usefulness of a rule might be ‘entity-dependent’
MEntoR is based on the entity in focus
Condition properties → Conclusion properties
of the rule
Thursday 16 December 2010
7/9
. . .
. . .
MEntoR
. . . . . .
. . . . .
. . . . . .
. . . . .
If the entity in focus is
here
an error
the entity is classified as
satisfied example a suggestion
The usefulness of a rule might be ‘entity-dependent’
MEntoR is based on the entity in focus
Condition properties → Conclusion properties
of the rule
Thursday 16 December 2010
8/9
MEntoR
Thursday 16 December 2010
8/9
MEntoR
Thursday 16 December 2010
MEntoR
8/9
Context is given by the entity in focus
Thursday 16 December 2010
MEntoR
8/9
Entity
in
focus
Context is given by the entity in focus
Thursday 16 December 2010
8/9
MEntoR
Thursday 16 December 2010
8/9
Selected
rule
Shows the rules related to the entity in focus
MEntoR
Thursday 16 December 2010
8/9
Selected
rule
Shows the rules related to the entity in focus
MEntoR
Rule pretty
printed
Thursday 16 December 2010
MEntoR
8/9
Thursday 16 December 2010
Entity in
focus
MEntoR
8/9
Thursday 16 December 2010
Entity in
focus
Errors
MEntoR
Rules in which the entity complies with the condition
but not with the conclusion (errors)
8/9
Thursday 16 December 2010
MEntoR
8/9
Thursday 16 December 2010
MEntoR
Entity in focus
8/9
Thursday 16 December 2010
Rules in which the entity complies with the condition
and with the conclusion (satisfied)
MEntoR
Satisfied rulesEntity in focus
8/9
Thursday 16 December 2010
MEntoR
8/9
Thursday 16 December 2010
MEntoR
Entity in focus
8/9
Thursday 16 December 2010
Rules in which the entity complies partially with the
conclusion but not with the condition (suggestions)
Suggestions
MEntoR
Entity in focus
8/9
Thursday 16 December 2010
MEntoR
Entity in focus
Tag
options
8/9
Thursday 16 December 2010
MEntoR
Entity in focus
8/9
Rule
View
Thursday 16 December 2010
IVAbstractEntity
IVCheckeableEntity
IVComposableEntityDefiniton
IVPersistentEntity
UncheckedEntityEditor
CId>Entity
Hier>Classifications2.AbstractClassification
Hier>Intensional.IVAbstractEntity
IVViewDef
......
MEntoR
8/9
Thursday 16 December 2010
MEntoR
8/9
Thursday 16 December 2010
IVAbstractEntity
IVCheckeableEntity
IVComposableEntityDefiniton
IVPersistentEntity
UncheckedEntityEditor
CId>Entity
Hier>Classifications2.AbstractClassification
Hier>Intensional.IVAbstractEntity
IVViewDef
......
MEntoR
8/9
Thursday 16 December 2010
9/9
Clairvoyant
Thursday 16 December 2010

More Related Content

Similar to Mining Entities to Rules with MEntoR

@author Jane Programmer @cwid 123 45 678 @class
   @author Jane Programmer  @cwid   123 45 678  @class   @author Jane Programmer  @cwid   123 45 678  @class
@author Jane Programmer @cwid 123 45 678 @class
troutmanboris
 
@author Jane Programmer @cwid 123 45 678 @class.docx
   @author Jane Programmer  @cwid   123 45 678  @class.docx   @author Jane Programmer  @cwid   123 45 678  @class.docx
@author Jane Programmer @cwid 123 45 678 @class.docx
ShiraPrater50
 
Dissertation_Paper_submitted_by_1467070_final
Dissertation_Paper_submitted_by_1467070_finalDissertation_Paper_submitted_by_1467070_final
Dissertation_Paper_submitted_by_1467070_final
SungJong Kang
 
NS-2 Manual
NS-2 ManualNS-2 Manual
NS-2 Manual
code453
 

Similar to Mining Entities to Rules with MEntoR (20)

Specialization template
Specialization templateSpecialization template
Specialization template
 
@author Jane Programmer @cwid 123 45 678 @class
   @author Jane Programmer  @cwid   123 45 678  @class   @author Jane Programmer  @cwid   123 45 678  @class
@author Jane Programmer @cwid 123 45 678 @class
 
@author Jane Programmer @cwid 123 45 678 @class.docx
   @author Jane Programmer  @cwid   123 45 678  @class.docx   @author Jane Programmer  @cwid   123 45 678  @class.docx
@author Jane Programmer @cwid 123 45 678 @class.docx
 
Resource Paper of Enterprise-Wide Deployment of EDM
Resource Paper of Enterprise-Wide Deployment of EDMResource Paper of Enterprise-Wide Deployment of EDM
Resource Paper of Enterprise-Wide Deployment of EDM
 
Risks of search engine dependency and its influence on data quality
Risks of search engine dependency and its influence on data qualityRisks of search engine dependency and its influence on data quality
Risks of search engine dependency and its influence on data quality
 
15466 mba technology_white_paper
15466 mba technology_white_paper15466 mba technology_white_paper
15466 mba technology_white_paper
 
15466 mba technology_white_paper
15466 mba technology_white_paper15466 mba technology_white_paper
15466 mba technology_white_paper
 
Intro to Angular.JS Directives
Intro to Angular.JS DirectivesIntro to Angular.JS Directives
Intro to Angular.JS Directives
 
Operational research 2
Operational research 2Operational research 2
Operational research 2
 
Malware Analysis: Ransomware
Malware Analysis: RansomwareMalware Analysis: Ransomware
Malware Analysis: Ransomware
 
OSMC 2010 | OpenNMS Kickstart by Ronny Trommer
OSMC 2010 | OpenNMS Kickstart by Ronny TrommerOSMC 2010 | OpenNMS Kickstart by Ronny Trommer
OSMC 2010 | OpenNMS Kickstart by Ronny Trommer
 
Teams and monoliths - Matthew Skelton - Agile in the City Bristol 2016
Teams and monoliths - Matthew Skelton - Agile in the City Bristol 2016Teams and monoliths - Matthew Skelton - Agile in the City Bristol 2016
Teams and monoliths - Matthew Skelton - Agile in the City Bristol 2016
 
Dissertation_Paper_submitted_by_1467070_final
Dissertation_Paper_submitted_by_1467070_finalDissertation_Paper_submitted_by_1467070_final
Dissertation_Paper_submitted_by_1467070_final
 
PAC 2019 virtual Federico Toledo
PAC 2019 virtual Federico Toledo   PAC 2019 virtual Federico Toledo
PAC 2019 virtual Federico Toledo
 
Safeconsole admin guide
Safeconsole admin guideSafeconsole admin guide
Safeconsole admin guide
 
Optimistic Offline Locking
Optimistic Offline LockingOptimistic Offline Locking
Optimistic Offline Locking
 
Balancing Infrastructure with Optimization and Problem Formulation
Balancing Infrastructure with Optimization and Problem FormulationBalancing Infrastructure with Optimization and Problem Formulation
Balancing Infrastructure with Optimization and Problem Formulation
 
NS-2 Manual
NS-2 ManualNS-2 Manual
NS-2 Manual
 
Proprietary vs opensource in cloud
Proprietary vs opensource in cloudProprietary vs opensource in cloud
Proprietary vs opensource in cloud
 
Code conventions
Code conventionsCode conventions
Code conventions
 

More from kim.mens

More from kim.mens (20)

Software Maintenance and Evolution
Software Maintenance and EvolutionSoftware Maintenance and Evolution
Software Maintenance and Evolution
 
Context-Oriented Programming
Context-Oriented ProgrammingContext-Oriented Programming
Context-Oriented Programming
 
Software Reuse and Object-Oriented Programming
Software Reuse and Object-Oriented ProgrammingSoftware Reuse and Object-Oriented Programming
Software Reuse and Object-Oriented Programming
 
Bad Code Smells
Bad Code SmellsBad Code Smells
Bad Code Smells
 
Object-Oriented Design Heuristics
Object-Oriented Design HeuristicsObject-Oriented Design Heuristics
Object-Oriented Design Heuristics
 
Software Patterns
Software PatternsSoftware Patterns
Software Patterns
 
Code Refactoring
Code RefactoringCode Refactoring
Code Refactoring
 
Domain Modelling
Domain ModellingDomain Modelling
Domain Modelling
 
Object-Oriented Application Frameworks
Object-Oriented Application FrameworksObject-Oriented Application Frameworks
Object-Oriented Application Frameworks
 
Towards a Context-Oriented Software Implementation Framework
Towards a Context-Oriented Software Implementation FrameworkTowards a Context-Oriented Software Implementation Framework
Towards a Context-Oriented Software Implementation Framework
 
Towards a Taxonomy of Context-Aware Software Variabilty Approaches
Towards a Taxonomy of Context-Aware Software Variabilty ApproachesTowards a Taxonomy of Context-Aware Software Variabilty Approaches
Towards a Taxonomy of Context-Aware Software Variabilty Approaches
 
Breaking the Walls: A Unified Vision on Context-Oriented Software Engineering
Breaking the Walls: A Unified Vision on Context-Oriented Software EngineeringBreaking the Walls: A Unified Vision on Context-Oriented Software Engineering
Breaking the Walls: A Unified Vision on Context-Oriented Software Engineering
 
Context-oriented programming
Context-oriented programmingContext-oriented programming
Context-oriented programming
 
Basics of reflection
Basics of reflectionBasics of reflection
Basics of reflection
 
Advanced Reflection in Java
Advanced Reflection in JavaAdvanced Reflection in Java
Advanced Reflection in Java
 
Basics of reflection in java
Basics of reflection in javaBasics of reflection in java
Basics of reflection in java
 
Reflection in Ruby
Reflection in RubyReflection in Ruby
Reflection in Ruby
 
Introduction to Ruby
Introduction to RubyIntroduction to Ruby
Introduction to Ruby
 
Introduction to Smalltalk
Introduction to SmalltalkIntroduction to Smalltalk
Introduction to Smalltalk
 
A gentle introduction to reflection
A gentle introduction to reflectionA gentle introduction to reflection
A gentle introduction to reflection
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
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
 
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
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
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...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
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
 
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
 
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...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

Mining Entities to Rules with MEntoR