Post on 27-Jun-2015
transcript
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
CAiSE 2013
Enforcement of Conceptual Schema Quality Issues inCurrent Integrated Development Environments
David AguileraCristina GomezAntoni Olive
1/23
IntroductionIntroduction
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Aim of this Work
Improve the support on addressing quality ofconceptual schemas
Explore and analyse current UML IDEs in order todetermine
the support they offer to modelers,how they offer this support, andwhether this support can be greater
Present a catalog of Conceptual Schema Quality Issues
6/23
IntroductionIntroduction
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Aim of this Work
Improve the support on addressing quality ofconceptual schemas
Explore and analyse current UML IDEs in order todetermine
the support they offer to modelers,how they offer this support, andwhether this support can be greater
Present a catalog of Conceptual Schema Quality Issues
6/23
IntroductionIntroduction
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Aim of this Work
Improve the support on addressing quality ofconceptual schemas
Explore and analyse current UML IDEs in order todetermine
the support they offer to modelers,how they offer this support, andwhether this support can be greater
Present a catalog of Conceptual Schema Quality Issues
6/23
IntroductionIntroduction
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Outline
1 Introduction to Conceptual Schema Quality Issues
2 CSQI in current IDEs
3 A Catalog of CSQI
4 Extending IDEscan IDEs be improved?
5 Evaluationwhat we get VS what we could get
7/23
Conceptual Schema Quality IssuesConceptual Schema Quality Issues
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What is an Issue?
Informal Definition
According to the dictionary:
“an issue is an important topic or problemfor debate or discussion”
In conceptual modeling, we have:
Problem issuesChecking Issues
8/23
Conceptual Schema Quality IssuesConceptual Schema Quality Issues
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What is an Issue?
Informal Definition
According to the dictionary:
“an issue is an important topic or problemfor debate or discussion”
In conceptual modeling, we have:
Problem issuesChecking Issues
8/23
Conceptual Schema Quality IssuesConceptual Schema Quality Issues
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Example
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
* 1..0parent 2
3child
Owns
IsParentOf
plateNumber:Stringmotorcycle
plateNumber:String
Person
9/23
Conceptual Schema Quality IssuesConceptual Schema Quality Issues
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Example
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
* 1..0parent 2
3child
Owns
IsParentOf
plateNumber:Stringmotorcycle
plateNumber:String
Person
9/23
Conceptual Schema Quality IssuesConceptual Schema Quality Issues
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Example
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
* 1..0parent 2
3child
Owns
IsParentOf
plateNumber:Stringm
plateNumber:String
Person
otorcycle
9/23
Conceptual Schema Quality IssuesConceptual Schema Quality Issues
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Example
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
* 1..0parent 2
3child
Owns
IsParentOf
plateNumber:Stringm
plateNumber:String
Person
otorcycle
9/23
Conceptual Schema Quality IssuesConceptual Schema Quality Issues
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Example
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
* 1..0parent
childOwns
IsParentOf
plateNumber:Stringm
plateNumber:String
Person
otorcycle
23
9/23
Conceptual Schema Quality IssuesConceptual Schema Quality Issues
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Example
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
* 1..0parent
childOwns
IsParentOf
plateNumber:Stringm
plateNumber:String
Person
otorcycle
23
9/23
Conceptual Schema Quality IssuesConceptual Schema Quality Issues
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Example
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
* 1..0parent
childOwns
IsParentOf
plateNumber:Stringm
plateNumber:String
Person
otorcycle
23
9/23
Conceptual Schema Quality IssuesConceptual Schema Quality Issues
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Example
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
* 1..0parent
childOwns
IsParentOf
plateNumber:Stringm
plateNumber:String
Person
otorcycle
23
9/23
Conceptual Schema Quality IssuesConceptual Schema Quality Issues
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Example
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
* 1..0parent
childOwns
IsParentOf
plateNumber:Stringm
plateNumber:String
Person
otorcycle
23
9/23
Conceptual Schema Quality IssuesConceptual Schema Quality Issues
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Example
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
* 1..0parent
childOwns
IsParentOf
plateNumber:Stringm
plateNumber:String
Person
otorcycle
23
(ir)reflexive?(in)transitive?(a)symmetric?
9/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
29 IDEs Analysed
10/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Issue Types: How many of them do they monitor?
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
* 1..0parent
childOwns
IsParentOf
plateNumber:Stringm
plateNumber:String
Person
otorcycle
23
(ir)reflexive?(in)transitive?(a)symmetric?
11/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Issue Types: How many of them do they monitor?
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
* 1..0parent
childOwns
IsParentOf
plateNumber:Stringm
plateNumber:String
Person
otorcycle
23
(ir)reflexive?(in)transitive?(a)symmetric?
Syntactic
11/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Issue Types: How many of them do they monitor?
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
* 1..0parent
childOwns
IsParentOf
plateNumber:Stringm
plateNumber
Person
otorcycle
23
(ir)reflexive?(in)transitive?(a)symmetric?
Syntactic+
11/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Issue Types: How many of them do they monitor?
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
* 1..0parent
childOwns
IsParentOf
plateNumber:Stringm
plateNumber:String
Person
otorcycle
23
(ir)reflexive?(in)transitive?(a)symmetric?
Basic Property
11/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Issue Types: How many of them do they monitor?
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
* 1..0parent
childOwns
IsParentOf
plateNumber:Stringm
plateNumber:String
Person
otorcycle
23
(ir)reflexive?(in)transitive?(a)symmetric?
Naming
11/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Issue Types: How many of them do they monitor?
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
* 1..0parent
childOwns
IsParentOf
plateNumber:Stringm
plateNumber:String
Person
otorcycle
23
(ir)reflexive?(in)transitive?(a)symmetric?
Best Pratice
11/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Issue Tolerance: How do they deal with issues?
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
plateNumber:Stringmotorcycle
plateNumber:String
12/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Issue Tolerance: How do they deal with issues?
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
plateNumber:Stringmotorcycle
plateNumber:String
12/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Issue Tolerance: How do they deal with issues?
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
plateNumber:Stringmotorcycle
plateNumber:String
Forbidden!
12/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Issue Tolerance: How do they deal with issues?
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
plateNumber:Stringmotorcycle
plateNumber:String
Forbidden
12/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Issue Tolerance: How do they deal with issues?
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
plateNumber:Stringmotorcycle
plateNumber:String
Forbidden
Allowed
Forbidden
12/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Issue Tolerance: How do they deal with issues?
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
plateNumber:Stringm
plateNumber:String
Forbidden
Allowed
Mixed
otorcycle
12/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Corrective Actions: Do they help us?
mplateNumber:String
otorcycle
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
plateNumber:String
13/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Corrective Actions: Do they help us?
mplateNumber:String
otorcycle
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
plateNumber:String
Remove redundant
generalization
Suggested Action
13/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Corrective Actions: Do they help us?
mplateNumber:String
otorcycle
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
plateNumber:String
13/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Corrective Actions: Do they help us?
mplateNumber:String
otorcycle
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
plateNumber:StringCapitalize classname
Suggested Action
13/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Corrective Actions: Do they help us?
MplateNumber:String
otorcycle
Vehicle
LandVehicle
MotorVehicle
Car
{disjoint, complete}
plateNumber:String
13/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What were we looking for?
Extensibility: Can we add support for new issue types?
OCL or a custom constraint language
A plugin mechanism aimed at this end
14/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What we found
15/23
CSQI in current IDEsCSQI in current IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
What we found
Syntactic Support
9 None
17 Partial
3 Full
Non-Syntactic Support
14
0
ArgoUML SDMetrics Others
Best PraticeNamingBasic PropertySyntactic+
Issue Tolerance
7Forbidden
10 Mixed
3 Allowed
Corrective Actions (2)ArgoUML, VisualParadigm
Extension Mechanisms (4)Generic Modeling Environment,IBM Rational Rose, MagicDraw UML,SDMetrics
16/23
A Catalog of CSQIA Catalog of CSQI
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Where and How to look for?
“Quality Issues” is not used broadly
“Quality” is used too much
Some works may imply quality issues (e.g. refactorings)
We manually reviewed CAiSE and ER papers
This is obviously an on-going work
17/23
A Catalog of CSQIA Catalog of CSQI
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Where and How to look for?
“Quality Issues” is not used broadly
“Quality” is used too much
Some works may imply quality issues (e.g. refactorings)
We manually reviewed CAiSE and ER papers
This is obviously an on-going work
17/23
A Catalog of CSQIA Catalog of CSQI
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Our Catalog
Issue CatalogID Name
020 A recursive binary association nee
035 A recursive binary association nee
036 A recursive binary association nee
037 Non strongly satisfiable schema be
064 A class has really so many attribut
059 A class is really involved in so man
049 A class really has more than 60 att
023 A class without generalizations or
045 A cycle of composition relationship
046 An abstract class has a concrete p
063 There are no attributes missing in
CMA - Issue Catalog - Mozilla Firefox
Firefox CMA - Issue Catalog
helios.lsi. /phd/catalog/issues.php?select=BEST-PRAupc.edu Google
A class has no name
CMA - Issue Catalog - Mozilla Firefox
Firefox CMA - Issue Catalog
helios.lsi. /phd/catalog/issues.php?select=OCupc.edu Google
According to [SDMetrics] and [ArgoUML], classes should have a descriptive name that reflectsthe concept they represent.
Label
Selector Condition
Description
1 self isEmpty or self size .name-> () .name. () = 0
Issue Condition
#051 :: NAMING-GUIDELINES-unamed-class
The class has no name
1 true
Scope: <Class>
59 non-syntactic issue types (37 problem, 22 checking)11 Syntactic+
20 Basic Properties
10 Naming Guidelines
18 Best Practices18/23
A Catalog of CSQIA Catalog of CSQI
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Our Catalog
Defined in XML
XSLT make them user-friendly
We use a formalization to uniformly define them
We use OCL conditions to detect issues
Problem VS Checking issues
It includes Issue Actions
19/23
Extending IDEsExtending IDEs
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
The problems one may face
Only 4 tools can be extended
They all deal with problem issues, ignoring checkingissues
The formalization they use is less expressive than oursSingle VS multiple scopePrecedents
20/23
EvaluationEvaluation
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Conceptual Schemas and Results
13 conceptual schemas that were developed bystudents, as part of their their final projects, during thelast year of their Computer Science degree.
Evaluation with ArgoUML and SDMetrics:several issues were found.
Evaluation with our catalog: the number of issuesincreases dramatically (10x).
The missing issue types cannot be easily integrated inthese two tools (specially the 22 checking ones).
21/23
ConclusionsConclusions
Introduction
Concept.SchemaQuality Issues
CSQI in currentIDEs
Catalog of CSQI
Extending IDEs
Evaluation
Conclusions
Conclusions
There is a large room for improvement
IDEs should enforce all relevant quality criteria
Only 2 out of 29 IDEs provide some significant support.
We presented our catalog of issue types
We compared the support that is currently offered by thesupport that could be offered (if our catalog was used)
22/23