Features and Feature Interaction in Software Engineering Using











- Slides: 11

Features and Feature Interaction in Software Engineering Using Logic Ragnhild Van Der Straeten, Johan Brichau Vrije Universiteit Brussel, Belgium 18/06/2001 Johan Brichau, Ragnhild Van Der Straeten

Overview • Features and interaction in Software Engineering • Representing, reasoning and detection of features and interactions – Description Logic – Logic Meta Programming • Discussion 18/06/2001 Johan Brichau, Ragnhild Van Der Straeten 2

Software Engineering Features Feature Interactions Feature Interference 18/06/2001 Analysis Design Implementation Johan Brichau, Ragnhild Van Der Straeten 3

Overview • Features and interaction in Software Engineering • Representing, reasoning and detection of features and interactions – Description Logic – Logic Meta Programming • Discussion 18/06/2001 Johan Brichau, Ragnhild Van Der Straeten 4

Description Logic Feature Diagram (Generative Programming) Translation in ALCQ : Identify concepts, relations and constraints 18/06/2001 Johan Brichau, Ragnhild Van Der Straeten 5

DL for Feature Interaction • Subsumption • Feature subsumption ⊨ SPORTSCAR ⊑ CAR • Feature consistency • Concept ⊭ CAR ≐ ⊥ consistency • Knowledge base • Feature model consistency ⊭⊥ 18/06/2001 Feature and constraint addition Johan Brichau, Ragnhild Van Der Straeten 6

Overview • Features and interaction in Software Engineering • Representing, reasoning and detection of features and interactions – Description Logic – Logic Meta Programming • Discussion 18/06/2001 Johan Brichau, Ragnhild Van Der Straeten 7

Logic Meta Programming • Logic propositions representation of the software program class(Point). class(Line). class(Polygon). – Facts method(Point, move, arguments(x, y), statements(. . . )) – Rules (derived representation, e. g. design pattern) • ‘Virtual classifications’ of features in the software program – Facts (extensional) & Rules (intensional) feature(archival, ? methods) if findall(method(? class, store), method(? class, store, ? args, ? stats), ? methods) 18/06/2001 Johan Brichau, Ragnhild Van Der Straeten 8

LMP for Feature Interaction • Identify ‘Feature Interaction Spots’ shared. Inst. Var(? feature 1, ? feature 2, ? shared. Instance. Variable) if method. In. Feature(? feature 1, ? method 1), accesses(? method 1, ? shared. Instance. Variable), method. In. Feature(? feature 2, ? method 2), accesses(? method 2, ? shared. Instance. Variable). • Identify ‘Feature Interference’ archival. Invariant() if class. In. Feature(figures, ? class), inst. Var(? class, ? inst. Var), method. In. Feature(archival, ? method), accesses(? method, ? inst. Var) 18/06/2001 Johan Brichau, Ragnhild Van Der Straeten 9

Overview • Features and interaction in Software Engineering • Representing, reasoning and detection of features and interactions – Description Logic – Logic Meta Programming • Discussion 18/06/2001 Johan Brichau, Ragnhild Van Der Straeten 10

Discussion • Description Logic and. . . ? – Expressing specifications in DL: what should be modelled? – Separate constraint language based on DL expressing composition rules, etc. ? • LMP and. . . ? – Which dependencies to express in logic rules – Library of standardized feature interaction rules 18/06/2001 Johan Brichau, Ragnhild Van Der Straeten 11