Date Added: Jan 2010
Software modeling techniques offer a means to address the size and complexity of modern day software problems through the use of abstraction, projection, and decomposition. Typically, multiple models are used to describe non-trivial software systems. However, if such models must be related and kept consistent by hand, then the viability of modeling as a means to reduce risks, minimize costs, improve time-to-market, and enhance product quality is nullified (most probably made even worse). As such, model-driven development approaches, in the direction of OMG's Model Driven Architecture initiative [OMG03], must be supported by tools that are at least able to automate the various tasks of keeping models consistent.