160 likes | 291 Views
The First Product Line Conference Workshop on Generative Techniques. Software Generation by Extreme Abstraction Joerg Friedrich Marconi Communications Backnang, Germany (Joerg.Friedrich@marconi.com). Motivation. 1. Decrease cost of software development and maintenance
E N D
The First Product Line ConferenceWorkshop on Generative Techniques Software Generation by Extreme Abstraction Joerg Friedrich Marconi Communications Backnang, Germany (Joerg.Friedrich@marconi.com)
Motivation 1. Decrease cost of software development and maintenance 2. Reduce development time 3. Increase software quality 4. Enable domain experts to generate new software Approach: Only reuse was judged to have the potential of significantly contributing towards these goals
We knew Reuse has generally not worked well in the past Reuse has worked where solutions to problem domains were provided in an easy to use way People adopted reusable software when they could see immediate or short term benefits Examples: OS, compilers, GUIs, DBMS Enable reuse by abstraction and specialisation
Domain Model Handwritten code GlueCode Varia-bilities Commonalities DSL defined, generated code Static code
Feature Notation One of the less matured tasks in feature modeling is that of feature description and notation Generalized feature notations often do not fit a domain well, but are widely adopted (e.g. UML) A tailored, domain specific notation cannot be widely adopted, but can be very powerful for its specific purpose A tailored, domain specific notation substantially eases the task of developing application generators
Extreme Abstraction Procedure 1. Develop a domain model using e.g. the FODA method. 2. Separate domain model in feature model (variabilities), requirements model (commonalities), and „glue code“ 3. For the feature model, design a domain specific language (DSL) that can describe the domain at the highest level of abstraction 4. Develop a code generator for this DSL 5. Develop software that captures all commonalities, and interfaces with the DSL generated code
Extreme Abstraction DSL Examples Database ERP GUI Protocols Control Delphi SQL SDL MATLAB xBase State Charts ABAP
Abstraction and Specialisation Enable abstraction by limitation to a specific problem domain Examples: SQL is limited to DBMS, but provides in this context powerful functionality at very high abstraction (e.g. select statements) MATLAB is optimised for matrix operations. A matrix multiplication can be written in the most abstract way as C = A * B A DSL can provide abstraction and ease adoption of reusable software
Domain Example Element Management Agent Management Client (PC, WS) Network Management Server MIB Management Client (PC, WS) Management Application Management Client (PC, WS) Network Element Management Agent Element Management Agent Element Management Agent Element Management Agent
Domain Example Element Management Agent Element Management Agents are part of all our products such as microwave radios, optical network units, SDH multiplexers There exist well written standards that describe most of the requirements model Element Management Agents cover the following functional areas: Fault management Configuration and name management Performance management Security management
Domain Example Element Management Agent Element Management Agent Operations MIB Agent Application Notifications Managed Objects
Domain ExampleElement Management Agent Information Model Variabilities, in DSL AWP01 Application layer Commonalities, in static code VMP01 OSI TCP/IP ECC 10Base-T Physical layer
Element Management Agent FUNCTION GROUP SISA 0; ALARMS(3); (0,7) INT_A[0] = SIS_INT_A[0]; /* Internal alarm, urgent */ (0,2) Conf[0] = GE, LE: SIS_CON[0] | SD_FMT[0] | SD_FMT[1] KR: SIS_CON[0] | SD_FMT[0]; USER DATA(2,2); (0,0) BF_FREI[0] = SIS_BF_FREI[0]; (0,1) BF_GSTO[0] = SIS_BF_GSTO[0]; END FUNCTION GROUP; FUNCTION GROUP TX 0xE1; ALARMS(2); (0,6) INT_B = GE: (SD_INT_A[A] ^ SD_INT_A[B]) | SD_INT_B[A] | SD_INT_B[B] aa: SD_INT_B; (1,5) LOSB = GE: SD_LOS[B] aa: 0; (1,4) LOSA = GE: SD_LOS[ACTIVE_TX] aa: SD_LOS[A] | SD_LOS[ACTIVE_TX]; END FUNCTION GROUP;
Experience I Have introduced this approach in 1994 Scoping had already been mostly done in the standardization process Developed agents for PDH and SDH microwave radios, WLL radios, and PDH multiplexers Agent development takes about 1 week after DSL specification by domain expert (mostly testing) A typical agent is comprised of about 25 kLOC Code expansion factors were about 10:1 with regard to the feature model DSL design evolves as domain model is extended
Experience II Development of the code generator incurred about 20% more effort than that spent on a previous traditional development of an agent Development of DSL and code generator requires more skills than in traditional software development Procedure requires well defined and controlled interfaces towards network management system and managed objects. This has been the major stumbling stone for a wider adoption. Maintenance is reduced to that of code generator and static code