By paul ~ July 20th, 2006. Filed under: FAQ, Systems Engr..
I am often asked about the relationship or interaction between Foresight and some other modeling language, such as UML, SysML, or MatLab. These are hard questions to answer in a sales situation. The first thing the person is usually desparately hoping is that they can realize the performance simulation and analysis benefits that Foresight provides with a modeling language that they know and/or have existing models in. Sadly, no modeling language is a Swiss Army Knife that can meet all of your specification and analysis needs (yet; we can still dream, more on this in a moment!)
The second thing the person is hoping is that, if Foresight can’t just directly work with the current modeling language, it can translate the existing models, or analyze them in some way, as a starting point. One of the greatest barriers to adoption of a tool, such as Foresight, is not the cost of the tool, but the cost of learning the modeling language and then expressing the system in the new language. People seek to mitigate this cost through some level of translation functionality.
Foresight currently doesn’t provide translators to/from other modeling languages and, the truth is, if we did no one would use them. While the idea of translating a UML model (for instance) to Foresight for simulation and analysis sounds promising, the reality is that UML models are constructed for a very different purpose than performance modeling. Even if an extension to UML were used to express the information required for simulation and performance analysis, the cost of learning and utilizing the extension would rival, if not surpass, the cost of using Foresight’s modeling language. The same is true for other, special-purpose modeling languages.
So, what’s the answer? Well, for the moment, the best answer is for the systems engineer to have a variety of tools in his belt, just like a wood carver does. For any particular project, the wood-carver may use a large number of special-purpose tools. There aren’t very many wood carvers that would be content with a Leatherman, no matter how versatile it is!
Just like the wood-carver’s exact tool selection is going to reflect his or her approach and style, so the system engineer’s tools are going to reflect his or her approach and needs. Here are some of the tools you’ll find in the embedded systems engineering tool-belt:
- UML for requirements analysis, software specification and design. (Some are using UML for system-level specification as well.)
- MatLab for algorithmic analysis and design.
- OpNet for network-level analysis.
- Foresight for embedded-system-level performance analysis and discrete event simulation. (Some are using Foresight’s modeling language for system-level specification as well.)
- HDLs (Verilog, VHDL) for gate-level and RTL specification, simulation, and synthesis.
Foresight fits naturally into this selection, providing capability that is unique and extremely valuable. The modeling language, while unique, is very expressive, easy to learn, and well suited to Foresight’s role in the overall tool equation. Foresight is currently being used successfully in many projects where the tools listed above are all in the mix. It peacefully coexists with the others, quietly providing it’s unique value.
Now, what about the hope for some kind of unified modeling language for systems engineers? SysML (www.sysml.org) was conceived and has been developed in the hope that it can provide a single language that can feed the entire design and analysis flow. That’s a tall order, but it is a necessity if we are to see true, Model Driven Design (MDD). Because SysML is based on UML 2.0, it should find pretty good acceptance from that side of the house. Some of the SysML extensions were designed with the systems engineer and hardware designer in mind, which should make it more palatable to that audience. In addition, SysML contains extensions specifically aimed at performance analysis. Adoption by the systems engineering community is likely to be slow, but the benefits of MDD are too attractive to be ignored.
Foresight is hopeful that we can provide performance analysis and simulation capability to SysML models. We are actively looking into strategies and possible partners. If you have an interest in SysML performance analysis using Foresight, please contact us!
For those who would like more information about the co-existance of UML and/or MatLab and Foresight, contact us. We have some experience we’d be happy to share!
Do you have an opinion on this topic? Please add your comments! We’d love to see a discussion with viewpoints other than our own represented!