SlideShare a Scribd company logo
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
A Method for the
Unified Definition and Treatment of
Conceptual Schema Quality Issues
Thesis supervised by
Dr. Antoni Olivé
Dr. Cristina Gómez
David Aguilera
June 6th, 2014
Barcelona
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
We cannot run the modern world
without software
2
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
We cannot run the modern world
without software
2
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
We cannot run the modern world
without software
2
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
We cannot run the modern world
without software
2
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
We cannot run the modern world
without software
Which means software's quality
has become essential
to our society.
Introduction
3SOMMERVILLE, I. Software Engineering, 9 ed. Addison-Wesley, 2010
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Quality
The degree up to which a set of
properties are met.
It depends on the perspective:
- Innate excellence
- Product-based
- User-based
- Manufacturing-based
- Value-based
Introduction
4GARVIN, D.A.. What does “product quality” really mean? Sloan Manag. Review 26, 1 (1984), 25-43
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Quality in Software
It's been classically focused on
evaluating the final product.
ISO standards
- ISO 9000
- ISO/IEC 1926
Proposals in the literature
Introduction
5
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Maintenance
Software Development Process
Requirements
Design
Impl. & Unit Testing
Integration & Testing
Introduction
Classic Waterfall Model
Agile Methodologies
(like SCRUM, with iterations)
6SOMMERVILLE, I. Software Engineering, 9 ed. Addison-Wesley, 2010
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Evaluating Quality in Software
Focusing on the Final Product is
positive and necessary...
...but is not as efficient as it could be.
number
cost
time
Introduction
7
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Conceptual Modeling
Essential Activity in the
Requirements Stage of the
Software Development Process
Introduction
8OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Conceptual Modeling
Conceptual Schema
General Knowledge for an
Information System
to operate.
Essential Activity in the
Requirements Stage of the
Software Development Process
Introduction
8OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
The Problem
Defining Conceptual Schemas
is a complex and difficult activity,
but the support modelers get is scarce.
There's a lot of work in the literature,
but it does not reach practitioners.
Introduction
9
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Goal of this Thesis
Improve the Quality of
Conceptual Schemas
We want to help conceptual modelers.
We want their tools to assist them.
- Study and characterize several quality criteria.
- Create a catalog that unifies those criteria.
- Implement a conceptual modeling assistant.
Introduction
10
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Addressed Quality Dimensions
We focus on those dimensions that can
be evaluated using the schema itself.
According to conceptual modeling quality
frameworks:
- Syntactical Quality
- Empirical Quality
- Other dimensions, such as semantic
validity, comprehension, ...
Introduction
11
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Motivation
Formalization of Quality Issues
Catalog of Quality Issues
Conceptual Modeling Assistant
outline
02
03
04
05
Notes on Efficient Evaluation06
Conclusions and Future Work07
Introduction01
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Motivation
What we want. What we have.
13
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Goal of this Thesis
Improve the Quality of
Conceptual Schemas
We want to help conceptual modelers to
create conceptual schemas:
- that are syntactically correct,
- that are complete,
- whose elements are relevant,
- that follow a set of best practices...
Motivation
14
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
LandVehicle
MotorVehicle
Car
plateNumber:String
motorcycle
plateNumber:String
Person
{disjoint, complete}
parent 2
3
child
IsParentOf
Owns* 0..1
Motivation
15
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it to be syntactically correct.
e.g. generalization cycles
Motivation
LandVehicle
MotorVehicle
Car
plateNumber:String
motorcycle
plateNumber:String
Person
{disjoint, complete}
parent 2
3
child
IsParentOf
Owns* 0..1
16OBJECT MANAGEMENT GROUP (OMG), Unified Modeling Language (UML), Superstructure, 2011
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it to be syntactically correct.
e.g. generalization cycles
Motivation
LandVehicle
MotorVehicle
Car
plateNumber:String
motorcycle
plateNumber:String
Person
{disjoint, complete}
parent 2
3
child
IsParentOf
Owns* 0..1
16OBJECT MANAGEMENT GROUP (OMG), Unified Modeling Language (UML), Superstructure, 2011
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it to be syntactically correct.
e.g. generalization cycles
Motivation
LandVehicle
MotorVehicle
Car
plateNumber:String
motorcycle
plateNumber:String
Person
{disjoint, complete}
parent 2
3
child
IsParentOf
Owns* 0..1
Remove one
generalization to
break the cycle
16OBJECT MANAGEMENT GROUP (OMG), Unified Modeling Language (UML), Superstructure, 2011
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it to be syntactically correct.
e.g. generalization cycles
Motivation
LandVehicle
MotorVehicle
Car
plateNumber:String
motorcycle
plateNumber:String
Person
{disjoint, complete}
parent 2
3
child
IsParentOf
Owns* 0..1
16OBJECT MANAGEMENT GROUP (OMG), Unified Modeling Language (UML), Superstructure, 2011
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it not to have duplicated info.
e.g. redundant generalizations
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, complete}
parent 2
3
child
IsParentOf
Owns* 0..1
Motivation
17OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it not to have duplicated info.
e.g. redundant generalizations
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, complete}
parent 2
3
child
IsParentOf
Owns* 0..1
Motivation
17OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it not to have duplicated info.
e.g. redundant generalizations
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, complete}
parent 2
3
child
IsParentOf
Owns* 0..1
Remove redundant
generalization
Motivation
17OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it not to have duplicated info.
e.g. redundant generalizations
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, complete}
parent 2
3
child
IsParentOf
Owns* 0..1
Motivation
17OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it not to have duplicated info.
e.g. repeated attributes
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, complete}
parent 2
3
child
IsParentOf
Owns* 0..1
Motivation
18FOWLER, M. Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it not to have duplicated info.
e.g. repeated attributes
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, complete}
parent 2
3
child
IsParentOf
Owns* 0..1
Motivation
18FOWLER, M. Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it not to have duplicated info.
e.g. repeated attributes
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, complete}
parent 2
3
child
IsParentOf
Owns* 0..1
Pull-Up Property
Refactoring
Motivation
18FOWLER, M. Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it not to have duplicated info.
e.g. repeated attributes
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, complete}
parent 2
3
child
IsParentOf
Owns* 0..1
Pull-Up Property
Refactoring
Incomplete
GeneralizationSet
Motivation
18FOWLER, M. Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it not to have duplicated info.
e.g. repeated attributes
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, complete}
parent 2
3
child
IsParentOf
Owns* 0..1
Incomplete
GeneralizationSet
Motivation
18FOWLER, M. Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it not to have duplicated info.
e.g. repeated attributes
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, incomplete}
parent 2
3
child
IsParentOf
Owns* 0..1
Motivation
18FOWLER, M. Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, incomplete}
parent 2
3
child
IsParentOf
Owns* 0..1
I want it to be correct.
e.g. non-empty populations
Motivation
19OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it to be correct.
e.g. non-empty populations
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, incomplete}
parent 2
3
child
IsParentOf
Owns* 0..1
Motivation
19OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it to be correct.
e.g. non-empty populations
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, incomplete}
parent 2
3
child
IsParentOf
Owns* 0..1
Change
multiplicities
Motivation
19OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it to be correct.
e.g. non-empty populations
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, incomplete}
IsParentOf
Owns* 0..1
Change
multiplicities
parent 2
0..3
child
Motivation
19OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it to be complete.
e.g. awareness of (possibly) missing information
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, incomplete}
parent 2
0..3
child
IsParentOf
Owns* 0..1
Motivation
20OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it to be complete.
e.g. awareness of (possibly) missing information
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, incomplete}
parent 2
0..3
child
IsParentOf
Owns* 0..1
(ir)reflexive?
(in)transitive?
(a)symmetric?
Motivation
20OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it to be complete.
e.g. awareness of (possibly) missing information
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, incomplete}
parent 2
0..3
child
IsParentOf
Owns* 0..1
(ir)reflexive?
(in)transitive?
(a)symmetric?
Yes, all relevant constraints
are in the schema.
Motivation
20OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it to be complete.
e.g. awareness of (possibly) missing information
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, incomplete}
parent 2
0..3
child
IsParentOf
Owns* 0..1
(ir)reflexive?
(in)transitive?
(a)symmetric?
Yes, all relevant constraints
are in the schema.
Create an asymmetry
constraint, which is missing.
Motivation
20OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it to be complete.
e.g. awareness of (possibly) missing information
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, incomplete}
parent 2
0..3
child
IsParentOf
Owns* 0..1
Create an asymmetry
constraint, which is missing.
Motivation
20OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we would like to have...
I want it to be complete.
e.g. awareness of (possibly) missing information
LandVehicle
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
Person
{disjoint, incomplete}
parent 2
0..3
child
IsParentOf
Owns* 0..1
context Person inv:
self.child.child->
excludes( self )
Motivation
20OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
But, what do we have today?
Motivation
- Inspections, testing, reviews, …
- There are several quality properties pu-
blished (and scattered) in the literature.
- There are also proposals for efficiently
dealing with inconsistencies.
- Current modeling tools o er little toff
no support for dealing with this stu .ff
(ArgoUML, Rational Rose, USE, Poseidon, ...)
21
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Motivation
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Formalization
A
Motivation
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Formalization
Characterization
of Quality Issues
A
Motivation
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Formalization
Characterization
of Quality Issues
A
Issue A
Scope,
conditions...
Motivation
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Formalization Catalog
Characterization
of Quality Issues
A
Issue A
Scope,
conditions...
Motivation
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Formalization Catalog
Characterization
of Quality Issues
A
Issue A
Scope,
conditions...
Issue A
Context,
conditions...
Issue A
Scope,
conditions...
Motivation
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Formalization Catalog
Characterization
of Quality Issues
A
Issue A
Scope,
conditions...
Issue A
Context,
conditions...
Issue A
Scope,
conditions...
Issue A
Context,
conditions...
Issue B
Scope,
conditions...
Motivation
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Formalization Catalog
Characterization
of Quality Issues
A
Issue A
Scope,
conditions...
Issue A
Context,
conditions...
Issue A
Scope,
conditions...
Issue A
Context,
conditions...
Issue B
Scope,
conditions...
Issue A
Context,
conditions...
Issue C
Scope,
conditions...
Motivation
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Formalization Catalog CMA
Modeling
Tool
Characterization
of Quality Issues
A
Issue A
Scope,
conditions...
Issue A
Context,
conditions...
Issue A
Scope,
conditions...
Issue A
Context,
conditions...
Issue B
Scope,
conditions...
Issue A
Context,
conditions...
Issue C
Scope,
conditions...
Motivation
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Formalization Catalog
Characterization
of Quality Issues
A
Issue A
Scope,
conditions...
Issue A
Context,
conditions...
Issue A
Scope,
conditions...
Issue A
Context,
conditions...
Issue B
Scope,
conditions...
Issue A
Context,
conditions...
Issue C
Scope,
conditions...
Motivation
CMA
Modeling
Tool
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Formalization Catalog
Characterization
of Quality Issues
A
Issue A
Scope,
conditions...
Issue A
Context,
conditions...
Issue A
Scope,
conditions...
Issue A
Context,
conditions...
Issue B
Scope,
conditions...
Issue A
Context,
conditions...
Issue C
Scope,
conditions...
1. This gen is redu
2. Association has
3. Constraint does
Motivation
CMA
Modeling
Tool
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
1. This gen is redu
2. Association has
3. Constraint does
Catalog
Issue A
Context,
conditions...
Issue A
Scope,
conditions...
Issue A
Context,
conditions...
Issue B
Scope,
conditions...
Issue A
Context,
conditions...
Issue C
Scope,
conditions...
Formalization
Characterization
of Quality Issues
A
Issue A
Scope,
conditions...
Motivation
CMA
Modeling
Tool
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Design Science Research
“its fundamental principle is that
knowledge and understanding
of a design problem and its solution
are acquired in the building and
application of an artifact”.
Motivation
23HEVNER, A. R., MARCH, S. T., PARK, J., AND RAM, S. Design science in information systems research, MIS Q. 28, 1 (2004) 75-105
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Design Science Research
Quality Properties
Characterization and
Formalization
Catalog CMA
State of the Art
Challenge
Assist Modelers and Improve Quality
Searching
Adapting
Testing
Motivation
24
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Characterization and Formalization of
Conceptual Schema Quality Issues
25
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What is an Issue?
“an important topic or problem
for debate or discussion”
Formalization
26
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What is an Issue?
“an important topic or problem
for debate or discussion”
In essence, it is a condition the schema
should not satisfy to:
- be syntactically correct,
- be complete,
- ensure all elements are relevant,
- follow a best practice...
Formalization
26
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What is an Issue?
Formalization
An Issue Type describes the problem.
An Issue Instance is a concrete instance
of that problem in the schema.
27
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What is an Issue?
An Issue Type describes the problem.
An Issue Instance is a concrete instance
of that problem in the schema.
Formalization
Type: “There are redun-
dant generalizations”
Instance: “g1 is redundant”
g1
g2
g3, g4
LandVehicle
MotorVehicle
Car Motorcycle
{disjoint, complete}
27
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
An Issue Type must be able to specify:
- which kind of elements may raise an issue,
- which elements do actually raise it,
- how to fix that issue, and
- when and how should that issue be addressed
Formalization
28
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
An Issue Type must be able to specify:
- which kind of elements may raise an issue,
- which elements do actually raise it,
- how to fix that issue, and
- when and how should that issue be addressed
Formalization
28
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Formalization
28
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Sx (scope) and Φx (applicability condition)
determine the potential set of elements that
may raise an issue of type Ix
Formalization
29
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Sx (scope) and Φx (applicability condition)
determine the potential set of elements that
may raise an issue of type Ix
g1
g2
g3, g4
LandVehicle
MotorVehicle
Car Motorcycle
{disjoint, complete}
Formalization
29
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Sx (scope) and Φx (applicability condition)
determine the potential set of elements that
may raise an issue of type Ix
g1
g2
g3, g4
LandVehicle
MotorVehicle
Car Motorcycle
{disjoint, complete}
Sx = { Generalization }
Formalization
29
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Sx (scope) and Φx (applicability condition)
determine the potential set of elements that
may raise an issue of type Ix
g1
g2
g3, g4
LandVehicle
MotorVehicle
Car Motorcycle
{disjoint, complete}
Sx = { Generalization }
Φx (g) = “there are two
generalizations ga and gb
such that:
g.general = ga.general
g.specific = gb.specific
Formalization
29
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
ρx (issue condition) determines if an element in
Pot(Ix) does actually raise an issue of type Ix
Formalization
30
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
ρx (issue condition) determines if an element in
Pot(Ix) does actually raise an issue of type Ix
g1
g2
g3, g4
LandVehicle
MotorVehicle
Car Motorcycle
{disjoint, complete}
ρx (g) = “there is an indi-
rect generalization path
between g.general and
g.specific”
Formalization
30
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
ρx (issue condition) determines if an element in
Pot(Ix) does actually raise an issue of type Ix
g1
g2
g3, g4
LandVehicle
MotorVehicle
Car Motorcycle
{disjoint, complete}
ρx (g) = “there is an
indirect generalizations
path between g.general
and g.specific”
Formalization
30
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Ox is a set of actions that help the conceptual
modeler to fix an issue instance
Formalization
31
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
g1
g2
g3, g4
LandVehicle
MotorVehicle
Car Motorcycle
{disjoint, complete}
Ox = { “remove redundant
generalization” }
Ox is a set of actions that help the conceptual
modeler to fix an issue instance
Formalization
31
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
g2
g3, g4
LandVehicle
MotorVehicle
Car Motorcycle
{disjoint, complete}
Ox = { “remove redundant
generalization” }
Ox is a set of actions that help the conceptual
modeler to fix an issue instance
Formalization
31
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
g1
g2
g3, g4
LandVehicle
MotorVehicle
Car Motorcycle
{disjoint, complete}
Ox = { “remove redundant
generalization”,
“break the indirect path of
generalizations” }
Ox is a set of actions that help the conceptual
modeler to fix an issue instance
Formalization
31
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
g1
g3, g4
LandVehicle
MotorVehicle
Car Motorcycle
{disjoint, complete}
Ox = { “remove redundant
generalization”,
“break the indirect path of
generalizations” }
Ox is a set of actions that help the conceptual
modeler to fix an issue instance
Formalization
31
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Px is a set of precedents, which are issue types
that must not have issues for considering Ix.
Formalization
32
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Px is a set of precedents, which are issue types
that must not have issues for considering Ix.
Ia = “there is a cycle of
generalizations”
Ib = “there are redundant
generalizations”
Formalization
g1
g2
g3
LandVehicle
MotorVehicle
Car
32
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Px is a set of precedents, which are issue types
that must not have issues for considering Ix.
Ia = “there is a cycle of
generalizations”
Ib = “the generalization is
redundant”
Formalization
g1
g2
g3
LandVehicle
MotorVehicle
Car
32
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Px is a set of precedents, which are issue types
that must not have issues for considering Ix.
Ia = “there is a cycle of
generalizations”
Ib = “the generalization is
redundant”
Formalization
g1
g2
g3
LandVehicle
MotorVehicle
Car
32
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Px is a set of precedents, which are issue types
that must not have issues for considering Ix.
Ia = “there is a cycle of
generalizations”
Ib = “the generalization is
redundant”
Formalization
g1
g2
g3
LandVehicle
MotorVehicle
Car
32
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Px is a set of precedents, which are issue types
that must not have issues for considering Ix.
Ia = “there is a cycle of
generalizations”
Ib = “the generalization is
redundant”
Pb = { Ia }
Formalization
g2
g3
LandVehicle
MotorVehicle
Car
32
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Kx (kind) can either be Problem or Checking.
Formalization
33
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Kx (kind) can either be Problem or Checking.
Problem Issues can only be fixed by
changing the schema, so that the issue
does no longer exist.
Formalization
34
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Kx (kind) can either be Problem or Checking.
LandVehicle
MotorVehicle
Car Motorcycle
{disjoint, complete}
LandVehicle
MotorVehicle
Car Motorcycle
{disjoint, complete}
Formalization
34
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Kx (kind) can either be Problem or Checking.
Checking Issues require the conceptual
modeler to manually check something.
There might be situations in which this
checking will entail some changes in the
schema.
Formalization
35
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Kx (kind) can either be Problem or Checking.
“Check whether the asso-
ciation «IsParentOf» needs
a constraint enforcing the
symmetry property.”
Formalization
35
Person
parent 0..2
*
child
IsParentOf
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Kx (kind) can either be Problem or Checking.
Person
parent 0..2
*
child
IsParentOf
Formalization
35
“Check whether the asso-
ciation «IsParentOf» needs
a constraint enforcing the
symmetry property.”
context Person inv:
self.child.child->
excludes( self )
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
✓
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Kx (kind) can either be Problem or Checking.
Person
parent 0..2
*
child
IsParentOf
Formalization
35
“Check whether the asso-
ciation «IsParentOf» needs
a constraint enforcing the
symmetry property.”
context Person inv:
self.child.child->
excludes( self )
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Ax (acceptability) indicates whether an
issue type is Acceptable or Non-acceptable
Formalization
36
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Ax (acceptability) indicates whether an
issue type is Acceptable or Non-acceptable
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
{disjoint, complete}
If non-acceptable,
we must modify the
schema in a way
such that the issue
disappears.
Formalization
37
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Ax (acceptability) indicates whether an
issue type is Acceptable or Non-acceptable
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
{disjoint, complete}
If non-acceptable,
we must modify the
schema in a way
such that the issue
disappears.
Formalization
37
Pull-up
Property
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Ax (acceptability) indicates whether an
issue type is Acceptable or Non-acceptable
MotorVehicle
plateNumber:String
Car Motorcycle
{disjoint, complete}
If non-acceptable,
we must modify the
schema in a way
such that the issue
disappears.
Formalization
37
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Ax (acceptability) indicates whether an
issue type is Acceptable or Non-acceptable
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
{disjoint, complete}
If non-acceptable,
we must modify the
schema in a way
such that the issue
disappears.
Formalization
37
Change it to
incomplete
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Ax (acceptability) indicates whether an
issue type is Acceptable or Non-acceptable
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
{disjoint, incomplete}
If non-acceptable,
we must modify the
schema in a way
such that the issue
disappears.
Formalization
37
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Ax (acceptability) indicates whether an
issue type is Acceptable or Non-acceptable
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
{disjoint, complete}
If acceptable,
the modeler can
simply state that he
won't fix it the
schema.
Formalization
38
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
✓
Issue Type Definition
Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax }
Ax (acceptability) indicates whether an
issue type is Acceptable or Non-acceptable
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
{disjoint, complete}
If acceptable,
the modeler can
simply state that he
won't fix it the
schema.
Formalization
38
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Life cycle of an Issue Instance
Formalization
Non-Acceptable
Problem Issue
Acceptable
Problem Issue
Non-Acceptable
Checking Issue
Acceptable
Checking Issue
Pending
Pending
Accepted
Pending
CheckedChecked
Pending
Accepted
Deletion
Deletion Deletion Deletion
Accept
Accept
Check
Check
Reconsider
Reconsider
Reconsider
Reconsider
39
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
A Catalog of Quality Issues
40
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
The Catalog
Design Science Research requires
an artifact to be built.
Catalog
A Catalog of Quality Issues presents
quality properties uniformly and
demonstrates the expressiveness and
usefulness of our method.
41
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Expressiveness
The catalog includes all metamodel constraints plus
65 additional non-syntactic quality issue types.
(from conceptual modeling books, papers, and IDEs)
Catalog
We defined them as
Quality Issues using
our formalization.
42
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Classification
Catalog
Syntactic Issue Types
An integrity constraint defined in the UML
metamodel.
For example,
“There is a cycle of generalizations.”
43OBJECT MANAGEMENT GROUP (OMG), Unified Modeling Language (UML), Superstructure, 2011
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Classification
Catalog
Syntactic Issue Types
An integrity constraint defined in the UML
metamodel.
LandVehicle
MotorVehicle
Car
Non-acceptable Problem
= <Classifier>
= true
= self.allParents()->
includesSelf()
S
Φ
ρ
43
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Classification
Catalog
Syntactic Plus Issue Types (11)
Integrity constraints applicable when UML
is used as a conceptual modeling language.
For example,
“An attribute has no type.”
44MOODY, D.L., Metrics for evaluating the quality of entity relationship models. In ER, vol. 1507 of LNCS. Springer, 1998, pp. 211-225
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Classification
Catalog
Syntactic Plus Issue Types (11)
Integrity constraints applicable when UML
is used as a conceptual modeling language.
Car
plateNumber
Non-acceptable Problem
= <Property>
= it is an attribute
= self.type()->
notEmpty()
S
Φ
ρ
44
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Classification
Catalog
Basic Quality Issue Types (20)
Fundamental properties for a schema to be
correct, relevant, and complete.
For example,
“The schema is not strongly satisfia-
ble because of a recursive associa-
tion.”
45OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Classification
Catalog
Basic Quality Issue Types (20)
Person
parent 2
3
child
IsParentOf
Fundamental properties for a schema to be
correct, relevant, and complete.
Non-acceptable Problem
= <Association>
= “is binary and recursive”
= “the multiplicities are
not strongly satisfiable”
S
Φ
ρ
45
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Classification
Catalog
Best Practices (18)
Issues that are recommended by some
authors in some contexts.
For example,
“An attribute repeated among all
specific classes of an incomplete
generalization set is correct.”
46FOWLER, M. Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Classification
Catalog
Best Practices (18)
Issues that are recommended by some
authors in some contexts.
(Non-)Acceptable Checking
= <gs:GenSet, s:String>
= “gs is incomplete”
= “every specific class of gs
has an attribute named s”
S
Φ
ρ
MotorVehicle
Car
plateNumber:String
Motorcycle
plateNumber:String
{incomplete}
46
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Classification
Catalog
Naming Guidelines (16)
Special kind of best practices, focused on
the names given to schema elements.
For example,
“The name of a boolean attribute is
not a third-person singular verb-
phrase.”
47
AGUILERA, D., GÓMEZ, C., OLIVÉ, A., A complete set of guidelines for naming UML conceptual schema elements.
Data Knowl. Eng. 88, 0 (2013), 60-74
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Classification
Catalog
Naming Guidelines (16)
Special kind of best practices, focused on
the names given to schema elements.
(Non-)Acceptable Problem
= <Property>
= “it is boolean”
= “its name is not a verb
phrase written in singu-
lar third-person form”
S
Φ
ρ
Person
adult:Boolean
47
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Usefulness
We analyzed 13 conceptual schemas
developed by students as part of their
final projects in a Computer Science degree.
Catalog
Size of the schemas (median):
- 17 Classes
- 3 AssocClases
- 12 Associations
- 56 Attributes
- 8 Invariants
48
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Usefulness
Catalog
All conceptual schemas presented
several Quality Issues!
Number of issues (median):
- 0 Syntactic+
- 111 Basic Properties
- 33 Best Practices
- 24 Naming Guidelines
Size of the schemas:
- 17 Classes
- 3 AssocClases
- 12 Associations
- 56 Attributes
- 8 Invariants
49
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Explore and Analyze current UML IDEs,
comparing them with our catalog
Support by Current IDEs
29 Modeling Tools
Focus on the UML
Conceptual Modeling Tasks
Catalog
50
(ArgoUML, Rational Rose, USE, Poseidon, SDMetrics...)
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
- Do they control syntactic issue types?
- What about other issue types?
- How do they o er this support?ff
- Do they provide assistance for fixing them?
- Can they be extended with new issue types?
Support by Current IDEs
Catalog
Explore and Analyze current UML IDEs,
comparing them with our catalog
51
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we found...
Syntactic Support
3 Full
17 Partial
9 None
Catalog
52
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we found...
Syntactic Support Non-Syntactic Support
S+ BasProp BestPrac Naming
20
0
3 Full
17 Partial
9 None
Catalog
ArgoUML
SDMetrics
CatalogCatalog
52
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we found...
Syntactic Support Non-Syntactic Support
3 Full
17 Partial
9 None
S+ BasProp BestPrac Naming
20
0
Catalog
ArgoUML
SDMetrics
CatalogCatalog
Corrective Actions
- 2 tools only
52
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we found...
Syntactic Support Non-Syntactic Support
Extension Mechanisms
- 4 tools only
3 Full
17 Partial
9 None
S+ BasProp BestPrac Naming
20
0
Catalog
ArgoUML
SDMetrics
Catalog
Corrective Actions
- 2 tools only
52
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Support by IDEs vs. our Catalog
Best IDEs today
ArgoUML and SDMetrics
The number of
issues detected by our catalog versus
those detected by these tools
is 10 times larger!
Catalog
53
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Fair Comparison... (extensibility?)
- Only 4 tools can be extended
- They all deal with problem issues,
thus ignoring checking issues
- The formalization they use is less
expressive than ours
Catalog
54
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Conceptual Modeling Assistant
Implementation of a Prototype Tool
55
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Eclipse
CMA based on Eclipse
Plugin
Plugin
Plugin
Workbench
Platform Runtime
Web
Tools
Java Dev
Tools
CMA
Design Science Research requires
an artifact to be built.
56
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Plugins
Architecture of our CMA
Eclipse
Workbench
Platform
Runtime
CMA
57
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Plugins
Architecture of our CMA
Eclipse
Workbench
Platform
Runtime
UML2
Tools
OCL
Interpreter
CMA
57
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Plugins
Architecture of our CMA
Eclipse
Workbench
Platform
Runtime
UML2
Tools
OCL
Interpreter
CMA Plugin
Issue
Processor IssueType
Manager
Issue View
(feedback)
CMA
57
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Plugins
Architecture of our CMA
Eclipse
Workbench
Platform
Runtime
UML2
Tools
OCL
Interpreter
CMA Plugin
Issue
Processor
Issue View
(feedback)
Issue
Type
XML
IssueType
Manager
CMA
57
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Plugins
Architecture of our CMA
Eclipse
Workbench
Platform
Runtime
UML2
Tools
OCL
Interpreter
CMA Plugin
Issue
Processor
Issue View
(feedback)
Remote
Server
Issue
Catalog
Issue
Type
XML
IssueType
Manager
CMA
57
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
The Catalog
CMA
58
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
The Catalog – Regular Issue Types
CMA
<issue nid=”038” id=”redundant-gen”
kind=”problem” acceptance=”non-acceptable”>
<context>Generalization</context>
<title>A generalization is redundant</title>
<applicability-condition>
Generalization.allInstances()->select( g1, g2 |
g1 <> self and g2 <> self and
g2.specific = self.specific and g2.general = self.general )
->notEmpty()
</applicability-condition>
<!-- issue-condition, description, actions... -->
</issue>
59
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
The Catalog – Black-Box Issue Types
CMA
60
UML2
Tools
OCL
Interpreter
CMA Plugin
Issue
Processor
Issue View
(feedback)
Issue
CatalogIssue
Type
XML
IssueType
Manager
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
The Catalog – Black-Box Issue Types
CMA
60
UML2
Tools
OCL
Interpreter
CMA Plugin
Issue
Processor
Issue View
(feedback)
Issue
CatalogIssue
Type
XML
IssueType
Manager
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
The Catalog – Black-Box Issue Types
CMA
60
UML2
Tools
OCL
Interpreter
CMA Plugin
Issue
Processor
Issue View
(feedback)
Issue
CatalogIssue
Type
XML
IssueType
Manager
«interface»
IBlackBoxIssueType
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
The Catalog – Black-Box Issue Types
CMA
60
UML2
Tools
OCL
Interpreter
CMA Plugin
Issue
Processor
Issue View
(feedback)
Issue
CatalogIssue
Type
XML
IssueType
Manager
«interface»
IBlackBoxIssueType
BlackBoxIssueType
getPotentialSet()
doesRaiseAnIssueType(Tuple)
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
CMA
CMA
61
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
CMA
CMA
61
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Efficient Evaluation
of Quality Issues
62
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Computation of Issue Instances
Incremental
Person
adult:Boolean
Book
isABestSeller:Boolean
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
63
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Computation of Issue Instances
Incremental
Issues?
Evaluate the Applicability
and Issue Conditions for
every instance of the scope.
Person
adult:Boolean
Book
isABestSeller:Boolean
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
63
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Computation of Issue Instances
Incremental
Person
adult:Boolean
Book
isABestSeller:Boolean
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
64
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Computation of Issue Instances
Incremental
Person
adult:Boolean
Book
isABestSeller:Boolean
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
64
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Computation of Issue Instances
Incremental
Person
adult:Boolean
Book
isABestSeller:Boolean
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
64
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Computation of Issue Instances
Incremental
Person
adult:Boolean
Book
isABestSeller:Boolean
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
The name of the boolean
attribute «adult» is not a
verb phrase.
64
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Computation of Issue Instances
Incremental
Book
isABestSeller:Boolean
The name of the boolean
attribute «adult» is not a
verb phrase.
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
This evaluation takes time.
We want to detect quality issues
as fast as possible.
65
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Computation of Issue Instances
Incremental
“Not all changes that can be applied to
the schema have an e ect on theff
evaluation of the expression”.
Incremental Methods
66
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Incremental Methods
Possible changes:
Incremental
Person
adult:Boolean
Book
isABestSeller:Boolean
The name of the boolean
attribute «adult» is not a
verb phrase.
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
67
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Incremental Methods
Possible changes:
- Change the name of A1
Incremental
Person
adult:Boolean
Book
isABestSeller:Boolean
The name of the boolean
attribute «adult» is not a
verb phrase.
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
67
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Incremental Methods
Possible changes:
- Change the name of A1
Incremental
Person
adult:Boolean
Book
free:Boolean
The name of the boolean
attribute «adult» is not a
verb phrase.
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
The name of the boolean
attribute «free» is not a
verb phrase.
67
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Incremental Methods
Possible changes:
- Change the name of A1
- Change the name of A2
Incremental
Person
adult:Boolean
Book
isABestSeller:Boolean
The name of the boolean
attribute «adult» is not a
verb phrase.
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
67
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Incremental Methods
Possible changes:
- Change the name of A1
- Change the name of A2
Incremental
Person
isAnAdult:Boolean
Book
isABestSeller:Boolean
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
67
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Incremental Methods
Possible changes:
- Change the name of A1
- Change the name of A2
- Change the name of C1
Incremental
Person
adult:Boolean
Book
isABestSeller:Boolean
The name of the boolean
attribute «adult» is not a
verb phrase.
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
67
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Incremental Methods
Possible changes:
- Change the name of A1
- Change the name of A2
- Change the name of C1
Incremental
Man
adult:Boolean
Book
isABestSeller:Boolean
The name of the boolean
attribute «adult» is not a
verb phrase.
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
67
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Incremental Methods
Possible changes:
- Change the name of A1
- Change the name of A2
- Change the name of C1
- Add a new attribute
- Delete an association
- Create a generalization
Incremental
Person
adult:Boolean
Book
isABestSeller:Boolean
The name of the boolean
attribute «adult» is not a
verb phrase.
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
67
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Incremental Methods
Incremental
Possible changes:
- Change the name of A1
- Change the name of A2
- Change the name of C1
- Add a new attribute
- Delete an association
Person
adult:Boolean
Book
isABestSeller:Boolean
The name of the boolean
attribute «adult» is not a
verb phrase.
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
The goal of an Incremental Method
is to determine the set of changes
that (might) change the result of
evaluating an expression.
68
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Incremental Methods
Incremental
Possible changes:
- Change the name of A1
- Change the name of A2
- Change the name of C1
- Add a new attribute
- Delete an association
- Create a generalization
Person
adult:Boolean
Book
isABestSeller:Boolean
The name of the boolean
attribute «adult» is not a
verb phrase.
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
69
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Incremental Methods
Incremental
Possible changes:
- Change the name of A1
- Change the name of A2
- Change the name of C1
- Add a new attribute
- Delete an association
- Create a generalization
Person
adult:Boolean
Book
isABestSeller:Boolean
The name of the boolean
attribute «adult» is not a
verb phrase.
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
69
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Incremental Methods
Incremental
Person
adult:Boolean
Book
isABestSeller:Boolean
The name of the boolean
attribute «adult» is not a
verb phrase.
Sx = { Property }
ρx(a) = “the name of a boolean
attribute is not a verb phrase”
69
Possible changes:
- Change the name of A1
- Change the name of A2
- Change the type of A2
- Delete A2
- Delete an association
- Create a generalization
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Efficient Detection of Issues
We selected Egyed's method and applied it to
our algorithm, taking into account:
- Applicability and issue conditions
- Precedents
Modify the algorithm for
computing issue instances with an
instance-based incremental approach.
Incremental
70
EGYED, A. Automatically detecting and tracking inconsistencies in software design models.
IEEE Trans. Softw. Eng. 37, 2 (2011), 188-204
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Improvements in Efficiency
Regular approach (schemas <500 elems)
Incremental approach
Avg. 9 seconds Max. over 5 minutes
Max. 250 millisecs
Incremental
The results are conclusive.
71
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Conclusions and Future Work
72
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Conclusions
The Problem
Defining Conceptual Schemas is a complex
and difficult activity, but the support modelers
get is scarce.
Conclusions
73
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Conclusions
The Problem
Quality in Conceptual Modeling is important,
but the support modelers get is scarce.
The Solution
A method for defining and treating Quality Issues,
whose goal is to assist conceptual modelers.
(based on current literature)
The Problem
Defining Conceptual Schemas is a complex
and difficult activity, but the support modelers
get is scarce.
Conclusions
73
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
1
Formalization
Conceptual Schema Quality Issues
- Definition
- (Efficient) Detection
- Solution
Conclusions
AGUILERA, D., GÓMEZ, C., AND OLIVÉ, A.
A method for the definition and treatment of conceptual schema quality issues.
In ER (2012), vol. 7532 of LNCS, Springer, pp. 501-514 74
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
2
Catalog
Issues from the literature
- UML/OCL
- Syntactic correctness
- Best practices and guidelines
Conclusions
AGUILERA, D., GÓMEZ, C., AND OLIVÉ, A.
A complete set of guidelines for naming UML conceptual schema elements.
Data Knowl. Eng. 88, 0 (2013), 60-74
AGUILERA, D., GÓMEZ, C., AND OLIVÉ, A.
Enforcement of conceptual schema quality issues in current Integrated
Development Environments. In CAiSE (2013), vol. 7908 of LNCS, Springer, pp. 626-640
75
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
3
CMA
Conceptual Modeling Assistant
- The Eclipse Platform
- Implements the method
- Integrates the catalog
Conclusions
AGUILERA, D., GARCÍA-RANEA, R., GÓMEZ, C., AND OLIVÉ, A.
An eclipse plugin for validating names in UML conceptual schemas. In
ER Workshops (2011), vol. 6999 of LNCS, Springer, pp. 323-327
AGUILERA, D., GÓMEZ, C., AND OLIVÉ, A.
An eclipse plugin for improving the quality of UML conceptual schemas. In
ER Workshops (2012), vol. 7518 of LNCS, Springer, pp. 387-390 76
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What's next?
77
Conclusions
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What's next?
Extending the Catalog
78
Conclusions
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What's next?
Integration with Testing
79
Conclusions
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What's next?
Validation with Real Users and Projects
80
Conclusions
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What's next?
Automatic Reparation
81
Conclusions
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Publications
AGUILERA, D., GÓMEZ, C., AND OLIVÉ, A.
Enforcement of conceptual schema quality issues in current Integrated
Development Environments.
In CAiSE (2013), vol. 7908 of LNCS, Springer, pp. 626-640
AGUILERA, D., GÓMEZ, C., AND OLIVÉ, A.
An eclipse plugin for improving the quality of UML conceptual schemas.
In ER Workshops (2012), vol. 7518 of LNCS, Springer, pp. 387-390
AGUILERA, D., GARCÍA-RANEA, R., GÓMEZ, C., AND OLIVÉ, A.
An eclipse plugin for validating names in UML conceptual schemas.
In ER Workshops (2011), vol. 6999 of LNCS, Springer, pp. 323-327
AGUILERA, D., GÓMEZ, C., AND OLIVÉ, A.
A complete set of guidelines for naming UML conceptual schema elements.
Data Knowl. Eng. 88, 0 (2013), 60-74
AGUILERA, D., GÓMEZ, C., AND OLIVÉ, A.
A method for the definition and treatment of conceptual schema quality issues.
In ER (2012), vol. 7532 of LNCS, Springer, pp. 501-514
82
Conclusions
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
David Aguilera
UPC - Barcelona
Dr. Olivé and Dr. Gómez
A Method for the
Unified Definition and Treatment of
Conceptual Schema Quality Issues

