Title: Managing Features at Meta-Level for Better Maintenance and Reuse
Abstract:
Knowing feaure design, implementation and interactions is key to effective maintenance. Knowing how to compose features
to build custom sftware products is key to reuse in Sotware Product Line approach. We describe a simple yet effective way
to capture feature knowledge at the meta-level with XVCL (XML-based Variant Configuration Language, xvcl.comp.nus.edu.sg). Unlike Feature-Oriented Programming (FOP) where features are modularized, we embed features-specific code with the base code (or reusable components) in the form of meta-level annotations expressed in XVCL. We provide mechanism to manipulate features, selectively injecting them into the base code. To aid in feature understanding, we formally link together all variation points, at which a given feature affects the base code. In addition, we mark each feature interaction point with names of interacting features. Query-based visualization further aids programmers in maintaining and reusing features, and understanding feature interactions. We show that our technique effectively handles fine-granular feature interactions, automates feature composition during reuse, and scores well in terms of comprehensibility and maintainability of base and feature code. We evaluate trade-offs involved.
Results based on project with Dr Hongyu Zhang's team at the Tsinghua University, Beijing, China.
Bio-data:
Stan Jarzabek (link to complete CV ) is an Associate Professor at the Department of Computer Science, School of Computing, National University of Singapore. He spent 12 years of his professional career in industry and 20 years in academia. Stan is interested in all aspects of software design, in particular techniques for design of adaptable, easy to change (high-variability) software. He is an author of a book Effective Software Maintenance and Evolution: Reuse-based Approach, Taylor & Francis CRC Press, 2007, and published over 90 papers in international journals and conference proceedings (his recent paper received the ACM Distinguished Paper Award). Stan was a Principal Investigator in a multi-national collaborative project involving universities (NUS and the University of Waterloo) and companies in Singapore and Toronto.
邀请人: Dr Hongyu Zhang, 清华大学软件学院. |