45

Meta-model based system design Gábor Privitzky [email protected] Gábor Zsolt Nagy [email protected]

Embed Size (px)

Citation preview

Page 1: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com
Page 2: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Meta-model based system design

Gábor [email protected]

Gábor Zsolt [email protected]

Page 3: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Table of contents

• Today’s software design• Analysis and design• Elaboration modeling approach• Meta-models• Translation modeling approach• Experiences at Ericsson Hungary

Page 4: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

MDA applied in Ericsson Hungary

• MDA related activities since beginning of 2002• Technology evaluation projects• Development of a C++ code generator

– SNMP capabilities (network configuration protocol)– CORBA notification service– Trace, debug capabilities

• Development of 2 sub-systems of a 3G mgmt. System– 90% of code was generated!

• Common service domains (XML, Logging, etc.)• TTCN test bed, XMI export, HTML doc. generator, etc.

Page 5: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Today’s software design

• Productivity problems– Labor intensive– Rework

• Portability problems– Emerging technologies– Heterogeneous implementation techniques

• Maintenance problems• Quality problems• Changing requirements

Page 6: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Traditional software development life cycle

Requirements

Analysis

Design

Coding

Testing

Text

Text anddiagrams

Text anddiagrams

Code

Page 7: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Traditional software development life cycle

Requirements

Analysis

Design

Coding

Testing

Text

Text anddiagrams

Text anddiagrams

Code

– Productivity problems

• Tedious programming tasks

• Late feedback

– Portability problems• Non-formalized analysis• Design and Analysis are not separated• Decisions are made in coding

– Quality problems• Non-formalized

knowledge in heads

– Maintenance• Shortcuts• Documentation overhead

60-70% of the budget in coding!

Page 8: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Way of writing specifications

• Textual specification– ambiguous– difficult to verify– difficult to keep up-to-date– “we will sort it out during the design”

• Graphical specifications– no semantic meaning defined– undefined relations between diagram types– difficult to verify

Page 9: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Expectations

• Formalized way of specification• Early verification and testing• Separate business logic analysis and implementation• Software reuse• Leverage the initial investment in an early phaseHOW?

Page 10: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Analysis and Design

• Analysis– Defines what to do; application business logic– Captures requirements and functional decisions in a platform

independent manner– Results in a Platform Independent Model (PIM)

• Design– Defines how to do– Captures characteristic and interface requirements– Defines a specific platform (e.g. C++, Solaris, .NET, J2EE)– Results in a Platform Specific Model (PSM)

Page 11: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

PIM and PSM

• PIM (Platform Independent Model)

Expresses only business functionality and behavior

• PSM (Platform Specific Model)

Defines also technology-specific details

e.g. Chained list, index tables

Director Movie1 0..*

directed by directs

0..* Actor0..*

acts in played by

Page 12: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

MDA software development life cycle

Requirements

Analysis

Design

Coding

Testing

Text

PIM

PSM

Code

Page 13: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

What is Model Driven Architecture?

• MDA is an object-oriented software development method• Splits platform independent and platform specific decision• Holds decisions in models instead of documents• Based on Unified Modeling Language• 2 approaches:

– Elaboration (model refinement)– Translation

• CASE tools that support software life-cycle

Page 14: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

• Elaborationist approach– middleware independence, an open, vendor neutral approach for

interoperability– Booch, Rumbaugh and Jacobsen with UML– OMG, Rational– profiles

• Translationist approach– platform independence– Steve Mellor and Sally Shlaer– meta-model based tools– xUML

PIMPIM PSMPSM CodeCode

Elaboration approach

Page 15: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Modeling structure (classes, attributes & associations)

Modeling behavior (FSMs)

Step 1 : During ‘analysis’, construct a model of the user application

Aids :Use Case DiagrammingSequence DiagrammingCollaboration Diagramming

Elaboration approach

Page 16: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Step 2: During ‘design’, add control structures, datastructures, GUI concepts, tasking mechanisms etc.

… elaborate the model

Elaboration approach

Page 17: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Step 3 : Automated code generation convertsstructural model elements to target language

e.g. C++ header files (.h)

Elaboration approach

Page 18: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Step 4 : Behavioral code is added manually, introducingmodel and code maintenance management demands.

e.g. C++ program files (.cpp)

Elaboration approach

Page 19: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Problems of elaboration approach

• PSM is an extended PIM• New model elements are sprinkled into the PIM• Some model elements removed, merged or split apart• Destroys the original PIM• Platform specific elements may seep into PIM• Boundary between PIM and PSM is fuzzy• It often needs reverse engineering

Page 20: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Platform independent models using MDA

• Elaborationist view – middleware independence, an open, vendor neutral approach for