More Related Content

Similar to A Method for the Unified Definition and Treatment of Conceptual Schema Quality Issues

Who is Listening, and Why? Audience, Purpose, & Presentation Skills
Who is Listening, and Why? Audience, Purpose, & Presentation SkillsWho is Listening, and Why? Audience, Purpose, & Presentation Skills
Who is Listening, and Why? Audience, Purpose, & Presentation Skills
Sarah Glova
 
Predictive analytics-nirmal.potx
Predictive analytics-nirmal.potxPredictive analytics-nirmal.potx
Predictive analytics-nirmal.potx
WSO2
 
How to Turn Machine Learning Into Products by Capital One PM
How to Turn Machine Learning Into Products by Capital One PMHow to Turn Machine Learning Into Products by Capital One PM
How to Turn Machine Learning Into Products by Capital One PM
Product School
 
Creating a Custom ML Model for your Application - Kotlin/Everywhere
Creating a Custom ML Model for your Application - Kotlin/EverywhereCreating a Custom ML Model for your Application - Kotlin/Everywhere
Creating a Custom ML Model for your Application - Kotlin/Everywhere
Isabel Palomar
 
How Corporate Reorganization Creates Risk (and Opportunity) for Intelligence ...
How Corporate Reorganization Creates Risk (and Opportunity) for Intelligence ...How Corporate Reorganization Creates Risk (and Opportunity) for Intelligence ...
How Corporate Reorganization Creates Risk (and Opportunity) for Intelligence ...
IntelCollab.com
 
