1 / 16

The First Product Line Conference Workshop on Generative Techniques

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

gitel
Télécharger la présentation

The First Product Line Conference Workshop on Generative Techniques

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The First Product Line ConferenceWorkshop on Generative Techniques Software Generation by Extreme Abstraction Joerg Friedrich Marconi Communications Backnang, Germany (Joerg.Friedrich@marconi.com)

  2. 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

  3. 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

  4. Domain Model Handwritten code GlueCode Varia-bilities Commonalities DSL defined, generated code Static code

  5. 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

  6. 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

  7. Extreme Abstraction DSL Examples Database ERP GUI Protocols Control Delphi SQL SDL MATLAB xBase State Charts ABAP

  8. 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

  9. 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

  10. 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

  11. Domain Example Element Management Agent Element Management Agent Operations MIB Agent Application Notifications Managed Objects

  12. 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

  13. Element Management Agent

  14. 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;

  15. 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

  16. 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

More Related