model driven development with rhapsody by will fritz
TRANSCRIPT
Model Driven Development Model Driven Development with Rhapsodywith Rhapsody
By Will FritzBy Will Fritz
What is Model Driven What is Model Driven Development?Development?
A method for producing software quickly, A method for producing software quickly, efficiently, and with as little cost as efficiently, and with as little cost as possible.possible.
Based around generating code directly Based around generating code directly from UML or other modeling languages.from UML or other modeling languages.
Why use Model Driven Why use Model Driven Development?Development?
MDD allows for easier building and MDD allows for easier building and maintenance of complex state machines maintenance of complex state machines than direct work with code.than direct work with code.
Many embedded systems have too many Many embedded systems have too many states to keep straight easily through states to keep straight easily through standard development methodsstandard development methods
Why use MDD (cont.)Why use MDD (cont.)
With quality MDD tools, systems can be With quality MDD tools, systems can be maintained wholly through their state maintained wholly through their state diagrams and other models.diagrams and other models.
Advantages of MDDAdvantages of MDD
There are many advantages to using There are many advantages to using model driven development.model driven development.
““By using models, software engineers and By using models, software engineers and other stakeholders are able to argue other stakeholders are able to argue conceptually about a problem without conceptually about a problem without worrying about syntax or other platform worrying about syntax or other platform specific issues.”[4] specific issues.”[4]
Advantages of MDD (cont.)Advantages of MDD (cont.)
The added ease of communication can The added ease of communication can lead to fast design times.lead to fast design times.
System independenceSystem independence
System can be designed with very little System can be designed with very little information about final platform.information about final platform.
MDD emphasizes building system MDD emphasizes building system independent models, then applying model independent models, then applying model transformations to make it fit the target transformations to make it fit the target system.system.
This leads to better portability for the This leads to better portability for the system.system.
RhapsodyRhapsody
Rhapsody is a MDD tool from Telelogic.Rhapsody is a MDD tool from Telelogic. It currently supports final code generation It currently supports final code generation
into Ada, C, C++, and Java.into Ada, C, C++, and Java. It also supports 8, 16, 32, and 64 bit It also supports 8, 16, 32, and 64 bit
systems.systems.
Rhapsody (cont.)Rhapsody (cont.)
Rhapsody can run simulations of the Rhapsody can run simulations of the designed system.designed system.
It can also run debugging on the target It can also run debugging on the target hardware.hardware.
Lastly it includes support for built in Lastly it includes support for built in requirements and model based testing.requirements and model based testing.
StandardsStandards
CORBA: Common Object Request Broker CORBA: Common Object Request Broker ArchitectureArchitecture
D0-178BD0-178BUMLUMLSysMLSysMLDoDAF: Department of Defense DoDAF: Department of Defense
Architecture FrameworkArchitecture FrameworkAUTOSAR: soonAUTOSAR: soon
Rhapsody AnimatorRhapsody Animator
Rhapsody has a debugging tool called the Rhapsody has a debugging tool called the Animator. It shows the current state of the Animator. It shows the current state of the simulation within the diagrams.simulation within the diagrams.
Rhapsody AnimatorRhapsody Animator
Target Debugging with TornadoTarget Debugging with Tornado
When used for target debugging along When used for target debugging along with the Tornado IDE Rhapsody is able to with the Tornado IDE Rhapsody is able to show the status of the system in diagrams show the status of the system in diagrams via the animator while target debugging.via the animator while target debugging.
CustomersCustomers
AirbusAirbus BoeingBoeing Hamilton SunstrandHamilton Sunstrand Lockheed MartinLockheed Martin Smiths AerospaceSmiths Aerospace FordFord MazdaMazda MitsubishiMitsubishi CISCOCISCO
MotorolaMotorola NokiaNokia PanasonicPanasonic Sony ElectronicsSony Electronics 3Com3Com MedtronicMedtronic HPHP IntelIntel TraneTrane
Trane ExampleTrane Example
Used to design software for new high-Used to design software for new high-efficiency water chillerefficiency water chiller
Project went from blackboard to testing in Project went from blackboard to testing in three monthsthree months
Manager of SE Pat Wilson marked that as Manager of SE Pat Wilson marked that as very fast for that type of projectvery fast for that type of project
ReferencesReferences [1] Hofstader, Joseph; Building Distributed Applications [1] Hofstader, Joseph; Building Distributed Applications
Model-Driven Development, Model-Driven Development, http://msdn2.microsoft.com/en-us/library/aa964145(d=http://msdn2.microsoft.com/en-us/library/aa964145(d=printer).aspxprinter).aspx
[2] Mellor, S., Scott, K., Uhl, A. and Weise, D. MDA [2] Mellor, S., Scott, K., Uhl, A. and Weise, D. MDA Distelled; Principles of Model-Driven Architecture, Distelled; Principles of Model-Driven Architecture, Addison Wesley, 2004.Addison Wesley, 2004.
[3] Rutherford, Matthew J. and Wolf, Alexander L.; A [3] Rutherford, Matthew J. and Wolf, Alexander L.; A Case for Test-Code Generation in Model-Driven Case for Test-Code Generation in Model-Driven Systems, Springer-Verlag Berlin Heidelberg, 2003Systems, Springer-Verlag Berlin Heidelberg, 2003
[4] Bull, R. Ian; Integrating Dynamic Views Using Model [4] Bull, R. Ian; Integrating Dynamic Views Using Model Driven Development, 2006Driven Development, 2006