Rhizome: A feature modeling and generation platform for software product lines | | Posted on:2009-06-12 | Degree:Ph.D | Type:Dissertation | | University:University of California, Santa Cruz | Candidate:Ge, Guozheng | Full Text:PDF | | GTID:1448390002994731 | Subject:Computer Science | | Abstract/Summary: | PDF Full Text Request | | Rhizome is a rapid development platform for automatic model-to-code transformation in software product lines. It provides a practical means of filling the gap between an ambiguous and incomplete textual feature description model and a precise source code implementation. This platform takes a feature description model as input and automatically generates source code that implements these specified features. Rhizome includes a feature modeling language FeatureML to describe features, a template language MarkerML which embeds special markers in the source code to instruct code generation, and a template-based generator engine that executes code generation.;To use Rhizome for rapid product line application development, a software designer first uses FeatureML by making various feature design choices and capturing these choices in a textual feature model. These design choices are associated with code templates which are further interpreted as parameters by a code generator to produce source code. Templates are source code files embedded with special XML tags representing variability. The generator scans each template and replaces XML markers with dynamically generated code blocks to produce final system source code. Templates are composed and maintained by platform developers who are experts in architecture and component implementation. Platform developers manually study and capture similarity and variability for the software product line and implement the software architecture and components (templates) that best fit a software product line. At generation time, variability is resolved using design choices made by software designers. The generator uses an array of different code generation patterns varying from inter-file level to intra-file level, including template file copying, hierarchical file generation, and various forms of marker expansion.;Rhizome is a practical end-to-end solution for feature modeling and generation in a software product line. It allows designers to naturally express their design intent via the selection of domain-specific feature concepts and then automatically convert this feature blueprint into executable system source code with the implementation expertise captured in code templates. The Rhizome platform tackles the core problem facing rapid product line development: a lack of direct connection between a design at the semantic level and a concrete implementation at the code level. The platform has been applied to generate online exam Web applications where each generated application is about 6500 lines of Java code. In addition to generating code from high-level feature descriptions, Rhizome also opens the door to many related topics in feature-based development such as a variability repository, design space modeling, feature dependency modeling and analysis, and change impact analysis at the feature level. | | Keywords/Search Tags: | Feature, Product line, Software product, Platform, Rhizome, Model, Code, Generation | PDF Full Text Request | Related items |
| |
|