380 likes | 514 Views
CoFM : An Environment for Collaborative Feature Modeling. Li Yi Institute of Software, School of EECS, Peking University Key Laboratory of High Confidence Software Technology, Ministry of Education of China 2010.11. Agenda. Motivation The CoFM Concepts Process Tool Support Cases
E N D
CoFM:An Environment for Collaborative Feature Modeling Li Yi Institute of Software, School of EECS, Peking UniversityKey Laboratory of High Confidence Software Technology, Ministry of Education of China 2010.11
Agenda • Motivation • The CoFM • Concepts • Process • Tool Support • Cases • Summary & Future Work
Agenda • Motivation • The CoFM • Concepts • Process • Tool Support • Cases • Summary & Future Work
Challenges in FM Construction • Most existing feature modeling approaches treat the collaboration between stakeholders as a key • Few of them provide explicit support for such collaboration • The collaboration is often impacted by the limit of timeand locationof the stakeholders • Efficiency of the collaboration is often unsatisfied • The collaboration is usually domain-analyst-centric • FMs are hard to construct (time-consuming and error-prone) and maintain
Basic idea of our approach • Provide an environment • in which stakeholders can gather features and relations among features of a domain, as many as possible • from which a stakeholder (e.g. a domain analyst) can extract all or part of the gathered features and relations to form a legal domain feature model How? Stakeholders createnew elements in a shared space. Theyvote on existing elements to support or oppose the elements’ existence in the shared space. Elements are extracted into their personal spaces based on their voting operations. (Support = In; Oppose = Out)
Basic idea (cont.) • The shared space is an extended feature model (EFM) • In an EFM, we tolerate conflicts • The personal spaces are traditional feature models • “Legal”, no conflicts • Make a choice within conflicting elements in EFM (by voting)
Agenda • Motivation • The CoFM • Concepts • Process • Tool Support • Cases • Summary & Future Work
The meta-model of EFMs Create Vote Constraint * Operation Relationship Element Refinement Stakeholder * * +supporters +opponents * * 1 1 Feature +parent * +child 1 * 1 1 1..* Global EFM Name 1 1 Working Description * * View 1 1 Personal Optionality Has attribute
The voting operation • Voting options: YES or NO • Support or oppose an element’s existence in the EFM • Voting inference • Ensure consistent votes from a certain stakeholder An example of inconsistent votes a NO vote A A a YES vote requires requires Inconsistency B B A should require B; B should NOT exist;
Voting inference rules • Rule 1: Vote YES on relation R Vote YES on each feature which is involved in R • Existence of a relation requires the existence of its involved features • Rule 2: Vote NO on feature F Vote NO on each relation which involves F An example of inferred votes a YES vote A A inferred a NO vote A B inferred B A A inferred B B B
Special voting inference rule • Rule 2a: Create an element E Vote YES on E • Rule 2b: All votes on E are NO Remove E from the EFM NOTES When counting the votes, we do NOT distinguish explicit votes from inferred (implicit) votes. If a stakeholder votes more than once (explicitly or implicitly) on an element, only the last vote counts.
Views for an EFM • Global View = all elements • Personal View for User X = all elements on which X has voted YES • Working View for User X = all elements on which X hasn’t voted NO = elements voted YES by X + elements created by others and haven’t voted by X The EFM itself The personal spaces
Resolving conflicts • Aim: no conflicts in the personal view • How: • 1. Perform conflict detection in the working view • 2. The stakeholder make a choice from the conflicting elements by voting YES or NO. • 3. Perform conflict detection in the working view again, if there is no conflict anymore, there surely is no conflict in the personal view
An example These relations may be created by different people requires Initial Working View A B excludes C N A B Vote C A B C Resulting Working View No conflict is possible in the personal view now.
Types of conflict • Conflicting constraints • Occurs in traditional feature models as well. • Multi-positioned feature (conflicting refinements) Example These refinements may be created by different people P1 P2 refines refines F
Agenda • Motivation • The CoFM • Concepts • Process • Tool Support • Cases • Summary & Future Work
Collaboratively constructing EFMs An Online Updating strategy • Each operation is sent to the central FM when submitted • A valid operation is broadcasted to all sites • An invalid operation is undone at its original site FM
An example A The EFM Send to… A User 3 A User 1 Broadcast… User 2 U1 Create A A
A The EFM A User 3 C A User 1 C C User 2 U1 Create A U2 Create C A C
A The EFM A User 3 B C A B C User 1 X X B C User 2 Vote NO A B C
A The EFM A User 3 B C A B C User 1 Vote NO B C U1 Create A U2 Create C U1 Create B U3 Vote NO on B & C U1 Vote NO on C U2 Vote NO on B User 2 A Vote NO B C
Result A: supported by 3 / 3 B: supported by 1 / 3 C: supported by 1 / 3 A The EFM A B User 3’s personal view User 1’s personal view B C A User 2’s personal view U1 Create A U2 Create C U1 Create B U3 Vote NO on B & C U1 Vote NO on C U2 Vote NO on B A C
Coordinate operations from multiple users • Serialized processing strategy The Client SEND (o: Operation) Send operation o to the server. The Server RECEIVE (o: Operation) Put o at the end of Operation_Queue. MAIN_PROCESS p The first operation in the Operation_Queue. if (p is valid) Execute p on the EFM. Broadcast p. else if (p can be transformed) q transformed(p) Execute q on the EFM. Broadcast q. else Inform the invalidity of p to its originator.
Operation transformation • An invalid operation will be transformed into valid operation(s), if any. The original operation and the transformed operation(s) have the same semantics. Operations that cannot be transformed will fail and be undone at its originator’s site.
Agenda • Motivation • The CoFM • Concepts • Process • Tool Support • Cases • Summary & Future Work
Tool Support for CoFM • C/S architecture • Support for concepts and process introduced before • Support for communication via comments and discussion pages • Support for customize new classes, relations and attributes
The main modeling page Feature Editor Feature Browser Miscellaneous Info
Agenda • Motivation • The CoFM • Concepts • Process • Tool Support • Cases • Future Work
Uses of the CoFM tool • Feature request for tools being developed in our research group, including CoFMitself • Domain analysis (including 2 cases)
Results: contribution among participants • By collaborating with others, now the participants work less, but get more. • For each participant, up to 80% extracted features are created by others and reused by the participant. • The participants report that “it is easier to review an existing feature than to think of a new one,” therefore their work load is reduced.
Results: Support rate in collected features • This data may be helpful for discovering domain variability
Results: Phases of the work 128 122 121 120 117 113 111 82 43 Brainstorming Phase Evaluation Phase
Phases of the work • Brainstorming phase • A large number of features are collected in a short period of time. • Parallel creation happens in different parts of the feature model. • Evaluation phase • The total number of feature changes slightly. • Participants focus on improving and refining raw features • Remove redundant features • Improve unclear features • Find missing features • Add constraints between features • Extracting desired elements into their personal views (by voting)
Agenda • Motivation • The CoFM • Concepts • Process • Tool Support • Case s • Summary & Future Work
Summary • CoFM provides a simple but effective way to support collaborative feature modeling • stakeholders can gather features and relations among features of a domain into an extended feature model, as many as possible • a stakeholder (e.g. a domain analyst) can extract all or part of the extended feature model to form a traditional domain feature model • Preliminary cases give positive results • Efficiency of feature modeling can be improved
Future Work • Functions of the tool, such as • Provide statistics about feature models for the users • Calculate confidence/priority of users’ operation • More cases • With larger scale, more people, and more distributed • Do a comparison experiment with traditional (single person) feature modeling