When I was 15 I made a bet with a friend to see who could learn to juggle first; as a future engineer I set the following measurable specifications:
- 3 balls in the air
- For at least 1 minute
- Be able to stop without dropping any balls
With these objectives, we both went off to learn to juggle. My friend jumped into it immediately working with 3 balls. On the other hand, I started out simply practicing throwing one ball back and forth until I had that down pat; taking my time to build up in 3 weeks I won a snickers bar. For an example of juggling, I have the following video
Model-Based Design Adoption
So how does this connect to adopting a Model-Based Design process? The analogy should hold true; a fully fleshed out MBD process has multiple tools and technologies that can be adopted. Mastering the basics before you move onto the next technology.
Phased tool adoption
There are core, secondary and process dependent tools. An example of a core tool/process is Simulink and Modeling Guidelines; develop your model in a readable efficient format. Secondary tools include formal method tools (Simulink Verification and Validation) or physical modeling. Process dependent tools include the requirements traceability functionality required by some high integrity processes.
Working your core
So what do I call my core?
- Simulink, Stateflow, MATLAB: Tools for algorithm design
- Data dictionary: Create data driven models
- Simulink Test: Start testing with your basic unit tests
- Simulink Projects and Model Reference: Develop components from your model to enable working in a group.