LIVErtising 2018 09 Gr_AI_t Expectations
LIVErtising 2018 09 Gr_AI_t ExpectationsLIVErtising 2018 09 Gr_AI_t Expectations
LIVErtising 2018 09 Gr_AI_t Expectations
Jean Pierre Ranschaert
 
Machine learning for product development
Machine learning for product developmentMachine learning for product development
Machine learning for product development
Claudio Villar
 
Creating a custom Machine Learning Model for your applications - Java Dev Day...
Creating a custom Machine Learning Model for your applications - Java Dev Day...Creating a custom Machine Learning Model for your applications - Java Dev Day...
Creating a custom Machine Learning Model for your applications - Java Dev Day...
Isabel Palomar
 
Role Of Programmer On Telecom Industry
Role Of Programmer On Telecom IndustryRole Of Programmer On Telecom Industry
Role Of Programmer On Telecom Industry
Divya Watson
 
[DSC Europe 22] Avoid mistakes building AI products - Karol Przystalski
[DSC Europe 22] Avoid mistakes building AI products - Karol Przystalski[DSC Europe 22] Avoid mistakes building AI products - Karol Przystalski
[DSC Europe 22] Avoid mistakes building AI products - Karol Przystalski
DataScienceConferenc1
 
Microservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature TeamsMicroservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature Teams
Giulio Roggero
 
