METHODOLOGY: SIMULATION DRIVEN DEVELOPMENT (SDD)
Simulation Driven Development is an efficient methodology for developing complex distributed systems. In contrast to conventional methodologies simulation models of the system to be developed are used during the entire developing process. These simulation models allow description of static and dynamic system properties which enormously improves specification quality and speed. Furthermore they are used for analysis, evaluation, validation, verification and optimization during the course of the developing process. In addition to the simulation model of the system to be developed, SDD uses a simulation model of the developing process itself. This simulation model allows automation of development steps in the form of workflows like optimization cycles, test cycles, revision controls and document sharing with component manufacturers.
The following figure shows SDD in form of an extended V-Model:
User requirements of the system to be developed are determined and transferred into a first simulation model during the requirement analysis. It represents the dynamic user behaviour as well as the user interaction with the system in form of application scenarios / use cases. The simulation model is the basis for future acceptance tests and allows first analyses for the conception of the system to be developed.
In the subsequent phase of system specification developer requirements (functional and not-functional) are derived and transferred in an executable specification. This is a simulation model of the whole system consisting of function, architecture and user behaviour. Each element of the simulation model is related to the user’s or developer’s requirements to ensure their compliance. The simulation model allows an early validation of the whole system against the application scenarios and enables the locating of integration problems (dynamic coupling effects between system components). Furthermore it allows optimization on system level and is the basis for later system integration tests.
Within the component specification the components of the system are further refined in form of simulation models. Basis is the executable system specification and their defined requirements and parameters of the component. Simultaneously the executable system specification serves as development environment for component validation and optimization against the whole system. Due to the refinement component and thus system parameters become more concrete. The component specification forms the basis for the following component integration tests.
After specification of the system and its components implementation follows. Based on the previously specified test cases implementation will be verified and validated (last tests and endurance tests). First, component integration tests were performed. The functionality of each component is viewed isolated. Afterwards components are integrated to a system followed by system integration tests. In form of acceptance tests the system is tested finally against user requirements. SDD allows reuse of the previously defined test cases which exist in form of simulation models. Therefore simulation models are attached to the system implementation by Hardware/Software in the Loop (SiL/HiL).