Using Domain Feature to handle Feature Interactions

  • 560 views
Uploaded 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 …

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).

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
560
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
1
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    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

Transcript

  • 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. [AOSD’11] Information Broadcasting Truncated Shuffledcreated in 2004 AuthenticatedRegistered code Cached Daily-used in 3 universities 2
  • 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. 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. Challenges News Truncate Profile Shuffle Cache UserGiven SystemGiven 4
  • 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. Outline• Deriving Seduite products • Model composition applied to SOA• Stepwise Enrichment of the Feature Model • Capitalising user’s knowledge• Perspectives & Conclusions 5
  • 8. Deriving Seduite ProductModel composition applied to SOA
  • 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. [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. [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. 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. 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. 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. Stepwise Enrichment of the Feature ModelCapitalising user’s knowledge 12
  • 16. Step #1: Deriving the first product System Provider Strategy Source News Timetable Resolv. Strategy 13
  • 17. Step #1: Deriving the first product System Provider Strategy News then Source Timetable News Timetable Resolv. Strategy 13
  • 18. Step #2: Deriving an interaction-free product System Provider Strategy Source Editorial PolicyNews Timetable External 14
  • 19. Step #2: Deriving an interaction-free product System Let’s reuse «News then Timetable» Provider Strategy Source Editorial PolicyNews Timetable External 14
  • 20. Step #3: Introducing a new strategy System Provider Strategy Source Editorial PolicyNews Timetable External 15
  • 21. Step #3: Introducing a new strategy Timetable System then News Provider Strategy Source Editorial PolicyNews Timetable External 15
  • 22. And so on ... System Provider Strategy Source Editorial Policy News Timetable External Internal 16
  • 23. Algorithm support Assumption onthe composition engine«Human in the loop» 17
  • 24. Application to Seduite «running products» 18
  • 25. Conclusions & Perspectives 19
  • 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. 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. 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