Title: TOWARDS PRACTICAL TOOLS FOR MINING ABSTRACTIONS IN UML MODELS
1TOWARDS PRACTICAL TOOLS FOR MINING ABSTRACTIONS
IN UML MODELS
- Michel Dao Marianne Huchard
- France Télécom RD LIRMM, Montpellier
- M. Rouane Hacène, C. Roume, P. Valtchev
- Université De Montréal
2Outline
- Motivation
- Theoretical framework
- Formal Concept Analysis
- Relational Concept Analysis
- Practical issues
- Strategy for tools
- Experiments
- Conclusion / future work
3Outline
- Motivation
- Theoretical framework
- Formal Concept Analysis
- Relational Concept Analysis
- Practical issues
- Strategy for tools
- Experiments
- Conclusion / future works
4Motivation
- Mining abstractions in UML models
- model structuration
- Readability, classification
- reusability
- elements with higher abstraction level
- maintainability
- less duplicated elements
- model integration
- common part identification
5Motivation An example
follows
measures
Generalization of elements (classes,
associations, operations, attributes etc.)
6Motivation An example
follows
measures
Generalization of elements (classes,
associations, operations, attributes etc.)
7Motivation An example
dealsWith
follows
measures
Generalization of elements (classes,
associations, operations, attributes etc.)
8Motivation An example
dealsWith
follows
measures
Generalization of elements (classes,
associations, operations, attributes etc.)
9Outline
- Motivation
- Theoretical framework
- Formal Concept Analysis
- Relational Concept Analysis
- Practical issues
- Experiments
- Strategy for tools
- Conclusion / future works
10Formal Concept Analysis
- Extract abstractions from a set of entities
described by characteristics - Barbut Monjardet 1970 Ganter Wille 1999
Abstraction Concept
(C3,C4,f1,f3)
Extent Intent
Specialization
(C2,C3,C4,f3)
Binary Context
(C3,C4,f1,f3)
11Formal Concept Analysis
Concept lattice
Binary Context
(C1,C2,C3,C4,)
(C2,C3,C4,f3)
(C1,C3,C4,f1)
(C3,C4,f1,f3)
(C2,f2,f3)
(C4,f1,f3,f5)
(C3,f1,f3,f4)
(,f1,f2,f3,f4,f5)
12Formal Concept Analysis
Naive modeling with FCA
UML classes
13Formal Concept Analysis
scaling binary context
only one concept
14Formal Concept Analysis
One attribute abstraction without class support
balance
specializes
15Relational Concept Analysis
- Towards exhaustive abstraction mining
- NB example restricted to classes/attributes
BankAccount balance
16Relational Concept Analysis
Relational Context Family (RCF) (K, R) K set of
contexts K Kclass,Kproperty R set of
relations between entities of contexts R
type,ownedAttribute
17Relational Concept Analysis
- Iterative lattice construction
Property lattice
Class lattice
18Extent Intent
BA,TA,BAH,TC
CBATA
CBAHTC
BAH,TC ownedAttributeCbaltal
BA,TA ownedAttributeCbbabta
CBA
CTA
CBAH
BAH nameBasicAcHolder ownedAttributeCbal,
Cbaltal
BA nameBasicAccount ownedAttributeCbbabta,Co
TA nameTeenagerAccount ownedAttributeCbbabta,C
mw
CTC
TC nameTeenAccount ownedAttributeCtal, Cbaltal
BankAccount balance
BankClient accountListBankAccount
19bba,bta,o,mw,bal,tal
Extent Intent
Cbaltal
bal,tal typeCBATA
Ctal
Cbal
Cbbabta
Co
Cmw
bal namebAccountList typeCBA,CBATA
bba,bta namebalance
mw namemaxWithdrawal
tal nametAccountList typeCBA,CBATA
o nameoverdraft
BankAccount balance
20Relational Concept Analysis
- A normal form for models
- Well characterized
- Preservation of initial data (UML elements)
- Exhaustive discovery of abstractions for all UML
elements - Well-formed specialization/generalization links
between UML elements - Minimal number of constructed abstractions
- NB. The whole method includes also association
ends, operations, etc.
21Outline
- Motivation
- Theoretical framework
- Formal Concept Analysis
- Relational Concept Analysis
- Practical issues
- Strategy for tools
- Experiments
- Conclusion / future works
22Practical issues - Framework
- Research project supported by RNTL
- french department for research
- call for contribution in software engineering
- Partners
- France Télécom RD
- LIRMM
- Softeam (CASE tool Objecteering)
23Practical issues Tools
Galicia http//www.iro.umontreal.ca/galicia
Objecteering http//www.softeam.com
class diagram edition and visualization
tuning
RCA algorithms
24Experiments
- France Télécom Projects
- Part of the general Information System
- 57 classes
- Intranet
- 1220 classes in 2 sub-systems
- User data organization
- 22 classes in a common model M
- 208613 classes in specific models from several
departments (derived from M)
25Experiments
- Focus on
- Part of the general Information System
- input
- 57 classes, 8 subpackages
- output
- 110 classes, no merged classes
- 9 associations, 59 properties
- 212 specialization/generalization links
26Lessons learned and tool extension
- Hand-made Analysis by designers
- 62 useful classes among 110 new classes
- Many small classes (with 1 or 2 own properties)
- Issues
- User interface for controlling the process
- Traceability
- Unrelevant abstractions (e.g. att. with type
String) - Name semantics, conflicts, synonymy, hyperonymy,
etc. - Proposal of new tools in Objecteering
27Outline
- Motivation
- Theoretical issues
- Formal Concept Analysis
- Relational Concept Analysis
- Practical issues
- Strategy for tools
- Experiments
- Conclusion / future works
28Conclusion
- A theoretical framework for exhaustive
abstraction discovery in models - A normal form for UML models
- Practical feasability demonstrated in
Objecteering Galicia tools - Tested on France Télécom models
- Remaining limits
- Traceability not really achieved
- Name semantics
- Fine-tuning and generalization of the method
29Current/Future work
- Model Driven Engineering Approach
- Explicit used metamodels
- Declarative transformation rules
- Definition of the process as a set of
well-described small transformations - EclipseKermeta (Univ. Rennes) tools under
development - Expected results
- Traceability
- Easy application of the method to any
imput/output meta-models, ER, OWL, etc. - fine-tuning the process
30Current/Future work
- Natural Language processing
- In collaboration with researchers of the domain
- Research contract with France Télécom RD
- Expected results
- Better interpret words in models
- Naming constructed abstractions
31