MSc-IT Study Material
January 2011 Edition

Computer Science Department, University of Cape Town
| MIT Notes Home | Edition Home |

From model to program

During object-oriented development, the models will tend to become more detailed, and there will be a shift in standpoint from a logical to an implementation view. Developers using the waterfall or similar process models feel that there should be a strong correspondence between the final model and the program code it results in. However, iterative and agile methods often eschew heavy amounts of documentation, and realise that models (including object models) may not always accurately reflect the code, since both will always be changing as the code-base develops, and as the customers' requirements develop over time.

For agile methodologies it is important to remember that documentation is secondary to the software being produced. Slavishly attempting to specify every last component of the software in a detailed object model is antithetical to agile process methods, and there are many published studies showing that such complete, upfront designs are both inadequate (since requirements, and hence designs, continuously change) and detrimental to software engineering as a whole.