interoperability– Booch, Rumbaugh and Jacobsen with UML– OMG, Rational– profiles

• Translationist view– platform independence– Steve Mellor and Sally Shlaer– meta-model based tools– xUML

PIMPIM

PSMPSM

CodeCode

Page 21: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Simulator

How does translation work?

FunctionalRequirements

OOAModel

TestCases

Characteristicand platform

specificRequirements

SourceCode

TestSuits

ModelTranslator

• OOA models can be simulated before implementation

• OOA models are translated by Model Compilers

Page 22: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Meta-modeling concept

• The “meta” prefix– indicates one level of abstraction higher than root– is used in a relative manner

• A meta-model is a model of a model• The concept can be recursively applied to itself

– a meta-meta-model is a model of a meta-model– a meta-meta-meta-model is a model of a meta-meta-model …

• Meta-models are often defined for specific technology domains

• OMG is now using M0-M3 notation for modeling

Page 23: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Meta layers

M0 : User Objects{“Pulp Fiction”, 1994, “Quentin Tarantino”}{“Peter Smith”, 2004.12.23}

PopulatesPopulatesDefinesDefines

Director, Actor, MovieM1 : Model

PopulatesPopulatesDefinesDefines

M2 : Meta-modelClass, Attribute, Association

PopulatesPopulatesDefinesDefines

M3 : Meta-meta-modelMOF::Class, MOF::Attribute

Page 24: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

M2 (DSL)

Self recursive description

• Concepts:– Class– Attribute– Relationship

Class

• name• description

Attribute

• name

Relationship

• side A multiplicity• side B multiplicity

0..* 1

1 0..*

1 0..*

M3

Page 25: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Potential of meta-modeling

• Help others understand the problem domain by using the same language

• Define a vocabulary for the elements in the problem domain

• Manage complexity by raising the level of abstraction at which we think and design

• Enables to develop solid knowledge-base in centralized model repositories

Page 26: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

How does C++ meta-model describes a system?

What is the system architecture ?

What are the charac-teristic requirements ?

Model translation

How does PIM meta-model describes a system?

Domain Class

Attribute

State Transition

Operation

PIM meta-modelClass

Attribute

Function

Parameter

Constructor DestructorC++ meta-model

What is the task?To create an alarm handling application

Actor

actor_ID

Client

client_ID

acknowledgecease_alarmfactory

Network_element

IP_addressne_ID

create_alarmcease_alarmfactory

Active_alarm

alarm_IDproblem_cause...IP_address

AMDdomain

PIM

Page 27: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Actor

actor_ID

Client

client_ID

acknowledgecease_alarmfactory

Network_element

IP_addressne_ID

create_alarmcease_alarmfactory

Active_alarm

alarm_IDproblem_cause...IP_address

AMDdomain

How does C++ meta-model describes a system?

Model translation

How does PIM meta-model describes a system?

Domain Class

Attribute

State Transition

OperationClass

Attribute

Function

Parameter

Constructor Destructor

AMD

actor_ID

Actor

problem cause

IP address

Active alarm

alarm IDacknowledge

cease alarm

factory

Client

client ID

Network element

IP address

ne ID

create alarm

cease alarm

factory

populated

PIM meta-model

What is the system architecture ?

What are the charac-teristic requirements ?

Page 28: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

How does C++ meta-model describes a system?

What are the charac-teristic requirements ?

Actor

actor_ID

Client

client_ID

acknowledgecease_alarmfactory

Network_element

IP_addressne_ID

create_alarmcease_alarmfactory

Active_alarm

alarm_IDproblem_cause...IP_address

AMDdomain

Model translation

How does PIM meta-model describes a system?

Domain Class

Attribute

State Transition

OperationClass

Attribute

Function

Parameter

Constructor Destructor

What is the system architecture ?

AMD

actor_ID

Actor

problem cause

IP address

Active alarm

alarm IDacknowledge

cease alarm

factory

Client

client ID

Network element

IP address

ne ID

create alarm

cease alarm

factory

Model Translation

AMD

actor_ID

Actor

problem cause

IP address

Active alarm

alarm IDacknowledge

cease alarm

factory

Client

client ID

Network element

IP address

ne ID

create alarm

cease alarm

factory

Page 29: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

How does C++ meta-model describes a system?

Model translation

How does PIM meta-model describes a system?

Domain Class

Attribute

State Transition

OperationClass

Attribute

Function

Parameter

Constructor Destructor

AMD

actor_ID

Actor

problem cause

IP address

Active alarm

alarm IDacknowledge

cease alarm

factory

Client

client ID

Network element

IP address

ne ID

create alarm

cease alarm

