Skip to content
This repository has been archived by the owner on Sep 4, 2024. It is now read-only.

User Stories

Tobias Betz edited this page Aug 22, 2022 · 8 revisions

Website

Create and update files

Create, update and delete tags

Create, update and delete families

Associate tags with files on upload

Associate families with files on upload

View profile

Register

Login

DSGVO

About

Feature Model Viewer

Navigation, pan and zoom feature

I want to pan and zoom the feature model tree view so that I can navigate around in an intuitive manner.

Feature models can be quite large. To navigate such a large model zooming and panning is needed. It is a broadly known way to navigate around larger-than-screen things and thus very intuitive.

Acceptance Criteria

  1. I have to be able to use the navigation in an intuitive way.
  2. I want it to be an easy-to-use experience.

Resources:

Collapse and uncollapse feature nodes

I want to collapse and uncollapse feature nodes so that I can hide all of their children.

Feature nodes can have quite a large number of children. I want to be able to view a smaller subset of feature nodes for a better overall understanding of the feature model. Therefore I want to collapse all of the children of a node with a context menu entry and also a shortcut.

Acceptance Criteria

  1. I want to collapse all of the children of a node with ALT + Click.
  2. I want to collapse all of the children of a node with a context menu entry.
  3. There should be an indicator next to each node with the number of direct and total children to know whether there are collapsed children or not.

Hide left/right siblings and a node

I want to hide and unhide sibling feature nodes so that I can make only a subset of siblings of a node visible.

Feature nodes can have quite a large number of children. I want to be able to view a smaller subset of feature nodes for a better overall understanding of the feature model. Therefore I want to collapse the left and/or right siblings of a node with a context menu entry. Also i want to be able to hide single nodes with a context menu entry.

Acceptance Criteria

  1. I want to collapse all of the left siblings of a node with a context menu entry.
  2. I want to collapse all of the right siblings of a node with a context menu entry.
  3. I want to collapse a single node with a context menu entry.
  4. There should be an indicator whether there are hidden siblings/nodes or not. In case of multiple hidden nodes, that are next to each other there should be only a single indicator to provide a net space gain when hiding nodes.
  5. Upon clicking the above-mentioned indicator I want the hidden nodes to reappear.

Edit a node

I want to edit the values of a feature node so that I can make changes to a feature model easily.

Each feature node has the following attributes:

  • group type
  • mandatory
  • name
  • abstract

I want to be able to edit them in a dialog after choosing Edit in a context menu for the feature node.

Acceptance Criteria

  1. I want to edit a feature node within a dialog.
  2. The edit dialog should pop up when I choose the corresponding entry in a context menu.
  3. As there are some constraints to attributes I want to be able to only edit and view used attributes like this:
    • When a feature node has no children, it has no group type.
    • When a features parent group type is something other than and, it has no mandatory attribute.
    • The name and abstract attribute should always be editable.

Add a node

I want to add a new feature node so that I can make changes to a feature model easily.

Each feature node has the following attributes:

  • group type
  • mandatory
  • name
  • abstract

I want to be able to add them in a dialog after choosing Add child or Add sibling in a context menu of the parent / sibling feature node.

Acceptance Criteria

  1. I want to add a feature node within a dialog.
  2. The add dialog should pop up when I choose the corresponding entry in a context menu.
  3. As there are some constraints to attributes I want to be able to only edit and view used attributes like this:
    • When a feature node has no children, it has no group type. A newly added node should never have this as a selection.
    • When a features parent group type is something other than and, it has no mandatory attribute.
    • The name and abstract attribute should always be editable.
  4. The new feature node should be a sibling or a parent of the feature node that was used to open the context menu depending on the chosen context menu entry (Add child and Add sibling).

Drag 'n' drop a node

I want to drag 'n' drop a feature node so that I can change the hierarchical structure of the feature model.

I want to drag 'n' drop a feature node. When dragging a feature node A upon another feature node B there should be some way to intuitively make A the sibling or child of B, without opening another menu. The older connection of A should be replaced with a new connection to B or the parent of B. When hovering over collapsed feature nodes with another, the feature node should uncollapse.

Acceptance Criteria

  1. I want to drag 'n' drop feature nodes.
  2. I want to change their connection to another parent by doing so.
  3. This feature should not involve another menu to keep it simple.
  4. When hovering over another collapsed feature with a feature being dragged, the other feature should uncollapse to show its children.

Color the nodes

I want color code the feature model tree so that I can visualize certain aspects of the feature model.

I want to color code the feature model tree with some coloring algorithms. The coloring function should accept an algorithm with instructions how to color certain nodes, so it is easily extendible. The coloring options should sit in the navigation bar.

Acceptance Criteria

  1. I want to have some sample algorithms (e.g. count children, ...)
  2. Coloring should be done on a dynamic scale between two colors (e.g. blue for min children, red for max children, the rest is in between).
  3. I want to select the coloring option in the top navigation bar.
  4. I want to also be able to upload a csv file with feature node ids and an integer value to let a coloring algorithm do its work.

Search for a node

I want search a feature node in a feature model tree so that I can find a feature in a big tree easily.

I want to be able to search a feature in a search text box inside the navigation bar. Upon typing it should highlight the best match while also uncollapsing everything between the found node and the route node as well as highlighting the edges in between.

Acceptance Criteria

  1. I want to have some sample algorithms (e.g. count children, ...)
  2. Coloring should be done on a dynamic scale between two colors (e.g. blue for min children, red for max children, the rest is in between).
  3. I want to select the coloring option in the top navigation bar.
  4. I want to also be able to upload a csv file with feature node ids and an integer value to let a coloring algorithm do its work.

Fit the feature model to screen width

I want to auto-fit a model to the screensize so that I can see the whole model on my screen.

Acceptance Criteria

  1. I want to click a menu button, so that everything fits inside my screen
  2. In case I panned way off to the side I want to return to the feature model

Collapse everything with more than n children

I want to collapse the nodes of a feature model with more than n children so that it is not as cluttered on the screen.

Acceptance Criteria

  1. I want to have a text box to configure the number n
  2. After configuring the number, the feature model should update accordingly

Collapse everything deeper than n levels

I want to collapse the nodes of a feature model on a level deeper than n so that it is not as cluttered on the screen.

Acceptance Criteria

  1. I want to have a text box to configure the number n
  2. After configuring the number, the feature model should update accordingly

Adjust the height between different levels

I want to adjust the height between feature node levels so that it is not as cluttered on the screen.

Acceptance Criteria

  1. I want to have a slider to configure the distance between levels
  2. After every slider change it should update in realtime to quickly find the desired distance

Show constraints of the feature model

Highlight the corresponding feature nodes to a constraint

Export feature model as XML