FeatureIDE: Overview Thomas Th um, Jens Meinicke October 23, 2015 - - PowerPoint PPT Presentation

featureide overview
SMART_READER_LITE
LIVE PREVIEW

FeatureIDE: Overview Thomas Th um, Jens Meinicke October 23, 2015 - - PowerPoint PPT Presentation

FeatureIDE: Overview Thomas Th um, Jens Meinicke October 23, 2015 FeatureIDE Project Structure Feature model file in a supported format (default: xml) Thomas Th um, Jens Meinicke FeatureIDE: Overview 2 FeatureIDE Project Structure


slide-1
SLIDE 1

FeatureIDE: Overview

Thomas Th¨ um, Jens Meinicke

October 23, 2015

slide-2
SLIDE 2

FeatureIDE Project Structure

◮ Feature model file in a supported

format (default: xml)

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 2

slide-3
SLIDE 3

FeatureIDE Project Structure

◮ Feature model file in a supported

format (default: xml)

◮ Source folder containing a folder

for every feature including files to compose

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 2

slide-4
SLIDE 4

FeatureIDE Project Structure

◮ Feature model file in a supported

format (default: xml)

◮ Source folder containing a folder

for every feature including files to compose

◮ Configurations containing selected

features from the feature model

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 2

slide-5
SLIDE 5

FeatureIDE Project Structure

◮ Feature model file in a supported

format (default: xml)

◮ Source folder containing a folder

for every feature including files to compose

◮ Configurations containing selected

features from the feature model

◮ Composed source files for the

actual configurations (might be helpful when debugging)

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 2

slide-6
SLIDE 6

Creation Wizards

◮ FeatureIDE project wizard:

creates basic feature model and project structure, also can add the FeatureIDE Nature to a project at your workspace

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 3

slide-7
SLIDE 7

Creation Wizards

◮ FeatureIDE project wizard:

creates basic feature model and project structure, also can add the FeatureIDE Nature to a project at your workspace

◮ Example project wizard

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 3

slide-8
SLIDE 8

Creation Wizards

◮ FeatureIDE project wizard:

creates basic feature model and project structure, also can add the FeatureIDE Nature to a project at your workspace

◮ Example project wizard ◮ Configuration file wizard

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 3

slide-9
SLIDE 9

Creation Wizards

◮ FeatureIDE project wizard:

creates basic feature model and project structure, also can add the FeatureIDE Nature to a project at your workspace

◮ Example project wizard ◮ Configuration file wizard ◮ FeatureIDE source file

wizard

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 3

slide-10
SLIDE 10

FeatureIDE Project Builder

◮ Specific to composition

engine

◮ Build: compose features

contained in current configuration

◮ Clean: removing all

resources in bin/build folder

◮ Build automatically: based

  • n changes in source folder
  • r current configuration

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 4

slide-11
SLIDE 11

FeatureIDE Project Builder

◮ Specific to composition

engine

◮ Build: compose features

contained in current configuration

◮ Clean: removing all

resources in bin/build folder

◮ Build automatically: based

  • n changes in source folder
  • r current configuration

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 4

slide-12
SLIDE 12

FeatureIDE Project Builder

◮ Specific to composition

engine

◮ Build: compose features

contained in current configuration

◮ Clean: removing all

resources in bin/build folder

◮ Build automatically: based

  • n changes in source folder
  • r current configuration

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 4

slide-13
SLIDE 13

FeatureIDE Project Builder

◮ Specific to composition

engine

◮ Build: compose features

contained in current configuration

◮ Clean: removing all

resources in bin/build folder

◮ Build automatically: based

  • n changes in source folder
  • r current configuration

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 4

slide-14
SLIDE 14

Run Configurations

◮ The project has other natures (e.g. Java nature) next to the

FeatureIDE nature, so you can run your application in the common way

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 5

slide-15
SLIDE 15

Run Configurations

◮ The project has other natures (e.g. Java nature) next to the

FeatureIDE nature, so you can run your application in the common way

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 5

slide-16
SLIDE 16

Run Configurations

◮ The project has other natures (e.g. Java nature) next to the

FeatureIDE nature, so you can run your application in the common way

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 5

slide-17
SLIDE 17

Feature Model Editor - Feature Diagram

◮ Double click to change connections and mandatory property

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 6

slide-18
SLIDE 18

