Increasingly modeling is being used in all the software life cycle stages studied in the field of software engineering. By using models from two such stages, the requirements stage and the testing stage, we show that our machine learning based metaheuristic search technique can be used to optimize these models. This technique is called Iterative Treatment Learning, ITL. We apply ITL to three NASA cost/benefit models used during the requirements stage and two biomathemitical and three NASA flight models used during the testing stage. These last five models are investigated using an integrated development and testing framework, SPY, that has built-in ITL search capabilities. These studies improve upon previous work done with ITL by Menzies \etal by 1) discussing ITL's characteristics in metaheuristic search terminology 2) increasing the number and complexity of the models studied 3) exploring the option space of ITL, including a new discretizer and 4) investigating the stability and variance of ITL's solutions. With the cost/benefit models we show how our new method for discretizing the model's dependent variables 1) outperforms the previous discretizing method, both on solution quality and convergence speed and 2) outperforms a simulated annealer, a commonly used metaheuristic search technique, on convergence speed while finding the same quality solutions. With the biomathematical models we show that SPY can find potentially useful range restrictions to model inputs that restrict the model's output to specified behavior modes. Finally, with the NASA flight models we show that SPY can verify temporal properties in models with real valued inputs, comparing SPY's performance to a commercially available tool, Reactis, that uses a random and heuristic search strategy.