Introduction
Featureous is a tool for feature-centric analysis of Java software. The need for such a tool comes from the scattering and implicitness of implementations of user-observable behaviors of software (features) in the vast majority of object-oriented programs. Scattering and implicitness of features in code means that it becomes more difficult to find and understand only the relevant fragments of code when fixing a bug/modifying a feature/implementing new feature by reusing existing code.Featureous aims at improving this situation by providing a means of analyzing and modifying object-oriented programs in a feature-wise, rather than structure-wise, fashion.
Featureous provides a number of visualizations (feature-centric views) that facilitate feature-centric analysis of programs. The feature-aware code editor, metrics, graphs and charts encompassed by the views are being generated from so-called "feature traces". Feature traces can be generated for an arbitrary program by means of tracign its execution.
The feature-location mechanism use in Featureous employs dynamic analysis to discover the traceability links between features and their corresponding classes, objects and methods. After a programmer recovers a list of a program’s features from its documentation, or its graphical interface, she has to annotate each feature's "entry points" a program's source code. Feature entry points are the methods through which a program’s control flow enters implementations of a feature. Annotated program is then transparently instrumented with a tracing aspect when a programmer executes "Trace project" action provided by Featureous. After a user triggers features in the interface of an instrumented program, the information is saved in form of feature-traces, which serve as an input to further analysis.
For more details about the tool, please visit:
http://featureous.org/
The open-source branch of Featureous can be reached at: http://code.google.com/p/featureous/
What's new in this version
See full changelog at http://featureous.org/?download#changelog.