Feature Model Editor - Feature Diagram

◮ Double click to change connections and mandatory property ◮ Single click to rename features

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 6

slide-19
SLIDE 19

Feature Model Editor - Feature Diagram

◮ Double click to change connections and mandatory property ◮ Single click to rename features ◮ Right click to open context menu for features/connections

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 6

slide-20
SLIDE 20

Feature Model Editor - Feature Diagram

◮ Double click to change connections and mandatory property ◮ Single click to rename features ◮ Right click to open context menu for features/connections ◮ Drag

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 6

slide-21
SLIDE 21

Feature Model Editor - Feature Diagram

◮ Double click to change connections and mandatory property ◮ Single click to rename features ◮ Right click to open context menu for features/connections ◮ Drag and drop features

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 6

slide-22
SLIDE 22

Feature Model Editor - Feature Diagram

◮ Double click to change connections and mandatory property ◮ Single click to rename features ◮ Right click to open context menu for features/connections ◮ Drag and drop features ◮ Context menu

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 6

slide-23
SLIDE 23

Feature Model Editor - Feature Diagram

◮ Double click to change connections and mandatory property ◮ Single click to rename features ◮ Right click to open context menu for features/connections ◮ Drag and drop features ◮ Context menu to open Constraint Editor

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 6

slide-24
SLIDE 24

Feature Model Editor - Feature Diagram

◮ Legend for the feature model elements and colors

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 7

slide-25
SLIDE 25

Feature Model Editor - Feature Diagram

◮ Legend for the feature model elements and colors ◮ Highlighting dead features

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 7

slide-26
SLIDE 26

Feature Model Editor - Feature Diagram

◮ Legend for the feature model elements and colors ◮ Highlighting dead features ◮ Highlighting false optional features

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 7

slide-27
SLIDE 27

Feature Model Editor - Feature Diagram

◮ Legend for the feature model elements and colors ◮ Highlighting dead features ◮ Highlighting false optional features ◮ Highlight if the model is void

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 7

slide-28
SLIDE 28

Feature Model Editor - Feature Order

◮ Order of features matters: can influence program behavior ◮ Default order: pre-order traversal of the feature diagram ◮ User-defined order possible ◮ Applies to all configurations

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 8

slide-29
SLIDE 29

Feature Model Editor - Synchronization

Before saving:

◮ When switching tab, changes are propagated

When saving:

◮ Feature folders are created, removed, and renamed ◮ Updating order of features in configurations ◮ Checking which configurations are valid/invalid ◮ Current content of Configuration Editor updated

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 9

slide-30
SLIDE 30

FeatureIDE Outline View: Feature Model

◮ Tree representation of the Feature Model

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 10

slide-31
SLIDE 31

FeatureIDE Outline View: Feature Model

◮ Tree representation of the Feature Model ◮ Same context menu like at the editor

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 10

slide-32
SLIDE 32

FeatureIDE Outline View: Feature Model

◮ Tree representation of the Feature Model ◮ Same context menu like at the editor ◮ Minimize subtrees for a better overview

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 10

slide-33
SLIDE 33

FeatureIDE Collaboration Outline

◮ Additional to the normal outline, it contains all methods of

this class from other features

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 11

slide-34
SLIDE 34

FeatureIDE Collaboration Outline

◮ Additional to the normal outline, it contains all methods of

this class from other features

◮ The subtree of a method contains all features implementing it

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 11

slide-35
SLIDE 35

FeatureIDE Collaboration Outline

◮ Additional to the normal outline, it contains all methods of

this class from other features

◮ The subtree of a method contains all features implementing it ◮ Clicking the feature will open the corresponding file

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 11

slide-36
SLIDE 36

FeatureIDE Collaboration Outline: Contracts

◮ Class invariants are shown in Outline above class fields

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 12

slide-37
SLIDE 37

FeatureIDE Collaboration Outline: Contracts

◮ Class invariants are shown in Outline above class fields ◮ Contracts of methods are displayed by decorating @-icon ◮ Features in subtrees of a method with additional @-icon if

contract exists

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 12

slide-38
SLIDE 38

Configuration Editor: Default Page

◮ Manual select or deselect the

features

◮ Automatic decisions based on

current manual decisions

◮ Is current configuration valid? ◮ Counting possible configurations ◮ Highlightings to find a valid

