Using Domain Feature to handle Feature Interactions

826 views

Published on

Software Product Lines in general and feature diagrams in particular support the modeling of software variability. Un- fortunately, features may interact with each other, leading to feature interaction issues. Even if detected at the im- plementation level, interaction resolution choices are part of the business variability. In this paper, we propose to use a stepwise process to deal with feature interactions at the domain level: the way an interaction is resolved is consid- ered as a variation point in the configuration process. This method and the associated implementation are applied onto a concrete case study (the jSeduite information system).

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
826
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Using Domain Feature to handle Feature Interactions

    1. 1. Using Domain Featuresto Handle Feature Interactions 1,2 2 2 3Sébastien Mosser, Carlos Parra, Laurence Duchien, Mireille Blay-Fornarino(1) SINTEF IKT, Oslo, Norway(2) INRIA Lille-Nord Europe, LIFL (UMR CNRS 8022), Univ. of Lille 1, France(3) I3S (UMR CNRS 7271, formerly 6070), University of Nice, FranceVaMos’12, Leipzig, GermanyJanuary 26th 2012
    2. 2. [AOSD’11] Information Broadcasting Truncated Shuffledcreated in 2004 AuthenticatedRegistered code Cached Daily-used in 3 universities 2
    3. 3. Idea: Seduite as a Software Product Line Provider Log Source Authentication News Timetable Truncate Profile Shuffle Cache Profile Cache UserGiven SystemGiven 61 3
    4. 4. Idea: Seduite as a Software Product Line Provider Log Source Authentication News Timetable Truncate Profile Shuffle Cache Profile Cache UserGiven SystemGiven 61Optionality: 10 products modelled ... 3
    5. 5. Challenges News Truncate Profile Shuffle Cache UserGiven SystemGiven 4
    6. 6. Challenges Cache the truncated data Truncate the News cached data Truncate Profile Shuffle Cache UserGiven SystemGiven Interactions solving is part of the domain variability! 4
    7. 7. Outline• Deriving Seduite products • Model composition applied to SOA• Stepwise Enrichment of the Feature Model • Capitalising user’s knowledge• Perspectives & Conclusions 5
    8. 8. Deriving Seduite ProductModel composition applied to SOA
    9. 9. InformationSet element * Architecture generation Be Information geTechniques for Model Composition CriterionSet * News Pvalid Criterion +author: String +value: String +content: String pg1 username := receive Service Filter KOMPOSE +run(InformationSet, CriterionSet): InformationSet Profile Service criteria := n2 news := News::getContents p2 profile::getSet(username," pg2 in +getSet(String,String): CriterionSet news") Service r Service Provider p3 news:= Filter::run(news,criter re o Filter P h all := hook() vi +getInformation(String): InformationSet+run(InformationSet, CriterionSet): InformationSet -empty(): InformationSet u a ct -union(InformationSet, InformationSet): InformationSet p2 n3 info:= criteria := profile::getSet(user,key) union(info,news) eh Service CriterionSet Profile ru Service News p3 all := Filter::run(all*,criteria) B +getSet(String,String): CriterionSet t +getContents(): InformationSet Provider::getInformation pg3 reply(info)S * Merged Concept Criterion S InformationSet +value: String Fragment: doFilter<user,key> P InformationSet InformationSet n2 news := News::getContents()element * element * h legacy := hook() Information Information n3 legacy := union(legacy,news) Service Provider S News+getInformation(String): InformationSet Fragment: AddNews +author: String-empty(): InformationSet +content: String pg1 username := receive() Service Provider-union(InformationSet, InformationSet): InformationSet pg2 info := empty() Service Legend pg3 reply(info) composition News directive match detected 7+getContents(): InformationSet Provider::getInformation
    10. 10. [MoDELS’11] Product Derivation as Model Composition InformationSet element * Architecture generation Behavior Information generation CriterionSet * News Pvalid Criterion +author: String +value: String +content: String pg1 username := receive Service Filter+run(InformationSet, CriterionSet): InformationSet n2 news := News::getContents() Service criteria := Profile p2 profile::getSet(username," pg2 info := empty()+getSet(String,String): CriterionSet news") Service Provider p3 news:= Filter::run(news,criteria)+getInformation(String): InformationSet-empty(): InformationSet-union(InformationSet, InformationSet): InformationSet n3 info:= union(info,news) Service News+getContents(): InformationSet Provider::getInformation pg3 reply(info) Merged Concept 8
    11. 11. [ECSA’08] Identifying Feature Interactions Behavior generation Pconcurrent pg1 username := receive n2 news := News::getContents() pg2 info := empty() t2 tt:=Timetable::getSchoolSchedule() t3 info:= union(legacy,tt) Concurrent n3 info := union(legacy,news) accessProvider::getInformation pg3 reply(info) 9
    12. 12. News then Identifying Feature Interactions Timetable Behavior Kick News out generation Pconcurrent pg1 username := receive n2 news := News::getContents() ... pg2 info := empty() Timetable then News t2 tt:=Timetable::getSchoolSchedule() t3 info:= union(legacy,tt) Concurrent ... n3 info := union(legacy,news) access pg3 reply(info) ...Provider::getInformation 9
    13. 13. Resolving Interactions in Seduite System Domain Rule Heuristic Provider Ignore Tailored Source Exclusion Ordering Interlace News Timetable News Only News & Timetable TT Only News < TT interlaced TT < News System feature Abstract feature Resolving Rule 10
    14. 14. Issues: Scalability & Relevance• The systematic introduction of resolving features is a non-sense!• It triggers: • Scalability: Combinatorial explosion in the feature model • Relevance: Not ALL the generic solution are really relevant in Seduite• Challenge: • How to capitalise the relevant interaction resolution rules • AND avoid combinatorial explosion? 11
    15. 15. Stepwise Enrichment of the Feature ModelCapitalising user’s knowledge 12
    16. 16. Step #1: Deriving the first product System Provider Strategy Source News Timetable Resolv. Strategy 13
    17. 17. Step #1: Deriving the first product System Provider Strategy News then Source Timetable News Timetable Resolv. Strategy 13
    18. 18. Step #2: Deriving an interaction-free product System Provider Strategy Source Editorial PolicyNews Timetable External 14
    19. 19. Step #2: Deriving an interaction-free product System Let’s reuse «News then Timetable» Provider Strategy Source Editorial PolicyNews Timetable External 14
    20. 20. Step #3: Introducing a new strategy System Provider Strategy Source Editorial PolicyNews Timetable External 15
    21. 21. Step #3: Introducing a new strategy Timetable System then News Provider Strategy Source Editorial PolicyNews Timetable External 15
    22. 22. And so on ... System Provider Strategy Source Editorial Policy News Timetable External Internal 16
    23. 23. Algorithm support Assumption onthe composition engine«Human in the loop» 17
    24. 24. Application to Seduite «running products» 18
    25. 25. Conclusions & Perspectives 19
    26. 26. Conclusions• In Seduite: • Interaction resolving strategies are part of the domain variability • The case study is based on an up and running legacy system• We propose: • To endogenously capture such a variability as features • An algorithm to support the approach 20
    27. 27. Perspectives• At SINTEF: • SensApp, a platform for IoT and Sensor Network applications • High variability (e.g., standards, visualisation) • Strategic projects MODERATES and SiSaS• In France: • YourCast project (ANR, 220 k€), Collaboration Lille - Nice • Technological transfer + One PhD student & One postdoc 21
    28. 28. Thank you for your attention Using Domain Features to Handle Feature InteractionsSébastien Mosser, Carlos Parra, Laurence Duchien, Mireille Blay-Fornarino(1) SINTEF IKT, Oslo, Norway(2) INRIA Lille-Nord Europe, LIFL (UMR CNRS 8022), Univ. of Lille 1, France(3) I3S (UMR CNRS 6070), University of Nice, France

    ×