16
Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 1 The First Product Line Conference Workshop on Generative Techniques Software Generation by Extreme Abstraction Joerg Friedrich Marconi Communications Backnang, Germany ([email protected])

Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. 1 The First Product Line Conference Workshop on Generative

Embed Size (px)

Citation preview

Page 1: Unpublished : Copyright Marconi Communications Limited. All Rights Reserved.  1 The First Product Line Conference Workshop on Generative

Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 1

The First Product Line ConferenceWorkshop on Generative Techniques

Software Generation by

Extreme Abstraction

Joerg Friedrich

Marconi CommunicationsBacknang, Germany

([email protected])

Page 2: Unpublished : Copyright Marconi Communications Limited. All Rights Reserved.  1 The First Product Line Conference Workshop on Generative

Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.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

Page 3: Unpublished : Copyright Marconi Communications Limited. All Rights Reserved.  1 The First Product Line Conference Workshop on Generative

Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 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

Page 4: Unpublished : Copyright Marconi Communications Limited. All Rights Reserved.  1 The First Product Line Conference Workshop on Generative

Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 4

Domain Model

Varia-bilities

Commonalities

GlueCode

Static codeDSL defined,

generated code

Handwritten code

Page 5: Unpublished : Copyright Marconi Communications Limited. All Rights Reserved.  1 The First Product Line Conference Workshop on Generative

Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 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

Page 6: Unpublished : Copyright Marconi Communications Limited. All Rights Reserved.  1 The First Product Line Conference Workshop on Generative

Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 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

Page 7: Unpublished : Copyright Marconi Communications Limited. All Rights Reserved.  1 The First Product Line Conference Workshop on Generative

Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 7

Extreme Abstraction DSL Examples

GUIGUI DatabaseERP

DatabaseERP ProtocolsProtocols ControlControl

DelphiDelphiSQLSQL

xBasexBase

ABAPABAP

SDLSDL

State ChartsState Charts

MATLABMATLAB

Page 8: Unpublished : Copyright Marconi Communications Limited. All Rights Reserved.  1 The First Product Line Conference Workshop on Generative

Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 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

Page 9: Unpublished : Copyright Marconi Communications Limited. All Rights Reserved.  1 The First Product Line Conference Workshop on Generative

Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 9

Domain Example Element Management Agent

Element Management

Agent

Element Management

Agent

NetworkNetwork

MIBManagementApplication

Management Server

Element Management

Agent

Element Management

Agent

Element Management

Agent

Element Management

Agent

Element Management

Agent

Element Management

Agent

NetworkNetwork

ManagementClient (PC, WS)

ManagementClient (PC, WS)

ManagementClient (PC, WS)

ManagementClient (PC, WS)

ManagementClient (PC, WS)

ManagementClient (PC, WS)

Page 10: Unpublished : Copyright Marconi Communications Limited. All Rights Reserved.  1 The First Product Line Conference Workshop on Generative

Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 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

Page 11: Unpublished : Copyright Marconi Communications Limited. All Rights Reserved.  1 The First Product Line Conference Workshop on Generative

Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 11

Domain Example Element Management Agent

MIBAgentApplication

Element Management Agent

Managed Objects

Operations

Notifications

Page 12: Unpublished : Copyright Marconi Communications Limited. All Rights Reserved.  1 The First Product Line Conference Workshop on Generative

Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 12

Domain ExampleElement Management Agent

VMP01

OSI

ECC

TCP/IP

10Base-T

AWP01

Information Model

Application layer

Physical layer

Commonalities,in static code

Variabilities,in DSL

Page 13: Unpublished : Copyright Marconi Communications Limited. All Rights Reserved.  1 The First Product Line Conference Workshop on Generative

Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 13

Element Management Agent

Q ua lity C o unte rs

Settin gs

A la rm s A la rm s

Settings

FE = 1 FE = 2TX

Quality C ou nte rs

Settin gs

A la rm s A la rm s

Settings

M easu rem e nt P o in ts

FE = 1 FE = 17R X

U ser D ata

Settin gs

A la rm sFE = 1S ISA 0

Fun

ctio

nal G

roup

Functional U nit

B yte 0

, Bit 7

B yte 0

, Bit 6

B yte 0

, Bit 5

By te 3, B it 0

Inform ation Type

M easurem en t P o in ts

Page 14: Unpublished : Copyright Marconi Communications Limited. All Rights Reserved.  1 The First Product Line Conference Workshop on Generative

Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 14

Element Management AgentFUNCTION 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;

Page 15: Unpublished : Copyright Marconi Communications Limited. All Rights Reserved.  1 The First Product Line Conference Workshop on Generative

Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 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

Page 16: Unpublished : Copyright Marconi Communications Limited. All Rights Reserved.  1 The First Product Line Conference Workshop on Generative

Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 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