Simulink is a very successful and popular method for modelling and auto-coding embedded automotive features, functions and algorithms. Due to its history of success, university feeder programs, and large third party tool support, it has, in some cases, been applied to areas of the software system where other methods, principles and strategies may provide better options for the software and systems engineers and architects. This paper provides approaches to determine when best to apply UML and when best to apply Simulink to a typical automotive feature. Object oriented software design patterns as well as general guidelines are provided to help in this effort. This paper's intent is not to suggest a replacement for Simulink but to provide the software architects and designers additional options when decomposing high level requirements into reusable software components.