\section{Introduction}
Model-based design is now a software engineering technique employed at
various degrees by software engineering teams in numerous large
organizations such as as Microsoft~\cite{greenfield04}; Lockheed
Martin~\cite{waddington03}; the Object Management
Group~\cite{brown06}; and the NASA's Jet Propulsion
Laboratory~\cite{feather08}. 

Such models can be queried to find combinations of options that might
be otherwise missed.  For example, with DDP, the goal is a non-linear
optimization that seeks the {\em least} costly project options that
{\em most} increases the chance of attaining more requirements.

Paradoxically, prior successes~\cite{fea02a,me03c,feather08} with DDP
have caused a problem.  The reality is that as the DDP models grow
larger, the demand for faster optimization methods also increases,
particularly when those models are used by a large room of debating
experts as part of rapid interactive dialogues. Hence, there is a
pressing need for ``real-time requirements optimization'';
i.e. requirements optimizers that can offer advice before an expert's
attention wanders to other issues. Our user community now expects an
automatic model-based cost-benefit analysis for larger and larger JPL
models containing more variants.  Further, as requirements change (as
is frequently the case), our users are demanding a complete
re-analysis of all past decisions.  Extrapolating into the near
future, we expect to fall off a computational cliff where our models
will be too complex for automatic analysis.Accordingly, we explore
optimizations for model-based design.

Prior experiments with simulated annealing~\cite{feather08} or
treatment learning~\cite{fea02a} terminated in minutes to
hours. Subsequent optimization attempts by Jalali et. al. resulted in
a method, called ``KEYS'', that runs significantly faster, e.g. for
one model, KEYS ran 13,000 times faster than treatment learning (40
minutes to 0.18 secs)~\cite{jalali08}. Although this speed gain is
very impressive, KEYS performance starts to degrade
rapidly for growing models. Results from experiments in this study show that KEYS
takes on average 99 seconds to find a solution for the largest
DDP model we generated.

We recently achieved another significant speedup in DDP model
optimization with KEYS2. This later algorithm is based on the original
KEYS algorithm but runs four orders of magnitude faster. In our
experiments, KEYS2's takes on average an impressive 8.7 seconds over
our largest model.

Given that these models will keep growing in size and complexity, in
this study we analyze the KEYS and KEYS2 algorithms searching for
areas of improvement in their implementation. We then address address
those areas in order to achieve faster performance, particularly for larger
models.

The rest of this paper described JPL's DDP modeling systems; the KEYS
and KEYS2 algorithms; our latest improvements; and experiments
performed on large, randomly-generated DDP models.

