Font Size: a A A

Development Model For Software Product Line Reverse Extraction, And Field Components

Posted on:2011-02-13Degree:DoctorType:Dissertation
Country:ChinaCandidate:Y M YangFull Text:PDF
GTID:1118360305997348Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
Software product line (SPL) is a domain-oriented development approach based on the comprehensive, systematic software reuse. The two major engineering processes of SPL are domain engineering and application engineering. The domain engineering process consists of activities for analyzing systems in the domain and creating reference architectures and reusable components based on the analysis results. It is the phase of creating reusable domain assets for reuse. The other major SPL process is the application engineering process, which consists of activities for developing applications using the artifacts created in the domain engineering. It is the phase of reusing domain assets to derivate application systems.The early researches of software product line focus on SPL forwarding development process. However, in real world product line construction, development of a software product line rarely starts from scratch as product line engineering requires sophisticated domain experience. The typical pattern is to start with a small set of products to quickly build initial reference architecture. Then new products are migrated for extending the SPL scope. How to reuse as much as possible of the existing legacy development artefacts to reduce cost of SPL integration and migration is a real problem for software companies. Thus, reverse engineering techiques are important to the practical adoption of SPL construction.The research of the thesis focuses on constructing or updating software product line infrastructure using re-engineering and refactoring methods based on existing application systems. With the assistant of automatic or semi-automatic methods and tools, domain experts can extract SPL core assets such as domain feature model, variability model, reference architecture and resuable components in an efficient way.Firstly, aim at heterogeneous existing application systems of product family, this thesis propose a domain feature model recovery method using data access semantics and formal concept analysis. "Heterogeneous" means the implementations of these existing systems are with quite different code/design. But we can construct similar ER models because they are in the same domain. In the method, we use the data access semantics defined on database schemas as the business intent of all the program units (methods). Based on the direct mappings among the ER models of different applications, we can establish a common analysis basis for domain model recovery with consistent data access semantics. Then source code elements are clustered by FCA as feature candidates which should be named by domain experts. Finally, initial feature model is recoverd.Secondly, there exists another kind of homogeneous legacy application systems. Aim at these homogeneous systems, our thesis proposes a SPL oriented variability analysis method using clone detection and context similarity. "Homogeneous" means these systems share common base codes and large amounts of clone classes would be found by clone detection. By applying reverse engineering techique on these systems, we can obtain the domain commonality/variability model and map variant points to code implementation.Lastly, under guidance of recovered domain feature model and its implementation mapping, our thesis presents an adaptive component model oriented SPL domain archiecture recovery and implementation refactoring method for updating software product line infrastructure.
Keywords/Search Tags:software product line, reverse engineering, domain feature model recovery, formal concept analysis, data access semantic, code clone, context similarity analysis, adaptive component model, referecne architecture recovery, component extraction
PDF Full Text Request
Related items