Upload
gitel
View
34
Download
0
Embed Size (px)
DESCRIPTION
The First Product Line Conference Workshop on Generative Techniques. Software Generation by Extreme Abstraction Joerg Friedrich Marconi Communications Backnang, Germany ([email protected]). Motivation. 1.Decrease cost of software development and maintenance - PowerPoint PPT Presentation
Citation preview
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 FriedrichMarconi Communications
Backnang, Germany([email protected])
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
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
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
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
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
Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 7
Extreme Abstraction DSL Examples
GUIDatabase
ERP Protocols Control
Delphi SQL
xBase
ABAP
SDL
State Charts
MATLAB
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
Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 9
Domain Example Element Management Agent
Element Management
Agent
Network
MIBManagementApplication
Management Server
Element Management
Agent
Element Management
Agent
Element Management
Agent
Network
ManagementClient (PC, WS)
ManagementClient (PC, WS)
ManagementClient (PC, WS)
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
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
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
Unpublished : Copyright Marconi Communications Limited. All Rights Reserved. www.marconi.com 13
Element Management Agent
Q uality C oun te rs
Se ttin gs
A la rm s A la rm s
Settings
FE = 1 FE = 2TX
Q uality C oun te rs
Se ttin gs
A la rm s A la rm s
Settings
M easu rem e nt P o in ts
FE = 1 FE = 17RX
U ser D ata
Se ttin gs
A la rm sFE = 1S ISA 0
Func
tiona
l Gro
up
Functional U nit
B yte 0 , B
it 7
B yte 0 , B
it 6
B yte 0 , B
it 5Byte 3, B it 0
Inform ation Type
M easurem en t P o in ts
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;
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
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