-
Notifications
You must be signed in to change notification settings - Fork 2
Configuration Generation
This page explains how the configurations are generated to test the transformation depending on the framed features. This solution is a simplified method inspired by [1]. It uses requirements that can be seen in the table Requirements below. The requirements are tied to a configuration of its dependant feature. Features on which the require dont depend are not shown in the table. An algorithm goes through a list of the requirements and constructs complete configurations of requirements that dont contradict each other. This is done until every requirement is used once. The algorithm uses a set of a reduced number of features. This list can be seen in the table Reduced feature list. The value of the column Index indicates the position of the feature in the string representation which is used in the source code.
##Reduced feature list
| Index | Feature |
|---|---|
| 0 | Role_Properties/ Role_Behavior |
| 1 | Role_Inheritance |
| 2 | Compartments |
| 3 | Dates |
| 4 | Role_Implication |
| 5 | Role_Prohibtion |
| 6 | Role_Equivalence |
| 7 | Group_Constraints |
| 8 | Occurence_Constraints |
| 9 | Relationship |
| 10 | Relationship_Cardinality |
| 11 | Intra_Relationship_Constraints |
| 12 | Inter_Relationship_Constraints |
| 13 | Compartment_Types |
| 14 | Compartment_Properties/ Compartment_Behavior |
| 15 | Compartment_Inheritance |
| 16 | Playable_By_Defining_Compartment |
| 17 | Data_Types |
| 18 | Data_Type_Inheritance |
##Requirements
| Requirement | Description | Dependant_Configuration_________ |
|---|---|---|
| R1 | Role properties and operation are transformed | Role_Properties/ Role_Behavior |
| R2 | Role properties and operation are not transformed | !(Role_Properties/ Role_Behavior) |
| R3 | Role inheritances are transformed | Role_Inheritance |
| R4 | Role inheritances are not transformed | !(Role_Inheritance) |
| R5 | Fulfillments with compartment types as player are transformed | Compartments & Compartment_Types |
| R6_1 | Fulfillments with compartment types as player are not transformed | !(Compartments) & !(Compartment_Types) |
| R6_2 | !(Compartments) & Compartment_Types | |
| R7 | Fulfillments with data types as player are transformed | Dates & Data_Types |
| R8_1 | Fulfillments with data types as player are not transformed | !(Dates) & !(Data_Types) |
| R8_2 | !(Dates) & Data_Types | |
| R9 | Role implications are transformed | Role_Implication & Role_Equivalence |
| R10_1 | Role implications are not transformed | !(Role_Implication) & !(Role_Equivalence) |
| R10_2 | !(Role_Implication) & Role_Equivalence | |
| R11 | Role prohibitions are transformed | Role_Prohibtion |
| R12 | Role prohibitions are not transformed | !(Role_Prohibtion) |
| R13 | Role equivalences are transformed | same as R9 |
| R14_1 | Role equivalences are not transformed | same as R10_2 |
| R14_2 | same as R10_1 | |
| R15 | Group constraints are transformed | Group_Constraints |
| R16 | Group constraints are not transformed | !(Group_Constraints) |
| R17 | Occurrence constraints are transformed | Occurence_Constraints |
| R18 | Occurrence constraints are not transformed | !(Occurence_Constraints) |
| R19_1 | Relationships are transformed | Relationship & !(Relationship_Cardinality) & !(Intra_Relationship_Constraints) & !(Inter_Relationship_Constraints) |
| R19_2 | Relationship & !(Relationship_Cardinality) & !(Intra_Relationship_Constraints) & Inter_Relationship_Constraints |
|
| R19_3 | Relationship & !(Relationship_Cardinality) & Intra_Relationship_Constraints & !(Inter_Relationship_Constraints) |
|
| R19_4 | Relationship & !(Relationship_Cardinality) & Intra_Relationship_Constraints & Inter_Relationship_Constraints |
|
| R19_5 | Relationship & Relationship_Cardinality & !(Intra_Relationship_Constraints) & !(Inter_Relationship_Constraints) |
|
| R19_6 | Relationship & Relationship_Cardinality & !(Intra_Relationship_Constraints) & Inter_Relationship_Constraints |
|
| R19_7 | Relationship & Relationship_Cardinality & Intra_Relationship_Constraints & !(Inter_Relationship_Constraints) |
|
| R19_8 | Relationship & Relationship_Cardinality & Intra_Relationship_Constraints & Inter_Relationship_Constraints |
|
| R20 | Relationships are not transformed | !(Relationship) & !(Relationship_Cardinality) & !(Intra_Relationship_Constraints) & !(Inter_Relationship_Constraints) |
| R21 | Relationship cardinalities are transformed | Relationship & Relationship_Cardinality |
| R22_1 | Relationship cardinalities are not transformed | !(Relationship) & !(Relationship_Cardinality) |
| R22_2 | Relationship & !(Relationship_Cardinality) | |
| R23 | intra relationship constraints are transformed | Relationship & Intra_Relationship_Constraints |
| R24_1 | intra relationship constraints are not transformed | !(Relationship) & !(Intra_Relationship_Constraints) |
| R24_2 | Relationship & !(Intra_Relationship_Constraints) | |
| R25 | inter relationship constraints are transformed | Relationship & Inter_Relationship_Constraints |
| R26_1 | inter relationship constraints are not transformed | !(Relationship) & !(Inter_Relationship_Constraints) |
| R26_2 | Relationship & !(Inter_Relationship_Constraints) |
| R27 | compartment type attributes and operations are transformed | Compartment_Types & Compartment_Properties/ Compartment_Behavior |
| R28_1 | compartment type attributes and operations are not transformed| !(Compartment_Types) &
!(Compartment_Properties/ Compartment_Behavior) |
| R28_2 | | same as R10_1 |
| R14_2 | | same as R10_1 |
| R14_2 | | same as R10_1 |
| R14_2 | | same as R10_1 |
| R14_2 | | same as R10_1 |
| R14_2 | | same as R10_1 |
| R14_2 | | same as R10_1 |
| R14_2 | | same as R10_1 |
| R14_2 | | same as R10_1 |
| R14_2 | | same as R10_1 |
| R14_2 | | same as R10_1 |
| R14_2 | | same as R10_1 |
| R14_2 | | same as R10_1 |
[1] K.D. Scheidemann, Optimizing the selection of representative configurations in verification of evolving product lines of distributed embedded systems, in: Proceedings of the 10th International Software Product Line Conference (SPLC’06), 2006, pp. 75–84.