configuration (blue: deselect, green: select the feature)

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 13

slide-39
SLIDE 39

Configuration Editor: Default Page

◮ Manual select or deselect the

features

◮ Automatic decisions based on

current manual decisions

◮ Is current configuration valid? ◮ Counting possible configurations ◮ Highlightings to find a valid

configuration (blue: deselect, green: select the feature)

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 13

slide-40
SLIDE 40

Configuration Editor: Default Page

◮ Manual select or deselect the

features

◮ Automatic decisions based on

current manual decisions

◮ Is current configuration valid? ◮ Counting possible configurations ◮ Highlightings to find a valid

configuration (blue: deselect, green: select the feature)

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 13

slide-41
SLIDE 41

Configuration Editor: Advanced Page

◮ Additional to the default page you

can eliminate features On save:

◮ Error marker if invalid ◮ Build process started if current

configuration

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 14

slide-42
SLIDE 42

Configuration Editor: Advanced Page

◮ Additional to the default page you

can eliminate features On save:

◮ Error marker if invalid ◮ Build process started if current

configuration

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 14

slide-43
SLIDE 43

Configuration Editor: Advanced Page

◮ Additional to the default page you

can eliminate features On save:

◮ Error marker if invalid ◮ Build process started if current

configuration

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 14

slide-44
SLIDE 44

Collaboration Diagram: Introduction

◮ Visualization of a software product line implementation

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 15

slide-45
SLIDE 45

Collaboration Diagram: Introduction

◮ Visualization of a software product line implementation ◮ Class - a composed class

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 15

slide-46
SLIDE 46

Collaboration Diagram: Introduction

◮ Visualization of a software product line implementation ◮ Class - a composed class ◮ Collaboration - set of classes to implement a feature

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 15

slide-47
SLIDE 47

Collaboration Diagram: Introduction

◮ Visualization of a software product line implementation ◮ Class - a composed class ◮ Collaboration - set of classes to implement a feature ◮ Role - a class fragment to implement a feature of a class ◮ A lower role will refine the functionality of an upper one

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 15

slide-48
SLIDE 48

Collaboration Diagram: Introduction

◮ Visualization of a software product line implementation ◮ Class - a composed class ◮ Collaboration - set of classes to implement a feature ◮ Role - a class fragment to implement a feature of a class ◮ A lower role will refine the functionality of an upper one ◮ Configuration - the corresponding configuration

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 15

slide-49
SLIDE 49

Collaboration Diagram: Functionality

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 16

slide-50
SLIDE 50

Collaboration Diagram: Functionality

◮ Also showing unselected features

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 16

slide-51
SLIDE 51

Collaboration Diagram: Functionality

◮ Also showing unselected features

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 16

slide-52
SLIDE 52

Collaboration Diagram: Functionality

◮ Also showing unselected features ◮ Occurence of arbitrary files

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 16

slide-53
SLIDE 53

Collaboration Diagram: Functionality

◮ Also showing unselected features ◮ Occurence of arbitrary files ◮ Tooltip containing all methods and fiels of the role

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 16

slide-54
SLIDE 54

Collaboration Diagram: Functionality

◮ Also showing unselected features ◮ Occurence of arbitrary files ◮ Tooltip containing all methods and fiels of the role ◮ Tooltip containing all arbitrary files of the same type

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 16

slide-55
SLIDE 55

Collaboration Diagram: Functionality

◮ Also showing unselected features ◮ Occurence of arbitrary files ◮ Tooltip containing all methods and fiels of the role ◮ Tooltip containing all arbitrary files of the same type ◮ Filter the diagram by a feature or class

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 16

slide-56
SLIDE 56

Collaboration Diagram: Functionality

◮ Also showing unselected features ◮ Occurence of arbitrary files ◮ Tooltip containing all methods and fiels of the role ◮ Tooltip containing all arbitrary files of the same type ◮ Filter the diagram by a feature or class ◮ Open the role or class file by doble clicking the box

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 16

slide-57
SLIDE 57

Collaboration Diagram: Functionality

◮ Showing implementations details: Methods, Fields...

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 17

slide-58
SLIDE 58

Collaboration Diagram: Functionality

◮ Showing implementations details: Methods, Fields...

Thomas Th¨ um, Jens Meinicke FeatureIDE: Overview 17