Data empathy - A Design Thinking approach to AI application development
Data empathy  -  A Design Thinking approach to AI application development Data empathy  -  A Design Thinking approach to AI application development
Data empathy - A Design Thinking approach to AI application development
Franki Chamaki
 
Building on the Shoulders of Giants: the Story of Bitbucket Pipelines
Building on the Shoulders of Giants: the Story of Bitbucket PipelinesBuilding on the Shoulders of Giants: the Story of Bitbucket Pipelines
Building on the Shoulders of Giants: the Story of Bitbucket Pipelines
Atlassian
 
Practical uses of AI in retail
Practical uses of AI in retailPractical uses of AI in retail
Practical uses of AI in retail
National Retail Federation
 
Lucia Ferretti, Lead Business Designer; Matteo Meschini, Business Designer @T...
Lucia Ferretti, Lead Business Designer; Matteo Meschini, Business Designer @T...Lucia Ferretti, Lead Business Designer; Matteo Meschini, Business Designer @T...
Lucia Ferretti, Lead Business Designer; Matteo Meschini, Business Designer @T...
Associazione Digital Days
 
A Self Funding Agile Transformation
A Self Funding Agile TransformationA Self Funding Agile Transformation
A Self Funding Agile Transformation
Daniel Poon
 
Drive Digital Transformation using Machine Learning
Drive Digital Transformation using Machine LearningDrive Digital Transformation using Machine Learning
Drive Digital Transformation using Machine Learning
Amazon Web Services
 
SearchLove San Diego 2017 | Michael King | Machine Doing
SearchLove San Diego 2017 | Michael King | Machine DoingSearchLove San Diego 2017 | Michael King | Machine Doing
SearchLove San Diego 2017 | Michael King | Machine Doing
Distilled
 
Cognitive Automation - Your AI Coworker
Cognitive Automation - Your AI CoworkerCognitive Automation - Your AI Coworker
Cognitive Automation - Your AI Coworker
Tamilselvan Subramanian
 
Creating and Implementing Your Analytics Strategy
Creating and Implementing Your Analytics StrategyCreating and Implementing Your Analytics Strategy
Creating and Implementing Your Analytics Strategy
T. Scott Clendaniel
 

Similar to A Method for the Unified Definition and Treatment of Conceptual Schema Quality Issues (20)

Who is Listening, and Why? Audience, Purpose, & Presentation Skills
Who is Listening, and Why? Audience, Purpose, & Presentation SkillsWho is Listening, and Why? Audience, Purpose, & Presentation Skills
Who is Listening, and Why? Audience, Purpose, & Presentation Skills
 
