1 / 8

Feature

1. *. Feature-Model. Requires. requirer. 1. *. requiree. Excludes. 2. *. 1.. *. involved. feature. 1.. *. variant. parent. 1. 1. child. 1. variation-point. *. refined-to. refined-from. 0..1. 0..1. 0..1. Refinement. VP-Variant-Constraint. *. relation. Relation.

evania
Télécharger la présentation

Feature

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 1 * Feature-Model Requires requirer 1 * requiree Excludes 2 * 1..* involved feature 1..* variant parent 1 1 child 1 variation-point * refined-to refined-from 0..1 0..1 0..1 Refinement VP-Variant-Constraint * relation Relation Feature Constraint XOR OR name: String description: Text binding-state: 3V-Boolean optional: Boolean state: 3V-Boolean OCL Constraints: contextfm: Feature-Model inv: fm.feature->select(refined-from->empty())->size = 1 context f: Feature inv: f.refined-from->empty() implies (notf.optionalandf.binding-state) context r: Refinement inv: r.child.binding-state impliesr.parent.binding-state inv: notr.child.optionalimplies (r.parent.binding-state impliesr.child.binding-state) context c: Requires inv: c.state= (c.requirer.binding-state impliesc.requiree.binding-state) context c: Excludes inv: c.state= (c.involved->exists(binding-state <> true)) context c: VP-Variant-Constraint inv: c.variant=c.variation-point.refined-to.child->asSet() context c: OR inv: c.state= (c.variation-point.binding-state impliesc.variant->exists(binding-state)) context c: XOR inv: c.state= (c.variation-point.binding-state impliesc.variant->select(binding-state)->size = 1 ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨

  2. Relation PFM * relation 1..* feature requirer Feature Requires 1 * requiree refined-to parent name: String description: Text binding-state: 3V-Boolean optional: Boolean * * 1 1 Refinement Excludes refined-from child 2 * 0..1 involve 1 1..* 1..* involve variant 1 variation-point * Constraint XOR 0..1 0..1 VP-Variant-Constraint state: 3V-Boolean formula: CNF OR OCL Constraints: contextfm: Feature-Model inv: fm.feature->select(refined-from->empty())->size = 1 context f: Feature inv: f.refined-from->empty() implies (notf.optionalandf.binding-state) context r: Refinement inv: r.child.binding-state impliesr.parent.binding-state inv: notr.child.optionalimplies (r.parent.binding-state impliesr.child.binding-state) context c: Requires inv: c.state= (c.requirer.binding-state impliesc.requiree.binding-state) context c: Excludes inv: c.state= (c.involved->exists(binding-state=false)) context c: VP-Variant-Constraint inv: c.variant->forAll(refined-from.parent=c.variation-point) context c: OR inv: c.state= (c.variation-point.binding-state impliesc.variant->exists(binding-state=true)) context c: XOR inv: c.state= (c.variation-point.binding-state impliesc.variant->select(binding-state=true)->size = 1) context c: CNF-Constraint inv: c.state = c.formula[f\f.binding-state, f in c.involve] <> false ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩

  3. Mobile-Phone Service Mobile-Phone Service Other Constraints: (Content Display)  (Route Navigation)  (Message Service)  (Picture)  (Video) Calling Service Route Navigation Content Display Multi-Media Message Service Calling Service Internet Access Message Service Display Quality Music Picture Video Ringing Alert Call Answer Call Out Online Update Msg Receive Msg Send Ringing Alert Call Answer Call Out Msg Receive Msg Send Low Resolution Medium Resolution High Resolution Ringtone Customize Msg Notify Delivery Confirm Ringtone Customize Msg Notify Optional Feature Requires XOR Legend Refinement Continual Notifying of Unread Msg Ringtone Download Sounding vibrating Sounding Mandatory Feature Excludes OR a. The original PFM b. A configuration of the PFM

  4. <<Problem>> Efficient Detecting of All False-Optional Features in a PFM <<Difficulty>> Efficient Feature-Level Checking <<Difficulty>> Efficient Model-Level Detecting deal-with deal-with <<Optimizing Goal>> Invoking-Times-Decrease <<Optimizing Goal>> Scale-Decrease contribute-to contribute-to contribute-to <<Technique>> Atomic Sets <<Technique>> Reasoning-Based Detection The Main Contributions of This Paper

  5. <<Root>> r Ringtone Customize a a b b a b f a b p (cip) (cicj) c1 c2 cn A P A p B C C B C f binding-state = true c1 c2 cn f binding-state = false

  6. P P P P r r r A A A A A A a a a O O P P B B B B B B b b b r P P P R R R P O O O P P A A A r a b O O P P P O B B B r a b P P P r a b P f f O f

  7. Legend r r Atomic Set c c f a b e e f g h k i j k l m n a. A PFM and the atomic-sets b. The reduced PFM a. The original PFM

More Related