Design and Assessment of an Engine for Embedded Feature Annotations

University essay from Göteborgs universitet/Institutionen för data- och informationsteknik

Abstract: Features are an inherent unit of development of every software; and are defined as aset of implementation artifacts that constitute a functionality that adds value to theproduct, and is perceived useful by the customer. Locating features in source code isa typical software developer task, whether it before implementing a new feature, ormaintaining and bug fixing of existing ones, as it is essential to know where to makechanges. For tracing features to their implementation, two mechanisms can be used;external and internal documentation. As the names imply, external documentationrefers to maintaining the traceability links externally, whereas internal documentation involves labeling assets inside the source code (aka embedded annotations). Forinternal documentation, two strategies are used namely eager and lazy approaches.The former involves annotating the code artifacts during development, whereas thelatter requires extracting feature-related information from an un-annotated codebase based on heuristics. The former, although involves some added effort, result insignificant returns in terms of accuracy and degree of reuse, also enabling a widerrange of analyses. Also, the added effort can be minimal depending on the size ofthe project but soon begins to prove its worth in the short-run (when aiming toreuse) as well as the long run (when maintaining the code base).Embedded annotations (with eager strategy) allow a minimally invasive and almostcost-neutral way to document the product features inside source code. This bringssome benefits, the significant ones being easier co-evolution of code and traceabilitylinks, elimination of feature location, and ease in tasks like feature and artifactreuse (cloning) and maintenance (propagation). Several approaches exist today onhow to document features in source code. Different definitions lead to differentimplementations and therefore, reuse is not directly possible. This work tacklesexactly this issue and provides a unified design of embedded annotations with a freeto-use reference library according to the presented specification. The functionality ofthis library, aka. engine, is shown on the use case of partial feature-based commits.Feature centric development, which is typical for agile projects get the possibility forisolated source code commits based on specific features aka. embedded annotations.

  AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)