CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
A Method for theUnified Definition and Treatment ofConceptual Schema Quality Issues
Thesis supervised byDr. Antoni Olivé
Dr. Cristina Gómez
David AguileraJune 6th, 2014Barcelona
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
We cannot run the modern worldwithout software
2
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
We cannot run the modern worldwithout software
2
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
We cannot run the modern worldwithout software
2
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
We cannot run the modern worldwithout software
2
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
We cannot run the modern worldwithout software
Which means software's qualityhas become essentialto 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 ofproperties 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 ispositive and necessary...
...but is not as efficient as it could be.
numbercost
time
Introduction
7
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Conceptual Modeling
Essential Activity in theRequirements Stage of the
Software Development Process
Introduction
8OLIVÉ, A. Conceptual Modeling of Information Systems, Springer, 2007
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Conceptual Modeling
Conceptual SchemaGeneral Knowledge for an Information Systemto operate.
Essential Activity in theRequirements 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 Schemasis 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 ofConceptual 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
05Notes on Efficient Evaluation06Conclusions and Future Work07
Introduction01
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
MotivationWhat we want. What we have.
13
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Goal of this Thesis
Improve the Quality ofConceptual 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
CarplateNumber:String
motorcycleplateNumber:String
Person{disjoint, complete}
parent 23child
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
CarplateNumber:String
motorcycleplateNumber:String
Person{disjoint, complete}
parent 23child
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
CarplateNumber:String
motorcycleplateNumber:String
Person{disjoint, complete}
parent 23child
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
CarplateNumber:String
motorcycleplateNumber:String
Person{disjoint, complete}
parent 23child
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
CarplateNumber:String
motorcycleplateNumber:String
Person{disjoint, complete}
parent 23child
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, complete}
parent 23child
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, complete}
parent 23child
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, complete}
parent 23child
IsParentOf
Owns* 0..1
Remove redundantgeneralization
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, complete}
parent 23child
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, complete}
parent 23child
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, complete}
parent 23child
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, complete}
parent 23child
IsParentOf
Owns* 0..1
Pull-Up PropertyRefactoring
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, complete}
parent 23child
IsParentOf
Owns* 0..1
Pull-Up PropertyRefactoring
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, complete}
parent 23child
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, incomplete}
parent 23child
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, incomplete}
parent 23child
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, incomplete}
parent 23child
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, incomplete}
parent 23child
IsParentOf
Owns* 0..1
Changemultiplicities
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, incomplete}
IsParentOf
Owns* 0..1
Changemultiplicities
parent 20..3child
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, incomplete}
parent 20..3child
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, incomplete}
parent 20..3child
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, incomplete}
parent 20..3child
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, incomplete}
parent 20..3child
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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, incomplete}
parent 20..3child
IsParentOf
Owns* 0..1Create 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
CarplateNumber:String
MotorcycleplateNumber:String
Person{disjoint, incomplete}
parent 20..3child
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
FormalizationA
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 AScope, conditions...
Motivation
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Formalization Catalog
Characterization of Quality Issues
A
Issue AScope, conditions...
Motivation
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Formalization Catalog
Characterization of Quality Issues
A
Issue AScope, conditions...
Issue AContext, conditions...
Issue AScope, conditions...
Motivation
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Formalization Catalog
Characterization of Quality Issues
A
Issue AScope, conditions...
Issue AContext, conditions...
Issue AScope, conditions...
Issue AContext, conditions...
Issue BScope, conditions...
Motivation
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Formalization Catalog
Characterization of Quality Issues
A
Issue AScope, conditions...
Issue AContext, conditions...
Issue AScope, conditions...
Issue AContext, conditions...
Issue BScope, conditions...
Issue AContext, conditions...
Issue CScope, conditions...
Motivation
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Formalization Catalog CMA
Modeling Tool
Characterization of Quality Issues
A
Issue AScope, conditions...
Issue AContext, conditions...
Issue AScope, conditions...
Issue AContext, conditions...
Issue BScope, conditions...
Issue AContext, conditions...
Issue CScope, conditions...
Motivation
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Formalization Catalog
Characterization of Quality Issues
A
Issue AScope, conditions...
Issue AContext, conditions...
Issue AScope, conditions...
Issue AContext, conditions...
Issue BScope, conditions...
Issue AContext, conditions...
Issue CScope, conditions...
Motivation
CMA
Modeling Tool
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
Formalization Catalog
Characterization of Quality Issues
A
Issue AScope, conditions...
Issue AContext, conditions...
Issue AScope, conditions...
Issue AContext, conditions...
Issue BScope, conditions...
Issue AContext, conditions...
Issue CScope, conditions...
1. This gen is redu2. Association has3. Constraint does
Motivation
CMA
Modeling Tool
22
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Overview of Our Method
1. This gen is redu2. Association has3. Constraint does
Catalog
Issue AContext, conditions...
Issue AScope, conditions...
Issue AContext, conditions...
Issue BScope, conditions...
Issue AContext, conditions...
Issue CScope, conditions...
Formalization
Characterization of Quality Issues
A
Issue AScope, 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 solutionare 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
ChallengeAssist Modelers and Improve Quality
SearchingAdaptingTesting
Motivation
24
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Characterization and Formalization ofConceptual Schema Quality Issues
25
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What is an Issue?
“an important topic or problemfor debate or discussion”
Formalization
26
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What is an Issue?
“an important topic or problemfor 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 instanceof 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 instanceof that problem in the schema.
Formalization
Type: “There are redun-dant generalizations”
Instance: “g1 is redundant”
g1g2
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
g1g2
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
g1g2
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
g1g2
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
g1g2
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
g1g2
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 }
g1g2
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 }
g1g2
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
g1g2
g3
LandVehicle
MotorVehicle
Car32
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
g1g2
g3
LandVehicle
MotorVehicle
Car32
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
g1g2
g3
LandVehicle
MotorVehicle
Car32
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
g1g2
g3
LandVehicle
MotorVehicle
Car32
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
Car32
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
Personparent 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.
Personparent 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.
Personparent 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 anissue 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 anissue type is Acceptable or Non-acceptable
MotorVehicle
CarplateNumber:String
MotorcycleplateNumber: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 anissue type is Acceptable or Non-acceptable
MotorVehicle
CarplateNumber:String
MotorcycleplateNumber: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 anissue type is Acceptable or Non-acceptable
MotorVehicleplateNumber: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 anissue type is Acceptable or Non-acceptable
MotorVehicle
CarplateNumber:String
MotorcycleplateNumber: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 anissue type is Acceptable or Non-acceptable
MotorVehicle
CarplateNumber:String
MotorcycleplateNumber: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 anissue type is Acceptable or Non-acceptable
MotorVehicle
CarplateNumber:String
MotorcycleplateNumber: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 anissue type is Acceptable or Non-acceptable
MotorVehicle
CarplateNumber:String
MotorcycleplateNumber: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-AcceptableProblem Issue
AcceptableProblem Issue
Non-AcceptableChecking Issue
AcceptableChecking Issue
PendingPending
Accepted
Pending
CheckedChecked
Pending
Accepted
Deletion
Deletion Deletion Deletion
Acc
ept
Acc
ept
Chec
k
Chec
k
Rec
onsi
der
Rec
onsi
der
Rec
onsi
der
Rec
onsi
der
39
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
A Catalog of Quality Issues
40
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
The Catalog
Design Science Research requiresan 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 TypesAn 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 TypesAn 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.
CarplateNumber
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)
Personparent 2
3child
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
CarplateNumber:String
MotorcycleplateNumber: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.”
47AGUILERA, 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 Φ ρ
Personadult: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 presentedseveral 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 ToolsFocus 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 Support3 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 NoneCatalogArgoUMLSDMetrics
CatalogCatalog
52
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
What we found...
Syntactic Support Non-Syntactic Support3 Full
17 Partial
9 None
S+ BasProp BestPrac Naming
20
0
CatalogArgoUMLSDMetrics
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
CatalogArgoUMLSDMetrics
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 ofissues detected by our catalog versus
those detected by these toolsis 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 AssistantImplementation of a Prototype Tool
55
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Eclipse
CMA based on Eclipse
Plugin
Plugin
Plugin
Workbench
Platform Runtime
WebTools
Java DevTools
CMA
Design Science Research requiresan artifact to be built.
56
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Plug
ins
Architecture of our CMA
Eclipse
Workbench
Platform Runtime
CMA
57
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Plug
ins
Architecture of our CMA
Eclipse
Workbench
Platform Runtime
UML2Tools
OCLInterpreter
CMA
57
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Plug
ins
Architecture of our CMA
Eclipse
Workbench
Platform Runtime
UML2Tools
OCLInterpreter
CMA Plugin
Issue Processor
Issu
e Ty
pe
Man
ager
Issue View(feedback)
CMA
57
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Plug
ins
Architecture of our CMA
Eclipse
Workbench
Platform Runtime
UML2Tools
OCLInterpreter
CMA Plugin
Issue Processor
Issue View(feedback)
IssueTypeXML
Issu
e Ty
pe
Man
ager
CMA
57
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Plug
ins
Architecture of our CMA
Eclipse
Workbench
Platform Runtime
UML2Tools
OCLInterpreter
CMA Plugin
Issue Processor
Issue View(feedback)
Remote Server
IssueCatalog
IssueTypeXML
Issu
e Ty
pe
Man
ager
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
UML2Tools
OCLInterpreter
CMA Plugin
Issue Processor
Issue View(feedback)
IssueCatalogIssue
TypeXML
Issu
e Ty
pe
Man
ager
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
The Catalog – Black-Box Issue Types
CMA
60
UML2Tools
OCLInterpreter
CMA Plugin
Issue Processor
Issue View(feedback)
IssueCatalogIssue
TypeXML
Issu
e Ty
pe
Man
ager
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
The Catalog – Black-Box Issue Types
CMA
60
UML2Tools
OCLInterpreter
CMA Plugin
Issue Processor
Issue View(feedback)
IssueCatalogIssue
TypeXML
Issu
e Ty
pe
Man
ager
«interface»IBlackBoxIssueType
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
The Catalog – Black-Box Issue Types
CMA
60
UML2Tools
OCLInterpreter
CMA Plugin
Issue Processor
Issue View(feedback)
IssueCatalogIssue
TypeXML
Issu
e Ty
pe
Man
ager
«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 Evaluationof Quality Issues
62
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Computation of Issue Instances
Incremental
Personadult:Boolean
BookisABestSeller: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.
Personadult:Boolean
BookisABestSeller: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
Personadult:Boolean
BookisABestSeller: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
Personadult:Boolean
BookisABestSeller: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
Personadult:Boolean
BookisABestSeller: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
Personadult:Boolean
BookisABestSeller: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
BookisABestSeller: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 issuesas 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 the ffevaluation of the expression”.
Incremental Methods
66
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Incremental Methods
Possible changes:
Incremental
Personadult:Boolean
BookisABestSeller: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
Personadult:Boolean
BookisABestSeller: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
Personadult:Boolean
Bookfree: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
Personadult:Boolean
BookisABestSeller: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
PersonisAnAdult:Boolean
BookisABestSeller: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
Personadult:Boolean
BookisABestSeller: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
Manadult:Boolean
BookisABestSeller: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
Personadult:Boolean
BookisABestSeller: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
Personadult:Boolean
BookisABestSeller: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 changesthat (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
Personadult:Boolean
BookisABestSeller: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
Personadult:Boolean
BookisABestSeller: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
Personadult:Boolean
BookisABestSeller: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 toour algorithm, taking into account: - Applicability and issue conditions - Precedents
Modify the algorithm forcomputing issue instances with an
instance-based incremental approach.
Incremental
70EGYED, 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 ProblemDefining Conceptual Schemas is a complex and difficult activity, but the support modelers get is scarce.
Conclusions
73
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
Conclusions
The ProblemQuality in Conceptual Modeling is important,but the support modelers get is scarce.
The SolutionA method for defining and treating Quality Issues,
whose goal is to assist conceptual modelers.
(based on current literature)
The ProblemDefining Conceptual Schemas is a complex and difficult activity, but the support modelers get is scarce.
Conclusions
73
CMA Incremental ConclusionsMotivation Formalization CatalogIntroduction
1Formalization
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
2Catalog
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
3CMA
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. InER 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. InER 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 AguileraUPC - Barcelona
Dr. Olivé and Dr. Gómez
A Method for theUnified Definition and Treatment ofConceptual Schema Quality Issues