150 likes | 297 Views
A Generative and Model Driven Framework for Automated Software Product Generation. Wei Zhao Advisor: Dr. Barrett Bryant Computer and Information Sciences University of Alabama at Birmingham. UniFrame Project.
E N D
A Generative and Model Driven Framework for Automated Software Product Generation Wei Zhao Advisor: Dr. Barrett Bryant Computer and Information Sciences University of Alabama at Birmingham
UniFrame Project • GOAL: to provide a compiler framework to compile the 4GL into the 3GL to be executed by the computers.
The 4th Generation Language • Definition: The 4GL is a language that allows the users to use intuitive visualized or textual representation to directly work with the domain specific concepts. • Program written in a 4GL is a formalized requirements model
The 4GL Compiler • When the development abstraction moves to the domain specific concepts, the 4GL compiler is a product line assembler or application generator for that domain. • The generated 3GL object code is no longer a single program, rather it will a set of entities with certain structure and interactions.
Compiler Design Thesis 1 Modularity and Component-based software engineering • The compilation process is steps of compositions of reusable features in business domain • Composition at the level of Business logic view • Composition at the level of Architecture view • Composition at the level of Technology view • Features are standardized services, and features are the smallest and most abstract unit for reuse • One or more services are developed as a single component • Components are registered to the native component registry in the domain for discovery and composition
compiler design thesis 2 Software development paradigm shift: from single application development to system family development • The higher the development abstraction is, the more intelligent the compiler should be • Development at 4GL level, system family development methodologies provide domain ontology for supporting compilation • Two phases in system family development paradigm: • Domain engineering: build Generative Domain Model and develop reusable assets • Application engineering: produce concrete system using reusable assets
compiler design thesis 3 Capture, formalism, modeling and reuse of engineering knowledge (EK) • Any software has the domain-specific concepts and logic, has its structure and implementation technology • EK: Decisions made on how to produce the software using those concepts • Single system: EK was scattered among business executives, domain experts, engineers and programmers • Family system: EK should be formalized at domain level to guide the product generation at application level • Business domain: ontology for business concepts and logic • Architecture domain: ontology for software architectural pattern • Technology domain: ontology for implementation technologies
Application Engineering: 4GL compilation Domain Engineering: Reusable assets and meta-data for compilation requirements Business GDM in GME Feature development Requirements Model in GME TLG Meta TLG MDA Architecture GDM in GME Architecture Model in GME Meta TLG TLG Feature searching …….. feature feature Technology GDM in GME UMM UMM Meta TLG Bridge generation QoS validation Product
Two Level Grammar • Two Levels of context-free grammar • First level (simple context free grammar): formal parameters Second level (CFG with consistent substitution rule): predicate function • The string generated from the the first level can be plugged into the second level as the argument. e.g. Thing :: letter; rule. Thing list: Thing; Thing, Thing list. will generate: letter list: letter; letter, letter list. rule list : rule; rule, rule list.
Two-Level Grammar cont’ • TLG was used to specify the complete syntax and static semantics for Algol 68 • Feature modeling is the syntax and semantics of the 4GL in that domain • All kinds of feature configuration constraints is the static semantics of that 4GL
TLG for feature model specification • The first level simple CFG: feature organization • The second level:feature attributes, relationship cardinalities, pre and post condition, interdependencies • TLG interpreter – 4GL parser • parse the application configuration • constraints validation • Implementation of TLG interpreter: automatic 4GL parser generation can take use of existing parser generator
Example specification class Automobile. (1) Automobile :: CarBody , Transmission , Engine , Tires . (2) Transmission :: automatic ; manual . (3) Engine :: electronic ; gasoline; electronic , gasoline. ……… (4) Type : car (5) Automobile derive Tires : ifAutomobile.Type = car, Automobile #1, Tires #4; if Automobile.Type = truck, Automobile #1, Tires #8. (6) some-post-conditions Transmission : Transmission some-pre-conditions. ……. end class.
Project Colleagues Barrett R. Bryant, Jeff Gray Carol C. Burt Rajeev R. Raje, Andrew M. Olson, Mikhail Auguston This research was supported by U. S. Office of Naval Research Grant N000014-01-01-0746 and U. S. Army Research Laboratory and U. S. Army Research Office Grant DAAD190-00-1-0350.
Thank you Contact : zhaow@cis.uab.edu http://www.cis.uab.edu/info/grads/zhaow/