Upload
drusilla-hubbard
View
220
Download
0
Tags:
Embed Size (px)
Citation preview
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
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.
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
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
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!
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
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?
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 ?
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
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
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
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
Software Technology Forum Meta-model based system design 2004-11-08
Platform independentbusiness logic
App1App2
App3
Platform v1
ModelCompiler for Platform v1
App1App2
App3
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
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
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
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
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
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
Software Technology Forum Meta-model based system design 2004-11-08
Activity distribution of an MDA project
Implementation28%
Testing12%
Other activities11%
Analysis49%
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
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
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)
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
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
Software Technology Forum Meta-model based system design 2004-11-08
Questions ?