70 likes | 201 Views
Formal Modeling of Feature Interaction in Product Line. November 2005 Yuji ARICHIKA,Keijiro ARAKI Kyushu University {arichika,araki}@ale.csce.kyushu-u.ac.jp. 1. Background. Product line software engineering
E N D
Formal Modeling of Feature Interaction in Product Line November 2005 Yuji ARICHIKA,Keijiro ARAKI Kyushu University {arichika,araki}@ale.csce.kyushu-u.ac.jp 1
Background Product line software engineering • Software development frame work to develop reusable assets and develop each products by using reusable assets FORM (Feature Oriented Reuse Method) • Feature oriented PLSE methods • We analyze feature by using feature model • We can’t analyze feature interaction strictly because feature model has ambiguity Feature interaction • Selected features interact each other and whole of the system can't perform well It is important to describe formal model of feature and feature interaction 2
Classification of Feature Interaction • Parallel feature: feature interactions which can arise when two features operate in the same time(feature A, B) • Sequential feature interaction: feature interactions which can arise when two features operate sequentially • Direct sequential feature interaction (feature A, C) • Indirect sequential feature interaction(feature A, D) time feature A feature B feature C feature D 3
Example of Parallel Feature Interaction Telecommunication system • Call Forwarding Feature:forwarding calls to registered telephone • Originating Call Screening: restricting calls to telephone that appear on a screening list • Feature interaction:two features has same registered telephones call Telephone C Telephone A Telephone B Originating Call Screening Feature :Telephone C Call Forwarding Feature:Telephone C 4
Feature A +Feature B Pre or Post => and => Feature A Pre Post Feature B Pre Post conditionA1 conditionB1 conditionB1 conditionA1 conditionA1 conditionA2 conditionA2 conditionB2 conditionB1 conditionB2 Formal Modeling of Feature Interaction Formal modeling of feature • Describe features as a function • Describe conditions to operate the feature in pre condition of the function • Describe conditions which the system have to fulfill when the feature is operated in post condition of the function Formal modeling of feature interaction • Describe as a function expressionlike a schema expression of Z 5
o_screening pre caller in set dom telephone_system.terminating _call_screening and callee in set telephone_system.terminating_call_screening(caller) post mk_(caller,callee) not in set out_telephone_system.basic_calling; s_callup(o_forwarding + o_screening) pre pre_o_forwarding(telephone_system, caller, callee) or pre_o_screening(telephone_system, caller, callee) post (pre_o_forwarding(telephone_system, caller, callee) =>post_o_forwarding(telephone_system, caller, callee, out_telephone_system)) and (pre_o_screening(telephone_system, caller, callee) => post_o_screening(telephone_system, caller, callee, out_telephone_system)); Formal Model of Feature Interaction o_forwarding pre telephone_system.call_forwarding(caller) <> nil post mk_(caller, telephone_system.call_forwarding(callee)) in set out_telephone_system.basic_calling; feature interaction not forall s1 in set setTS, caller in set setTel, callee in set setTel & pre_s_callup(s1, caller, callee) => exists s2 in set setTS & post_s_callup(s1, caller, callee, s2) 6