Predictive analytics-nirmal.potx
Predictive analytics-nirmal.potxPredictive analytics-nirmal.potx
Predictive analytics-nirmal.potx
 
How to Turn Machine Learning Into Products by Capital One PM
How to Turn Machine Learning Into Products by Capital One PMHow to Turn Machine Learning Into Products by Capital One PM
How to Turn Machine Learning Into Products by Capital One PM
 
Creating a Custom ML Model for your Application - Kotlin/Everywhere
Creating a Custom ML Model for your Application - Kotlin/EverywhereCreating a Custom ML Model for your Application - Kotlin/Everywhere
Creating a Custom ML Model for your Application - Kotlin/Everywhere
 
How Corporate Reorganization Creates Risk (and Opportunity) for Intelligence ...
How Corporate Reorganization Creates Risk (and Opportunity) for Intelligence ...How Corporate Reorganization Creates Risk (and Opportunity) for Intelligence ...
How Corporate Reorganization Creates Risk (and Opportunity) for Intelligence ...
 
LIVErtising 2018 09 Gr_AI_t Expectations
LIVErtising 2018 09 Gr_AI_t ExpectationsLIVErtising 2018 09 Gr_AI_t Expectations
LIVErtising 2018 09 Gr_AI_t Expectations
 
Machine learning for product development
Machine learning for product developmentMachine learning for product development
Machine learning for product development
 
Creating a custom Machine Learning Model for your applications - Java Dev Day...
Creating a custom Machine Learning Model for your applications - Java Dev Day...Creating a custom Machine Learning Model for your applications - Java Dev Day...
Creating a custom Machine Learning Model for your applications - Java Dev Day...
 
Role Of Programmer On Telecom Industry
Role Of Programmer On Telecom IndustryRole Of Programmer On Telecom Industry
Role Of Programmer On Telecom Industry
 
[DSC Europe 22] Avoid mistakes building AI products - Karol Przystalski
[DSC Europe 22] Avoid mistakes building AI products - Karol Przystalski[DSC Europe 22] Avoid mistakes building AI products - Karol Przystalski
[DSC Europe 22] Avoid mistakes building AI products - Karol Przystalski
 
Microservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature TeamsMicroservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature Teams
 
Data empathy - A Design Thinking approach to AI application development
Data empathy  -  A Design Thinking approach to AI application development Data empathy  -  A Design Thinking approach to AI application development
Data empathy - A Design Thinking approach to AI application development
 
Building on the Shoulders of Giants: the Story of Bitbucket Pipelines
Building on the Shoulders of Giants: the Story of Bitbucket PipelinesBuilding on the Shoulders of Giants: the Story of Bitbucket Pipelines
Building on the Shoulders of Giants: the Story of Bitbucket Pipelines
 
Practical uses of AI in retail
Practical uses of AI in retailPractical uses of AI in retail
Practical uses of AI in retail
 
Lucia Ferretti, Lead Business Designer; Matteo Meschini, Business Designer @T...
Lucia Ferretti, Lead Business Designer; Matteo Meschini, Business Designer @T...Lucia Ferretti, Lead Business Designer; Matteo Meschini, Business Designer @T...
Lucia Ferretti, Lead Business Designer; Matteo Meschini, Business Designer @T...
 
A Self Funding Agile Transformation
A Self Funding Agile TransformationA Self Funding Agile Transformation
A Self Funding Agile Transformation
 
Drive Digital Transformation using Machine Learning
Drive Digital Transformation using Machine LearningDrive Digital Transformation using Machine Learning
Drive Digital Transformation using Machine Learning
 
SearchLove San Diego 2017 | Michael King | Machine Doing
SearchLove San Diego 2017 | Michael King | Machine DoingSearchLove San Diego 2017 | Michael King | Machine Doing
SearchLove San Diego 2017 | Michael King | Machine Doing
 
Cognitive Automation - Your AI Coworker
Cognitive Automation - Your AI CoworkerCognitive Automation - Your AI Coworker
Cognitive Automation - Your AI Coworker
 
Creating and Implementing Your Analytics Strategy
Creating and Implementing Your Analytics StrategyCreating and Implementing Your Analytics Strategy
Creating and Implementing Your Analytics Strategy
 

Recently uploaded

clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
Priyankaranawat4
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
Celine George
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
mulvey2
 
How to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP ModuleHow to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP Module
Celine George
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
Priyankaranawat4
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
Celine George
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
WaniBasim
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
Israel Genealogy Research Association
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Fajar Baskoro
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
eBook.com.bd (প্রয়োজনীয় বাংলা বই)
 
World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024
ak6969907
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
Katrina Pritchard
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
AyyanKhan40
 
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
National Information Standards Organization (NISO)
 
How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
Celine George
 
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
IreneSebastianRueco1
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
David Douglas School District
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
Colégio Santa Teresinha
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
adhitya5119
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 

Recently uploaded (20)

clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
 
How to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP ModuleHow to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP Module
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
 
Liberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdfLiberal Approach to the Study of Indian Politics.pdf
Liberal Approach to the Study of Indian Politics.pdf
 
The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
 
World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
 
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
 
How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
 
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
RPMS TEMPLATE FOR SCHOOL YEAR 2023-2024 FOR TEACHER 1 TO TEACHER 3
 
Pride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School DistrictPride Month Slides 2024 David Douglas School District
Pride Month Slides 2024 David Douglas School District
 
MARY JANE WILSON, A “BOA MÃE” .
MARY JANE WILSON, A “BOA MÃE”           .MARY JANE WILSON, A “BOA MÃE”           .
MARY JANE WILSON, A “BOA MÃE” .
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 