factory

C++ source code

What are the charac-teristic requirements ?

What is the system architecture ?

Model Translation

Actor

actor_ID

Client

client_ID

acknowledgecease_alarmfactory

Network_element

IP_addressne_ID

create_alarmcease_alarmfactory

Active_alarm

alarm_IDproblem_cause...IP_address

AMDdomain

Page 30: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Translation process

PIM

Populates

PSIM-M

PSMM-M

PIMM-M

PSIM-M

PSMM-M

Definedmapping

Definedmapping

Definedmapping

Definedmapping

PSMAppliedmapping

Appliedmapping PSI

Generates

Target

Code

Page 31: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Benefits of translation approach

• Early verification and testing• Separates business logic analysis and implementation• Software reuse• PSM and PIM are independently maintained• Leverage the initial investment in an early phase

Page 32: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Platform independentbusiness logic

App1App2

App3

Platform v1

ModelCompiler for Platform v1

App1App2

App3

Page 33: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Platform independentbusiness logic

App1App2

App3

Platform v1 Platform v2

ModelCompiler for Platform v2

App1App2

App3 App1App2

App3

Page 34: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Potential of model translation

• Code generation is just one possibility• Architectures can be used for:

– Document generation– Model verification– Model simulation– KPI measurements– Building architectures

Page 35: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Model translation techniques

• Template based translation– Source code templates extended with model queries

• Model based translation specified with– ASL– QVT– XSLT– some other query language

• Code generation can be preceded by several model-to-model translations

Page 36: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Traditional software development life cycle

Requirements

Analysis

Design

Coding

Testing

Text

Text anddiagrams

Text anddiagrams

Code

– Productivity problems

• Tedious programming tasks

• Late feedback

– Portability problems• Non-formalized analysis• Design and Analysis are not separated• Decisions are made in coding

– Quality problems• Non-formalized

knowledge in heads

– Maintenance• Shortcuts• Documentation overhead

Page 37: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

MDA software development life cycle

Requirements

Analysis

Design

Coding

Testing

Text

PIM

PSM

Code

– Productivity problems

• Keeping intellectual property in modelsand architectures

• Automated code generation

• Early verification

– Portability problems

• Splitting platform specific and platform independent decisions

– Maintenance

• Strict forward engineering technique

• Documents and code are generated

• No data redundancy

– Quality

• Uniform code quality

• Early verification

Page 38: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Project timelines

Kick-off MS1

Requi

rem

ent

anal

ysis

Func

tiona

l spe

cs

Proto

typi

ng

MS2

Desig

n do

cum

enta

tion

MS3

Codin

g

Test

&ve

rific

atio

n

MS4

Deplo

ymen

t

Kick-off MS1 MS2 MS3 MS4

Requirement

analysis

OOA & OOD

Code generation

Test & verification

Traditional

MDA

Deployment

Model testing

Page 39: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Activity distribution of an MDA project

Implementation28%

Testing12%

Other activities11%

Analysis49%

Page 40: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Trend diagram of an MDA project

0

20

40

60

80

100

120

140

160

3 6 8 10 12 14 16 18 20 22 24 26 28 31 33 36 38

Week

MH

R

Analysis

Implementation

Testing

Page 41: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

KPI comparison of “traditional” and MDA proj.

Traditional MDA

Implemented requirements 48 % 83 %

Not implemented requirements 52 % 18 %

Cost (mhrs) 6800 3440

Analysis TRs 0 12

Implementation TRs 37 7

Architecture TRs 0 2

Page 42: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Experiences

• MDA is not a “silver button”. Doesn’t solve anything from itself…

• …but offers a strict process with technology support• Using iterations. At feedback every affected part is

modified• Sometimes difficult to decide between architecture and

application modeling• Loosely connected areas (requirements, legacy codes) are

hard to keep consistent• Model tests replaces basic and function tests (partly)

Page 43: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Effects on the organization

• Introduction of new technology needs initial investment– Time and money– Gradual technology shift

• Fear and resistance from management side• Strong resistance from sw. developer side• High expectations• Balance of employees’ competence portfolio must change

Page 44: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Conclusion

• It works!• Doesn’t solve everything• Reduces budget and time-to-market significantly• Offers uniform quality (for generated part)• Replaces textual documentation• Can keep different areas consistent but it’s not trivial

– Requirement analysis– Sw analysis, design and implementation– Testing– Quality measurements, project tracking

Page 45: Meta-model based system design Gábor Privitzky Gabor.Privitzky@ericsson.com Gábor Zsolt Nagy Gabor.Zsolt.Nagy@ericsson.com

Software Technology Forum Meta-model based system design 2004-11-08

Questions ?