Giter Club home page Giter Club logo

featuremap_og's Introduction

featuremap

The featuremap script turns BDD feature files into an usecase map using Applescript and OmniGraffle Pro 6.

prerequisites

  • [OmniGraffle 6 Pro](OmniGraffle 6 Pro)
  • Applescript
  • BDD style feature files (just text, one feature per file, like for Cucumber)

usage

Run the script from the Applescript Script-Editor. It will ask you for the folder conatining your *.feature files. That's it. The script will read the feature files and genereate a visual map for them in OmniGraffle.

As a result your map could look like this:

sample feature map

background

motivation

From my understanding BDD features are made for the development process in the first place. So the regular workflow is define the feature, write a test and develop the code. After a while you end with a lot of features (and scenarios). To get an overview about what your software does you have to read all those features and make an map of them in your mind. That's why I wrote this script. It will generate the map for you.

Why Omnigraffle?

I see this script as a kind of a prototype. Doing this with Omnigraffle allows one to edit the generated result. This way it's possible to make the map "nicer" or to add additional information. And because of Omnigraffles capabilities it's easy to convert the result in several other formats like pdf, png or Visio.

modeling

The default setup is to draw a box with four colums of use case bubbles. Close to the border you will see the features while all the related scenarios are placed inside. Note that the feature bubbles are surrounded by thicker lines. sample feature map

more modeling

If you add some more complexity to your software the map starts getting confusing again. But if you practice some domain driven design you might already assign your features to aggregates and your aggregates to domains. Wouldn't it be nice tho show them in your map? If you set the property cDisableAggregates in the head of the script to false the script will assume that you name your features like this <aggregate name> - <feature name>. It will then add another column of use case bubbles between the border of the domain box and the features. As a side effect your are able to order your feature files by aggregate. To set the domain name you have to follow a different approach. Add a line inside the feature file above the feature name. Add a @d- tag in this line (e.g. add @d-presentation to name your domain presentation). sample feature map

colored bubbles

White backgrounds are boring. So I thought it would be nice to express the current status of a feature or scenario by changing the background. So the script is looking for status tags starting with @s- (e.g. @s-backlog) above a feature or scenario name and changes the background color accordingly. If you check the head of th script you will find some properties to adapt the script to your actual wording. You might also change the colors and the tag syntax. sample feature map In this example I've set the status for features only but of course it's possible to set the status for scenarios too.

featuremap_og's People

Contributors

mckryton avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

bobjoylove

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.