Improving the Software Development Process : A Dynamic Model Using the Capacity Maturity Model