Model-driven development uses models instead of code as the primary engineering artifact through the development cycle. Model-driven development goes beyond traditional modeling by using models not just as sketches or blueprints of a system, but as specifications from which corresponding implementations can be partially or, in some cases, fully generated. Model-driven development offers many advantages over traditional software development processes. IBM Rational modeling products facilitate this approach by providing the tools necessary to transform artifacts from blueprints to accurate UML models and, finally, compiled code.