Post on 25-May-2015
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Understanding Constraint Expressionsin Large Conceptual Schemas
by Automatic Filtering
Antonio Villegas, Antoni Olive, and Maria-Ribera Sancho{avillegas, olive, ribera}@essi.upc.edu
Department of Service and Information System EngineeringUniversitat Politecnica de Catalunya
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 1 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Outline
1 Introduction
2 Filtering Conceptual Schemas
3 Evaluation
4 Application to Event Types
5 Conclusions
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 2 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Outline
1 Introduction
2 Filtering Conceptual Schemas
3 Evaluation
4 Application to Event Types
5 Conclusions
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 3 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conceptual Schemas
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 4 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conceptual Schemas
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 4 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conceptual Schemas
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 4 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conceptual Schemas
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 4 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conceptual Schemas
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 4 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conceptual Schemas
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 4 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conceptual Schemas
osCommerce
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 5 / 42
84 Entity types, 262 Event types, 209 Attributes, 183 Relationship types, 393 IsA Relationships
www.oscommerce.com
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conceptual Schemas
Magento
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 6 / 42
218 Entity types, 187 Event types, 983 Attributes, 319 Relationship types, 165 IsA Relationships
www.magentocommerce.com
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conceptual Schemas
UML metaschema
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 7 / 42
293 Entity types, 93 Attributes, 377 Relationship types, 355 IsA Relationships
www.omg.org/spec/UML
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conceptual Schemas
EU-Rent
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 8 / 42
65 Entity types, 120 Event types, 85 Attributes, 152 Relationship types, 207 IsA Relationships
www.lsi.upc.edu/~techreps/files/R03-59.zip
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conceptual Schemas
Constraint expressions
In general, large conceptual schemas or ontologies include manyformal constraint expressions, which are used for defining:
static or dynamic integrity constraints
default values
pre and postconditions of operations
results of operations
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 9 / 42
We focus on human understandingof constraint expressions defined
in large conceptual schemas
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Constraint Expressions
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 10 / 42
osCommerce
457 constraints
Magento
734 constraints
UML Metaschema
170 constraints
EU-Rent
283 constraints
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Constraint Expressions
We try to ease the understanding ofconstraint expressions in large conceptual schemas.
The problem is significant
in a large conceptual schema there may be many constraint expressions,used as –among others– invariants, derivation rules, and pre/postconditions
understanding such expressions is a necessity during their definition,validation, implementation, and maintenance
understanding such expressions is very difficult when the conceptualschema is large, because the elements involved in those expressions are ingeneral scattered throughout the schema, and it is not easy tonavigate through the schema in the way implied by the expressions
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 11 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Constraint Expressions
Simple Examplen-
level
spec
ializa
tion
Bn
B
Bi
Catt:Integer
Rb c1*
...
...{Understanding suchexpression requires:
1 finding entity type Bn
(the context) in the schema
2 moving upwards the n-levelhierarchy until the root(entity type B)
3 navigating towards C
4 finding attribute att
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 12 / 42
context Bn inv: self.c.att > 0
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Constraint Expressions
Simple Examplen-
level
spec
ializa
tion
Bn
B
Bi
Catt:Integer
Rb c1*
...
...{A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 13 / 42
context Bn inv: self.c.att > 0
Filtered Schema
Bn Catt:Integer
Rb c1*
Note that the hierarchy Bn IsA ... Bi IsA ... Bdoes not appear in the filtered schema, and thatthe first participant of the relationship type Rhas changed to Bn.
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Outline
1 Introduction
2 Filtering Conceptual Schemas
3 Evaluation
4 Application to Event Types
5 Conclusions
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 14 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Method Overview
Filtering MethodEn�ty and Event Types Processing1
Rela�onship Types Processing2
Generaliza�ons Processing3
Schema Rules Processing
4 Data Types Processing
5
Presenta�on6
context inv ...context derive ...
context post ...
context init ...context pre ...
context body ...
Focus Set
LargeConceptual
Schema
FilteredConceptual
Schema
context inv ...context derive ...
context post ...
context init ...context pre ...
context body ...
Filtering Approach
The user focuses on a set of constraints and the method obtains the smallestsubset of the large schema that is needed to understand those expressions.
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 15 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Output of the Filtering Method
Method Overview: Output
Filtering MethodEn�ty and Event Types Processing1
Rela�onship Types Processing2
Generaliza�ons Processing3
Schema Rules Processing
4 Data Types Processing
5
Presenta�on6
context inv ...context derive ...
context post ...
context init ...context pre ...
context body ...
Focus Set
LargeConceptual
Schema
FilteredConceptual
Schema
context inv ...context derive ...
context post ...
context init ...context pre ...
context body ...
Minimal Subset
The knowledge contained in the filtered schema is the smallest subset of theknowledge from the large schema referenced by the constraints of focus.
Valid Instantiation
The filtered conceptual schema is a valid instance of the corresponding metaschemaof the large schema from which it is obtained.
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 16 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Method Overview: Stages
Filtering MethodEn�ty and Event Types Processing1
Rela�onship Types Processing2
Generaliza�ons Processing3
Schema Rules Processing
4 Data Types Processing
5
Presenta�on6
context inv ...context derive ...
context post ...
context init ...context pre ...
context body ...
Focus Set
LargeConceptual
Schema
FilteredConceptual
Schema
context inv ...context derive ...
context post ...
context init ...context pre ...
context body ...
Running Example
We assume that the user needs to understand the following constraint defined in theMagento, in the context of the entity type ConfigurableProduct:
context ConfigurableProduct
inv: - is associated to products with the same attributesself.associatedProduct->forAll(ap |
ap.ableToRateAttribute->includesAll(self.configurableAttribute))
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 17 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 1: Filtering of Entity and Event Types
Stage 1
The method firstly extracts the entity and event types referencedby the selected constraints of focus and includes them in theresulting filtered conceptual schema.
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 18 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 1: Filtering of Entity and Event Types
context ConfigurableProduct inv: -- is associated to products with the same attributes self.associatedProduct->forAll( ap | ap.ableToRateAttribute->includesAll(self.configurableAttribute) )
Focus Set
Filtered Entity and Event Types
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 19 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 1: Filtering of Entity and Event Types
context ConfigurableProduct inv: -- is associated to products with the same attributes self.associatedProduct->forAll( ap | ap.ableToRateAttribute->includesAll(self.configurableAttribute) )
Focus Set
Filtered Entity and Event Types
ConfigurableProduct: context of the constraint
ConfigurableProduct
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 19 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 1: Filtering of Entity and Event Types
context ConfigurableProduct inv: -- is associated to products with the same attributes self.associatedProduct->forAll( ap | ap.ableToRateAttribute->includesAll(self.configurableAttribute) )
Focus Set
Filtered Entity and Event Types
ConfigurableProduct: context of the constraint
ConfiguredProduct: target participant of self.associatedProduct navigation
ConfigurableProduct ConfiguredProduct
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 19 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 1: Filtering of Entity and Event Types
context ConfigurableProduct inv: -- is associated to products with the same attributes self.associatedProduct->forAll( ap | ap.ableToRateAttribute->includesAll(self.configurableAttribute) )
Focus Set
Filtered Entity and Event Types
ConfigurableProduct: context of the constraint
ConfiguredProduct: target participant of self.associatedProduct navigation
Attribute: target participant of ap.ableToRateAttribute navigation)
ConfigurableProduct ConfiguredProduct Attribute
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 19 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 1: Filtering of Entity and Event Types
context ConfigurableProduct inv: -- is associated to products with the same attributes self.associatedProduct->forAll( ap | ap.ableToRateAttribute->includesAll(self.configurableAttribute) )
Focus Set
Filtered Entity and Event Types
ConfigurableProduct: context of the constraint
ConfiguredProduct: target participant of self.associatedProduct navigation
Attribute: target participant of ap.ableToRateAttribute navigation)
SingleValuedEnumerationAttribute: target participant of self.configurableAttribute navigation
ConfigurableProduct ConfiguredProduct
SingleValuedEnumerationAttribute
Attribute
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 19 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 2: Filtering of Relationship Types and Attributes
Stage 2
The method extracts the relationship types and attributesreferenced by the selected constraints of focus and includes themin the resulting filtered conceptual schema.
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 20 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 2: Filtering of Relationship Types and Attributes
context ConfigurableProduct inv: -- is associated to products with the same attributes self.associatedProduct->forAll( ap | ap.ableToRateAttribute->includesAll(self.configurableAttribute) )
Focus Set
Referenced Relationship Types and Attributes
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 21 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 2: Filtering of Relationship Types and Attributes
context ConfigurableProduct inv: -- is associated to products with the same attributes self.associatedProduct->forAll( ap | ap.ableToRateAttribute->includesAll(self.configurableAttribute) )
Focus Set
Referenced Relationship Types and Attributesself.associatedProduct navigation:
ConfigurableProduct ConfiguredProductIsRepresentedBy
associatedProduct1..*1..*
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 21 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 2: Filtering of Relationship Types and Attributes
context ConfigurableProduct inv: -- is associated to products with the same attributes self.associatedProduct->forAll( ap | ap.ableToRateAttribute->includesAll(self.configurableAttribute) )
Focus Set
Referenced Relationship Types and Attributesself.associatedProduct navigation:
ap.ableToRateAttribute navigation:
ConfigurableProduct ConfiguredProductIsRepresentedBy
associatedProduct1..*1..*
ItemIsAbleToRate
ableToRateAttribute*
*Attribute
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 21 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 2: Filtering of Relationship Types and Attributes
context ConfigurableProduct inv: -- is associated to products with the same attributes self.associatedProduct->forAll( ap | ap.ableToRateAttribute->includesAll(self.configurableAttribute) )
Focus Set
Referenced Relationship Types and Attributesself.associatedProduct navigation:
ap.ableToRateAttribute navigation:
self.configurableAttribute navigation:
ConfigurableProduct ConfiguredProduct
SingleValuedEnumerationAttribute
IsRepresentedByassociatedProduct1..*
1..*
ItemIsAbleToRate
ableToRateAttribute*
*Attribute
ConfigurableProduct 1..*1..*
IsConfiguredBy
configurableAttribute
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 21 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 2: Filtering of Relationship Types and Attributes
context ConfigurableProduct inv: -- is associated to products with the same attributes self.associatedProduct->forAll( ap | ap.ableToRateAttribute->includesAll(self.configurableAttribute) )
Focus Set
Referenced Relationship Types and Attributesself.associatedProduct navigation:
ap.ableToRateAttribute navigation:
self.configurableAttribute navigation:
ConfigurableProduct ConfiguredProduct
SingleValuedEnumerationAttribute
IsRepresentedByassociatedProduct1..*
1..*
ItemIsAbleToRate
ableToRateAttribute*
*Attribute
ConfigurableProduct 1..*1..*
IsConfiguredBy
configurableAttribute
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 21 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 2: Filtering of Relationship Types and Attributes
context ConfigurableProduct inv: -- is associated to products with the same attributes self.associatedProduct->forAll( ap | ap.ableToRateAttribute->includesAll(self.configurableAttribute) )
Focus Set
Referenced Relationship Types and Attributesself.associatedProduct navigation:
ap.ableToRateAttribute navigation:
self.configurableAttribute navigation:
ConfigurableProduct ConfiguredProduct
SingleValuedEnumerationAttribute
IsRepresentedByassociatedProduct1..*
1..*
ItemIsAbleToRate
ableToRateAttribute*
*Attribute
ConfigurableProduct 1..*1..*
IsConfiguredBy
configurableAttribute
Projection Required
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 21 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 2: Filtering of Relationship Types and AttributesProjection
Original Schema* IsAbleToRate Attribute*
ableToRateAttribute
Item item
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 22 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 2: Filtering of Relationship Types and AttributesProjection
Original Schema
Product
* IsAbleToRate Attribute
ConfigurableProduct
ConfiguredProduct
SimpleProduct
*ableToRateAttribute
Item item
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 22 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 2: Filtering of Relationship Types and AttributesProjection
Original Schema
Product
* IsAbleToRate Attribute
ConfigurableProduct
ConfiguredProduct
SimpleProduct
*ableToRateAttribute
Item item
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 22 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 2: Filtering of Relationship Types and AttributesProjection
Original Schema Filtered Schema
Product
* IsAbleToRate Attribute
ConfigurableProduct
ConfiguredProduct
SimpleProduct
*ableToRateAttribute Product * IsAbleToRate
ConfigurableProductConfiguredProduct
LCA
Item item
Attribute*ableToRateAttributeitem
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 22 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 2: Filtering of Relationship Types and Attributes
context ConfigurableProduct inv: -- is associated to products with the same attributes self.associatedProduct->forAll( ap | ap.ableToRateAttribute->includesAll(self.configurableAttribute) )
Focus Set
Filtered Relationship Types and Attributesself.associatedProduct navigation:
ap.ableToRateAttribute navigation:
self.configurableAttribute navigation:
ConfigurableProduct ConfiguredProduct
SingleValuedEnumerationAttribute
IsRepresentedByassociatedProduct1..*
1..*
IsAbleToRateableToRateAttribute
**
Attribute
ConfigurableProduct 1..*1..*
IsConfiguredBy
configurableAttribute
Productitem
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 23 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 3: Filtering of Generalization Relationships
Stage 3
The method extracts the generalization relationships betweenthe entity and event types in the resulting filtered conceptualschema.
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 24 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 3: Filtering of Generalization Relationships
context ConfigurableProduct inv: -- is associated to products with the same attributes self.associatedProduct->forAll( ap | ap.ableToRateAttribute->includesAll(self.configurableAttribute) )
Focus Set
Filtered Generalization Relationships
ConfigurableProduct
ConfiguredProduct
SimpleProduct
ProductLCA
Attribute
EnumerationAttribute
SingleValuedEnumerationAttribute
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 25 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 3: Filtering of Generalization Relationships
context ConfigurableProduct inv: -- is associated to products with the same attributes self.associatedProduct->forAll( ap | ap.ableToRateAttribute->includesAll(self.configurableAttribute) )
Focus Set
Filtered Generalization Relationships
ConfigurableProduct
ConfiguredProduct
ProductLCA
Attribute
SingleValuedEnumerationAttribute
IndirectGeneralization
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 25 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 4: Filtering of Data Types
Stage 4
The method includes in the filtered schema those data types fromthe original one that are referenced in the specification of aconstraint of focus or define the type of a filtered attribute.
In the running example, there are no data types referenced by theconstraint of focus:
context ConfigurableProduct
inv: - is associated to products with the same attributesself.associatedProduct->forAll(ap |
ap.ableToRateAttribute->includesAll(self.configurableAttribute))
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 26 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 5: Filtering of Schema Rules (optional)
Stage 5
The method selects the schema rules (constraint expressions) that are defined in thecontext of elements from the filtered schema and that are referentially-complete.
A schema rule is referentially-complete whenever all the schema elements used in thespecification of the rule belong to the filtered conceptual schema.
Considering the running example, the method selects the constraint of focus:
context ConfigurableProduct
inv: - is associated to products with the same attributesself.associatedProduct->forAll(ap |
ap.ableToRateAttribute->includesAll(self.configurableAttribute))
and an additional constraint that is referentially-complete:
context ConfigurableProduct
inv: - configurableAttribute subsets ableToRateAttributeself.ableToRateAttribute->includesAll(self.configurableAttribute))
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 27 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Stages of the Filtering Method
Stage 6: Presentation of the Filtered Schema
context ConfigurableProduct inv: -- is associated to products with the same attributes self.associatedProduct->forAll( ap | ap.ableToRateAttribute->includesAll(self.configurableAttribute) )
Filtered Conceptual Schema
Product
ConfigurableProduct ConfiguredProduct
SingleValuedEnumerationAttribute
IsRepresentedByassociatedProduct1..*
1..*
IsAbleToRate
IsConfiguredBy
*
*
*
1..* ableToRateAttributeconfigurableAttribute
context ConfigurableProduct inv: -- configurableAttribute subsets ableToRateAttribute self.ableToRateAttribute-> includesAll(self.configurableAttribute)
Attribute
item
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 28 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Outline
1 Introduction
2 Filtering Conceptual Schemas
3 Evaluation
4 Application to Event Types
5 Conclusions
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 29 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Evaluation
We have implemented the filtering method as a prototype tool
We have evaluated the efficiency and effectiveness of the method by using fourdistinct case studies: the schema of Magento, the UML metaschema, the schema ofosCommerce, and the EU-Rent car rental schema.
The effectiveness measures the benefits obtained from the application of thefiltering method
The efficiency indicates the time interval between the request and the answer
We have applied our filtering method for each OCL constraint expression specified inthese conceptual schemas (1644 constraints).
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 30 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Effectiveness Analysis
Effectiveness
Goal
The bigger size reduction our method obtains, the better
Evaluation
We compare the final size of the filtered schema with the size of the contextconstraint schema
Context Constraint Schema
The portion of the large schema the user needs to manually explore in order to coverthe elements referenced by the formal specification of the constraints of focus
A with the referenced elements from the constraints of focus,
B with complete generalization hierarchies of entity and event types between elements of A,
C with all the attributes owned by entity and event types of A and B,
D with all the relationship types in which the entity and event types of A and B participate,
E without projection of referenced attributes and relationship types.
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 31 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Effectiveness Analysis
EffectivenessContext Constraint Schema
context ConfigurableProduct inv: -- is associated to products with the same attributes self.associatedProduct->forAll( ap | ap.ableToRateAttribute->includesAll(self.configurableAttribute) )
Filtered Conceptual Schema
Product
ConfigurableProduct ConfiguredProduct
SingleValuedEnumerationAttribute
IsRepresentedByassociatedProduct1..*
1..*
IsAbleToRate
IsConfiguredBy
*
*
*
1..* ableToRateAttributeconfigurableAttribute
context ConfigurableProduct inv: -- configurableAttribute subsets ableToRateAttribute self.ableToRateAttribute-> includesAll(self.configurableAttribute)
Attribute
item
(a) Filtered conceptual schema (CSF). (b) Context constraint schema (CSC).
Figure: Comparison between (a) the filtered conceptual schema and (b) thecorresponding fragment of Magento for the constraint of ConfigurableProduct.
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 32 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Effectiveness Analysis
EffectivenessFiltering Utility Factor
Filtering Utility Factor
Therefore, we define the filtering utility factor between the filtered schema CSF andthe context constraint schema CSC as follows:
Filtering Utility Factor: ∆ = 1−Σ(CSF)
Σ(CSC),
where the size Σ(CS) of a conceptual schema CS counts:
the number of entity and event types in CS
the number of relationship types in CS
the number of attributes in CS
the number of generalization relationships in CS
Note that Σ(CSF) ≤ Σ(CSC)
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 33 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Effectiveness Analysis
Effectiveness
For each schema, the plot indicates the smallest observation (sample minimum), lower quartile (Q1), median (Q2),upper quartile (Q3), and largest observation (sample maximum).
The black diamonds indicate the mean of each sample.
The bottom and top of each box (Q1 and Q3) are the 5th and 95th percentiles, which means that the box containsthe 90% of the samples.
Filtering Utility Factor ∆ [0,1]
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0.850.79
0.72 0.74
Magento UML osCommerce EU Rent
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 34 / 42
Box plot with the resulting values for the filtering utility factor applied to each of the1644 schema rules of the case studies.
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Efficiency Analysis
Efficiency
A good method does not only need to be useful, but it also needs to obtain the results in an acceptable timeaccording to the user’s expectations.
Record the time lapse between the input of a user-selected focus set and the obtainment of the filtered schema.
Response Time (ms)
0
5
10
15
20
25
3.254.08 4.21
2.69
Magento UML osCommerce EU Rent
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 35 / 42
Values obtained by an Intel Core 2 Duo 3GHz processor with 4GB of DDR2 RAM.
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Outline
1 Introduction
2 Filtering Conceptual Schemas
3 Evaluation
4 Application to Event Types
5 Conclusions
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 36 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Event Types
Our method can be used to help understanding the specification of event types(system operations) in large conceptual schemas.
Event Types
An event describes a nonempty set of changes in the population of entity orrelationship types in the domain of the conceptual schema.
We assume event types are represented as entity types with the stereotype«event». This allows one to define relationships between events and otherentities, integrity constraints, derivation rules, etc. in a way very similar to thatfor ordinary entity types
We define an effect() operation in each event type, whose purpose is to specifythe effect of the event in the domain.
The postcondition of this operation will be exactly the postcondition of thecorresponding event.
We can directly apply our filtering method to the set of postconditions of a particularevent type in order to obtain its corresponding filtered schema.
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 37 / 42
Definition of events and their effects in object-oriented conceptual modeling languages. Olive A. ER 2004
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Event Types
Our method can be used to help understanding the specification of event types(system operations) in large conceptual schemas.
Event Types
An event describes a nonempty set of changes in the population of entity orrelationship types in the domain of the conceptual schema.
We assume event types are represented as entity types with the stereotype«event». This allows one to define relationships between events and otherentities, integrity constraints, derivation rules, etc. in a way very similar to thatfor ordinary entity types
We define an effect() operation in each event type, whose purpose is to specifythe effect of the event in the domain.
The postcondition of this operation will be exactly the postcondition of thecorresponding event.
We can directly apply our filtering method to the set of postconditions of a particularevent type in order to obtain its corresponding filtered schema.
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 37 / 42
Definition of events and their effects in object-oriented conceptual modeling languages. Olive A. ER 2004
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Event Types
Our method can be used to help understanding the specification of event types(system operations) in large conceptual schemas.
Event Types
An event describes a nonempty set of changes in the population of entity orrelationship types in the domain of the conceptual schema.
We assume event types are represented as entity types with the stereotype«event». This allows one to define relationships between events and otherentities, integrity constraints, derivation rules, etc. in a way very similar to thatfor ordinary entity types
We define an effect() operation in each event type, whose purpose is to specifythe effect of the event in the domain.
The postcondition of this operation will be exactly the postcondition of thecorresponding event.
We can directly apply our filtering method to the set of postconditions of a particularevent type in order to obtain its corresponding filtered schema.
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 37 / 42
Definition of events and their effects in object-oriented conceptual modeling languages. Olive A. ER 2004
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Event Types
Focus Set
context AddProductToShoppingCart::effect()post addProduct: let existingItem:ShoppingCartItem = self.shoppingCart@pre.shoppingCartItem@pre ->any(i|i.product=self.product) in let productExists:Boolean=not existingItem.oclIsUndefined() and existingItem.optionValueInOption=self.optionValue and existingItem.textOptionRating ->collect(r| Tuple{o=r.textOption,text=r.value})->asSet() = self.textOption and existingItem.dateOptionRating ->collect(r| Tuple{o=r.dateOption,date=r.value})->asSet() = self.dateOption in if productExists then let i = self.shoppingCart.shoppingCartItem ->any(i|i.product=self.product) in i.quantity = i@pre.quantity + self.quantity else (ShoppingCartItem.allInstances()-ShoppingCartItem.allInstances@pre()) ->one(i:ShoppingCartItem | i.oclIsNew() and i.oclIsTypeOf(ShoppingCartItem) and i.shoppingCart = self.shoppingCart and i.product = self.product and i.quantity = self.quantity and i.applyDiscount = true and (self.textOption->notEmpty() implies self.textOption ->forAll(tupleOpt | (TextOptionRating.allInstances()-TextOptionRating.allInstances@pre()) ->exists(r:TextOptionRating | r.oclIsNew() and r.oclIsTypeOf(TextOptionRating) and r.textOption = tupleOpt.o and r.value = tupleOpt.text and r.shoppingCartItem = i ) ) ) and (self.dateOption->notEmpty() implies self.dateOption->forAll(tupleOpt| (DateOptionRating.allInstances()-DateOptionRating.allInstances@pre()) ->exists(r:DateOptionRating | r.oclIsNew() and r.oclIsTypeOf(DateOptionRating) and r.dateOption = tupleOpt.o and r.value = tupleOpt.date and r.shoppingCartItem = i ) ) ) and i.optionValueInOption = self.optionValue ) endifpost decreaseQuantity: StockConfiguration.allInstances() ->one(sc | sc.decreaseStockWhenOrderIsPlaced) implies (self.product.quantity = self.product@pre.quantity@pre-self.quantity)
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 38 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Event Types
Focus Set
context AddProductToShoppingCart::effect()post addProduct: let existingItem:ShoppingCartItem = self.shoppingCart@pre.shoppingCartItem@pre ->any(i|i.product=self.product) in let productExists:Boolean=not existingItem.oclIsUndefined() and existingItem.optionValueInOption=self.optionValue and existingItem.textOptionRating ->collect(r| Tuple{o=r.textOption,text=r.value})->asSet() = self.textOption and existingItem.dateOptionRating ->collect(r| Tuple{o=r.dateOption,date=r.value})->asSet() = self.dateOption in if productExists then let i = self.shoppingCart.shoppingCartItem ->any(i|i.product=self.product) in i.quantity = i@pre.quantity + self.quantity else (ShoppingCartItem.allInstances()-ShoppingCartItem.allInstances@pre()) ->one(i:ShoppingCartItem | i.oclIsNew() and i.oclIsTypeOf(ShoppingCartItem) and i.shoppingCart = self.shoppingCart and i.product = self.product and i.quantity = self.quantity and i.applyDiscount = true and (self.textOption->notEmpty() implies self.textOption ->forAll(tupleOpt | (TextOptionRating.allInstances()-TextOptionRating.allInstances@pre()) ->exists(r:TextOptionRating | r.oclIsNew() and r.oclIsTypeOf(TextOptionRating) and r.textOption = tupleOpt.o and r.value = tupleOpt.text and r.shoppingCartItem = i ) ) ) and (self.dateOption->notEmpty() implies self.dateOption->forAll(tupleOpt| (DateOptionRating.allInstances()-DateOptionRating.allInstances@pre()) ->exists(r:DateOptionRating | r.oclIsNew() and r.oclIsTypeOf(DateOptionRating) and r.dateOption = tupleOpt.o and r.value = tupleOpt.date and r.shoppingCartItem = i ) ) ) and i.optionValueInOption = self.optionValue ) endifpost decreaseQuantity: StockConfiguration.allInstances() ->one(sc | sc.decreaseStockWhenOrderIsPlaced) implies (self.product.quantity = self.product@pre.quantity@pre-self.quantity)
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 38 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Event Types
Focus Set
context AddProductToShoppingCart::effect()post addProduct: let existingItem:ShoppingCartItem = self.shoppingCart@pre.shoppingCartItem@pre ->any(i|i.product=self.product) in let productExists:Boolean=not existingItem.oclIsUndefined() and existingItem.optionValueInOption=self.optionValue and existingItem.textOptionRating ->collect(r| Tuple{o=r.textOption,text=r.value})->asSet() = self.textOption and existingItem.dateOptionRating ->collect(r| Tuple{o=r.dateOption,date=r.value})->asSet() = self.dateOption in if productExists then let i = self.shoppingCart.shoppingCartItem ->any(i|i.product=self.product) in i.quantity = i@pre.quantity + self.quantity else (ShoppingCartItem.allInstances()-ShoppingCartItem.allInstances@pre()) ->one(i:ShoppingCartItem | i.oclIsNew() and i.oclIsTypeOf(ShoppingCartItem) and i.shoppingCart = self.shoppingCart and i.product = self.product and i.quantity = self.quantity and i.applyDiscount = true and (self.textOption->notEmpty() implies self.textOption ->forAll(tupleOpt | (TextOptionRating.allInstances()-TextOptionRating.allInstances@pre()) ->exists(r:TextOptionRating | r.oclIsNew() and r.oclIsTypeOf(TextOptionRating) and r.textOption = tupleOpt.o and r.value = tupleOpt.text and r.shoppingCartItem = i ) ) ) and (self.dateOption->notEmpty() implies self.dateOption->forAll(tupleOpt| (DateOptionRating.allInstances()-DateOptionRating.allInstances@pre()) ->exists(r:DateOptionRating | r.oclIsNew() and r.oclIsTypeOf(DateOptionRating) and r.dateOption = tupleOpt.o and r.value = tupleOpt.date and r.shoppingCartItem = i ) ) ) and i.optionValueInOption = self.optionValue ) endifpost decreaseQuantity: StockConfiguration.allInstances() ->one(sc | sc.decreaseStockWhenOrderIsPlaced) implies (self.product.quantity = self.product@pre.quantity@pre-self.quantity)
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 38 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Event Types
value:DateDateOptionRating
Focus Set Filtered Schema
context AddProductToShoppingCart::effect()post addProduct: let existingItem:ShoppingCartItem = self.shoppingCart@pre.shoppingCartItem@pre ->any(i|i.product=self.product) in let productExists:Boolean=not existingItem.oclIsUndefined() and existingItem.optionValueInOption=self.optionValue and existingItem.textOptionRating ->collect(r| Tuple{o=r.textOption,text=r.value})->asSet() = self.textOption and existingItem.dateOptionRating ->collect(r| Tuple{o=r.dateOption,date=r.value})->asSet() = self.dateOption in if productExists then let i = self.shoppingCart.shoppingCartItem ->any(i|i.product=self.product) in i.quantity = i@pre.quantity + self.quantity else (ShoppingCartItem.allInstances()-ShoppingCartItem.allInstances@pre()) ->one(i:ShoppingCartItem | i.oclIsNew() and i.oclIsTypeOf(ShoppingCartItem) and i.shoppingCart = self.shoppingCart and i.product = self.product and i.quantity = self.quantity and i.applyDiscount = true and (self.textOption->notEmpty() implies self.textOption ->forAll(tupleOpt | (TextOptionRating.allInstances()-TextOptionRating.allInstances@pre()) ->exists(r:TextOptionRating | r.oclIsNew() and r.oclIsTypeOf(TextOptionRating) and r.textOption = tupleOpt.o and r.value = tupleOpt.text and r.shoppingCartItem = i ) ) ) and (self.dateOption->notEmpty() implies self.dateOption->forAll(tupleOpt| (DateOptionRating.allInstances()-DateOptionRating.allInstances@pre()) ->exists(r:DateOptionRating | r.oclIsNew() and r.oclIsTypeOf(DateOptionRating) and r.dateOption = tupleOpt.o and r.value = tupleOpt.date and r.shoppingCartItem = i ) ) ) and i.optionValueInOption = self.optionValue ) endifpost decreaseQuantity: StockConfiguration.allInstances() ->one(sc | sc.decreaseStockWhenOrderIsPlaced) implies (self.product.quantity = self.product@pre.quantity@pre-self.quantity)
Productquantity:Real[0..1]
quantity:IntegertextOption:Tuple(o:TextOption, text:String)[0..*]dateOption:Tuple(o:DateOption, date:Date)[0..*]
AddProductToShoppingCart
quantity:Integer[0..1]applyDiscount:Boolean
ShoppingCartItem
ShoppingCart
OptionValueInOption
TextOption DateOption
value:StringTextOptionRating
**
**
decreaseStockWhenOrderIsPlaced:Boolean
StockConfiguration
*
*
Cho
oses
* *
1
IsA
Pur
chas
eOfA
1
11
* *
event
*
*optionValue
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 38 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Event Types
value:DateDateOptionRating
Focus Set Filtered Schema
context AddProductToShoppingCart::effect()post addProduct: let existingItem:ShoppingCartItem = self.shoppingCart@pre.shoppingCartItem@pre ->any(i|i.product=self.product) in let productExists:Boolean=not existingItem.oclIsUndefined() and existingItem.optionValueInOption=self.optionValue and existingItem.textOptionRating ->collect(r| Tuple{o=r.textOption,text=r.value})->asSet() = self.textOption and existingItem.dateOptionRating ->collect(r| Tuple{o=r.dateOption,date=r.value})->asSet() = self.dateOption in if productExists then let i = self.shoppingCart.shoppingCartItem ->any(i|i.product=self.product) in i.quantity = i@pre.quantity + self.quantity else (ShoppingCartItem.allInstances()-ShoppingCartItem.allInstances@pre()) ->one(i:ShoppingCartItem | i.oclIsNew() and i.oclIsTypeOf(ShoppingCartItem) and i.shoppingCart = self.shoppingCart and i.product = self.product and i.quantity = self.quantity and i.applyDiscount = true and (self.textOption->notEmpty() implies self.textOption ->forAll(tupleOpt | (TextOptionRating.allInstances()-TextOptionRating.allInstances@pre()) ->exists(r:TextOptionRating | r.oclIsNew() and r.oclIsTypeOf(TextOptionRating) and r.textOption = tupleOpt.o and r.value = tupleOpt.text and r.shoppingCartItem = i ) ) ) and (self.dateOption->notEmpty() implies self.dateOption->forAll(tupleOpt| (DateOptionRating.allInstances()-DateOptionRating.allInstances@pre()) ->exists(r:DateOptionRating | r.oclIsNew() and r.oclIsTypeOf(DateOptionRating) and r.dateOption = tupleOpt.o and r.value = tupleOpt.date and r.shoppingCartItem = i ) ) ) and i.optionValueInOption = self.optionValue ) endifpost decreaseQuantity: StockConfiguration.allInstances() ->one(sc | sc.decreaseStockWhenOrderIsPlaced) implies (self.product.quantity = self.product@pre.quantity@pre-self.quantity)
Productquantity:Real[0..1]
quantity:IntegertextOption:Tuple(o:TextOption, text:String)[0..*]dateOption:Tuple(o:DateOption, date:Date)[0..*]
AddProductToShoppingCart
quantity:Integer[0..1]applyDiscount:Boolean
ShoppingCartItem
ShoppingCart
OptionValueInOption
TextOption DateOption
value:StringTextOptionRating
**
**
decreaseStockWhenOrderIsPlaced:Boolean
StockConfiguration
*
*
Cho
oses
* *
1
IsA
Pur
chas
eOfA
1
11
* *
event
*
*optionValue
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 39 / 42
∆ = 0.8 in 3msSuch schema can be seen as an Effect Correspondence Diagram(ECD) that shows all the entities affected by a given event type.
Structured Systems Analysis and Design Method:Application and Context. Downs et al. Prentice Hall 1992
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Outline
1 Introduction
2 Filtering Conceptual Schemas
3 Evaluation
4 Application to Event Types
5 Conclusions
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 40 / 42
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conclusions
Conclusions
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 41 / 42
Problem: understanding constraint expressions in large conceptual schemas.
Referenced elements may be very distant from each other and embedded in anintricate web of irrelevant elements.
Filtering method: users focuses on a set of constraints. The method automaticallyobtains a filtered schema that includes the smallest subset of the original schemathat is needed to understand those expressions.
Prototype tool: evaluated by means of its application to 4 real large conceptualschemas.
Results (I): size reduction ≥70% in the number of schema elements to explore byusing filtered schemas instead of working manually.
Results (II): average time per request → short enough for our purpose (ms).
Application of the method to help understanding the specification of event types.
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conclusions
Conclusions
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 41 / 42
Problem: understanding constraint expressions in large conceptual schemas.
Referenced elements may be very distant from each other and embedded in anintricate web of irrelevant elements.
Filtering method: users focuses on a set of constraints. The method automaticallyobtains a filtered schema that includes the smallest subset of the original schemathat is needed to understand those expressions.
Prototype tool: evaluated by means of its application to 4 real large conceptualschemas.
Results (I): size reduction ≥70% in the number of schema elements to explore byusing filtered schemas instead of working manually.
Results (II): average time per request → short enough for our purpose (ms).
Application of the method to help understanding the specification of event types.
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conclusions
Conclusions
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 41 / 42
Problem: understanding constraint expressions in large conceptual schemas.
Referenced elements may be very distant from each other and embedded in anintricate web of irrelevant elements.
Filtering method: users focuses on a set of constraints. The method automaticallyobtains a filtered schema that includes the smallest subset of the original schemathat is needed to understand those expressions.
Prototype tool: evaluated by means of its application to 4 real large conceptualschemas.
Results (I): size reduction ≥70% in the number of schema elements to explore byusing filtered schemas instead of working manually.
Results (II): average time per request → short enough for our purpose (ms).
Application of the method to help understanding the specification of event types.
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conclusions
Conclusions
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 41 / 42
Problem: understanding constraint expressions in large conceptual schemas.
Referenced elements may be very distant from each other and embedded in anintricate web of irrelevant elements.
Filtering method: users focuses on a set of constraints. The method automaticallyobtains a filtered schema that includes the smallest subset of the original schemathat is needed to understand those expressions.
Prototype tool: evaluated by means of its application to 4 real large conceptualschemas.
Results (I): size reduction ≥70% in the number of schema elements to explore byusing filtered schemas instead of working manually.
Results (II): average time per request → short enough for our purpose (ms).
Application of the method to help understanding the specification of event types.
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conclusions
Conclusions
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 41 / 42
Problem: understanding constraint expressions in large conceptual schemas.
Referenced elements may be very distant from each other and embedded in anintricate web of irrelevant elements.
Filtering method: users focuses on a set of constraints. The method automaticallyobtains a filtered schema that includes the smallest subset of the original schemathat is needed to understand those expressions.
Prototype tool: evaluated by means of its application to 4 real large conceptualschemas.
Results (I): size reduction ≥70% in the number of schema elements to explore byusing filtered schemas instead of working manually.
Results (II): average time per request → short enough for our purpose (ms).
Application of the method to help understanding the specification of event types.
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conclusions
Conclusions
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 41 / 42
Problem: understanding constraint expressions in large conceptual schemas.
Referenced elements may be very distant from each other and embedded in anintricate web of irrelevant elements.
Filtering method: users focuses on a set of constraints. The method automaticallyobtains a filtered schema that includes the smallest subset of the original schemathat is needed to understand those expressions.
Prototype tool: evaluated by means of its application to 4 real large conceptualschemas.
Results (I): size reduction ≥70% in the number of schema elements to explore byusing filtered schemas instead of working manually.
Results (II): average time per request → short enough for our purpose (ms).
Application of the method to help understanding the specification of event types.
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Conclusions
Conclusions
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 41 / 42
Problem: understanding constraint expressions in large conceptual schemas.
Referenced elements may be very distant from each other and embedded in anintricate web of irrelevant elements.
Filtering method: users focuses on a set of constraints. The method automaticallyobtains a filtered schema that includes the smallest subset of the original schemathat is needed to understand those expressions.
Prototype tool: evaluated by means of its application to 4 real large conceptualschemas.
Results (I): size reduction ≥70% in the number of schema elements to explore byusing filtered schemas instead of working manually.
Results (II): average time per request → short enough for our purpose (ms).
Application of the method to help understanding the specification of event types.
Introduction Filtering Conceptual Schemas Evaluation Application to Event Types Conclusions
Understanding Constraint Expressionsin Large Conceptual Schemas
by Automatic Filtering
Antonio Villegas, Antoni Olive, and Maria-Ribera Sancho{avillegas, olive, ribera}@essi.upc.edu
Department of Service and Information System EngineeringUniversitat Politecnica de Catalunya
A. Villegas, A. Olive, and M.-R. Sancho ER 2012 October 15, 2012 42 / 42