A Method for the Unified Definition and Treatment of Conceptual Schema Quality Issues

  • 1. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction A Method for the Unified Definition and Treatment of Conceptual Schema Quality Issues Thesis supervised by Dr. Antoni Olivé Dr. Cristina Gómez David Aguilera June 6th, 2014 Barcelona
  • 2. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction We cannot run the modern world without software 2
  • 3. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction We cannot run the modern world without software 2
  • 4. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction We cannot run the modern world without software 2
  • 5. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction We cannot run the modern world without software 2
  • 6. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction We cannot run the modern world without software Which means software's quality has become essential to our society. Introduction 3SOMMERVILLE, I. Software Engineering, 9 ed. Addison-Wesley, 2010
  • 7. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Quality The degree up to which a set of properties are met. It depends on the perspective: - Innate excellence - Product-based - User-based - Manufacturing-based - Value-based Introduction 4GARVIN, D.A.. What does “product quality” really mean? Sloan Manag. Review 26, 1 (1984), 25-43
  • 8. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Quality in Software It's been classically focused on evaluating the final product. ISO standards - ISO 9000 - ISO/IEC 1926 Proposals in the literature Introduction 5
  • 9. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Maintenance Software Development Process Requirements Design Impl. & Unit Testing Integration & Testing Introduction Classic Waterfall Model Agile Methodologies (like SCRUM, with iterations) 6SOMMERVILLE, I. Software Engineering, 9 ed. Addison-Wesley, 2010
  • 10. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Evaluating Quality in Software Focusing on the Final Product is positive and necessary... ...but is not as efficient as it could be. number cost time Introduction 7
  • 11. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Conceptual Modeling Essential Activity in the Requirements Stage of the Software Development Process Introduction 8OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
  • 12. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Conceptual Modeling Conceptual Schema General Knowledge for an Information System to operate. Essential Activity in the Requirements Stage of the Software Development Process Introduction 8OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
  • 13. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction The Problem Defining Conceptual Schemas is a complex and difficult activity, but the support modelers get is scarce. There's a lot of work in the literature, but it does not reach practitioners. Introduction 9
  • 14. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Goal of this Thesis Improve the Quality of Conceptual Schemas We want to help conceptual modelers. We want their tools to assist them. - Study and characterize several quality criteria. - Create a catalog that unifies those criteria. - Implement a conceptual modeling assistant. Introduction 10
  • 15. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Addressed Quality Dimensions We focus on those dimensions that can be evaluated using the schema itself. According to conceptual modeling quality frameworks: - Syntactical Quality - Empirical Quality - Other dimensions, such as semantic validity, comprehension, ... Introduction 11
  • 16. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Motivation Formalization of Quality Issues Catalog of Quality Issues Conceptual Modeling Assistant outline 02 03 04 05 Notes on Efficient Evaluation06 Conclusions and Future Work07 Introduction01
  • 17. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Motivation What we want. What we have. 13
  • 18. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Goal of this Thesis Improve the Quality of Conceptual Schemas We want to help conceptual modelers to create conceptual schemas: - that are syntactically correct, - that are complete, - whose elements are relevant, - that follow a set of best practices... Motivation 14
  • 19. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... LandVehicle MotorVehicle Car plateNumber:String motorcycle plateNumber:String Person {disjoint, complete} parent 2 3 child IsParentOf Owns* 0..1 Motivation 15
  • 20. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it to be syntactically correct. e.g. generalization cycles Motivation LandVehicle MotorVehicle Car plateNumber:String motorcycle plateNumber:String Person {disjoint, complete} parent 2 3 child IsParentOf Owns* 0..1 16OBJECT MANAGEMENT GROUP (OMG), Unified Modeling Language (UML), Superstructure, 2011
  • 21. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it to be syntactically correct. e.g. generalization cycles Motivation LandVehicle MotorVehicle Car plateNumber:String motorcycle plateNumber:String Person {disjoint, complete} parent 2 3 child IsParentOf Owns* 0..1 16OBJECT MANAGEMENT GROUP (OMG), Unified Modeling Language (UML), Superstructure, 2011
  • 22. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it to be syntactically correct. e.g. generalization cycles Motivation LandVehicle MotorVehicle Car plateNumber:String motorcycle plateNumber:String Person {disjoint, complete} parent 2 3 child IsParentOf Owns* 0..1 Remove one generalization to break the cycle 16OBJECT MANAGEMENT GROUP (OMG), Unified Modeling Language (UML), Superstructure, 2011
  • 23. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it to be syntactically correct. e.g. generalization cycles Motivation LandVehicle MotorVehicle Car plateNumber:String motorcycle plateNumber:String Person {disjoint, complete} parent 2 3 child IsParentOf Owns* 0..1 16OBJECT MANAGEMENT GROUP (OMG), Unified Modeling Language (UML), Superstructure, 2011
  • 24. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it not to have duplicated info. e.g. redundant generalizations LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, complete} parent 2 3 child IsParentOf Owns* 0..1 Motivation 17OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
  • 25. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it not to have duplicated info. e.g. redundant generalizations LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, complete} parent 2 3 child IsParentOf Owns* 0..1 Motivation 17OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
  • 26. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it not to have duplicated info. e.g. redundant generalizations LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, complete} parent 2 3 child IsParentOf Owns* 0..1 Remove redundant generalization Motivation 17OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
  • 27. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it not to have duplicated info. e.g. redundant generalizations LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, complete} parent 2 3 child IsParentOf Owns* 0..1 Motivation 17OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
  • 28. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it not to have duplicated info. e.g. repeated attributes LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, complete} parent 2 3 child IsParentOf Owns* 0..1 Motivation 18FOWLER, M. Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
  • 29. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it not to have duplicated info. e.g. repeated attributes LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, complete} parent 2 3 child IsParentOf Owns* 0..1 Motivation 18FOWLER, M. Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
  • 30. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it not to have duplicated info. e.g. repeated attributes LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, complete} parent 2 3 child IsParentOf Owns* 0..1 Pull-Up Property Refactoring Motivation 18FOWLER, M. Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
  • 31. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it not to have duplicated info. e.g. repeated attributes LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, complete} parent 2 3 child IsParentOf Owns* 0..1 Pull-Up Property Refactoring Incomplete GeneralizationSet Motivation 18FOWLER, M. Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
  • 32. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it not to have duplicated info. e.g. repeated attributes LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, complete} parent 2 3 child IsParentOf Owns* 0..1 Incomplete GeneralizationSet Motivation 18FOWLER, M. Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
  • 33. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it not to have duplicated info. e.g. repeated attributes LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, incomplete} parent 2 3 child IsParentOf Owns* 0..1 Motivation 18FOWLER, M. Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
  • 34. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, incomplete} parent 2 3 child IsParentOf Owns* 0..1 I want it to be correct. e.g. non-empty populations Motivation 19OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
  • 35. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it to be correct. e.g. non-empty populations LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, incomplete} parent 2 3 child IsParentOf Owns* 0..1 Motivation 19OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
  • 36. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it to be correct. e.g. non-empty populations LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, incomplete} parent 2 3 child IsParentOf Owns* 0..1 Change multiplicities Motivation 19OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
  • 37. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it to be correct. e.g. non-empty populations LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, incomplete} IsParentOf Owns* 0..1 Change multiplicities parent 2 0..3 child Motivation 19OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
  • 38. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it to be complete. e.g. awareness of (possibly) missing information LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, incomplete} parent 2 0..3 child IsParentOf Owns* 0..1 Motivation 20OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
  • 39. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it to be complete. e.g. awareness of (possibly) missing information LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, incomplete} parent 2 0..3 child IsParentOf Owns* 0..1 (ir)reflexive? (in)transitive? (a)symmetric? Motivation 20OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
  • 40. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it to be complete. e.g. awareness of (possibly) missing information LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, incomplete} parent 2 0..3 child IsParentOf Owns* 0..1 (ir)reflexive? (in)transitive? (a)symmetric? Yes, all relevant constraints are in the schema. Motivation 20OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
  • 41. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it to be complete. e.g. awareness of (possibly) missing information LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, incomplete} parent 2 0..3 child IsParentOf Owns* 0..1 (ir)reflexive? (in)transitive? (a)symmetric? Yes, all relevant constraints are in the schema. Create an asymmetry constraint, which is missing. Motivation 20OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
  • 42. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it to be complete. e.g. awareness of (possibly) missing information LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, incomplete} parent 2 0..3 child IsParentOf Owns* 0..1 Create an asymmetry constraint, which is missing. Motivation 20OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
  • 43. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we would like to have... I want it to be complete. e.g. awareness of (possibly) missing information LandVehicle MotorVehicle Car plateNumber:String Motorcycle plateNumber:String Person {disjoint, incomplete} parent 2 0..3 child IsParentOf Owns* 0..1 context Person inv: self.child.child-> excludes( self ) Motivation 20OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
  • 44. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction But, what do we have today? Motivation - Inspections, testing, reviews, … - There are several quality properties pu- blished (and scattered) in the literature. - There are also proposals for efficiently dealing with inconsistencies. - Current modeling tools o er little toff no support for dealing with this stu .ff (ArgoUML, Rational Rose, USE, Poseidon, ...) 21
  • 45. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Overview of Our Method Motivation 22
  • 46. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Overview of Our Method Formalization A Motivation 22
  • 47. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Overview of Our Method Formalization Characterization of Quality Issues A Motivation 22
  • 48. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Overview of Our Method Formalization Characterization of Quality Issues A Issue A Scope, conditions... Motivation 22
  • 49. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Overview of Our Method Formalization Catalog Characterization of Quality Issues A Issue A Scope, conditions... Motivation 22
  • 50. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Overview of Our Method Formalization Catalog Characterization of Quality Issues A Issue A Scope, conditions... Issue A Context, conditions... Issue A Scope, conditions... Motivation 22
  • 51. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Overview of Our Method Formalization Catalog Characterization of Quality Issues A Issue A Scope, conditions... Issue A Context, conditions... Issue A Scope, conditions... Issue A Context, conditions... Issue B Scope, conditions... Motivation 22
  • 52. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Overview of Our Method Formalization Catalog Characterization of Quality Issues A Issue A Scope, conditions... Issue A Context, conditions... Issue A Scope, conditions... Issue A Context, conditions... Issue B Scope, conditions... Issue A Context, conditions... Issue C Scope, conditions... Motivation 22
  • 53. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Overview of Our Method Formalization Catalog CMA Modeling Tool Characterization of Quality Issues A Issue A Scope, conditions... Issue A Context, conditions... Issue A Scope, conditions... Issue A Context, conditions... Issue B Scope, conditions... Issue A Context, conditions... Issue C Scope, conditions... Motivation 22
  • 54. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Overview of Our Method Formalization Catalog Characterization of Quality Issues A Issue A Scope, conditions... Issue A Context, conditions... Issue A Scope, conditions... Issue A Context, conditions... Issue B Scope, conditions... Issue A Context, conditions... Issue C Scope, conditions... Motivation CMA Modeling Tool 22
  • 55. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Overview of Our Method Formalization Catalog Characterization of Quality Issues A Issue A Scope, conditions... Issue A Context, conditions... Issue A Scope, conditions... Issue A Context, conditions... Issue B Scope, conditions... Issue A Context, conditions... Issue C Scope, conditions... 1. This gen is redu 2. Association has 3. Constraint does Motivation CMA Modeling Tool 22
  • 56. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Overview of Our Method 1. This gen is redu 2. Association has 3. Constraint does Catalog Issue A Context, conditions... Issue A Scope, conditions... Issue A Context, conditions... Issue B Scope, conditions... Issue A Context, conditions... Issue C Scope, conditions... Formalization Characterization of Quality Issues A Issue A Scope, conditions... Motivation CMA Modeling Tool 22
  • 57. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Design Science Research “its fundamental principle is that knowledge and understanding of a design problem and its solution are acquired in the building and application of an artifact”. Motivation 23HEVNER, A. R., MARCH, S. T., PARK, J., AND RAM, S. Design science in information systems research, MIS Q. 28, 1 (2004) 75-105
  • 58. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Design Science Research Quality Properties Characterization and Formalization Catalog CMA State of the Art Challenge Assist Modelers and Improve Quality Searching Adapting Testing Motivation 24
  • 59. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Characterization and Formalization of Conceptual Schema Quality Issues 25
  • 60. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What is an Issue? “an important topic or problem for debate or discussion” Formalization 26
  • 61. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What is an Issue? “an important topic or problem for debate or discussion” In essence, it is a condition the schema should not satisfy to: - be syntactically correct, - be complete, - ensure all elements are relevant, - follow a best practice... Formalization 26
  • 62. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What is an Issue? Formalization An Issue Type describes the problem. An Issue Instance is a concrete instance of that problem in the schema. 27
  • 63. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What is an Issue? An Issue Type describes the problem. An Issue Instance is a concrete instance of that problem in the schema. Formalization Type: “There are redun- dant generalizations” Instance: “g1 is redundant” g1 g2 g3, g4 LandVehicle MotorVehicle Car Motorcycle {disjoint, complete} 27
  • 64. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition An Issue Type must be able to specify: - which kind of elements may raise an issue, - which elements do actually raise it, - how to fix that issue, and - when and how should that issue be addressed Formalization 28
  • 65. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } An Issue Type must be able to specify: - which kind of elements may raise an issue, - which elements do actually raise it, - how to fix that issue, and - when and how should that issue be addressed Formalization 28
  • 66. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Formalization 28
  • 67. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Sx (scope) and Φx (applicability condition) determine the potential set of elements that may raise an issue of type Ix Formalization 29
  • 68. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Sx (scope) and Φx (applicability condition) determine the potential set of elements that may raise an issue of type Ix g1 g2 g3, g4 LandVehicle MotorVehicle Car Motorcycle {disjoint, complete} Formalization 29
  • 69. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Sx (scope) and Φx (applicability condition) determine the potential set of elements that may raise an issue of type Ix g1 g2 g3, g4 LandVehicle MotorVehicle Car Motorcycle {disjoint, complete} Sx = { Generalization } Formalization 29
  • 70. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Sx (scope) and Φx (applicability condition) determine the potential set of elements that may raise an issue of type Ix g1 g2 g3, g4 LandVehicle MotorVehicle Car Motorcycle {disjoint, complete} Sx = { Generalization } Φx (g) = “there are two generalizations ga and gb such that: g.general = ga.general g.specific = gb.specific Formalization 29
  • 71. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } ρx (issue condition) determines if an element in Pot(Ix) does actually raise an issue of type Ix Formalization 30
  • 72. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } ρx (issue condition) determines if an element in Pot(Ix) does actually raise an issue of type Ix g1 g2 g3, g4 LandVehicle MotorVehicle Car Motorcycle {disjoint, complete} ρx (g) = “there is an indi- rect generalization path between g.general and g.specific” Formalization 30
  • 73. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } ρx (issue condition) determines if an element in Pot(Ix) does actually raise an issue of type Ix g1 g2 g3, g4 LandVehicle MotorVehicle Car Motorcycle {disjoint, complete} ρx (g) = “there is an indirect generalizations path between g.general and g.specific” Formalization 30
  • 74. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Ox is a set of actions that help the conceptual modeler to fix an issue instance Formalization 31
  • 75. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } g1 g2 g3, g4 LandVehicle MotorVehicle Car Motorcycle {disjoint, complete} Ox = { “remove redundant generalization” } Ox is a set of actions that help the conceptual modeler to fix an issue instance Formalization 31
  • 76. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } g2 g3, g4 LandVehicle MotorVehicle Car Motorcycle {disjoint, complete} Ox = { “remove redundant generalization” } Ox is a set of actions that help the conceptual modeler to fix an issue instance Formalization 31
  • 77. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } g1 g2 g3, g4 LandVehicle MotorVehicle Car Motorcycle {disjoint, complete} Ox = { “remove redundant generalization”, “break the indirect path of generalizations” } Ox is a set of actions that help the conceptual modeler to fix an issue instance Formalization 31
  • 78. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } g1 g3, g4 LandVehicle MotorVehicle Car Motorcycle {disjoint, complete} Ox = { “remove redundant generalization”, “break the indirect path of generalizations” } Ox is a set of actions that help the conceptual modeler to fix an issue instance Formalization 31
  • 79. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Px is a set of precedents, which are issue types that must not have issues for considering Ix. Formalization 32
  • 80. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Px is a set of precedents, which are issue types that must not have issues for considering Ix. Ia = “there is a cycle of generalizations” Ib = “there are redundant generalizations” Formalization g1 g2 g3 LandVehicle MotorVehicle Car 32
  • 81. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Px is a set of precedents, which are issue types that must not have issues for considering Ix. Ia = “there is a cycle of generalizations” Ib = “the generalization is redundant” Formalization g1 g2 g3 LandVehicle MotorVehicle Car 32
  • 82. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Px is a set of precedents, which are issue types that must not have issues for considering Ix. Ia = “there is a cycle of generalizations” Ib = “the generalization is redundant” Formalization g1 g2 g3 LandVehicle MotorVehicle Car 32
  • 83. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Px is a set of precedents, which are issue types that must not have issues for considering Ix. Ia = “there is a cycle of generalizations” Ib = “the generalization is redundant” Formalization g1 g2 g3 LandVehicle MotorVehicle Car 32
  • 84. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Px is a set of precedents, which are issue types that must not have issues for considering Ix. Ia = “there is a cycle of generalizations” Ib = “the generalization is redundant” Pb = { Ia } Formalization g2 g3 LandVehicle MotorVehicle Car 32
  • 85. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Kx (kind) can either be Problem or Checking. Formalization 33
  • 86. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Kx (kind) can either be Problem or Checking. Problem Issues can only be fixed by changing the schema, so that the issue does no longer exist. Formalization 34
  • 87. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Kx (kind) can either be Problem or Checking. LandVehicle MotorVehicle Car Motorcycle {disjoint, complete} LandVehicle MotorVehicle Car Motorcycle {disjoint, complete} Formalization 34
  • 88. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Kx (kind) can either be Problem or Checking. Checking Issues require the conceptual modeler to manually check something. There might be situations in which this checking will entail some changes in the schema. Formalization 35
  • 89. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Kx (kind) can either be Problem or Checking. “Check whether the asso- ciation «IsParentOf» needs a constraint enforcing the symmetry property.” Formalization 35 Person parent 0..2 * child IsParentOf
  • 90. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Kx (kind) can either be Problem or Checking. Person parent 0..2 * child IsParentOf Formalization 35 “Check whether the asso- ciation «IsParentOf» needs a constraint enforcing the symmetry property.” context Person inv: self.child.child-> excludes( self )
  • 91. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction ✓ Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Kx (kind) can either be Problem or Checking. Person parent 0..2 * child IsParentOf Formalization 35 “Check whether the asso- ciation «IsParentOf» needs a constraint enforcing the symmetry property.” context Person inv: self.child.child-> excludes( self )
  • 92. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Ax (acceptability) indicates whether an issue type is Acceptable or Non-acceptable Formalization 36
  • 93. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Ax (acceptability) indicates whether an issue type is Acceptable or Non-acceptable MotorVehicle Car plateNumber:String Motorcycle plateNumber:String {disjoint, complete} If non-acceptable, we must modify the schema in a way such that the issue disappears. Formalization 37
  • 94. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Ax (acceptability) indicates whether an issue type is Acceptable or Non-acceptable MotorVehicle Car plateNumber:String Motorcycle plateNumber:String {disjoint, complete} If non-acceptable, we must modify the schema in a way such that the issue disappears. Formalization 37 Pull-up Property
  • 95. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Ax (acceptability) indicates whether an issue type is Acceptable or Non-acceptable MotorVehicle plateNumber:String Car Motorcycle {disjoint, complete} If non-acceptable, we must modify the schema in a way such that the issue disappears. Formalization 37
  • 96. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Ax (acceptability) indicates whether an issue type is Acceptable or Non-acceptable MotorVehicle Car plateNumber:String Motorcycle plateNumber:String {disjoint, complete} If non-acceptable, we must modify the schema in a way such that the issue disappears. Formalization 37 Change it to incomplete
  • 97. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Ax (acceptability) indicates whether an issue type is Acceptable or Non-acceptable MotorVehicle Car plateNumber:String Motorcycle plateNumber:String {disjoint, incomplete} If non-acceptable, we must modify the schema in a way such that the issue disappears. Formalization 37
  • 98. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Ax (acceptability) indicates whether an issue type is Acceptable or Non-acceptable MotorVehicle Car plateNumber:String Motorcycle plateNumber:String {disjoint, complete} If acceptable, the modeler can simply state that he won't fix it the schema. Formalization 38
  • 99. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction ✓ Issue Type Definition Ix = { Sx, Φx, ρx, Ox, Px, Kx, Ax } Ax (acceptability) indicates whether an issue type is Acceptable or Non-acceptable MotorVehicle Car plateNumber:String Motorcycle plateNumber:String {disjoint, complete} If acceptable, the modeler can simply state that he won't fix it the schema. Formalization 38
  • 100. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Life cycle of an Issue Instance Formalization Non-Acceptable Problem Issue Acceptable Problem Issue Non-Acceptable Checking Issue Acceptable Checking Issue Pending Pending Accepted Pending CheckedChecked Pending Accepted Deletion Deletion Deletion Deletion Accept Accept Check Check Reconsider Reconsider Reconsider Reconsider 39
  • 101. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction A Catalog of Quality Issues 40
  • 102. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction The Catalog Design Science Research requires an artifact to be built. Catalog A Catalog of Quality Issues presents quality properties uniformly and demonstrates the expressiveness and usefulness of our method. 41
  • 103. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Expressiveness The catalog includes all metamodel constraints plus 65 additional non-syntactic quality issue types. (from conceptual modeling books, papers, and IDEs) Catalog We defined them as Quality Issues using our formalization. 42
  • 104. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Classification Catalog Syntactic Issue Types An integrity constraint defined in the UML metamodel. For example, “There is a cycle of generalizations.” 43OBJECT MANAGEMENT GROUP (OMG), Unified Modeling Language (UML), Superstructure, 2011
  • 105. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Classification Catalog Syntactic Issue Types An integrity constraint defined in the UML metamodel. LandVehicle MotorVehicle Car Non-acceptable Problem = <Classifier> = true = self.allParents()-> includesSelf() S Φ ρ 43
  • 106. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Classification Catalog Syntactic Plus Issue Types (11) Integrity constraints applicable when UML is used as a conceptual modeling language. For example, “An attribute has no type.” 44MOODY, D.L., Metrics for evaluating the quality of entity relationship models. In ER, vol. 1507 of LNCS. Springer, 1998, pp. 211-225
  • 107. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Classification Catalog Syntactic Plus Issue Types (11) Integrity constraints applicable when UML is used as a conceptual modeling language. Car plateNumber Non-acceptable Problem = <Property> = it is an attribute = self.type()-> notEmpty() S Φ ρ 44
  • 108. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Classification Catalog Basic Quality Issue Types (20) Fundamental properties for a schema to be correct, relevant, and complete. For example, “The schema is not strongly satisfia- ble because of a recursive associa- tion.” 45OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
  • 109. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Classification Catalog Basic Quality Issue Types (20) Person parent 2 3 child IsParentOf Fundamental properties for a schema to be correct, relevant, and complete. Non-acceptable Problem = <Association> = “is binary and recursive” = “the multiplicities are not strongly satisfiable” S Φ ρ 45
  • 110. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Classification Catalog Best Practices (18) Issues that are recommended by some authors in some contexts. For example, “An attribute repeated among all specific classes of an incomplete generalization set is correct.” 46FOWLER, M. Refactoring: Improving the Design of Existing Code, Addison-Wesley, 1999
  • 111. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Classification Catalog Best Practices (18) Issues that are recommended by some authors in some contexts. (Non-)Acceptable Checking = <gs:GenSet, s:String> = “gs is incomplete” = “every specific class of gs has an attribute named s” S Φ ρ MotorVehicle Car plateNumber:String Motorcycle plateNumber:String {incomplete} 46
  • 112. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Classification Catalog Naming Guidelines (16) Special kind of best practices, focused on the names given to schema elements. For example, “The name of a boolean attribute is not a third-person singular verb- phrase.” 47 AGUILERA, D., GÓMEZ, C., OLIVÉ, A., A complete set of guidelines for naming UML conceptual schema elements. Data Knowl. Eng. 88, 0 (2013), 60-74
  • 113. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Classification Catalog Naming Guidelines (16) Special kind of best practices, focused on the names given to schema elements. (Non-)Acceptable Problem = <Property> = “it is boolean” = “its name is not a verb phrase written in singu- lar third-person form” S Φ ρ Person adult:Boolean 47
  • 114. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Usefulness We analyzed 13 conceptual schemas developed by students as part of their final projects in a Computer Science degree. Catalog Size of the schemas (median): - 17 Classes - 3 AssocClases - 12 Associations - 56 Attributes - 8 Invariants 48
  • 115. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Usefulness Catalog All conceptual schemas presented several Quality Issues! Number of issues (median): - 0 Syntactic+ - 111 Basic Properties - 33 Best Practices - 24 Naming Guidelines Size of the schemas: - 17 Classes - 3 AssocClases - 12 Associations - 56 Attributes - 8 Invariants 49
  • 116. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Explore and Analyze current UML IDEs, comparing them with our catalog Support by Current IDEs 29 Modeling Tools Focus on the UML Conceptual Modeling Tasks Catalog 50 (ArgoUML, Rational Rose, USE, Poseidon, SDMetrics...)
  • 117. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction - Do they control syntactic issue types? - What about other issue types? - How do they o er this support?ff - Do they provide assistance for fixing them? - Can they be extended with new issue types? Support by Current IDEs Catalog Explore and Analyze current UML IDEs, comparing them with our catalog 51
  • 118. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we found... Syntactic Support 3 Full 17 Partial 9 None Catalog 52
  • 119. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we found... Syntactic Support Non-Syntactic Support S+ BasProp BestPrac Naming 20 0 3 Full 17 Partial 9 None Catalog ArgoUML SDMetrics CatalogCatalog 52
  • 120. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we found... Syntactic Support Non-Syntactic Support 3 Full 17 Partial 9 None S+ BasProp BestPrac Naming 20 0 Catalog ArgoUML SDMetrics CatalogCatalog Corrective Actions - 2 tools only 52
  • 121. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What we found... Syntactic Support Non-Syntactic Support Extension Mechanisms - 4 tools only 3 Full 17 Partial 9 None S+ BasProp BestPrac Naming 20 0 Catalog ArgoUML SDMetrics Catalog Corrective Actions - 2 tools only 52
  • 122. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Support by IDEs vs. our Catalog Best IDEs today ArgoUML and SDMetrics The number of issues detected by our catalog versus those detected by these tools is 10 times larger! Catalog 53
  • 123. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Fair Comparison... (extensibility?) - Only 4 tools can be extended - They all deal with problem issues, thus ignoring checking issues - The formalization they use is less expressive than ours Catalog 54
  • 124. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Conceptual Modeling Assistant Implementation of a Prototype Tool 55
  • 125. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Eclipse CMA based on Eclipse Plugin Plugin Plugin Workbench Platform Runtime Web Tools Java Dev Tools CMA Design Science Research requires an artifact to be built. 56
  • 126. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Plugins Architecture of our CMA Eclipse Workbench Platform Runtime CMA 57
  • 127. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Plugins Architecture of our CMA Eclipse Workbench Platform Runtime UML2 Tools OCL Interpreter CMA 57
  • 128. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Plugins Architecture of our CMA Eclipse Workbench Platform Runtime UML2 Tools OCL Interpreter CMA Plugin Issue Processor IssueType Manager Issue View (feedback) CMA 57
  • 129. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Plugins Architecture of our CMA Eclipse Workbench Platform Runtime UML2 Tools OCL Interpreter CMA Plugin Issue Processor Issue View (feedback) Issue Type XML IssueType Manager CMA 57
  • 130. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Plugins Architecture of our CMA Eclipse Workbench Platform Runtime UML2 Tools OCL Interpreter CMA Plugin Issue Processor Issue View (feedback) Remote Server Issue Catalog Issue Type XML IssueType Manager CMA 57
  • 131. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction The Catalog CMA 58
  • 132. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction The Catalog – Regular Issue Types CMA <issue nid=”038” id=”redundant-gen” kind=”problem” acceptance=”non-acceptable”> <context>Generalization</context> <title>A generalization is redundant</title> <applicability-condition> Generalization.allInstances()->select( g1, g2 | g1 <> self and g2 <> self and g2.specific = self.specific and g2.general = self.general ) ->notEmpty() </applicability-condition> <!-- issue-condition, description, actions... --> </issue> 59
  • 133. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction The Catalog – Black-Box Issue Types CMA 60 UML2 Tools OCL Interpreter CMA Plugin Issue Processor Issue View (feedback) Issue CatalogIssue Type XML IssueType Manager
  • 134. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction The Catalog – Black-Box Issue Types CMA 60 UML2 Tools OCL Interpreter CMA Plugin Issue Processor Issue View (feedback) Issue CatalogIssue Type XML IssueType Manager
  • 135. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction The Catalog – Black-Box Issue Types CMA 60 UML2 Tools OCL Interpreter CMA Plugin Issue Processor Issue View (feedback) Issue CatalogIssue Type XML IssueType Manager «interface» IBlackBoxIssueType
  • 136. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction The Catalog – Black-Box Issue Types CMA 60 UML2 Tools OCL Interpreter CMA Plugin Issue Processor Issue View (feedback) Issue CatalogIssue Type XML IssueType Manager «interface» IBlackBoxIssueType BlackBoxIssueType getPotentialSet() doesRaiseAnIssueType(Tuple)
  • 137. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction CMA CMA 61
  • 138. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction CMA CMA 61
  • 139. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Efficient Evaluation of Quality Issues 62
  • 140. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Computation of Issue Instances Incremental Person adult:Boolean Book isABestSeller:Boolean Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” 63
  • 141. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Computation of Issue Instances Incremental Issues? Evaluate the Applicability and Issue Conditions for every instance of the scope. Person adult:Boolean Book isABestSeller:Boolean Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” 63
  • 142. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Computation of Issue Instances Incremental Person adult:Boolean Book isABestSeller:Boolean Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” 64
  • 143. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Computation of Issue Instances Incremental Person adult:Boolean Book isABestSeller:Boolean Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” 64
  • 144. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Computation of Issue Instances Incremental Person adult:Boolean Book isABestSeller:Boolean Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” 64
  • 145. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Computation of Issue Instances Incremental Person adult:Boolean Book isABestSeller:Boolean Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” The name of the boolean attribute «adult» is not a verb phrase. 64
  • 146. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Computation of Issue Instances Incremental Book isABestSeller:Boolean The name of the boolean attribute «adult» is not a verb phrase. Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” This evaluation takes time. We want to detect quality issues as fast as possible. 65
  • 147. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Computation of Issue Instances Incremental “Not all changes that can be applied to the schema have an e ect on theff evaluation of the expression”. Incremental Methods 66
  • 148. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Incremental Methods Possible changes: Incremental Person adult:Boolean Book isABestSeller:Boolean The name of the boolean attribute «adult» is not a verb phrase. Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” 67
  • 149. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Incremental Methods Possible changes: - Change the name of A1 Incremental Person adult:Boolean Book isABestSeller:Boolean The name of the boolean attribute «adult» is not a verb phrase. Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” 67
  • 150. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Incremental Methods Possible changes: - Change the name of A1 Incremental Person adult:Boolean Book free:Boolean The name of the boolean attribute «adult» is not a verb phrase. Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” The name of the boolean attribute «free» is not a verb phrase. 67
  • 151. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Incremental Methods Possible changes: - Change the name of A1 - Change the name of A2 Incremental Person adult:Boolean Book isABestSeller:Boolean The name of the boolean attribute «adult» is not a verb phrase. Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” 67
  • 152. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Incremental Methods Possible changes: - Change the name of A1 - Change the name of A2 Incremental Person isAnAdult:Boolean Book isABestSeller:Boolean Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” 67
  • 153. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Incremental Methods Possible changes: - Change the name of A1 - Change the name of A2 - Change the name of C1 Incremental Person adult:Boolean Book isABestSeller:Boolean The name of the boolean attribute «adult» is not a verb phrase. Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” 67
  • 154. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Incremental Methods Possible changes: - Change the name of A1 - Change the name of A2 - Change the name of C1 Incremental Man adult:Boolean Book isABestSeller:Boolean The name of the boolean attribute «adult» is not a verb phrase. Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” 67
  • 155. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Incremental Methods Possible changes: - Change the name of A1 - Change the name of A2 - Change the name of C1 - Add a new attribute - Delete an association - Create a generalization Incremental Person adult:Boolean Book isABestSeller:Boolean The name of the boolean attribute «adult» is not a verb phrase. Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” 67
  • 156. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Incremental Methods Incremental Possible changes: - Change the name of A1 - Change the name of A2 - Change the name of C1 - Add a new attribute - Delete an association Person adult:Boolean Book isABestSeller:Boolean The name of the boolean attribute «adult» is not a verb phrase. Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” The goal of an Incremental Method is to determine the set of changes that (might) change the result of evaluating an expression. 68
  • 157. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Incremental Methods Incremental Possible changes: - Change the name of A1 - Change the name of A2 - Change the name of C1 - Add a new attribute - Delete an association - Create a generalization Person adult:Boolean Book isABestSeller:Boolean The name of the boolean attribute «adult» is not a verb phrase. Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” 69
  • 158. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Incremental Methods Incremental Possible changes: - Change the name of A1 - Change the name of A2 - Change the name of C1 - Add a new attribute - Delete an association - Create a generalization Person adult:Boolean Book isABestSeller:Boolean The name of the boolean attribute «adult» is not a verb phrase. Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” 69
  • 159. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Incremental Methods Incremental Person adult:Boolean Book isABestSeller:Boolean The name of the boolean attribute «adult» is not a verb phrase. Sx = { Property } ρx(a) = “the name of a boolean attribute is not a verb phrase” 69 Possible changes: - Change the name of A1 - Change the name of A2 - Change the type of A2 - Delete A2 - Delete an association - Create a generalization
  • 160. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Efficient Detection of Issues We selected Egyed's method and applied it to our algorithm, taking into account: - Applicability and issue conditions - Precedents Modify the algorithm for computing issue instances with an instance-based incremental approach. Incremental 70 EGYED, A. Automatically detecting and tracking inconsistencies in software design models. IEEE Trans. Softw. Eng. 37, 2 (2011), 188-204
  • 161. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Improvements in Efficiency Regular approach (schemas <500 elems) Incremental approach Avg. 9 seconds Max. over 5 minutes Max. 250 millisecs Incremental The results are conclusive. 71
  • 162. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Conclusions and Future Work 72
  • 163. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Conclusions The Problem Defining Conceptual Schemas is a complex and difficult activity, but the support modelers get is scarce. Conclusions 73
  • 164. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Conclusions The Problem Quality in Conceptual Modeling is important, but the support modelers get is scarce. The Solution A method for defining and treating Quality Issues, whose goal is to assist conceptual modelers. (based on current literature) The Problem Defining Conceptual Schemas is a complex and difficult activity, but the support modelers get is scarce. Conclusions 73
  • 165. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction 1 Formalization Conceptual Schema Quality Issues - Definition - (Efficient) Detection - Solution Conclusions AGUILERA, D., GÓMEZ, C., AND OLIVÉ, A. A method for the definition and treatment of conceptual schema quality issues. In ER (2012), vol. 7532 of LNCS, Springer, pp. 501-514 74
  • 166. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction 2 Catalog Issues from the literature - UML/OCL - Syntactic correctness - Best practices and guidelines Conclusions AGUILERA, D., GÓMEZ, C., AND OLIVÉ, A. A complete set of guidelines for naming UML conceptual schema elements. Data Knowl. Eng. 88, 0 (2013), 60-74 AGUILERA, D., GÓMEZ, C., AND OLIVÉ, A. Enforcement of conceptual schema quality issues in current Integrated Development Environments. In CAiSE (2013), vol. 7908 of LNCS, Springer, pp. 626-640 75
  • 167. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction 3 CMA Conceptual Modeling Assistant - The Eclipse Platform - Implements the method - Integrates the catalog Conclusions AGUILERA, D., GARCÍA-RANEA, R., GÓMEZ, C., AND OLIVÉ, A. An eclipse plugin for validating names in UML conceptual schemas. In ER Workshops (2011), vol. 6999 of LNCS, Springer, pp. 323-327 AGUILERA, D., GÓMEZ, C., AND OLIVÉ, A. An eclipse plugin for improving the quality of UML conceptual schemas. In ER Workshops (2012), vol. 7518 of LNCS, Springer, pp. 387-390 76
  • 168. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What's next? 77 Conclusions
  • 169. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What's next? Extending the Catalog 78 Conclusions
  • 170. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What's next? Integration with Testing 79 Conclusions
  • 171. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What's next? Validation with Real Users and Projects 80 Conclusions
  • 172. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction What's next? Automatic Reparation 81 Conclusions
  • 173. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction Publications AGUILERA, D., GÓMEZ, C., AND OLIVÉ, A. Enforcement of conceptual schema quality issues in current Integrated Development Environments. In CAiSE (2013), vol. 7908 of LNCS, Springer, pp. 626-640 AGUILERA, D., GÓMEZ, C., AND OLIVÉ, A. An eclipse plugin for improving the quality of UML conceptual schemas. In ER Workshops (2012), vol. 7518 of LNCS, Springer, pp. 387-390 AGUILERA, D., GARCÍA-RANEA, R., GÓMEZ, C., AND OLIVÉ, A. An eclipse plugin for validating names in UML conceptual schemas. In ER Workshops (2011), vol. 6999 of LNCS, Springer, pp. 323-327 AGUILERA, D., GÓMEZ, C., AND OLIVÉ, A. A complete set of guidelines for naming UML conceptual schema elements. Data Knowl. Eng. 88, 0 (2013), 60-74 AGUILERA, D., GÓMEZ, C., AND OLIVÉ, A. A method for the definition and treatment of conceptual schema quality issues. In ER (2012), vol. 7532 of LNCS, Springer, pp. 501-514 82 Conclusions
  • 174. CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction David Aguilera UPC - Barcelona Dr. Olivé and Dr. Gómez A Method for the Unified Definition and Treatment of Conceptual Schema Quality Issues