Many biological systems but also software systems (e.g. so called multi-agent systems) are characterized by their complexity in terms of number and heterogeneity of involved components and interaction patterns. To support an efficient and effective analysis of these systems a flexible simulation system is needed. Thereby flexibility refers to the modeling and simulation layer alike. The modeling and simulation system James II exploits reusable components for that purpose. Whereas in the 90s simulation frameworks that were aimed at supporting one formalism, one simulation algorithm, or simulating one experiment still prevailed, slowly systems emerge that support different modeling formalisms or simulation engines. Into this category also falls \textsc{James II}. \textsc{James II} combines ideas from software engineering with modeling and simulation techniques. This facilitates the integration of different modeling formalisms and their execution by different simulators. E.g., a PDEVS model might be executed in paced, unpaced, sequential, parallel, or flattened mode. Exploiting software patterns the changes and refinements to realize a wide set of different simulators for a formalism are nicely kept at bay. Selecting a simulator depending on the model, the objective of the simulation experiments, and the underlying infrastructure ensures an efficient execution of simulation experiments. The flexibility has been put to test in applying \textsc{James II} to simulate mobile agents, intelligent agents, and cell biological applications. To the later belong multi-level models of the Trytophan Synthase and Tryptophan Operon. Currently, a multi-level model of the wnt-pathway is under way.