FUDA TSE Supporting Material

This page provides supporting material for the paper Two Studies of Framework-Usage Templates Extracted from Dynamic Traces submitted to IEEE Transactions on Software Engineering in 2010.

Tools

The FUDA technique is prototyped as an integrated tool for Java consisting of two parts:

Template Quality Evaluation

  • The following tables present the templates generated using the FUDA framework comprehension technique for 14 different concepts on top of 5 widely used frameworks when one, two, or three sample applications are used.
  • Each sub-section contains a table for one of the frameworks. The table contains sections for each concept, which is specified by a defining question.
  • In each template, the lines in BLACK illustrate mandatory implementation steps (i.e., reference template), the lines in BLUE indicate optional implementation steps, and the lines in RED show errors.
  • For those templates that include false negatives, a description of false negatives is provided at the end of the template.
JFace
# Sample
Applications
Sample
Application
SourceTemplate
(No Slicing)
Template
(With Slicing)
Context Menu: How to implement a context menu in a view?
1ConsoleEclipse UITemplate1Template1
2Tree ViewEclipse WizardsTemplate2Template2
3ANT ViewEclipse UITemplate3Template3
Toolbar Button: How to add a button to a view's toolbar?
1Package ExplorerEclipse JDTTemplate1Template1
2Crosscutting ComparisonAJDTTemplate2Template2
3Debug ViewEclipse UITemplate3Template3
Content Assist: How to develop a content assistant in a text editor?
1JSP EditorEclipse WTPTemplate1Template1
2Java EditorEclipse JDTTemplate2Template2
3HTML EditorEclipse WTPTemplate3Template3
Eclipse
# Sample
Applications
Sample
Application
SourceTemplate
(No Slicing)
Template
(With Slicing)
Table Viewer: How to develop a table viewer?
1LDAP Connectionseclipse-pluginsTemplate1-
2Table ViewEclipse WizardsTemplate2-
3Editor Listeclipse-pluginsTemplate3-
Tree Viewer: How to develop a tree viewer?
1LDAP Browsereclipse-pluginsTemplate1-
2Tree ViewEclipse WizardsTemplate2-
3Concern MapperGoogle SearchTemplate3-
Navigate: How to create the tree navigation buttons in a view's toolbar?
1SVN RepositorySubclipseTemplate1Template1
2KTree MapSourceForgeTemplate2Template2
3AST ViewEclipse JDTTemplate3Template3
Focus: What events happen by clicking on a view's titlebar?
1LDAP Browsereclipse-pluginsTemplate1-
2Editor Listeclipse-pluginsTemplate2-
3Table ViewEclipse WizardsTemplate3-
GEF
# Sample
Applications
Sample
Application
SourceTemplate
(No Slicing)
Template
(With Slicing)
Select: What events happen by clicking on a figure?
1FlowGEF ExamplesTemplate1-
2ShapesGEF ExamplesTemplate2-
3LogicGEF ExamplesTemplate3-
Figure: How to draw a figure in a GEF editor?
1FlowGEF ExamplesTemplate1Template1
2ShapesGEF ExamplesTemplate2Template2
3LogicGEF ExamplesTemplate3Template3
Connection: How to draw a connection between two figures?
1FlowGEF ExamplesTemplate1Template1
2ShapesGEF ExamplesTemplate2Template2
3LogicGEF ExamplesTemplate3Template3
Java 2D
# Sample
Applications
Sample
Application
SourceTemplate
(No Slicing)
Template
(With Slicing)
Moving Shapes: How to draw shapes and let the user drag them?
1JHotDrawSourceForgeTemplate1Template1
2GeoSoftGoogle SearchTemplate2Template2
3GTEditorGoogle CodeTemplate3Template3
Circle Drawing: How to draw a red circle on a black background?
1TerpPaintSourceForgeTemplate1Template1
2ScribbleGoogle SearchTemplate2Template2
3JHotDrawSourceForgeTemplate3Template3
Java Swing
# Sample
Applications
Sample
Application
SourceTemplate
(No Slicing)
Template
(With Slicing)
Drag-n-Drop: How to drag-n-drop an item in a tree?
1Java2s DnDGoogle SearchTemplate1Template1
2Swing DemoGoogle SearchTemplate2Template2
3TV BrowserSourceForgeTemplate3Template3
Text Editor: How to develop a simple text editor?
1Edas TexterSourceForgeTemplate1-
2nTextSourceForgeTemplate2-
3DrJavaSourceForgeTemplate3-

Template Usage Evaluation

This section contains the material prepared and collected during the empirical evaluation of Template Usage. We first list the documents we prepared and the subsequent sections list the resulting questionnaires and present the collected data.

Overview and Background Documents

Tutorials

Implementation Task Material (additional web pages)

Subjects Background Questionnaires

This table presents the background questionnaires filled by subjects. Subjects are categorized into the experienced and moderate subjects based on their experience with the Eclipse and JFace frameworks.

ExperiencedModerate
Subject S1Subject S15
Subject S2Subject S16
Subject S3Subject S17
Subject S4Subject S18
Subject S5Subject S19
Subject S6Subject S20
Subject S7Subject S21
Subject S8Subject S22
Subject S9Subject S23
Subject S10Subject S24
Subject S11Subject S25
Subject S12Subject S26
Subject S13Subject S27
Subject S14Subject S28

Subjects Experiment Reports

This table presents the reports sent by subjects immediately after performing concept-implementation tasks.

Concept
Context MenuContent AssistNavigateTable Viewer
TDTDTDTD
S22
(37 min.)
S15
(10 min.)
S1
(50 min.)
S8
(50 min.)
S8
(10 min.)
S1
(25 min.)
S15
(30 min.)
S22
(47 min.)
S23
(40 min.)
S16
(70 min.)
S2
(38 min.)
S9
(41 min.)
S9
(10 min.)
S2
(11 min.)
S16
(80 min.)
S23
(90 min.)
S24
(20 min.)
S17
(27 min.)
S3
(48 min.)
S10
(90 min.)
S10
(35 min.)
S3
(10 min.)
S17
(50 min.)
S24
(70 min.)
S25
(23 min.)
S18
(90 min.)
S4
(42 min.)
S11
(31 min.)
S11
(15 min.)
S4
(12 min.)
S18
(75 min.)
S25
(44 min.)
S26
(18 min.)
S19
(27 min.)
S5
(33 min.)
S12
(65 min.)
S12
(7 min.)
S5
(32 min.)
S19
(33 min.)
S26
(99 min.)
S27
(17 min.)
S20
(30 min.)
S6
(55 min.)
S13
(50 min.)
S13
(6 min.)
S6
(25 min.)
S20
(70 min.)
S27
(67 min.)
S28
(18 min.)
S21
(60 min.)
S7
(18 min.)
S14
(90 min.)
S14
(30 min.)
S7
(10 min.)
S21
(80 min.)
S28
(38 min.)